最有效率的方式就是使用命令来操作和管理系统,那么我们来介绍一些常用的运维命令
-
过滤文本grep
#在指定文件中查找特定字符串 [root@localhost ~] # grep root /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin #结合管道使用 [root@localhost ~] # cat /etc/passwd | grep root root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin #按正则表达式查找 [root@localhost ~] # grep -E "datadir | socket" my.cnf # -E 表示按指定的正则查找 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock
grep支持丰富的正则表达式,大家可以参考正则参数使用,这里就不一一列举了
-
文本操作awk和sed
awk和sed是Linux中强大的文本处理工具,使用简单,处理效率非常高
1 . awk命令用于文本处理,数据可以来自文件或标准输入,支持正则表达式等功能
语法:awk ‘{pattern + action}’ filename
pattern表示awk在数据中查找的内容,action指找到匹配内容时执行的一系列命令,{}用于将代码分块[root@localhost ~] # awk '{print $0}' /etc/passwd | head ## 与执行cat /etc/passwd结果相同 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin ................................ ### awk命令内容很多,我们只举几个例子 ### ## 查看file.text文件(50行)内第10行到第15行的内容(企业面试)## [root@localhost ~] # awk '{if(NR>=10 && NR<15) print $1}' file.text 10 11 12 ## NR内置变量表示已经读出的记录数,就是行号,从1开始 13 14 15 ## 已知file.text文件内容为:请从中过滤"luck"和字符串"1234567",令输出结果为:luck:1234567 [root@localhost ~] # cat file.text i am luck,my qq is 1234567 [root@localhost ~] # awk -F '[ ,]+' '{print $3":"$7}' file.text luck:1234567 ## -F 指定分隔符,可指定一个或多个 ## '[ ,]+' 表示以空格或','分隔 ## $3":"$7 输出第三、7字段,中间以":"分隔 ######更多内容请参考https://www.cnblogs.com/ginvip/p/6352157.html######
2 .sed命令是将编辑工作自动化的编辑器,使用sed可以完成数据行增删改查并换等操作,sed命令可以打印指定的行至标准输出或重定向至文件,打印指定行使用p命令
[root@localhost ~] # sed -n 2p /etc/passwd ## 打印第2行 bin:x:1:1:bin:/bin:/sbin/nologin [root@localhost ~] # sed -n 2,5p /etc/passwd ## 打印第2~5行 bin:x:1:1:bin:/bin:/sbin/nologin ## 我之前用的方式就很繁琐,先head打印 daemon:x:2:2:daemon:/sbin:/sbin/nologin ## 前5行,然后tail打印后4行才输出2~5行 adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
-
打包或解包文件tar
tar命令用于将文件打包或解包,拓展名一般为.tar,指定特定参数可调用gzip或bzip2制作压缩包或解开压缩包,扩展名为.tar.gz或.tar.bz2#仅打包,不压缩 [root@localhost ~] # tar -cvf /tmp/etc.tar /etc ## -c 打包 #打包并使用gzip压缩 ## -v 处理过程显示相关信息 [root@localhost ~] # tar -zcvf /tmp/etc.tar.gz /etc ## -f 指定的压缩包名字,f后不能再加参数 #打包并使用bzip2压缩 ## -x 解压压缩包 [root@localhost ~] # tar -jcvf /tmp/etc.tar.bz2 /etc ## -j 压缩或解压bzip2包 #解压压缩包到当前位置 ## -z 压缩解压gizp包 [root@localhost ~] # tar -zxvf /tmp/etc.tar.gz .
-
查看系统负载uptime
uptime命令主要用于获取主机运行时间和查询Linux系统负载等信息,信息显示依次为:当前时间、系统已运行时间、当前连接用户数、过去1/5/15分钟内的平均负载,用法时分简单,直接输入uptime[root@localhost ~] # uptime 08:41:21 up 1 min, 2 users, load average: 0.70, 0.22, 0.08 ## 2 users表示用户连接数,是总连接数不是用户数
-
显示系统内存状态
free命令显示内存使用情况,包括实体内存,虚拟的交换文件,共享内存区段,系统核心使用的缓冲区[root@localhost ~] # free -m ## 以M为单位查看系统内存资源占用情况 total used free shared buff/cache available Mem: 1824 549 858 10 416 1082 Swap: 2047 0 2047 ########## free命令常用选项 ######## free -m # 以MB为单位显示内存情况 -s<间隔秒数> # 持续观察内存使用情况
-
单次任务at
at可以设置在指定时间执行一个指定任务,可在与shell断开的情况下执行,使用前确认系统开启了atd服务systemctl status atd ## 查看atd服务是否开启 # 明天17点钟,输出时间到指定文件内 [root@localhost ~] # at 17:20 tomorrow at> echo "hellooooo" >> /root/Desktop/file.txt ## 这里按ctrl+d,ctrl+d,ctrl+d at> <EOT> job 5 at Sat Oct 27 09:41:00 2018 [root@localhost ~] # atq ## 查看待执行的定时任务 6 Sat Oct 27 09:49:00 2018 a root sf [root@localhost ~] # atrm 6 ## atrm +工作号,删除已设定的任务 [root@localhost ~] # atq [root@localhost ~] # [root@localhost ~] # at -c 6 ## 显示定时任务的内容,会显示大量信息,但内容在最下面