[内容] Linux 进程状态介绍

内容一:Linux 的第一进程状态

(1)R 处于运行状态或者等待运行状态
(2)S 处于休眠状态
(3)T 处于停止状态或者处于被追踪的状态
(4)Z 处于僵尸进程的状态
(5)W 处于进入内存交换的状态
(6)X 处于被杀死进程的状态
(7)D 处于不可中断的休眠状态

(注意:D 状态通常由存储进程中断导致,无法被 kill 命令杀死,但可以通过重启系统清除)

内容二:Linux 的第二进程状态

(1)< 代表此进程具有高优先级
(2)N 代表此进程具有低优先级
(3)L 代表此进程有些部分被所进了内存
(4)s 代表此进程包含子进程
(5)+ 代表此进程处于后台的状态
(6)l 代表此进程是被克隆出来的多线程

内容三:Linux 显示进程状态的命令

# ps -aux

[命令] CentOS Linux & RHEL 命令 yum-config-manager (管理软件源)

案例一:添加某个软件源

# yum-config-manager --add-repo=http://192.168.101.254/CentOS7/
已加载插件:fastestmirror
adding repo from: http://192.168.101.254/CentOS7/

[192.168.101.254_CentOS7_]
name=added from: http://192.168.101.254/CentOS7/
baseurl=http://192.168.101.254/CentOS7/
enabled=1

(补充:这里以添加 http://192.168.101.254/CentOS7/ 为例)

案例二:禁用某个软件源

# yum-config-manager --disable 192.168.101.254_CentOS7_

(补充:这里以禁用 192.168.101.254_CentOS7_ 为例)

案例三:启用某个软件源

# yum-config-manager --enable 192.168.101.254_CentOS7_

(补充:这里以启用 192.168.101.254_CentOS7_ 为例)

[命令] Linux 命令 rpm (Red Hat Package Manager) (管理软件)

内容目录:

案例一:安装软件
1.1 安装软件
1.2 安装软件并显示详细信息
1.3 重复安装软件
1.4 忽略依赖问题安装软件
1.5 强制安装软件 (不建议)

案例二:删除软件
2.1 删除软件
2.2 删除软件并显示详细信息

案例三:升级软件
3.1 升级软件
3.2 升级软件并显示详细信息
3.3 忽略依赖问题升级软件
3.4 强制升级软件 (不建议)

案例四:显示软件
4.1 显示所有已安装的软件
4.2 显示所有已安装的软件的安装时间
4.3 显示所有已安装的软件属于哪一个系统版本
4.4 显示软件的文件信息
4.5 显示软件的全部信息 (包括安装时间、大小等等)
4.6 显示软件的所有文件
4.6.1 显示软件的所有文件
4.6.2 显示软件的所有文件和这些文件的详细信息
4.7 显示软件所有文件的状态
4.7.1 显示软件所有文件的状态
4.7.2 显示软件所有文件的状态和这些文件的详细信息
4.8 显示软件的配置文件
4.8.1 显示软件的配置文件
4.8.2 显示软件的配置文件和这些文件的详细信息
4.9 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)
4.9.1 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)
4.9.2 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)
4.10 显示软件的变更历史
4.10.1 显示软件的变更历史
4.10.2 显示软件某项信息的变更历史
4.10.3 显示软件现在的版本是否修复 CVE 漏洞
4.11 显示文件所属软件

案例五:验证软件
5.1 验证软件
5.2 验证包含的文件的软件是否正确
5.3 验证所有已经安装的软件
5.4 通过 RPM 文件验证软件

案例六:测试软件
6.1 测试安装软件
6.2 测试删除软件

案例七:确认软件现在的版本是否修复 CVE 漏洞

具体的内容:

案例一:安装软件
1.1 安装软件

# rpm -i proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

1.2 安装软件并显示详细信息

# rpm -ivh proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

1.3 重复安装软件

# rpm -ivh --replacepkgs proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例
2) 重复安装软件时,没有 –replacepkgs 参数则会安装失败

1.4 忽略依赖问题安装软件

# rpm -ivh --nodeps proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例
2) 忽略依赖问题安装软件时,如果有依赖问题的话,没有 –nodeps 参数则会安装失败

1.5 强制安装软件 (不建议)

# rpm -ivh --force proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

案例二:删除软件
2.1 删除软件

# rpm -e proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以删除 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

2.2 删除软件并显示详细信息

# rpm -evh proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以删除 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

案例三:升级软件
3.1 升级软件

# rpm -U proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

3.2 升级软件并显示详细信息

# rpm -Uvh proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

3.3 忽略依赖问题升级软件

# rpm -Uvh --nodeps proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例
2) 忽略依赖问题升级软件时,如果有依赖问题的话,没有 –nodeps 参数则会安装失败

3.4 强制升级软件 (不建议)

# rpm -Uvh --force proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以升级 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

案例四:显示软件
4.1 显示所有已安装的软件

# rpm -qa

4.2 显示所有已安装的软件的安装时间

# rpm -qa --last

4.3 显示所有已安装的软件所属的系统版本

# rpm -qa --queryformat "%{DISTRIBUTION}\n" | sort | uniq

4.4 显示软件的文件信息

# rpm -qp log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.5 显示软件的全部信息 (包括安装时间、大小等等)

# rpm -qi log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.6 显示软件的所有文件
4.6.1 显示软件的所有文件

# rpm -ql log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.6.2 显示软件的所有文件和这些文件的详细信息

# rpm -qlv log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.7 显示软件所有文件的状态
4.7.1 显示软件所有文件的状态

# rpm -qs log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件所有文件的状态为例)

