查看系统信息的相关命令
1.查看当前 Linux 操作系统的发行信息
cat /etc/os-release
2. 查看系统版本信息
# 命令
cat /etc/redhat-release
# 结果
CentOS Linux release 7.4.1708 (Core)
3. 查看系统版本信息
# 命令
uname -r
# 结果
3.10.0-957.el7.x86_64
4. 查看系统多少位
# 命令
uname -m
# 结果
x86_64
5.查看内核的所有信息
# 命令
uname -a
用户管理
1.引言
- 现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源。
- 普通用户在所分配到的资源内进行各自的操作,相互之间不受影响。但是这些普通用户的权限是有限制的,且用户太多的话,管理就不便,从而引入root用户。
- root 用户是唯一的,且拥有系统的所有权限。root用户所在的组称为root组。“组”是具有相似权限的多个用户的集合。
2.root 权限
- Linux系统的特性就是可以满足多个用户,同时工作,因此Linux系统必须具备很好的安全性。
- 在安装RHEL7时设置的root管理员密码,这个root管理员就是所有UNIX系统中的超级用户,它拥有最高的系统所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭进程,开启/禁用硬件设备等等。
- 因此“能力越大,责任越大”,root权限必须很好的掌握,否则一个错误的命令可能会摧毁整个系统。
3.root 为什么叫 root ?
- 在Linux系统中,用户也有自己的UID身份账号且唯一
- 系统管理员 uid 为 0
- 系统用户 uid 为 1~999 : Linux安装的服务程序都会创建独有的用户负责运行。
- 普通用户 uid 从 1000 开始 : 由管理员创建
4.root用户和普通用户的相关说明
- 一般情况下,在生产环境避免直接用root用户,除非有特殊系统维护需求,使用完立刻退回普通用户
- 超级用户root切换普通用户无需密码,例如“群主”想踢谁就踢谁
- 普通用户切换root,需要输入密码
- 普通用户切换普通用户,需要输入密码
- 普通用户权限较小,只能基本查看信息
- #是超级管理员的提示符,$符号是普通用户命令提示符
5.相关文件路径
- 存放用户身份信息的文件
/etc/passwd
- 存放用户组的文件
/etc/group
- 存放用户密码的文件
/etc/shadow
6. passwd 命令 -> 修改密码
- 命令: passwd -> 修改当前用户的密码
- 注意:
- 在root用户下无需输入该用户的旧密码进行验证即可设置新的密码
- 在普通用户下需要输入旧密码进行验证才能设置新的密码
passwd
- 命令: passwd 用户名 -> 修改指定用户的密码
- 注意: 只有在 root 用户下才能执行修改指定用户的密码,且在root用户下无需输入该用户的旧密码进行即可设置新的密码
- 输入两次密码
passwd yeung
7. useradd 命令 -> 创建用户
- 命令: useradd 用户名
useradd yeung
- 注意: 创建完用户后需要立刻给该用户设置密码否则无法登陆
passwd yeung
8. su 命令 -> 切换用户
- 命令: su - 用户名
- 注意:
- su命令中间的-号很重要,意味着完全切换到新的用户,即环境变量信息也变更为新用户的信息
- 超级用户root切换普通用户无需密码,例如“群主”想踢谁就踢谁
- 普通用户切换root,需要输入密码
- 普通用户切换普通用户,需要输入密码
su - yeung
- 使用 exit 或 logout 命令退出当前用户切换回上一个用户
9. userdel 命令 -> 删除用户
- 注意: root 用户是可以把自己给删除掉的
- 命令: userdel 用户名 -> 无法删除已经登陆的用户
userdel yeung
- 命令: userdel -r 用户名 -> 删除用户,且同时删除它所对应的工作目录(即: /home/用户名),无法删除已经登陆的用户
userdel -r yeung
- 命令: userdel -f 用户名 -> 强制删除用户(即: 可以删除已经登陆的用户)
userdel -f yeung
- 命令: userdel -rf 用户名 -> 强制删除用户,且同时删除它所对应的工作目录(即: 可以删除已经登陆的用户)
userdel -rf yeung
10. 修改用户名
- 命令: usermod –n 新用户名 旧用户名
usermod –l yeung2 yeung # 将 yeung 用户名改为 yeung2 用户名
11. 修改用户所在的用户组
- 注意:
- 在修改前必须确认该用户组是否存在
- 一般情况下用户名和用户组名是一样的
grep 'root' /etc/group
- 命令: usermod –g 用户组名 用户名
usermod –g root yeung # 将 yeung 的用户组更改为 root 用户组
12. whoami 命令 -> 查看用户身份信息的命令
whoami
13. logout 命令 -> 注销当前用户(即: 登出)
- 快捷键: ctrl + d
logout
用户组
1. groupadd 命令 -> 创建用户组
- 命令: groupadd 用户组名
groupadd g_y
2. 修改用户组名
- 命令: groupmod –n 新用户组名 旧用户组名
groupmod –n g_y2 g_y
3. groupdel 命令 -> 删除用户组
- 命令: groupdel 用户组名
groupdel g_y
sudo 命令
1.sudo命令的介绍
- sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
2.sudo 的使用场景
- 当我们以普通用户的身份执行以下命令的时候,就会提示你没有权限执行该命令,此时我们可以使用sudo命令,以 root 身份去执行命令
[yeung@kevin_linux ~]$ ls /root

