文章目录

  • 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"