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

具体的内容:

内容一: 帮助文档相关
1.1 显示 yum 帮助信息
1.2 显示 yum 子选项的帮助信息

内容二:软件相关
2.1 安装软件
2.1.1 交互式
2.1.2 非交互式
2.2 删除软件
2.2.1 交互式
2.2.2 非交互式
2.3 升级软件
2.3.1 升级软件
2.3.1.1 交互式
2.3.1.2 非交互式
2.3.2 升级所有软件
2.3.2.1 升级所有软件
2.3.2.1.1 交互式
2.3.2.1.2 非交互式
2.3.2.2 升级除某软件外的所有软件
2.3.2.2.1 交互式
2.3.2.2.2 非交互式
2.3.2.3 显示所有可以升级的软件
2.4 显示软件
2.4.1 显示软件
2.4.1.1 显示软件
2.4.1.2 显示软件详细信息
2.4.2 显示所有软件

内容三:软件组相关
3.1 安装软件组
3.1.1 交互式
3.1.2 非交互式
3.2 删除软件组
3.2.1 交互式
3.2.2 非交互式
3.3 显示所有可用软件组

内容四:安全相关
4.1 Errata
4.1.1 Errata
4.1.1.1 安装 Errata
4.1.1.1.1 交互式
4.1.1.1.2 非交互式
4.1.1.2 显示 Errata 的详细信息
4.1.2 所有 Errata
4.1.2.1 安装所有 Errata
4.1.2.1.1 交互式
4.1.2.1.2 非交互式
4.1.2.2 显示所有 Errata 和相关软件版本
4.1.2.3 显示所有 Errata 和相关的 CVE
4.2 CVE
4.2.1 CVE
4.2.1.1 安装 CVE
4.2.1.1.1 交互式
4.2.1.1.2 非交互式
4.2.2 所有 CVE
4.2.2.1 显示所有 CVE 和相关软件版本
4.2.2.2 显示所有 CVE 和相关的 Errata
4.2 安全补丁
4.2.1 安全补丁
4.2.1.1 安装安全补丁
4.2.1.1.1 交互式
4.2.1.1.2 非交互式
4.2.2 所有安全补丁
4.2.2.1 安装所有安全补丁
4.2.2.1.1 交互式
4.2.2.1.2 非交互式
4.2.2.2 显示所有安全补丁

内容五:软件源相关
5.1 显示所有软件源
5.2 缓存软件源列表
5.2.1 缓存所有已启用软件源列表
5.2.2 清除所有软件源列表缓存
5.2.3 保存所有软件源列表缓存

内容六:管理相关
6.1 显示 yum 历史命令
6.2 显示 yum 安装记录

内容目录:

内容一: 帮助文档相关
1.1 显示 yum 帮助信息

# yum help

1.2 显示 yum 子选项的帮助信息

# yum help <option>

或者:

# yum <option> help

内容二:软件相关
2.1 安装软件
2.1.1 交互式

# yum install <software>

2.1.2 非交互式

# yum -y install <software>

或者:

# yum install <software> -y

2.2 删除软件
2.2.1 交互式

# yum remove <software>

2.2.2 非交互式

# yum -y remove <software>

或者:

# yum remove <software> -y

2.3 升级软件
2.3.1 升级软件
2.3.1.1 交互式

# yum update <software>

2.3.1.2 非交互式

# yum -y update <software>

或者:

# yum update <software> -y

2.3.2 升级所有软件
2.3.2.1 升级所有软件
2.3.2.1.1 交互式

# yum update

2.3.2.1.2 非交互式

# yum -y update

或者:

# yum update -y

2.3.2.2 升级除某软件外的所有软件
2.3.2.2.1 交互式

# yum update --exclude=<software>

2.3.2.2.2 非交互式

# yum -y update --exclude=<software>

或者:

# yum update --exclude=<software> -y

2.3.2.3 显示所有可以升级的软件

# yum check-update

2.4 显示软件
2.4.1 显示软件
2.4.1.1 显示软件

# yum list all | grep <software>

2.4.1.2 显示软件详细信息

# yum info | grep <software>

2.4.2 显示所有软件

# yum list all

内容三:软件组相关
3.1 安装软件组
3.1.1 交互式

# yum groupinstall <group>

3.1.2 非交互式

# yum -y groupinstall <group>

或者:

# yum groupinstall <group> -y

3.2 删除软件组
3.2.1 交互式

# yum groupremove <group>

3.2.2 非交互式

# yum -y groupremove <group>

或者:

# yum groupremove <group> -y

3.3 显示所有可用软件组

# yum group list