3.sudo 的参数
- -b : 在后台执行指令
- -h : 显示帮助
- -H : 将HOME环境变量设为新身份的HOME环境变量
- -k : 结束密码的有效期限,也就是下次再执行sudo时便需要输入密码
- -l : 列出目前用户可执行与无法执行的指令
- -p : 改变询问密码的提示符号
- -s<shell> : 执行指定的shell
- -u<用户> : 以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份
- -v : 延长密码有效期限5分钟
- -V : 显示版本信息
4.sudoers文件的配置
- 打开 sudoers 文件
vim /etc/sudoers
- 配置可执行sudo命令的用户
……
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
yeung ALL=(ALL) ALL # 允许yeung在任何地方,执行任何命令
……
5.sudo 的使用
- 命令: sudo 参数 命令
- 注意: 在执行sudo命令的时候需要输入当前用户的密码
sudo ls /root # 以 root 身份执行 ls /root
6.sudo 的错误提示
- 注意: 当遇到以下错误的时候就表示没有将当前用户配置到sudoers文件里(即: 没有完成第四步sudoers文件的配置)

文件和文件夹权限
1.权限的介绍
- Linux 权限的目的是(保护账户的资料)
- 在Linux中,每个文件或文件夹都有所属的所有者,和所有组,并且规定了文件或文件夹的所有者或所有组以及其他人对文件的,可读,可写,可执行等权限
- 对于文件夹的权限来说,可读是读取文件夹中的内容列表,可写是表示在文件夹内新增,修改,删除文件。可执行表示可以进入该文件夹
2.Linux 权限主要依据三种身份来决定
- user/owner : 文件所有人(即: 文件属于哪个用户)
- group : 属组(即: 文件属于哪个组)
- others : 即当前用户不是该文件或文件夹的使用者(user/owner),也不是属于该文件的属组(group),那么该用户的身份就是 others
3.查看用户身份权限
- 命令: id-> 查看当前用户的身份权限
id
- 命令: id 用户名 -> 查看指定用户的身份权限
id root

4.查看文件或文件夹权限
- 命令: ls -l 路径 -> 该路径指的是你要查询的文件或文件夹的父级目录
ls -l /tmp

5.权限的解读
- 通过 ls -l 命令我们可以查看该文件或文件夹的权限
- 在权限那一项中,第一个字符代表文件类型,后面的9个字符,按照每3个字符为一组,分别得到3组身份权限,且该3组身份权限分别依次对应着 user group others

