简介
Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds )在赫尔辛基大学上学时出于个人爱好而编写的。
Linux是一套免费使用和*传播的类Unix操作系统,是一个基于POSIX(可移植操作系统接口)和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
开机
开机会启动许多程序。它们在Windows叫做"服务" ( service ),在Linux就叫做""守护进程" ( daemon ) 。
登陆方式:
- 命令行登录
- ssh登录
- 图形界面登录
最高权限账户为root,可以操作一切
关机
sync #将数据同步到硬盘中,防止关机后数据丢失
shutdown
shutdown -h 10 # 十分钟后关机
shutdown -h now # 立刻关机
shutdown -h 20:56 # 指定时间关机
reboot # 重启
halt # 关闭系统 等价于 shutdown -h now 、 poweroff
系统目录结构
1、一切皆文件
2、根目录 “ / ” ,所有的文件都挂载在这个节点下
以下是对这些目录的解释:
-
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。 -
/boot: (勿动)
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。 -
/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 -
/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。 -
/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 -
/lib:(勿动)
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。 -
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 -
/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。 -
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。 -
/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 -
/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。 -
/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。 -
/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 -
/srv:
该目录存放一些服务启动之后需要提取的数据。 -
/sys:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
-
/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。 -
/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。 -
/usr/bin:
系统用户使用的应用程序。 -
/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。 -
/usr/src:
内核源代码默认的放置目录。 -
/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 -
/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。 -
/www : 存放服务器网站相关资源,环境,项目(宝塔创建的?)
命令
快捷:
Tab 快速补充当前页存在的目录、文件的名称
Ctrl+C 强制退出当前命令
Ctrl+Z 撤回命令
clear # 清除
tar -zxvf xxx.tar # j
目录管理
mkdir 目录名 # 创建目录
mkdir -p test1/test2/test3 # 创建层级目录
rmdir xx # 移除目录(只能是空的文件夹)
rmdir -p test1/test2 # 强制删除
cp 文件 目标地址 # 复制拷贝 重复会询问覆盖/放弃
rm 移除文件或目录
rm -f # 忽略不存在的文件,不出现警告,强制删除
rm -r # 递归删除目录
rm -i # 互动询问是否删除
mv 移动文件/重命名
-f #强制
-u # 只替换已经更新过的文件
mv 文件 地址 # 移动
mv 文件名1 文件名2 #重命名
切换 cd
绝对路劲以 / 开头,相对路径 ../路径
在A,去D:
cd D
cd ./D
cd /A/D
cd ../A/D
cd # 切换目录命名
cd .. # 返回上一级
./ # 当前目录
cd ~ # 回到当前用户目录
列出目录: ls
ls
ls -a #查看全部文件,包括隐藏文件
ls -l #列出所有文件,包括文件属性和权限,没有隐藏文件
ls -al # 组合
显示当前路径 pwd
pwd
基本属性
第一个字符:
- 【d】 :目录
- 【-】 : 文件
- 【l】 : 链接文档
- 【b】 : 装置文件里面的可供储存的接口设备(可随机存取装置)
- 【c】 : 装置文件里面的可供储存的接口设备(可随机存取装置)
接下来以3个字符为一组,均为【rwx】组合:【r】可读,【w】可写,【x】可执行,没有会以【-】代替
-
属主:谁创建的
-
属组:归于那个用户组
修改基本属性
1、chgrp:更改文件属组
chgrp -R 属组名 文件名
-R∶递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown: 更改文件属主,也可同时更改属组
chown -R 属主名 文件名
chown -R 属主名 : 属组名 文件名
3、chmod :更改文件9个属性
chmod -R xyz 文件或目录
r:4 w:2 x:1
可读可写不可执行: rw- 6
可读可写可执行: rwx 7
chmod 777 文件名
文件内容查看
-
cat :由第一行开始显示文件内容
-
tac : 从最后一行开始显示
-
nl :显示时顺道输出行号
-
more :一页页显示文件内容 空格翻页,回车向下看一行、:f 显示当前行号
-
less :于more相似,可以往前翻页 空格翻页、上下键翻页,回车下一行、【q】结束、【/】 向下查找、【?】向上查找、【n/N】结合查找上下跳转
-
head :只看头几行
-
tail : 只看尾巴几行
ifconfig:查看网络配置
链接
硬链接:类似拷贝,源文件删除,硬链接还能访问,可用于重要文件的安全保护
软连接:类似Window快捷方式,
创链接:
ln 源文件 链接 # 硬链接
ln -s 源文件 链接 # 软链接
touch
创建文件命令
echo
向文件中输入字符串
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# touch test1
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis test1 www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ln test1 t2
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis t2 test1 www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ln -s test1 t3
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis t2 t3 test1 www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls -l
total 8
drwx------ 2 redis redis 4096 Jan 27 17:22 redis
-rw-r--r-- 2 root root 0 Jan 29 13:58 t2
lrwxrwxrwx 1 root root 5 Jan 29 13:59 t3 -> test1
-rw-r--r-- 2 root root 0 Jan 29 13:58 test1
drwx------ 3 www www 4096 Jan 27 17:21 www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# echo "hello world" >>test1
[root@iZf8z25xnm9ajwj0x1efp9Z home]# cat test1
hello world
[root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t2
hello world
[root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t3
hello world
[root@iZf8z25xnm9ajwj0x1efp9Z home]#
删除测试:
[root@iZf8z25xnm9ajwj0x1efp9Z home]# rm -rf test1
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis t2 t3 www
[root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t2
hello world
[root@iZf8z25xnm9ajwj0x1efp9Z home]# cat t3
cat: t3: No such file or directory
[root@iZf8z25xnm9ajwj0x1efp9Z home]#
Vim 编辑器
基本上viwvim共分为三种模式,分别是命令模式(Command mode),输入模式(lnsert mode )和底线命令模式(Lastline mode )。这三种模式的作用分别是∶
vim 文件 # 如果存在则打开编辑,如果不存在则新建
命令模式
输入 vim test.txt 刚进入时处于命令模式:
- 输入【i、a、o】进入输入模式
- 输入【x】删除光标所处的字符
- 输入【:】切换到底线命令模式
输入模式
- 【esc】退出输入模式,切换到命令模式
- 正常输入
底线命令模式
- 【q】退出程序
- 【w】保存
- 【wq】
- 【set nu】 显示行号
命令模式-光标移动
h 或 向左箭头键(←) | 光标向左移动一个字符 |
---|---|
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
[Ctrl] + [f] | 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用) |
[Ctrl] + [b] | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用) |
[Ctrl] + [d] | 屏幕『向下』移动半页 |
[Ctrl] + [u] | 屏幕『向上』移动半页 |
+ | 光标移动到非空格符的下一行 |
- | 光标移动到非空格符的上一行 |
n< space> | 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。 |
0 或功能键[Home] | 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
$ 或功能键[End] | 移动到这一行的最后面字符处(常用) |
H | 光标移动到这个屏幕的最上方那一行的第一个字符 |
M | 光标移动到这个屏幕的*那一行的第一个字符 |
L | 光标移动到这个屏幕的最下方那一行的第一个字符 |
G | 移动到这个档案的最后一行(常用) |
nG | n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
gg | 移动到这个档案的第一行,相当于 1G 啊!(常用) |
n< Enter> | n 为数字。光标向下移动 n 行(常用) |
命令模式-搜索
搜索替换 | |
---|---|
/word | 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可!(常用) |
?word | 向光标之上寻找一个字符串名称为 word 的字符串。 |
n | 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串! |
N | 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。 |
命令模式-复制贴贴
删除、复制与粘贴 | |
---|---|
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用) |
nx | n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。 |
dd | 删除游标所在的那一整行(常用) |
ndd | n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用) |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符 |
yy | 复制游标所在的那一行(常用) |
nyy | n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用) |
y1G | 复制游标所在行到第一行的所有数据 |
yG | 复制游标所在行到最后一行的所有数据 |
y0 | 复制光标所在的那个字符到该行行首的所有数据 |
y$ | 复制光标所在的那个字符到该行行尾的所有数据 |
p, P | p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢?那么原本的第 20 行会被推到变成 30 行。(常用) |
J | 将光标所在行与下一行的数据结合成同一行 |
c | 重复删除多个数据,例如向下删除 10 行,[ 10cj ] |
u | 复原前一个动作。(常用) |
[Ctrl]+r | 重做上一个动作。(常用) |
账户管理
useradd
useradd -选项 用户名
- -m :自动创建这个用户的主目录 /home/用户名
- -G : 给用户分配组,后面跟组名
userdel
userdel -选项 用户名
- -r 删除用户时将他的目录页也一并删除
usermod 修改用户
usermod -d 用户组(/home/www) 用户名 # 修改用户的所属组
su 切换用户
[root@iZf8z25xnm9ajwj0x1efp9Z home]# useradd -m yzxtest
[root@iZf8z25xnm9ajwj0x1efp9Z home]# ls
redis test.txt www yzxtest
[root@iZf8z25xnm9ajwj0x1efp9Z home]# su yzxtest
[yzxtest@iZf8z25xnm9ajwj0x1efp9Z home]$
[yzxtest@hostname0yang root]$ exit
exit
[root@hostname0yang ~]#
普通用户是 $ 符号,# 是超级用户、
passwd 密码配置
注意Liunx输入密码时不会显示
root用户:
[root@hostname0yang home]# passwd yzxtest # 修改 yzxtest 用户的面码
Changing password for user yzxtest.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@hostname0yang home]#
普通用户:
[yzxtest@hostname0yang ~]$ passwd # 修改密码
Changing password for user yzxtest.
Changing password for yzxtest.
(current) UNIX password: # 这里输入现在的秘密
New password: #输入新密码
BAD PASSWORD: The password is the same as the old one # 新密码与原密码一样。驳回
New password: #输入新密码
Retype new password: #再次输入新密码
passwd: all authentication tokens updated successfully. # 成功
[yzxtest@hostname0yang ~]$
锁定账户
锁定之后账户被冻结,不能登入系统
passwd -l 用户名
passwd -d 用户名 # 冻结的同时清除密码
拓展:文件 /etc/passwd
用户名:口令(密码,不可见):用户标识号:组标识号:注释性描述:主目录:登录shell
登录口令:真正的密码加密后放在 /etc/shadow 文件中,保证安全性
修改主机名称
hostname 名称 # 重启后即可更新
用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理(开发、测试、运维、root)。不同Linux系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
创建一个用户组
[root@hostname0yang home]# groupadd group1 # 创建
[root@hostname0yang home]# cat /etc/group #查看
root:x:0:
bin:x:1:
daemon:x:2:
... #这里省略
yzxtest:x:1003:
group1:x:1004:
[root@hostname0yang home]#
groupadd -g 5200 group1 # 指定id ,不指定时自增1
删除用户组
groupdel 组名
修改用户组的权限信息
groupmod -g 新id -n 新名字 组名
切换用户组
$ newgrp 组名
磁盘管理
df (列出文件系统整体的磁盘使用量) du(检测磁盘空间使用量)
- 【-h】 大小使用K、M、G简写
检测根目录下每个目录所占大小
Mac 或者想使用Linux挂载我们的一些本地磁盘或者文件!
挂载:mount
卸载:umount
umount -f 挂载位置 # -f强制卸载
进程管理
ps 查看当前系统中正在执行的各种进程的信息
- 【-a】 显示当前终端运行的所有的进程信息
- 【-u】以用户的信息显示进程
- 【-x】 显示后台运行进程的参数
ps -aux|grep mysql # 查询关于mysql相关的进程
# | 在Liunx中是管道符,A|B 是指A执行的结果作为B的参数
# grep 查找响应字符串
- 【-ef】查询父进程的信息
ps -ef|grep mysql
pstree -pu
-p 显示父id
-u 显示用户组
kill 杀死进程
kill -9 进程的id #
环境安装
安装有3钟方式:rpm、解压缩、yum在线安装
JDK安装
找到jdk的rpm ,没有的下载后用Xftp传输过来
rpm -ivh xxx.rpm #安装
rpm -qa|grep jdk # 查询信息
rpm -e --nodeps 上面的信息 # 卸载环境
配置环境变量 /etc/profile
export JAVA_HOME=/opt/module/jdk1.8.0_301
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile # 刷新使配置生效
检测
[root@hostname0yang /]# java -version
java version "1.8.0_301"
Java(TM) SE Runtime Environment (build 1.8.0_301-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)
[root@hostname0yang /]#
发布
#开启防火墙端口
firewall -cmd --zone=public --add-port=xxx/tcp --permanent
#重启防火墙
systemctl restart firewalld.service
#查看开放的端口
firewall-cmd --list-ports
Tomcat
略
Docker
yum 在线安装
yum -y install yum源