4.7.2 显示软件所有文件的状态和这些文件的详细信息

# rpm -qsv log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件所有文件的状态为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.8 显示软件的配置文件
4.8.1 显示软件的配置文件

# rpm -qc log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例)

4.8.2 显示软件的配置文件和这些文件的详细信息

# rpm -qcv log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的信息为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.9 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)
4.9.1 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)

# rpm -qd log4j-1.2.17-18.el7_4.noarch

(补充:这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的文档为例)

4.9.2 显示软件的文档文件 (man 手册、info 手册、READMEs 等等)

# rpm -qdv log4j-1.2.17-18.el7_4.noarch


补充:
1) 这里以显示 log4j-1.2.17-18.el7_4.noarch 软件的文档为例
2) v 参数在这里的作用类似 ls 命令中的 -l 参数

4.10 显示软件的变更历史
4.10.1 显示软件的变更历史

# rpm -q openssh-clients --changelog

(补充:这里以显示 openssh-clients 软件的变更历史为例)

4.10.2 显示软件 CVE 信息的变更历史

# rpm -q openssh-clients --changelog | grep -i cve

(补充:这里以显示 openssh-clients 软件的 CVE 信息的变更历史为例)

4.10.3 显示软件现在的版本是否修复 CVE 漏洞

# rpm -qpi --changelog redis-6.0.14-6.8.1.x86_64.rpm |grep -E '32675'
- Fix CVE-2021-32675, Denial Of Service when processing RESP request
  (CVE-2021-32675, bsc#1191303)
  * cve-2021-32675.patch

(补充:这里以确认 redis-6.0.14-6.8.1.x86_64.rpm 软件是否已修复 CVE-2021-32675 为例)

4.11 显示文件所属软件

# rpm -qf /usr/share/java/log4j.jar

(补充:这里以显示 /usr/share/java/log4j.jar 文件属于哪个软件为例)

案例五:验证软件
5.1 验证软件

# rpm -V proxychains-ng-4.11-lp152.3.5.x86_64


补充:
1) 这里以验证 proxychains-ng-4.11-lp152.3.5.x86_64 软件为例
2) 如果什么都不显示,则代表什么都没有改变
3) 如果显示 5 则代表 MD5 校验码发生改变
4) 如果显示 S 则代表文件大小发生改变
5) 如果显示 L 则代表超链接发生改变
6) 如果显示 T 则代表文件修改日期发生改变
7) 如果显示 D 则代表设备发生改变
8) 如果显示 U 则代表所属主发生改变
9) 如果显示 G 则代表所属组发生改变
10) 如果显示 M 则代表权限和文件类型发生改变

5.2 验证包含文件的软件是否正确

# rpm -Vf /etc/proxychains


补充:
1) 这里以验证 /etc/proxychains 文件为例
2) 如果什么都不显示,则代表什么都没有改变
3) 如果显示 5 则代表 MD5 校验码发生改变
4) 如果显示 S 则代表文件大小发生改变
5) 如果显示 L 则代表超链接发生改变
6) 如果显示 T 则代表文件修改日期发生改变
7) 如果显示 D 则代表设备发生改变
8) 如果显示 U 则代表所属主发生改变
9) 如果显示 G 则代表所属组发生改变
10) 如果显示 M 则代表权限和文件类型发生改变

5.3 验证所有已经安装的软件

# rpm -Va


补充:
1) 如果什么都不显示,则代表什么都没有改变
2) 如果显示 5 则代表 MD5 校验码发生改变
3) 如果显示 S 则代表文件大小发生改变
4) 如果显示 L 则代表超链接发生改变
5) 如果显示 T 则代表文件修改日期发生改变
6) 如果显示 D 则代表设备发生改变
7) 如果显示 U 则代表所属主发生改变
8) 如果显示 G 则代表所属组发生改变
9) 如果显示 M 则代表权限和文件类型发生改变

5.4 通过 RPM 文件验证软件

# rpm -Vp proxychains-ng-4.11-lp152.3.5.x86_64.rpm


补充:
1) 这里以使用 proxychains-ng-4.11-lp152.3.5.x86_64.rpm RPM 文件进行验证为例
2) 如果什么都不显示,则代表什么都没有改变
3) 如果显示 5 则代表 MD5 校验码发生改变
4) 如果显示 S 则代表文件大小发生改变
5) 如果显示 L 则代表超链接发生改变
6) 如果显示 T 则代表文件修改日期发生改变
7) 如果显示 D 则代表设备发生改变
8) 如果显示 U 则代表所属主发生改变
9) 如果显示 G 则代表所属组发生改变
10) 如果显示 M 则代表权限和文件类型发生改变

案例六:测试软件
6.1 测试安装软件

# rpm -ivh --test proxychains-ng-4.11-lp152.3.5.x86_64.rpm

(补充:这里以测试安装 proxychains-ng-4.11-lp152.3.5.x86_64.rpm 软件为例)

6.2 测试删除软件

# rpm -e --test proxychains-ng-4.11-lp152.3.5.x86_64


补充:
1) 这里以测试删除 proxychains-ng-4.11-lp152.3.5.x86_64 软件为例
2) 这里会显示 proxychains-ng-4.11-lp152.3.5.x86_64 软件被哪些软件依赖

[命令] Linux 命令 rsync (差异同步)

案例一:将一个地方里的所有差异数据同步到另一个地方

# rsync -avDogp <source directory>/* <target directory>

案例二:将一个地方里的所有差异数据同步到另一个地方,并且被同步的地方有的数据而原地方没有的数据都将被删除

# rsync -avDogp --delete <source directory>/* <target directory>