- 文件类型的说明
文件类型字符 | 说明 |
- | 一般文件 |
d | 文件夹 |
l | 软连接(快捷方式) |
b | 块设备,存储媒体文件为主 |
c | 代表键盘,鼠标等设备 |
- 文件权限字母的说明
文件权限字符 | 说明 |
r | read 可读,可以用cat等命令查看 |
w | write 写入,可以编辑或者删除这个文件 |
x | executable 可以执行 |
- | 没有权限,也可以理解为是一个占位符 |
- 文件夹权限字母的说明
文件夹权限字符 | 说明 |
r | 可以对此文件夹执行ls列出所有文件 |
w | 可以在这个文件夹里创建文件 |
x | 可以cd进入这个文件夹,或者查看详细信息 |
- | 没有权限,也可以理解为是一个占位符 |
6.修改文件或文件夹权限的命令
- 命令: chmod [身份+-=权限字符] [文件或文件夹]
- 身份: u(user) g(group) o(others) a(all)
- 符号: +(添加权限) -(删除全向) =(赋值)
- 权限字符: r(读) w(写) x(执行)
- 对user身份添加可读权限
chmod u+r test.txt
- 对group身份删除可写权限
chmod g-w test.txt
- 对other身份删除可读可写权限
chmod o-rw test.txt
- 对user身份添加可读可写可执行权限
chmod u+rwx test.txt
7.使用权限所对应的数字修改文件或文件夹权限
- 权限字符与数字的转化
权限分配 | user(文件所有人) | group(文件所属组) | others(其他用户) | ||||||
权限项 | 读 | 写 | 执行 | 读 | 写 | 执行 | 读 | 写 | 执行 |
字符表示 | r | w | x | r | w | x | r | w | x |
数字表示 | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
- 数字权限的说明
- 我们已知三种身份权限(user(文件所有人),group(文件所属组),others(其他用户)),每种身份都有rwx的三种权限,系统还提供了数字计算权限
- 每种身份最低是 0 分,最高是 r+w+x=7 即 4+2+1=7
- 因此三种身份,最高权限是777,最低是000
- 注意: 一个数字代表着一个身份的所有权限
-rw-rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt
因此可知 pyyu.txt 的权限是:
user(文件所有人)是 6 -> rw = 4 + 2
group(文件所属组)是 6 -> rw = 4 + 2
others(其他用户)是 4 -> r = 4
- 修改user身份权限为可读可写,修改group身份权限为可读可执行,修改other身份权限为可读
chmod 654 test.txt
- 修改user身份权限为可读可写可执行,修改group身份权限为可读可写,修改other身份权限为不可读不可写不可执行
chmod 760 test.txt
- 修改user身份权限为可读可写可执行,修改group身份权限为可读可写可执行,修改other身份权限为可读可写可执行
chmod 777 test.txt
- 修改user身份权限为不可读不可写不可执行,修改group身份权限为不可读不可写不可执行,修改other身份权限为不可读不可写不可执行
chmod 000 test.txt
8.修改文件或文件夹的所有人
- 注意: 在修改前必须确认该用户是否存在
grep 'yeung' /etc/passwd
- 命令: chown 用户名 文件或文件夹
chown yeung test.txt
9.修改文件或文件夹的属组
- 注意:
- 在修改前必须确认该用户组是否存在
- 一般情况下用户名和用户组名是一样的
grep 'yeung' /etc/group
- 命令: chgrp 用户组名 文件或文件夹
chgrp yeung test.txt
软连接
1.软连接的介绍
- 软连接也叫做符号链接,类似于windows的快捷方式
- 常用于安装软件的快捷方式配置,如python,nginx等
- 注意: 删除软连接不会影响到源文件,但是删除了源文件那么软连接就没有意义存在了
2.软连接的使用
- 创建软连接
- 命令: ln -s 目标文件路径 -> 在当前目录下创建软连接,如果不指定软连接名,那么默认使用目标文件名作为软连接名
ln -s /tmp/test.txt
- 命令: ln -s 目标文件路径 软连接名 -> 在当前目录下创建软连接
ln -s /tmp/test.txt test_2
- 命令: ln -s 目标文件路径 路径 -> 在指定目录下创建软连接,如果不指定软连接名,那么默认使用目标文件名作为软连接名
- 注意: 这里的 movie/DC 是已存在的文件夹
ln -s /tmp/test.txt movie/DC/
- 命令: ln -s 目标文件路径 路径/软连接名 -> 在指定目录下创建软连接
- 注意: 这里的movie/DC 是已存在的文件夹
ln -s /tmp/test.txt movie/DC/test_2
- 查看软连接
ls -l

