文章目录
- 1. yum (Centos 7 包管理工具)常见用法
- 2. dnf (centos8包管理工具)常见用法
- 3. sed 常见用法
- 4. find 常见用法
- 5. grep 常见用法
- 6. 时间和时区设置
- 7. Curl 和 wget 常见用法
- 8. cat 常见用法
- 99. 示例
- (1)自动获取当前的公网IP,并修改远端服务器上配置的公网IP。
1. yum (Centos 7 包管理工具)常见用法
$ yum list //显示已经安装的和可以安装的包
$ yum list nano //显示 nano 这个包的信息
$ yum deplist nano //查看 nano 包的依赖
$ yum search nano //查找含有 nano 字符的包
$ yum install nano //按照 nano 包
$ yum install nano -y //跳过确认步骤进行安装
$ rpm -qa |grep samba //显示所有安装的包,然后过滤只含有 samba 字符的包
$ rpm -ql samba-client //查看 samba-client 这个包生成了哪些文件
$ yum remove nano //自动移除 nano 包
$ yum clan all //清除所有缓存
$ yum makecache //生成缓存
2. dnf (centos8包管理工具)常见用法
$ dnf repolist //查看可用的 dnf 软件库
$ dnf repolist all //查看可用和不可用的所有软件库
$ dnf list //列出软件库的可用软件包以及已经安装的软件
$ dnf list installed
$ dnf list available
$ dnf search nano
$ dnf provides /bin/bash //查看那个软件提供了 /bin/bash 这个文件
$ dnf info nano //查看软件包信息
$ dnf install nano
$ dnf reinstall nano
$ dnf update nano
$ dnf downgrade nano //回滚到特定版本
$ dnf check-update //检查所有已安装软件的更新
$ dnf update
$ dnf upgrade
$ dnf autoremove //删除孤立的软件包
$ dnf clean all
$ dnf help clean
$ dnf history
$ dnf grouplist //查看软件包组
$ dnf groupinstall 'Educational Software'
$ dnf groupupdate 'Educational Software'
$ dnf groupremove 'Educational Software'
$ dnf -enablerepo=epel install phpmyadmin //从特定的软件库安装指定软件
$ dnf distro-sync //更新软件到最新的稳定发行版本
3. sed 常见用法
$ sed -i “/datadir=/ a text_test” filename //搜索含有datadir=的行下面插入 text_test
$ sed -i “/datadir=/ i text_test” filename //搜索含有datadir=的行上面插入 text_test
$ sed -i “/datadir=/ i text_test \ntest2” filename //搜索含有datadir=的行上面插入两行 text_test和test2
$ sed -i “s/datadir=/text_test/g” filename //(g)全局(s)替换datadir=为text_test
$ sed -i “/datadir=/ c text_test” filename //含有datadir=的整行替换为 text_test
$ sed -i s/^ldap_host.*$/text_test/ filename //ldap_host 开头的整行替换为 text_test
$ sed -i ” 66 a hello” filename //66行后插入hello
$ sed -i "/^SELINUX/s/enforcing/disabled/" /etc/selinux/config // 替换指定行的指定字符
$ sed -i.bak s/test/TEST/g test.txt //替换之前先把 test.txt 复制为 test.txt.bak,然后再搜索替换
$ sed -n '/07\/May\/2021:21:21:*/,/07\/May\/2021:21:22:*/p' access.log-20210508 //查询某个时间段的日志
$ sed -n '/07\/May\/2021:21:21:*/,/07\/May\/2021:21:22:*/p' access.log-20210508 > access.log //导出某个时间段的日志
$ sed -i '3~2d' test.txt // 从第3行开始,每隔一行删除,即删除 3,5,7... 行
$ sed -i '4,8d' test.txt // 删除4-8 行
$ sed -i '$d' test.txt // 删除最后一行
$ sed -i '/^$/d' test.txt // 删除所有空白行
$ sed -i '/test/,$d' test.txt // 删除从匹配行到最后一行
$ sed -i '/test/,+2d' test.txt // 删除匹配行和之后的两行
注意:
- -i参数,会直接修改原文件,操作需谨慎。可以先把 -i参数去掉执行,看一下效果。
- sed -n 查询日志时,需要注意,日志的日期必须都存在
4. find 常见用法
$ find /dir -name *.tar.gz$ | xargs rm -rf //查找 dir 目录下的 tar.gz 文件,并删除
$ find ./ -name '*.tar.gz' -type f -print -exec rm -rf {} \;
$ find -type d | grep .svn$ | xargs rm -rf //查找当前目录下的 .svn 结尾的目录,并删除
$ for i in `find /var/lib/docker -type f -name *.log -size +1G`; do ls -al $i;done //查找目录下 .log结尾,类型是文件,大小超过1G的文件,然后清空里面的内容
5. grep 常见用法
$ grep -C 5 test file //显示file文件里匹配test字符串那行以及上下5行
$ grep -B 5 test file //显示test行以及前5行
$ grep -A 5 test file //显示test行以及后5行
$ docker inspect web2 | grep -i aliases //过滤输出信息,忽略字符大小写
6. 时间和时区设置
$ timedatectl status //显示使用的时区,以及系统时间各方面的信息
Local time: Fri 2021-01-29 18:00:59 CST
Universal time: Fri 2021-01-29 10:00:59 UTC
RTC time: Fri 2021-01-29 10:00:59
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
$ timedatectl list-timezones |grep Asia //显示亚洲可用的时区
...
Asia/Shanghai
...
$ timedatectl set-timezone Asia/Shanghai //设置为上海时区
$ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime //也可通过此方式直接修改时区(第二种方法)
7. Curl 和 wget 常见用法
$ wget url -P <Path> -O fileName
$ curl -L url -o <filePath>
8. cat 常见用法
$ cat <<EOF | kubectl apply -f -
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: mygateway
...
EOF
$ kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: httpbin-gateway
...
EOF
99. 示例
(1)自动获取当前的公网IP,并修改远端服务器上配置的公网IP。
$ IP=`curl v4.ident.me` && ssh 192.168.20.151 "grep -q $IP /root/test.txt && echo cunzai || sed -i s/^ldap_host.*$/ldap_host=$IP/ /root/test.txt"