内容四:安全相关
4.1 Errata
4.1.1 Errata
4.1.1.1 安装 Errata
4.1.1.1.1 交互式

# yum update --advisory=<errata>

4.1.1.1.2 非交互式

# yum -y update --advisory=<errata>

或者:

# yum update --advisory=<errata> -y

4.1.1.2 显示 Errata 的详细信息

# yum updateinfo <errata>

4.1.2 所有 Errata
4.1.2.1 安装所有 Errata
4.1.2.1.1 交互式

# yum update-minimal --security

4.1.2.1.2 非交互式

# yum -y update-minimal --security

或者:

# yum update-minimal --security -y

4.1.2.2 显示所有 Errata 和相关软件版本

# yum updateinfo list

4.1.2.3 显示所有 Errata 和相关的 CVE

# yum updateinfo info security

4.2 CVE
4.2.1 CVE
4.2.1.1 安装 CVE
4.2.1.1.1 交互式

# yum update --cve <CVE>

4.2.1.1.2 非交互式

# yum -y update --cve <CVE>

或者:

# yum update --cve <CVE> -y

4.2.2 所有 CVE
4.2.2.1 显示所有 CVE 和相关软件版本

# yum updateinfo list cves

4.2.2.2 显示所有 CVE 和相关的 Errata

# yum updateinfo info security

4.2 安全补丁
4.2.1 安全补丁
4.2.1.1 安装安全补丁
4.2.1.1.1 交互式

# yum update <security patch>

4.2.1.1.2 非交互式

# yum -y update <security patch>

或者:

# yum update <security patch> -y

4.2.2 所有安全补丁
4.2.2.1 安装所有安全补丁
4.2.2.1.1 交互式

# yum update --security

4.2.2.1.2 非交互式

# yum -y update --security

或者:

# yum update --security -y

4.2.2.2 显示所有安全补丁

# yum check-update --security

内容五:软件源相关
5.1 显示所有软件源

# yum repolist 

5.2 缓存软件源列表
5.2.1 缓存所有已启用软件源列表

# yum repolist 

5.2.2 清除所有软件源列表缓存

# yum clean all

5.2.3 保存所有软件源列表缓存

# yum makecache

内容六:管理相关
6.1 显示 yum 历史命令

# yum history

6.2 显示 yum 安装记录

# yum history info

[工具] Shell 批量比较服务器所有正在运行进程的变化

介绍:

作者:朱明宇
名称:批量比较服务器所有正在运行进程的变化
作用:批量比较服务器所有正在运行进程的变化

使用方法:
1. 服务器清单 $server_list 每一台服务器占用一行
2. 在此脚本的分割线内写入相应的内容,并和此脚本放在同一目录下
3. 给此脚本添加执行权限
4. 执行此脚本
5. 此脚本执行完成后,会将运行结果写入当前目录下的 $compare_file 里

脚本分割线里的变量:
server_list=server_list.txt #服务器清单
first_time=first_time #存储第一次检结果的目录
second_time=second_time #存储第二次检查结果的目录
compare_file=comparison_results.txt #存储比较结果的文件

注意:
此脚本执行前必须要先保证执行本脚本的用户能无密码 ssh 远程这些远程服务器

脚本:

#!/bin/bash

####################### Separator ########################

server_list=server_list.txt
first_time=first_time
second_time=second_time
compare_file=comparison_results.txt

####################### Separator ########################

mkdir $first_time &> /dev/null
mkdir $second_time &> /dev/null
echo > $compare_file

read -p "Please input first second or compare now: " choice

check(){
        for server_name in `cat $1`
        do
                ssh -t $server_name "ps -A" | awk '{print $4}' > $2/$server_name
        done
}

compare(){
        for server_name in `cat $1`
        do
                echo $server_name >> $4
                for process in `cat $2/$server_name`
                        do
                        grep $process $3/$server_name &> /dev/null
                        if [ $? -ne 0 ];then
                                echo $process >> $4
                        fi
                done
                echo >> $4
        done
}

if [ $choice == first ];then
        check $server_list $first_time
fi

if [ $choice == second ];then
        check $server_list $second_time
fi

if [ $choice == compare ];then
        compare $server_list $first_time $second_time $compare_file
fi

[命令] Linux 变量替换

内容目录:

案例一:当要替换的变量未定义或为空时则给予其一个默认值

案例二:当要替换的变量已定义且不为空时则给予其一个默认值

案例三:当要替换的变量已定义且不为空时则替换此变量的前一部分
3.1 当要替换的变量已定义且不为空时则替换此变量的前一部分
3.2 当要替换的变量已定义且不为空时则替换此变量的某一部分