- 使用软连接
cat test_2

PS1 变量
1.PS1变量的介绍
- Linux命令提示符是由PS1环境变量控制
2.查看 PS1 环境变量
# 命令
echo $PS1
# 结果
[\u@\h \W]\$

3.PS1 变量参数
\d | 日期 |
\H | 完整主机名 |
\h | 主机名第一个名字 |
\t | 时间24小时制HHMMSS |
\T | 时间12小时制 |
\A | 时间24小时制HHMM |
\u | 当前用户账号名 |
\v | BASH的版本 |
\w | 完整工作目录 |
\W | 工作目录的最后一位 |
\# | 下达的第几个命令 |
\$ | 提示字符,root为#,普通用户为$ |
4.修改 PS1 变量
- 直接修改普通修改 PS1 变量,当退出登录后该修改就会失效(即: 变回默认值),因为 Linux 变量配置一次,退出登录后就会失效
PS1='[\u@\h \w \t]\$ '
- 将需要修改的PS1变量配置到全局变量配置文件中,使得该变量永久生效
- 原理: 因为当每一次登录 Linux 的时候都会执行一边全局环境变量文件,那么你所修改的 PS1 变量就会重新写入Linux中
- 进入全局环境变量文件
vim /etc/profile
- 在全局环境变量文件的底部写入PS1变量
PS1='[\u@\h \w \t]\$ '
- 重新执行全局环境变量文件,使其修改的内容生效
source /etc/profile
tar 解压命令
1.tar 命令的介绍
- tar 命令用来压缩和解压文件。tar本身不具有压缩功能,只有打包功能。但是它的压缩功能是调用gzip命令实现
2.gzip 命令的介绍
- tar 与 gzip 命令结合可以使用实现文件的打包和压缩
- tar 只负责打包文件,但不进行压缩
- 用 gzip 压缩通过 tar 打包后的文件,其扩展名一般用 *.tar.gz
- 在 Linux 中,最常见的压缩文件格式就是 *.tar.gz
- 在 tar 命令中有一个参数 -z 可以调用 gzip 命令,从而可以方便的实现压缩和解压缩的功能
3.常见的 Linux 文件压缩后缀名
后缀名 | 命令 | 说明 |
*.Z | compress | 程序压缩的文件 |
*.zip | zip | 程序压缩的文件 |
*.gz | gzip | 程序压缩的文件 |
*.bz2 | bzip2 | 程序压缩的文件 |
*.xz | xz | 程序压缩的文件 |
*.tar | tar | 程序打包的文件,并没有压缩过 |
*.tar.gz | tar | 程序打包的文件,并且经过 gzip 进行了压缩 |
*.tar.bz2 | tar | 程序打包的文件,并且经过 bzip2 进行了压缩 |
*.tar.xz | tar | 程序打包的文件,并且经过 xz 进行了压缩 |
4.tar 命令常用的参数
参数 | 说明 |
-c | 打包文件,和 -z 搭配使用才有压缩文件的功能 |
-x | 解压文件,如果后缀名是 .tar.gz,最好和 -z 搭配使用进行文件的解压, 因为在旧版的tar命令中一定要加 -z 进行解压,否者解压 .tar.gz 就会报错, 但是在新版的 tar 命令会自动识别压缩包类型进行解压 |
-f | 指定压缩文件的路径 |
-C | 解压或解压缩到指定的目录下 |
-z | 调用gzip命令进行压缩和解压缩 |
-j | 调用bzip2命令进行压缩和解压缩 |
-v | 显示命令的执行过程 |
5.解压文件
- 下载一个压缩包进行测试
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
- 注意:
- 在新版tar命令中可以直接进行解压无需注意压缩包类型,因为 tar 已经自动进行识别解压
- 在旧版tar命令中要注意压缩包类型,根据压缩包的类型,添加不同的参数进行解压
- 如: 压缩包后缀是 .gz,那么在解压的时候就要加上 -z 参数进行解压
- 如: 压缩包后缀是 .bz2,那么在解压的时候就要加上 -j 参数进行解压
- 命令: tar -xf 压缩包的路径 -> 将文件解压到当前目录
tar -xf nginx-1.12.0.tar.gz
- 命令: tar -xf 路径/压缩包 -> 将指定压缩包解压到当前目录下
tar -xf /opt/nginx-1.12.0.tar.gz
- 命令: tar -xf 压缩包的路径 -C 目标路径 -> 将文件解压到指定路径下
tar -xf nginx-1.12.0.tar.gz -C /root/movie
- 命令: tar -xf 路径/压缩包 -C 目标路径 -> 将指定压缩包解压到指定路径下
tar -xf /opt/nginx-1.12.0.tar.gz -C /root/movie
- 命令: tar -zxf 压缩包的路径 ->让 tar 命令调用 gzip 命令解压文件
tar -zxf nginx-1.12.0.tar.gz
- 命令: xz -d 压缩包路径 -> 解压后缀名为 xz 的压缩包
# 将 Python-3.6.7.tar.xz 压缩包解压成 Python-3.6.7.tar
xz -d Python-3.6.7.tar.xz
# 将 Python-3.6.7.tar 压缩包解压成 Python-3.6.7
tar -xf Python-3.6.7.tar
- 命令: uuzip 压缩包路径 -> 解压后缀名为 zip 的压缩包
unzip crm_project.zip
6.压缩文件
- 注意: 压缩文件的时候要使用 -z 参数进行压缩,因为 -z 参数是让 tar 命令调用 gzip 命令进行文件压缩的
- 命令: tar -zcf 压缩包名称.tar.gz 需要压缩的文件或文件夹名称 -> 将当前目录下的文件或文件夹打包并压缩到当前目录下
tar -zcf t_file.tar.gz test.txt
- 命令: tar -zcf 压缩包名称.tar.gz 路径/需要压缩的文件或文件夹名称 -> 将指定路径下的文件或文件夹打包并压缩到当前目录下
- 注意: 指定需要需要压缩的文件或文件夹路径必须是相对路径否则会报错
tar -zcf abc_file.tar.gz a_file/abc.txt
- 命令: tar -zcf 路径/压缩包名称.tar.gz 需要压缩的文件或文件夹名称 -> 将当前目录下的文件或文件夹打包并压缩到指定目录下
tar -zcf /root/movie/t_file.tar.gz test.txt
- 命令: tar -zcf 路径/压缩包名称.tar.gz 路径/需要压缩的文件或文件夹名称 -> 将指定路径下的文件或文件夹打包并压缩到指定目录下
- 注意: 指定需要需要压缩的文件或文件夹路径必须是相对路径否则会报错
tar -zcf /root/movie/abc_file.tar.gz a_file/abc.txt
7.打包文件
- 打包文件和压缩文件的用法是一样的,只不过打包文件没有压缩功能
- 注意: 打包文件无需使用 -z 参数,因为 -z 参数是让 tar 命令调用 gzip 命令进行文件压缩的
- 命令: tar -cf 路径/压缩包名称.tar 需要压缩的文件或文件夹名称 -> 将当前目录下的文件或文件夹打包到指定目录下
tar -cf /root/movie/t_file.tar test.txt
8.例子
- 压缩当前目录所有 jpg 结尾的文件
tar -zcf all_pic.tar.gz *.jpg
- 解压缩 bz2 结尾的压缩文件
tar -xjf xx.tar.bz2
gzip 解压命令
gzip 命令的使用量没有 tar 命令多,即: 只做了解即可
1.gzip 命令的介绍
- gzip用来压缩文件,是个使用广泛的压缩程序,被压缩的以".gz"扩展名
- gzip可以压缩较大的文件,以60%~70%压缩率来节省磁盘空间
- 使用 gzip 压缩文件后会删除掉源文件
- 使用 gzip 解压文件后会删除掉压缩文件
2.gzip 命令参数
参数 | 说明 |
-d | 解开压缩文件 |
-f | 强行压缩文件 |
-h | 在线帮助 |
-l | 列出压缩文件的相关信息 |
-L | 显示版本与版权信息 |
-r | 递归处理,将指定目录下的所有文件及子目录一并处理 (即: 压缩或解压缩有内容的文件夹需要使用该参数) |
-v | 显示指令执行过程 |
3.gzip 命令的使用
- 命令: gzip 文件名或文件夹名 -> 将文件压缩到当前目录下并且删除源文件
gzip test.txt
- 命令: gzip -d 文件名或文件夹名 -> 将压缩文件解压到当前目录下并且压缩文件
gzip -d test.txt
- 显示当前目录下所有压缩文件的信息
gzip -l *
- 使用 tar 命令打包一个文件,然后使用 gzip 命令对打包文件进行压缩,最后得到一个 .tar.gz 的压缩文件
# 命令一
tar -cf test_file.tar test.txt
# 命令二
gzip test_file.tar
- 等同于
tar -zcf test_file.tar.gz test.txt
netstat 查看端口命令
1.netstat 命令的介绍
- netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况(即: 查看端口)
2.netstat 命令的参数
参数 | 说明 |
-t | 显示TCP传输协议的连线状况 |
-u | 显示UDP传输协议的连线状况 |
-n | 直接使用ip地址,而不通过域名服务器 |
-l | 显示监控中的服务器的Socket |
-p | 显示正在使用Socket的程序识别码和程序名称 |
-a | 显示所有连线中的Socket |
3.netstat 命令的使用
# 命令
netstat -tunlp
# 结果
[root@oldboy_python ~ 10:21:59]#netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 814/sshd
tcp6 0 0 :::111 :::* LISTEN 2703/rpcbind
tcp6 0 0 :::3306 :::* LISTEN 29269/mysqld
udp 0 0 0.0.0.0:758 0.0.0.0:* 2703/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 2703/rpcbind
udp 0 0 10.141.32.137:123 0.0.0.0:* 484/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 484/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 484/ntpd
udp6 0 0 :::758 :::* 2703/rpcbind
udp6 0 0 :::111 :::* 2703/rpcbind
udp6 0 0 :::123 :::* 484/ntpd
ps 查看进程命令
1. ps 命令的介绍
- ps 命令用于查看系统中的进程状态
2. ps 命令的参数
参数 | 说明 |
-a | 显示所有终端机下执行的进程,除了阶段作业领导者之外 |
-A | 显示所有进程,但不显示环境变量 |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
-e | 显示所有进程,但显示环境变量 |
-f | 显示 UID, PPIP, C 与 STIME 栏位 |
3. ps 命令的使用
- ps -ef 和 ps aux 两者的输出结果差别不大,但展示风格不同
ps -ef # 常用
ps -aux
- 查看指定软件的进程
ps -ef | grep python # 查看python的进程
结束进程
注意: kill 和 killall 命令要谨慎使用,因为如果使用不当会影响你服务的运转
1. kill 命令
- kill 命令的参数
参数 | 说明 |
-a | 当处理当前进程时,不限制命令名和进程号的对应关系 |
-l <信号名称> | 查看指定信号的编号,如果不指定信号默认展示全部的信号名称+编号 |
-p | 指定 kill 命令只打印相关进程的进程号,而不发送任何信号 |
-s <信号名称或编号> | 指定要发送的信息 |
-u | 结束指定用户的所有进程 |
- 常用的信号
信号名称 | 信号编号 | 说明 |
HUP | 1 | 终端断线 |
INT | 2 | 中断(同 Ctrl + C) |
QUIT | 3 | 退出(同 Ctrl + \) |
TERM | 15 | 终止 |
KILL | 9 | 强制终止 |
CONT | 18 | 继续(与STOP相反, fg/bg命令) |
STOP | 19 | 暂停(同 Ctrl + Z) |
- 命令: kill 进程PID -> 结束指定进程
kill 3124
- 命令: kill -信号名称或编号 进程PID -> 强制结束进程
kill -9 3124
kill -KILL 3124
- 命令: kill -u 用户名 -> 结束指定用户的所有进程
kill -u tank
- 命令: kill -l -> 查看所有信号名称+编号
kill -l
- 命令: kill -l 信号名称 -> 查看指定信号的编号
kill -l KILL
kill -l SIGKILL
2. killall 命令
- 通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果逐个去结束这 些进程会比较麻烦,此时可以使用 killall 命令来批量结束某个服务程序带有的全部进程
- 通俗理解: 结束与指定软件相关的所有进程
- 命令: killall 软件名
killall nginx # nginx 启动后会有2个进程,那么就会结束掉这两个进程
3. pkill 命令
- 结束与指定软件相关的所有进程
- pkill 和 killall 的作用是一样的
- 命令: pkill 软件名
pkill nginx # nginx 启动后会有2个进程,那么就会结束掉这两个进程
中文显示设置(防止中文乱码)
1. 引言
- 此项优化为可选项,根据个人情况选择是否调整Linux系统的字符集,字符集就是一套文字符号以及编码
2. Linux下常用字符集
- UTF-8 : 广泛支持,MYSQL也使用UTF-8,企业广泛使用
- GBK : 实际企业应用较少
3. 查看系统当前字符集
echo $LANG
4. 修改系统当前字符集
- 打开字符集配置文件
vim /etc/locale.conf
- 修改字符集
LANG=en_US.UTF-8
- 重新执行字符集配置文件,使其生效
source /etc/locale.conf
查看磁盘的使用情况(即: 查看磁盘大小)
1. df 命令的介绍
- df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息
- df 命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计
- df 命令如果不使用单位参数,默认以字节为单位显示
2. df 命令的常用参数
参数 | 说明 |
-h | 以k,M,G为单位显示磁盘大小 |
-k | 指定区块大小为1024字节 |
-T | 显示文件系统的类型 |
--help | 显示帮助 |
--version | 显示版本信息 |
3. df 命令的使用
df # 以字节为单位显示
df -h # 以k,M,G为单位显示大小
tree 命令
1. tree 命令的介绍
- 以树状图的形式显示当前目录下的内容
2. tree 命令的安装
yum install tree -y
3. tree 命令的参数
参数 | 说明 |
-a | 显示所有文件和目录 |
-A | 使用ASNI绘图字符显示树状图而非以ASCII字符组合 |
-C | 在文件和目录清单加上色彩,便于区分各种类型 |
-d | 显示目录名称而非内容 |
-D | 列出文件或目录的更改时间 |
-f | 在每个文件或目录之前,显示完整的相对路径名称 |
-F | 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号 |
-g | 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码 |
-i | 不以阶梯状列出文件或目录名称 |
-I | 不显示符合范本样式的文件或目录名称 |
-l | 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录 |
-L | 层级显示 |
-n | 不在文件和目录清单加上色彩 |
-N | 直接列出文件和目录名称,包括控制字符 |
-p | 列出权限标示 |
-P | 只显示符合范本样式的文件或目录名称 |
-q | 用"?"号取代控制字符,列出文件和目录名称 |
-s | 列出文件或目录大小 |
-t | 用文件和目录的更改时间排序 |
-u | 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码 |
-x | 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外 |
4. tree 命令的使用
- 查看当前目录下的所有内容,并且以树状图显示
tree
- 查看指定目录下的所有内容,并且以树状图显示
tree movie/DC
DNS
1. DNS 的介绍
- DNS(Domain Name System,域名解析系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串
- 通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)
- DNS的作用: 通过域名得到该域名对应的IP地址
2.DNS 解析过程
- ① 首先用户在浏览器输入一段 url,www.baidu.com
- ② 浏览器会首先在你的电脑上,寻找一个 hosts 文件(即: 本地DNS(就是将域名转化成ip地址)强制解析的文件) -> hosts 文件存放着自定义的域名和所对应的的ip地址
- ③ 如果hosts文件未指定解析记录,那么浏览器就会去电脑中的 DNS 缓存中寻找解析记录(即: local DNS 缓存,简称: LDNS)
- ⑤ 如果缓存也没有记录,那么就去指定的 DNS 服务器(即: 手动设置的 DNS 服务器,Linux 底下 /etc/reslove)中寻找解析记录

3. DNS 的配置
- DNS 域名服务器配置文件
- 域名服务器: 存储着很多以域名为key,以公网ip为value 的键值对对应关系,然后通过配置域名服务器可以找到该域名所对应的公网ip
- DNS 域名服务器配置文件的作用: 用于配置域名服务器,通过该域名服务器使其能通过域名得到该域名对应的IP地址
- 最多只能配置两个域名服务器
- 常见的域名服务器
- 8.8.8.8 -> 谷歌的域名服务器
- 223.5.5.5 -> 阿里巴巴的域名服务器
- 223.6.6.6 -> 阿里巴巴的域名服务器
- 119.29.29.29 -> 腾讯的域名服务器
- 114.114.114.114
# 命令
vim /etc/resolv.conf
# 配置文件的内容
nameserver 10.0.0.1
4. nslookup 命令
- nslookup 命令的作用: 显示域名解析的过程
- bind-utils 软件的安装
- nslookup 命令是 bind-utils 软件下的一条命令
yum install bind-utils -y
- 命令: nslookup 域名 -> 查看域名解析过程
# 命令
nslookup pythonav.cn
# 结果
Server: 10.0.0.1 # 使用你所指定的域名服务器进行域名解析
Address: 10.0.0.1#53
Non-authoritative answer:
Name: pythonav.cn # 需要解析的域名
Address: 123.206.16.61 # 解析结果: 该域名所对应的公网ip
- 命令: nslookup -> 进入输入模式查看域名解析过程
# 命令
nslookup
# 进入输入模式
> 输入域名
> 域名解析结果
> 输入域名
> 域名解析结果
> ctrl + c 退出输入模式
系统服务管理命令
- 注意: 只有通过 yum 安装的软件,默认才能使用系统服务管理命令
1. 服务相关
- 启动服务
- RHEL6 系统
service 服务名 start
- RHEL7 系统
systemctl start 服务名
- 重启服务
- RHEL6 系统
service 服务名 restart
- RHEL7 系统
systemctl restart 服务名
- 停止服务
- RHEL6 系统
service 服务名 stop
- RHEL7 系统
systemctl stop 服务名
- 重新加载配置文件(不终止服务)
- RHEL6 系统
service 服务名 reload
- RHEL7 系统
systemctl reload 服务名
- 查看服务状态
- RHEL6 系统
service 服务名 status
- RHEL7 系统
systemctl status 服务名
2. 设置开机启动相关
- 开机自动启动指定服务
- RHEL6 系统
chkconfig 服务名 on
- RHEL7 系统
systemctl enable 服务名
- 开机不自动启动指定服务
- RHEL6 系统
chkconfig 服务名 off
- RHEL7 系统
systemctl disable 服务名
- 查看指定服务是否开机自启动
enabled # 代表已开启
disabled # 代表已关闭
- RHEL6 系统
chkconfig 服务名
- RHEL7 系统
systemctl is-enabled 服务名
Linux 服务器 和 window 互传文件工具
1.下载 lrzsz 命令
yum install lrzsz -y
2.指定的 Linux 的文件传到 Window 中
- 命令: sz 文件名 -> 将指定的 Linux 的文件传到 Window 中
- 当输入命令后会弹出一个选择框,让你选择传到 window 下的哪一个目录下
sz test.txt


3.指定的 window 的文件传到 Linux 的当前目录下
- 当输入命令后会弹出一个选择框,让你选择将那个 window 文件传入到 Linux 的当前目录下
rz