案例四:当要替换的变量已定义且不为空时则替换此变量去除前一部分的值
4.1 去除变量左数第一个某一个符号前面的所有值
4.2 去除变量左数最后某一个符号前面的所有值
4.3 去除前面一部分值

案例五:当要替换的变量已定义且不为空时则替换此变量去除后一部分的值
5.1 去除变量右数第一个某一个符号前面的所有值
5.2 去除变量右数最后某一个符号前面的所有值
5.3 去除后面一部分值

案例六:当要替换的变量已定义且不为空时则替换此变量替换一部分后的值

具体的内容:

案例一:当要替换的变量未定义或为空时则给予其一个默认值

# value=
# newvalue=${value:-eternalcenter}
# echo $newvalue
eternalcenter
# value=mingyuzhu
# newvalue=${value:-eternalcenter}
# echo $newvalue
mingyuzhu

或者:

# value=
# newvalue=${value:=eternalcenter}
# echo $newvalue
eternalcenter
# value=mingyuzhu
# newvalue=${value:=eternalcenter}
# echo $newvalue
mingyuzhu

(补充:这里以当变量 value 存在且为空时则变量 newvalue 的值为 eternalcenter 为例)

案例二:当要替换的变量已定义且不为空时则给予其一个默认值

# value=
# newvalue=${value:+eternalcenter}
# echo $newvalue
# value=mingyuzhu
# newvalue=${value:+eternalcenter}
# echo $newvalue
eternalcenter

(补充:这里以当变量 value 存在且不为空时则变量 newvalue 的值为 eternalcenter 为例)

案例三:当要替换的变量已定义且不为空时则替换此变量的前一部分
3.1 当要替换的变量已定义且不为空时则替换此变量的前一部分

# value=mingyuzhu
# newvalue=${value:offset:4}
# echo $newvalue
ming

或者:

# value=mingyuzhu
# newvalue=${value:0:4}
# echo $newvalue
ming

(补充:这里以当变量 value 存在且不为空时则变量 newvalue 的值为变量 value 前 4 个字符为例)

3.2 当要替换的变量已定义且不为空时则替换此变量的某一部分

# value=mingyuzhu
# newvalue=${value:4:2}
# echo $newvalue
yu

(补充:这里以当变量 value 存在且不为空时则变量 newvalue 的值为变量 value 从第 4 个字符开始的 2 个字符为例)

案例四:当要替换的变量已定义且不为空时则替换此变量去除前一部分的值
4.1 去除变量左数第一个某一个符号前面的所有值

# value=ming:yu:zhu
# newvalue=${value#*:}
# echo $newvalue
yu:zhu

(补充:这里以去除变量 value 左数第一个冒号 “:” 前面的所有值并赋予给变量 newvalue 为例)

4.2 去除变量左数最后某一个符号前面的所有值

# value=ming:yu:zhu
# newvalue=${value##*:}
# echo $newvalue
zhu

(补充:这里以去除变量 value 左数最后一个冒号 “:” 前面的所有值并赋予给变量 newvalue 为例)

4.3 去除前面一部分值

# value=mingyuzhu
# novalue=ming
# newvalue=${value##$novalue}
# echo $newvalue
yuzhu

(补充:这里以去除变量 value 前面的 ming 值并赋予给变量 newvalue 为例)

案例五:当要替换的变量已定义且不为空时则替换此变量去除后一部分的值
5.1 去除变量右数第一个某一个符号前面的所有值

# value=ming:yu:zhu
# newvalue=${value%:*}
# echo $newvalue
ming:yu

(补充:这里以去除变量 value 右数第一个冒号 “:” 前面的所有值并赋予给变量 newvalue 为例)

5.2 去除变量右数最后某一个符号前面的所有值

# value=ming:yu:zhu
# newvalue=${value%%:*}
# echo $newvalue
ming

(补充:这里以去除变量 value 右数最后一个冒号 “:” 前面的所有并赋予给变量 newvalue 值为例)

5.3 去除后面一部分值

# value=mingyuzhu
# novalue=ming
# newvalue=${value%%$novalue}
# echo $newvalue
mingyu

(补充:这里以去除变量 value 后面的 zhu 值并赋予给变量 newvalue 为例)

案例六:当要替换的变量已定义且不为空时则替换此变量替换一部分后的值

# value=mingyuzhu
# noneedvalue=yu
# needvalue=zhu
# newvalue=${value/$noneedvalue/$needvalue}
# echo $newvalue
mingzhuzhu

(补充:这里以将变量 value 中的 yu 替换成 zhu 并赋予给变量 newvalue 为例)