一、关机和重启、用户操作
1、poweroff
|
关闭Linux系统,关闭记录会被 写入/var/log/wtmp。 poweroff命令用来关闭计算机操作系统并且切断系统电源
|
2、shutdown +5 "System will shutdown after 5 minutes"
|
可有关闭所有程序,并依用户的需要,进行重新开机或关机的动作。
指定5分钟后关机,同时送出警告信息给登入用户。
|
3、shutdown -h now
|
立即关机
|
4、shutdown -r now “system will be reboot now”
|
系统立马将会重启,并发出警告信息
|
5、shutdown -r 01:38
|
定时在1点38分的时候重新启动计算机
|
6、halt -p
|
halt命令用来关闭正在运行的Linux操作系统。-p 是关闭系统后切段电源。
|
7、halt -d
|
关闭系统之后,不留记录。
|
8、reboot -w
|
重启命令,加-w选项是只写记录,模拟重启。
|
9、useradd zhangsan
|
创建用户zhangsan
|
10、useradd -u 510 moon
|
创建用户moon,并设置该用户UID为510
|
11、useradd -d /home/www newuser
|
创建newuser用户,并设置该用户主目录为 www、
|
12、useradd -g root pp
|
创建用户pp 并指定组群是root。
|
13、useadd -s /bin/ksh abc
|
创建用户abc,并设置该用户的Shell 类型为KSH
|
14、usermod -d /home/kkk zhangsan
mkdir /home/kkk
|
修改zhangsan 的主目录为kkk. 并手动创建kkk目录.必须使用mkdir创建kkk,要不然不生效。
|
15、username -d /home/vivo -m zhangsan
|
这个比14好很多,指定m选项,可以自动创建vivo目录。
|
16、usermod -l ztloo wangwu
|
把wangwu 的登录名为ztloo
|
17、usermod -c 张三 zhagnsan
|
修改用户zhangsan的用户名全程为张三
|
18、usermod -f 20 zhangsan
|
修改zhangsan 的用户密码在20天就禁用此账户
|
19、usermod -g root zhangsan
|
修改zhangsan所属的主要组群为root
|
20、usermod -L zhangsan
|
锁住zhangsan的用户,让登陆密码无效
|
21、usermod -U zhangsan
|
解锁zhangsan用户,让登陆密码有效。
|
22、usermod -e 12/12/2018 zhangsan
|
让zhangsan这个账户过期日期是2018年12月12日。
|
23、usermod -s /bin/ksh zhangsan
|
修改zhangsan的shell类型。
|
24、userdel lisi
|
删除用户李四
|
25、usedel -r moon
|
删除用户moon 并且一起删除此用户的主目录。
|
26、groupadd china
|
创建组群 china
|
27、groupadd -g 800 ou
|
创建组群ou 并设置GID为800
|
28、groupadd -r chinese
|
创建系统组群 chinese。
|
29、groupdel riben
|
删除群组 riben
|
30、passwd it
|
设置用户it的密码
|
31、passwd
|
设置当前用户的密码。
|
32、gpasswd -a it kk
|
把用户it添加到kk组群中。
|
33、gpasswd -d it kk
|
从kk组群中删除用户it。
|
poweroff 选项
-- halt停止机器
-p --poweroff关闭机器
-- reboot重启机器
-f --force强制立即停止/关闭电源/重启
-w --wtmp-only不要暂停/关闭/重启,只需写入wtmp记录
-d --no-wtmp不写wtmp记录
--no-wall在暂停/关机/重启之前不要发送留言信息
二、文本编辑器
centos 7 默认是vi,如果没有安装需要 yum -y install vim
1、vi /root/install.log
|
编辑install.log文件
|
2、vi +2 /root/install.log
|
从第二行开始编辑此文件
|
VI选项
用法: vim [参数] [文件 ..] 编辑指定的文件
或: vim [参数] - 从标准输入(stdin)读取文本
或: vim [参数] -t tag 编辑 tag 定义处的文件
或: vim [参数] -q [errorfile] 编辑第一个出错处的文件
-- 在这以后只有文件名
-v Vi 模式 (同 "vi")
-e Ex 模式 (同 "ex")
-E Improved Ex mode
-s 安静(批处理)模式 (只能与 "ex" 一起使用)
-d Diff 模式 (同 "vimdiff")
-y 容易模式 (同 "evim",无模式)
-R 只读模式 (同 "view")
-Z 限制模式 (同 "rvim")
-m 不可修改(写入文件)
-M 文本不可修改
-b 二进制模式
-l Lisp 模式
-C 兼容传统的 Vi: 'compatible'
-N 不完全兼容传统的 Vi: 'nocompatible'
-V[N][fname] Be verbose [level N] [log messages to fname]
-D 调试模式
-n 不使用交换文件,只使用内存
-r 列出交换文件并退出
-r (跟文件名) 恢复崩溃的会话
-L 同 -r
-A 以 Arabic 模式启动
-H 以 Hebrew 模式启动
-F 以 Farsi 模式启动
-T <terminal> 设定终端类型为 <terminal>
-u <vimrc> 使用 <vimrc> 替代任何 .vimrc
--noplugin 不加载 plugin 脚本
-P[N] 打开 N 个标签页 (默认值: 每个文件一个)
-o[N] 打开 N 个窗口 (默认值: 每个文件一个)
-O[N] 同 -o 但垂直分割
+ 启动后跳到文件末尾
+<lnum> 启动后跳到第 <lnum> 行
--cmd <command> 加载任何 vimrc 文件前执行 <command>
-c <command> 加载第一个文件后执行 <command>
-S <session> 加载第一个文件后执行文件 <session>
-s <scriptin> 从文件 <scriptin> 读入正常模式的命令
-w <scriptout> 将所有输入的命令追加到文件 <scriptout>
-W <scriptout> 将所有输入的命令写入到文件 <scriptout>
-x 编辑加密的文件
--startuptime <file> Write startup timing messages to <file>
-i <viminfo> 使用 <viminfo> 取代 .viminfo
-h 或 --help 打印帮助(本信息)并退出
--version 打印版本信息并退出
VI命令行模式操作
Ctrl+u:向文件首翻半屏;
Ctrl+d:向文件尾翻半屏;
Ctrl+f:向文件尾翻一屏;
Ctrl+b:向文件首翻一屏;
Esc:从编辑模式切换到命令模式;
ZZ:命令模式下保存当前文件所做的修改后退出vi;
:行号:光标跳转到指定行的行首;
:$:光标跳转到最后一行的行首;
x或X:删除一个字符,x删除光标后的,而X删除光标前的;
D:删除从当前光标到光标所在行尾的全部字符;
dd:删除光标行正行内容;
ndd:删除当前行及其后n-1行;
nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
/字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
a:在当前字符后添加文本;
A:在行末添加文本;
i:在当前字符前插入文本;
I:在行首插入文本;
o:在当前行后面插入一空行;
O:在当前行前面插入一空行;
:wq:在命令模式下,执行存盘退出操作;
:w:在命令模式下,执行存盘操作;
:w!:在命令模式下,执行强制存盘操作;
:q:在命令模式下,执行退出vi操作;
:q!:在命令模式下,执行强制退出vi操作;
:e文件名:在命令模式下,打开并编辑指定名称的文件;
:n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
:f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
:set number:在命令模式下,用于在最左端显示行号;
:set nonumber:在命令模式下,用于在最左端不显示行号;
三、增强版目录和文件、系统进程、网络、监控操作
1、tmpwatch -afv 3 /tmp
|
安装 yum install tmpwatch -y
删除/tmp 文件夹3天内没有被访问的文件
|
2、file /boot/*
|
查看boot目录下所有文件的文件类型
|
3、file -L /var/mail
|
显示符号链接的文件类型
|
4、file -b install.log
|
不显示文件名称
|
5、du -sh /root
|
已MB为单位显示root目录磁盘占用量
|
6、tac /root/pu
|
从最后一行开始显示pu文件内容,是cat显示的倒排序
|
7、tac -s R /root/pu
|
使用选项s,指定R为分隔符,显示pu文件。
|
8、rev /root/pu
|
把一行字符的顺序颠倒过来显示文件内容
|
9、fold -w 5 hello2
|
指定hello2文件的宽度为5
|
10、sed -n -e 9991,10010p /usr/share/dict/words | fmt -w 30
|
对字典的9991,10010行之间的内容,进行宽度为30进行格式化输出,
|
11、expand /root/install.log
|
将/root/install.log文件中的制表符转换为空格
|
12、 pr -2 -h "My report" file.txt
|
用户还可以使用pr命令将文本分列打印
|
13、uniq -d file3
|
只输出file3文件中重复的行
|
14、uniq -u file3
|
输出不重复的行
|
15、uniq -c file3
|
显示file3文件中每行连续出现的次数。
|
16、diff file1 file2 -y -W 50
|
以并排格式输出比较File 和File2的文件不同之处
|
17、diff dir1 dir2
|
比较dir1 和dir2 目录的不同。
|
18、join /root/a1 /root/a2
|
针对a1 和a2 每行具有相同内容的输入行,整合为一行写到标准输出。 |
19、diff3 /root/a /root/b /root/c
|
按行比较a,b,c三个文件。
|
20、cmp /root/a /root/b
|
按字节比较两个文件,如果文件相同,则不显示消息。如果文件不同,则显示第一个不同的位置
|
21、colrm 3 < hello2
|
colrm [起始列] [结束列] ,从文件中删除第三列到他之后的字符删除,然后输出。
|
22、paste /root/ab /root/ac
|
合并ab,和ac的每一行,例如ab 里面的第一行为 a , ac文件里面是 b. 合成一行: a b
|
23、paste -d @ /root/ab /root/ac
|
在上述合并的基础上,把合并的一行,把中间的制表符换成@: a@b
|
24、csplit hello2 60
|
对hello2 拆分成两个文件xx00、xx01 xx00里面是前60行,xx01里面是剩下的行数
|
25、csplit /root/install.log 10 100 1000
|
将install.log 文件拆分成三个文件,第一个文件包含1到9行数据,第二个文件10到99行,第三个文件100到999行数据
|
26、unexpand /root/install.log
|
将此log文件的空格字符转换成制表符。
|
27、unexpand -t 4 /root/install.log
|
已制表符宽度为4,将此log文件中的空格字符转换成制表符。
|
28、diff -ruN /root/a1 /root/a2 > /root/a.diff
patch -pl < /root/a.diff
|
yum -y install patch
比较a1 和 a2 文件夹的不同,生成差异文件/root/a.diff.利用diff文件,就以a1文件的内容更新a2文件。
|
29、whereis mysql
|
查找包含mysql的所有路径
|
30、which mysql
|
查找包含mysql可以执行的命令。
|
31、look ztloo
|
显示已ztloo开头的文件中的所有行
|
32、cal
|
显示本月的月历
|
33、cal -3
|
显示系统前一个月,当前月和下一个月的日历。
|
34、cal 2001
|
显示公元2001 年
|
35、cal 9 2008
|
显示公元2008年九月的日历
|
36、date 0202191428
|
设置计算机时间为2028年02月02日
|
37、 date -s 09:16:00
|
设置计算机时间为上午9点十六分
|
38、date -s 240414
|
设置计算机日期为2024年4月14日
|
39、 hwclock -s
|
以硬件时间(bios时间)更新系统时间,
|
40、hwclock -w
|
以系统时间更新硬件时间。
|
41、clock
|
查看硬件时钟
|
42、clockdiff 192.168.1.2
|
测试与主机192.168.1.2 之间的时间差
|
43、rdate 192.168.1.2
|
yum install rdate
通过主机 192.168.1.2 获取时间。
|
44、tar cvf testA.tar /usr/local/testA
|
把 testA目录压缩成testA.tar 到当前目录。如也可以指定到压缩到
其他目
|
45、tar cvf /usr/testA.tar /usr/local/testA
|
把 testA目录压缩成testA.tar 到usr 目录下。
|
46、tar tvf /usr/testA.tar
|
查看压缩文件里testA.tar的内容
|
47、tar xvf /usr/testA.tar
|
解压testA.tar
|
48、tar rvf /usr/testA.tar /usr/local/tr.txt
|
把tr.txt 加入到testA.tar的压缩包中。
|
49、tar uvf /usr/testA.tar /usr/local/tr.txt
|
更新tr.txt 到testA.tar的压缩包中 |
50、tar zxvf /usr/testA.tar.gz -C /root/www
|
将压缩文件解压缩到root的www目录下。
|
51、tar zcvf /usr/testA.tar.gz /usr/local/testA
|
把 testA目录压缩成testA.tar.gz 到usr 目录下。
|
52、tar ztvf /usr/testA.tar.gz
|
查看压缩文件里testA.tar.gz的内容
|
53、ps -e
|
显示所有进程
|
54、ps -aux
|
显示不带控制台终端的进程,并显示用户名和 进程的起始时间 |
55、ps -ef | grep crond
|
查看crond进程是否在运行
|
56、ps
|
显示当前系统进程
|
57、ps -u
|
在显示进程的时候显示用户名和进程的起始时间
|
58、ps -u root
|
显示root用户的进程
|
59、ps -t tty1
|
显示tty1 终端下的进程
|
60、ps -p 1779
|
显示进程号为1779的进程 ,进程号(pid)
|
61、top
|
动态显示进程信息
|
62、top -p 1779
|
只显示进程号为1779的进程
|
63、top -u root
|
只显示root用户的进程
|
64、pgrep crond
|
查看crond进程的pid(进程号)。
|
65、pgrep -lu postfix
|
查看postfix用户的进程号和进程名。
|
66、pidof sshd
|
显示sshd的进程号。
|
67、pstree -p
|
查看进程数,并显示出进程号。
|
68、kill -3 649
|
通过pidof crond 获取进程号649,然后kill -3 让这个进程正常退出
|
69、kill -9 649
|
强制杀死crond这个进程。
|
70、killall crond
|
杀死crond这个进程。
|
71、killall -9 crond
|
强制杀死crond 这个进程。
|
72、killall -u zhangsan
|
仅杀死用户zhangsan的进程。
|
73、pkill -u gdm
|
杀死gdm用户的进程。
|
74、timeout 5s find / -name a
|
在5秒后仍在运行这个进程,则杀死该进程。
|
75、wait 649
|
等待指定的进程 649
|
76、fuser /etc/passwd
|
显示使用passwd文件的本地进程号 |
77、fuser -u /etc/passwd
|
显示使用passwd文件的本地进程号和当前用户名
|
78、nice -n 1 find / -name a*&
|
将find / -name a*& 命令以优先级1运行。优先级 -20 ~19 数值越小优先级越高。默认是0
|
79、renice -n 5 -p 7436
|
将PID为7436进程的优先级设在为5.
|
80、renice 5 -u postfix
|
更改postfix 用户所有进程的优先级为5.
|
81、losf -i:3306
|
显示端口号3306的进程
|
82、losf -a -u root -i
|
查找用户root的所有网络连接
|
83、losf -c httpd
|
查找以httpd开头的进程打开的所有文件
|
84、losf -d 2
|
列出所有以描述符2打开的文件
|
85、lsof -i tcp
|
列出所有TCP连。
|
86、lsof -g 0
|
列出所有对应组群GID为0的进程
|
87、lsof -p 1
|
列出所有由PID为1对应的进程打开的文件,
|
88、lsof -u root
|
列出用户root打开的所有文件
|
89、lsof testA.txt
|
列出打开这个文件的进程。
|
90、lsof +D /usr/lib
|
递归查找lib目录中所有打开的文件。
|
91、lsof -r 1 |
循坏列出文件,每秒钟重复显示一次。
|
92、crontab -e
|
编辑当前用户的定时任务
|
93、crontab -u zhangsan -l
|
在root用户下列出普通用户张三的定时任务
|
94、crontab -l >/home/zhangsan/dbcron
|
备份任务计划
|
95、crontab -u zhangsan -r
|
在root用户下删除zhangsan 用户下的定时的任务
|
96、crontab -r
|
在普通用户下删除crontab
|
97、crontab /home/zhangsan/dbcron
|
登陆zhangsan 账户利用上面94的定时任务备份来恢复定时计划。
|
98、nproc
|
显示当前进程可用的CPU数目。
|
99、sar -A
|
性能监控:yum install sysstat
显示所有报告的总和
|
100、sar -u 2 5
|
对cpu使用情况,进行监控。每2分钟采样一次,连续采样5次。
|
101、sar -v 10 3
|
监控inode ,文件和其他内核表的状态,每10秒采集一次,连续采集3次
|
102、sar -r 10 3
|
监控内存使用情况,每10秒采集一次,共采集3次。
|
103、sar -b 10 3
|
监控io传输速率 ,每10秒采集一次,共采集3次。
|
104、iostat
|
显示CPU和磁盘利用率报告
|
105、iostat -d sda1
|
显示磁盘sda1的利用率
|
106、iostat -t
|
显示CPU和磁盘利用率报告 ,并列出每一个报告的显示的时间。
|
107、traceroute www.baidu.com
|
跟踪本地计算机到百度网站的路径
|
108、mii-tool -v ens33
|
显示ens33名字的网卡的详细信息
|
109、mii-tool -F 100baseTx-HD ens33
|
设置此网卡在100M半双工模式下。
|
110、mii-tool -r ens33
|
恢复网卡到自适应。
|
111、ifconfig ens33 192.168.1.107 netmask 255.255.255.0 up
|
配置网卡地址,同事激活该设备
|
112、ifconfig enss hw ether 00:0C:29:12:18:2E
|
更改硬件Mac地址。
|
113、netstat -i
|
显示网络接口状态信息
|
114、netstat -r
|
显示内核路由表信息
|
115、netstat -antu | grep 3306
|
显示端口号3306的链接情况
|
116、ping -s 128 192.168.1.106
|
每次发送ICMP数据包大小为128字节,测试与106的连通性
|
117、ping -c 4 192.168.1.106
|
发送4个ICMP数据包给106 ,测试连通性。
|
118、tcpdump -w /root/dumpfile
|
将捕获的数据包写入dumpfile文件中。
|
119、ntpdate 192.168.0.2
|
通过NTP服务器 192.168.0.2,设置日期和时间,
|
tmpwatch
u, --atime 根据文件的 atime (访问时间) 来决定删除文件。这是默认值。
请注意, 周期性的 updatedb 文件系统扫描会保持 atime 最近的目录
-m, --mtime 据文件的 mtime (修改时间) 而不是 atime, 做出删除文件的决定。
-c, --ctime 根据文件的 ctime (inode 更改时间) 而不是 atime, 做出删除文件的决定;对于目录
根据 mtime 进行决策。
-M, --dirmtime 根据目录的 mtime (修改时间) 来决定删除目录, 而不是 atime;完全忽略目录的 atime
-a, --all 删除所有文件类型, 而不仅仅是常规文件、符号链接和目录。
在 tmpwatch 可以删除未使用的套接字的系统上, 仅根据文件时间做出决定, 忽略可能使用的套接字
-d, --nodirs 不要尝试删除目录, 即使是空的目录
-f, --force 即使 root 没有写访问权限 (类似于 rm-f), 也要删除根目录文件
-l, --nosymlinks 不要尝试删除符号链接
-q, --quiet Report only fatal errors.只报告致命错误
-s, --fuser 尝试使用 (fuser) 命令来查看文件是否已打开, 然后再将其删除。 默认情况下未启用
在某些情况下有帮助, 但不是全部。 依赖于安装在/sbin/init fuser
不支持 hp-ux 或 Solaris.。
-t, --test 不是真的删除,只是做删除动作
-U, --exclude-user=user 不要删除用户拥有的文件, 可以是用户名或 ID
-v, --verbose
Print a verbose display. Two levels of verboseness are available -- use this option twice to get the most verbose output.
-x, --exclude=path
Skip path; if path is a directory, all files contained in it are skipped too. If path does not exist, it must be an absolute path that contains no symbolic links.
-X, --exclude-pattern=pattern
Skip paths matching pattern; if a directory matches pattern, all files contained in it are skipped too. pattern must match an absolute path that contains no symbolic links.
file
-b 列出辨识结果时,不显示文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
-L 直接显示符号连接所指向的文件的类别。
-m<魔法数字文件> 指定魔法数字文件。
-v 显示版本信息。
-z 尝试去解读压缩文件的内容。
[文件或目录...] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
du
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或--dereference-args 显示指定符号连接的源文件大小。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-k或--kilobytes 以1024 bytes为单位。
-l或--count-links 重复计算硬件连接的文件。
-L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或--megabytes 以1MB为单位。
-s或--summarize 仅显示总计。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
--max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
--help 显示帮助。
--version 显示版本信息。
fold
-b或--bytes以字节为单位计算列宽,而非采用行数编号为单位。
-s或--spaces以空格字符作为换列点。
-w <每列行数>或--width <每列行数>设置每列的最大行数。
--help在线帮助。
--version显示版本信息。
fmt
-c或--crown-margin 每段前两列缩排。
-p<列起始字符串>或-prefix=<列起始字符串> 仅合并含有指定字符串的列,通常运用在程序语言的注解方面。
-s或--split-only 只拆开字数超出每列字符数的列,但不合并字数不足每列字符数的列。
-t或--tagged-paragraph 每列前两列缩排,但第1列和第2列的缩排格式不同。
-u或--uniform-spacing 每个字符之间都以一个空格字符间隔,每个句子之间则两个空格字符分隔。
-w<每列字符数>或--width=<每列字符数>或-<每列字符数> 设置每列的最大字符数。
--help 在线帮助。
--version 显示版本信息。
uniq
对于空头期权而言,长期期权的强制性论据也是强制性的。
-c, - count前缀行数出现次数
-d, - 重复只打印重复行,每组一个
-D, - all-repeated [= METHOD]打印所有重复的行
组可以用空行分隔
METHOD = {无(默认值),前置,独立}
-f, - skip-fields = N避免比较前N个字段
--group [= METHOD]显示所有项目,用空行分隔组
METHOD = {分开的(默认),前置,追加,既}
-i, - ignore-case在比较时忽略差异
-s, - skip-chars = N避免比较前N个字符
-u, - 唯一只打印唯一的行
-z, - 零终止的结束行,0字节,而不是换行符
-w, - check-chars = N对每行第N个字符以后的内容不作对照
--help显示此帮助信息并退出
--version显示版本信息并退出
diff
用法:diff [选项] ...文件
逐行比较FILES。
对于空头期权而言,长期期权的强制性论据也是强制性的。
- normal输出正常diff(默认值)
-q, - 仅在文件不同时报告
-s, - report-identical-files报告两个文件相同时
-c,-C NUM, - context [= NUM]输出复制上下文的NUM行(默认为3行)
-u,-U NUM, - 统一[= NUM]输出NUM(默认3)行统一上下文
-e, - 输出ed脚本
-n, - rcs输出RCS格式diff
-y, - 两列中的并排输出
-W, - width = NUM输出最多NUM(默认130)打印列
--left-column仅输出公共行的左列
--suppress-common-lines不输出公共线
-p, - show-c-function显示每个更改的C函数
-F, - show-function-line = RE显示最近匹配RE的行
--label LABEL使用LABEL而不是文件名
(可以重复)
-t, - expand-tabs将选项卡展开到输出中的空格
-T, - 初始选项卡通过添加选项卡使选项卡对齐
--tabsize = NUM标签会停止每个NUM(默认为8个)打印列
--supress-blank-empty在空输出行之前禁止空格或制表符
-l,-paginate通过'pr'传递输出以对其进行分页
-r, - 递归递归比较找到的所有子目录
--no-dereference不遵循符号链接
-N, - new-file将缺席文件视为空
--unidirectional-new-file将缺少的第一个文件视为空
--ignore-file-name-case在比较文件名时忽略大小写
--no-ignore-file-name-case考虑比较文件名时的情况
-x, - exclude = PAT排除与PAT匹配的文件
-X, - exclude-from = FILE排除与FILE中任何模式匹配的文件
-S, - start-file = FILE在比较目录时以FILE开头
--from-file = FILE1将FILE1与所有操作数进行比较;
FILE1可以是目录
--to-file = FILE2将所有操作数与FILE2进行比较;
FILE2可以是目录
-i, - ignore-case忽略文件内容中的大小写差异
-E, - ignore-tab-expansion忽略由于选项卡扩展而导致的更改
-Z, - ignore-trailing-space忽略行尾的空格
-b, - ignore-space-change忽略空白量的变化
-w, - ignore-all-space忽略所有空格
-B, - ignore-blank-lines忽略行全部为空的变化
-I,--ignore-matching-lines = RE忽略所有行匹配RE的变化
-a, - text将所有文件视为文本
--strip-trailing-cr strip trailing回车输入
-D, - ifdef = NAME输出带有'#ifdef NAME'差异的合并文件
--GTYPE-group-format = GFMT格式GTYPE输入组与GFMT
--line-format = LFMT格式化所有带LFMT的输入行
--LTYPE-line-format = LFMT格式LTYPE输入行与LFMT
这些格式选项提供对输出的细粒度控制
差异,泛化-D / - ifdef。
LTYPE是“旧”,“新”或“未改变”。 GTYPE是LTYPE或'已更改'。
GFMT(仅)可能包含:
%<来自FILE1的行
%>来自FILE2的行
%= FILE1和FILE2共有的行
%[ - ] [WIDTH] [。[PREC]] {doxX} LETTER的printf风格规范
新组的字母如下,旧组的小写字母:
F第一行号
L最后一行号码
N行数= L-F + 1
E F-1
M L + 1
%(A = B?T:E)如果A等于B则接着是T else E.
LFMT(仅)可能包含:
%L行的内容
%l行的内容,不包括任何尾随换行符
%[ - ] [WIDTH] [。[PREC]] {doxX} n输入行号的printf样式规范
GFMT和LFMT都可能包含:
%%%
%c'C'是单个字符C.
%c' OOO'是八进制代码OOO的字符
C字符C(其他字符代表自己)
-d,--minimal尽量找到一小组更改
--horizon-lines = NUM保留公共前缀和后缀的NUM行
--speed-large-files假设大文件和许多分散的小变化
--help显示此帮助并退出
-v, - version输出版本信息并退出
patch
用法:补丁[OPTION] ... [ORIGFILE [PATCHFILE]]
输入选项:
-p NUM --strip = NUM从文件名中删除NUM个前导组件。
-F LINES --fuzz LINES将模糊因子设置为LINES以进行不精确匹配。
-l --ignore-whitespace忽略补丁和输入之间的空白区域更改。
-c --context将补丁解释为上下文差异。
-e --ed将补丁解释为ed脚本。
-n --normal将补丁解释为正常差异。
-u --unified将补丁解释为统一的差异。
-N --forward忽略看似颠倒或已经应用的补丁。
-R --reverse假设补丁是使用交换的旧文件和新文件创建的。
-i PATCHFILE --input = PATCHFILE从PATCHFILE而不是stdin读取补丁。
输出选项:
-o FILE --output = FILE将修补后的文件输出到FILE。
-r FILE --reject-file = FILE输出拒绝FILE
tar
用法: tar [选项...] [FILE]...
GNU ‘tar’
将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。
示例
tar -cf archive.tar foo bar # 从文件 foo 和 bar 创建归档文件
archive.tar。
tar -tvf archive.tar # 详细列举归档文件 archive.tar
中的所有文件。
tar -xf archive.tar # 展开归档文件 archive.tar
中的所有文件。
主操作模式:
-A, --catenate, --concatenate 追加 tar 文件至归档
-c, --create 创建一个新归档
-d, --diff, --compare 找出归档和文件系统的差异
--delete 从归档(非磁带!)中删除
-r, --append 追加文件至归档结尾
-t, --list 列出归档内容
--test-label 测试归档卷标并退出
-u, --update 仅追加比归档中副本更新的文件
-x, --extract, --get 从归档中解出文件
操作修饰符:
--check-device 当创建增量归档时检查设备号(默认)
-g, --listed-incremental=FILE 处理新式的 GNU 格式的增量备份
-G, --incremental 处理老式的 GNU 格式的增量备份
--ignore-failed-read
当遇上不可读文件时不要以非零值退出
--level=NUMBER 所创建的增量列表归档的输出级别
-n, --seek 归档可检索
--no-check-device 当创建增量归档时不要检查设备号
--no-seek 归档不可检索
--occurrence[=NUMBER] 仅处理归档中每个文件的第 NUMBER
个事件;仅当与以下子命令 --delete,
--diff, --extract 或是 --list
中的一个联合使用时,此选项才有效。而且不管文件列表是以命令行形式给出或是通过
-T 选项指定的;NUMBER 值默认为 1
--sparse-version=MAJOR[.MINOR]
设置所用的离散格式版本(隐含
--sparse)
-S, --sparse 高效处理离散文件
重写控制:
-k, --keep-old-files don't replace existing files when extracting,
treat them as errors
--keep-directory-symlink preserve existing symlinks to directories when
extracting
--keep-newer-files
不要替换比归档中副本更新的已存在的文件
--no-overwrite-dir 保留已存在目录的元数据
--overwrite 解压时重写存在的文件
--overwrite-dir 解压时重写已存在目录的元数据(默认)
--recursive-unlink 解压目录之前先清除目录层次
--remove-files 在添加文件至归档后删除它们
--skip-old-files don't replace existing files when extracting,
silently skip over them
-U, --unlink-first 在解压要重写的文件之前先删除它们
-W, --verify 在写入以后尝试校验归档
选择输出流:
--ignore-command-error 忽略子进程的退出代码
--no-ignore-command-error
将子进程的非零退出代码认为发生错误
-O, --to-stdout 解压文件至标准输出
--to-command=COMMAND
将解压的文件通过管道传送至另一个程序
操作文件属性:
--atime-preserve[=METHOD]
在输出的文件上保留访问时间,要么通过在读取(默认
METHOD=‘replace’)后还原时间,要不就不要在第一次(METHOD=‘system’)设置时间
--delay-directory-restore
直到解压结束才设置修改时间和所解目录的权限
--group=名称 强制将 NAME
作为所添加的文件的组所有者
--mode=CHANGES 强制将所添加的文件(符号)更改为权限
CHANGES
--mtime=DATE-OR-FILE 从 DATE-OR-FILE 中为添加的文件设置
mtime
-m, --touch 不要解压文件的修改时间
--no-delay-directory-restore
取消 --delay-directory-restore 选项的效果
--no-same-owner
将文件解压为您所有(普通用户默认此项)
--no-same-permissions
从归档中解压权限时使用用户的掩码位(默认为普通用户服务)
--numeric-owner 总是以数字代表用户/组的名称
--owner=名称 强制将 NAME
作为所添加的文件的所有者
-p, --preserve-permissions, --same-permissions
解压文件权限信息(默认只为超级用户服务)
--preserve 与 -p 和 -s 一样
--same-owner
尝试解压时保持所有者关系一致(超级用户默认此项)
-s, --preserve-order, --same-order
member arguments are listed in the same order as
the files in the archive
Handling of extended file attributes:
--acls Enable the POSIX ACLs support
--no-acls Disable the POSIX ACLs support
--no-selinux Disable the SELinux context support
--no-xattrs Disable extended attributes support
--selinux Enable the SELinux context support
--xattrs Enable extended attributes support
--xattrs-exclude=MASK specify the exclude pattern for xattr keys
--xattrs-include=MASK specify the include pattern for xattr keys
设备选择和切换:
-f, --file=ARCHIVE 使用归档文件或 ARCHIVE 设备
--force-local
即使归档文件存在副本还是把它认为是本地归档
-F, --info-script=名称, --new-volume-script=名称
在每卷磁带最后运行脚本(隐含 -M)
-L, --tape-length=NUMBER 写入 NUMBER × 1024 字节后更换磁带
-M, --multi-volume 创建/列出/解压多卷归档文件
--rmt-command=COMMAND 使用指定的 rmt COMMAND 代替 rmt
--rsh-command=COMMAND 使用远程 COMMAND 代替 rsh
--volno-file=FILE 使用/更新 FILE 中的卷数
设备分块:
-b, --blocking-factor=BLOCKS 每个记录 BLOCKS x 512 字节
-B, --read-full-records 读取时重新分块(只对 4.2BSD 管道有效)
-i, --ignore-zeros 忽略归档中的零字节块(即文件结尾)
--record-size=NUMBER 每个记录的字节数 NUMBER,乘以 512
选择归档格式:
-H, --format=FORMAT 创建指定格式的归档
FORMAT 是以下格式中的一种:
gnu GNU tar 1.13.x 格式
oldgnu GNU 格式 as per tar <= 1.12
pax POSIX 1003.1-2001 (pax) 格式
posix 等同于 pax
ustar POSIX 1003.1-1988 (ustar) 格式
v7 old V7 tar 格式
--old-archive, --portability
等同于 --format=v7
--pax-option=关键字[[:]=值][,关键字[[:]=值]]...
控制 pax 关键字
--posix 等同于 --format=posix
-V, --label=TEXT 创建带有卷名 TEXT
的归档;在列出/解压时,使用 TEXT
作为卷名的模式串
压缩选项:
-a, --auto-compress 使用归档后缀名来决定压缩程序
-I, --use-compress-program=PROG
通过 PROG 过滤(必须是能接受 -d
选项的程序)
-j, --bzip2 通过 bzip2 过滤归档
-J, --xz 通过 xz 过滤归档
--lzip 通过 lzip 过滤归档
--lzma 通过 lzma 过滤归档
--lzop
--no-auto-compress 不使用归档后缀名来决定压缩程序
-z, --gzip, --gunzip, --ungzip 通过 gzip 过滤归档
-Z, --compress, --uncompress 通过 compress 过滤归档
本地文件选择:
--add-file=FILE 添加指定的 FILE 至归档(如果名字以 -
开始会很有用的)
--backup[=CONTROL] 在删除前备份,选择 CONTROL 版本
-C, --directory=DIR 改变至目录 DIR
--exclude=PATTERN 排除以 PATTERN 指定的文件
--exclude-backups 排除备份和锁文件
--exclude-caches 除标识文件本身外,排除包含
CACHEDIR.TAG 的目录中的内容
--exclude-caches-all 排除包含 CACHEDIR.TAG 的目录
--exclude-caches-under 排除包含 CACHEDIR.TAG 的目录中所有内容
--exclude-tag=FILE 除 FILE 自身外,排除包含 FILE
的目录中的内容
--exclude-tag-all=FILE 排除包含 FILE 的目录
--exclude-tag-under=FILE 排除包含 FILE 的目录中的所有内容
--exclude-vcs 排除版本控制系统目录
-h, --dereference
跟踪符号链接;将它们所指向的文件归档并输出
--hard-dereference
跟踪硬链接;将它们所指向的文件归档并输出
-K, --starting-file=MEMBER-NAME
begin at member MEMBER-NAME when reading the
archive
--newer-mtime=DATE 当只有数据改变时比较数据和时间
--no-null 禁用上一次的效果 --null 选项
--no-recursion 避免目录中的自动降级
--no-unquote 不以 -T 读取的文件名作为引用结束
--null -T 读取以空终止的名字,-C 禁用
-N, --newer=DATE-OR-FILE, --after-date=DATE-OR-FILE
只保存比 DATE-OR-FILE 更新的文件
--one-file-system 创建归档时保存在本地文件系统中
-P, --absolute-names 不要从文件名中清除引导符‘/’
--recursion 目录递归(默认)
--suffix=STRING 在删除前备份,除非被环境变量
SIMPLE_BACKUP_SUFFIX
覆盖,否则覆盖常用后缀(‘’)
-T, --files-from=FILE 从 FILE
中获取文件名来解压或创建文件
--unquote 以 -T
读取的文件名作为引用结束(默认)
-X, --exclude-from=FILE 排除 FILE 中列出的模式串
文件名变换:
--strip-components=NUMBER 解压时从文件名中清除 NUMBER
个引导部分
--transform=EXPRESSION, --xform=EXPRESSION
使用 sed 代替 EXPRESSION
来进行文件名变换
文件名匹配选项(同时影响排除和包括模式串):
--anchored 模式串匹配文件名头部
--ignore-case 忽略大小写
--no-anchored 模式串匹配任意‘/’后字符(默认对
exclusion 有效)
--no-ignore-case 匹配大小写(默认)
--no-wildcards 逐字匹配字符串
--no-wildcards-match-slash 通配符不匹配‘/’
--wildcards use wildcards (default)
--wildcards-match-slash
通配符匹配‘/’(默认对排除操作有效)
提示性输出:
--checkpoint[=NUMBER] 每隔 NUMBER
个记录显示进度信息(默认为 10 个)
--checkpoint-action=ACTION 在每个检查点上执行 ACTION
--full-time print file time to its full resolution
--index-file=FILE 将详细输出发送至 FILE
-l, --check-links
只要不是所有链接都被输出就打印信息
--no-quote-chars=STRING 禁用来自 STRING 的字符引用
--quote-chars=STRING 来自 STRING 的额外的引用字符
--quoting-style=STYLE 设置名称引用风格;有效的 STYLE
值请参阅以下说明
-R, --block-number 每个信息都显示归档内的块数
--show-defaults 显示 tar 默认选项
--show-omitted-dirs
列表或解压时,列出每个不匹配查找标准的目录
--show-transformed-names, --show-stored-names
显示变换后的文件名或归档名
--totals[=SIGNAL] 处理归档后打印出总字节数;当此
SIGNAL 被触发时带参数 -
打印总字节数;允许的信号为:
SIGHUP,SIGQUIT,SIGINT,SIGUSR1 和
SIGUSR2;同时也接受不带 SIG
前缀的信号名称
--utc 以 UTC 格式打印文件修改时间
-v, --verbose 详细地列出处理的文件
--warning=KEYWORD 警告控制:
-w, --interactive, --confirmation
每次操作都要求确认
兼容性选项:
-o 创建归档时,相当于
--old-archive;展开归档时,相当于
--no-same-owner
其它选项:
-?, --help 显示此帮助列表
--restrict 禁用某些潜在的有危险的选项
--usage 显示简短的用法说明
--version 打印程序版本
长选项和相应短选项具有相同的强制参数或可选参数。
除非以 --suffix 或 SIMPLE_BACKUP_SUFFIX
设置备份后缀,否则备份后缀就是“~”。
可以用 --backup 或 VERSION_CONTROL 设置版本控制,可能的值为:
none, off 从不做备份
t, numbered 进行编号备份
nil, existing
如果编号备份存在则进行编号备份,否则进行简单备份
never, simple 总是使用简单备份
--quoting-style 选项的有效参数为:
literal
shell
shell-always
c
c-maybe
escape
locale
clocale
此 tar 默认为:
--format=gnu -f- -b20 --quoting-style=escape --rmt-command=/etc/rmt
--rsh-command=/usr/bin/ssh
ps
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
top
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内
pgrep
用法:
pgrep [options] <pattern>
选项:
-d, - delimiter <string>指定输出分隔符
-l, - list-name列表PID和进程名称
-a, - list-full list PID和完整命令行
-v, - inverse否定匹配
-w, - lightweight列出所有TID
-c, - 匹配进程的计数
-f, - full使用完整的进程名称进行匹配
-g,--pgroup <PGID,...>匹配列出的进程组ID
-G, - group <GID,...>匹配实际组ID
-n, - 最近选择最近启动的
-o, - 最近选择最近最少开始
-P, - parent <PPID,...>仅匹配给定父级的子进程
-s, - session <SID,...>匹配会话ID
-t, - terminal <tty,...>通过控制终端匹配
-u, - eg <ID,...>匹配有效ID
-U, - uid <ID,...>按真实ID匹配
-x, - 完全匹配命令名称
-F, - pidfile <file>从文件中读取PID
如果未锁定PID文件,则-L, - logpidfile失败
--ns <PID>匹配属于它的进程
名称空间为<pid>
--nslist <ns,...>列出将考虑的命名空间
--ns选项。
可用的命名空间:ipc,mnt,net,pid,user,uts
-h, - help显示此帮助并退出
-V, - version输出版本信息并退出
pkill
用法:
pkill [options] <pattern>
选项:
- <sig>, - 信号<sig>要发送的信号(数字或名称)
-e, - echo显示被杀的东西
-c, - 匹配进程的计数
-f, - full使用完整的进程名称进行匹配
-g,--pgroup <PGID,...>匹配列出的进程组ID
-G, - group <GID,...>匹配实际组ID
-n, - 最近选择最近启动的
-o, - 最近选择最近最少开始
-P, - parent <PPID,...>仅匹配给定父级的子进程
-s, - session <SID,...>匹配会话ID
-t, - terminal <tty,...>通过控制终端匹配
-u, - eg <ID,...>匹配有效ID
-U, - uid <ID,...>按真实ID匹配
-x, - 完全匹配命令名称
-F, - pidfile <file>从文件中读取PID
如果未锁定PID文件,则-L, - logpidfile失败
--ns <PID>匹配属于它的进程
名称空间为<pid>
--nslist <ns,...>列出将考虑的命名空间
--ns选项。
可用的命名空间:ipc,mnt,net,pid,user,uts
-h, - help显示此帮助并退出
-V, - version输出版本信息并退出
lsof
默认 : 没有选项,lsof列出活跃进程的所有打开文件
组合 : 可以将选项组合到一起,如-abc,但要当心哪些选项需要参数
-a : 结果进行“与”运算(而不是“或”)
-l : 在输出显示用户ID而不是用户名
-h : 获得帮助
-t : 仅获取进程ID
-U : 获取UNIX套接口地址
-F : 格式化输出结果,用于其它命令。可以通过多种方式格式化,如-F pcfn(用于进程id、命令名、文件描述符、文件名,并以空终止)
括号中的默认值;逗号分隔的集合项目;破折号范围。
- ?| -h list help -a AND selections(OR)-b避免内核块
-c c cmd c ^ c / c / [bix] + c w命令宽度(9)+ d s dir s文件
-d由FD设置选择+ D D dir D树* SLOW?* + | -e s免除s *风险*
-i选择IPv [46]文件-K list tasKs(threads)-l list UID number
-n无主机名-N选择NFS文件-o list file offset
-O无开销* RISKY * -P无端口名称-R list paRent PID
-s list file size -t terse listing -T禁用TCP / TPI信息
-U选择Unix socket -v list version info -V verbose search
+ | -w警告(+) - X跳过TCP和UDP *文件-Z Z上下文[Z]
- 结束选项扫描
+ f | -f +文件系统或文件名+ | -f [gG] flaGs
-F [f]选择字段; -F?求助
+ | -L [l] list(+)suppress( - )link counts <l(0 = all; default = 0)
+ m [m]使用|创建安装补充
+ | -M portMap注册( - )-o o o 0t偏移数字(8)
-p s exclude(^)| select PIDs -S [t] t second stat timeout(15)
-T qs TCP / TPI Q,St(s)info
-g [s] exclude(^)|选择并打印进程组ID
-i我选择IPv [46]地址:[46] [proto] [@ host | addr] [:svc_list | port_list]
+ | -r [t [m <fmt>]]每t秒重复一次(15); +直到没有文件, - 永远。
t的可选后缀是m <fmt>; m必须将t与<fmt>和
<fmt>是标记行的strftime(3)格式。
-s p:s exclude(^)|按名称选择协议(p = TCP | UDP)状态。
-u s exclude(^)| select login | UID set s
-x [fl]交叉+ d | + D文件系统或符号链接
名称在命名文件系统上选择命名文件或文件
lsof参数
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
其中FD 列中的文件描述符cwd 值表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改。txt 类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序。其次数值表示应用程序的文件描述符,这是打开该文件时返回的一个整数。如上的最后一行文件/dev/initctl,其文件描述符为 10。u 表示该文件被打开并处于读取/写入模式,而不是只读(R) 或只写 (w) 模式。同时还有大写 的W 表示该应用程序具有对整个文件的写锁。该文件描述符用于确保每次只能打开一个应用程序实例。初始打开每个应用程序时,都具有三个文件描述符,0、1、2, 分别表示标准输入、输出和错误流。所以大多数应用程序所打开的文件的 FD 都是从 3 开始。
Type : 文件和目录分别称为 REG 和 DIR(在 Solaris 中,称为 VREG 和 VDIR)。而CHR 和 BLK,分别表示字符和块设备; 或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。
crontab
选项:
-u <user>定义用户
-e编辑用户的crontab
-l list user's crontab
-r删除用户的crontab
-i在删除之前提示
-n <host>在集群中设置主机以运行用户的crontabs
-c获取集群中的主机以运行用户的crontabs
-s selinux上下文
-x <mask>启用调试
crontab案例
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
一、根据命令说出文字含义:
1)30 3,12 * /bin/sh /scripts/oldboy.sh
本实例中,第一列为30,表示 30 分钟;第二列为3点及12点,此定时任务的意思是每天凌晨3点和总务12 点的半点时刻(即每天3:30 和12:30)执行/scripts/oldboy.sh 脚本
2)30 */6 * * * /bin/sh /scripts/oldboy.sh
本实例中,第一列为30,表示30 分钟,第二列为*/6代表每6个小时,此定时任务的意思是每隔6个小时的半点时刻(即每天6:30、12:30、18:30、24:30)执行/scripts/oldboy.sh 脚本
3)30 8-18/2 * * * /bin/sh /scripts/oldboy.sh
本实例中,第一列为30,表示30 分钟,第二列为8-18/2 代表上午8 点到下午18 点之间每隔2
小时,此定时任务的意思是每天上午8 点到下午18 点之间每隔2 个小时执行/scripts/oldboy.sh 脚本
4)30 21 * * * /application/apache/bin/apachectl graceful
表示每晚21:30 重启Apache
5)45 4 1,10,22 * * /application/apache/bin/apachectl graceful
表示每月1、10、22 日的凌晨4:45 分重启Apache
6)10 1 * * 6,0 /application/apache/bin/apachectl graceful
表示每周六、周日的凌晨1:10 分重启Apache
7)0,30 18-23 * * * /application/apache/bin/apachectl graceful
表示每天18:00 到23:00 之间每隔30 分钟重启Apache
8)* 23,00-07/1* * * /application/apache/bin/apachectl graceful
表示23 点到次日07 点之间每隔一小时每分钟都重启Apache
9)00 11 * 4 1-3 /application/apache/bin/apachectl graceful
表示4 月的每周一到周三的上午11 点整重启Apache
二、根据文字描述写出定时规则:
1)5 月5 日上午9:00 去老男孩培训上课。规则为:
#00 09 05 05 * 去老男孩培训上课
2)每周日上午9:30 区老男孩教育培训。规则为:
#30 09 * * 0 去老男孩教育培训
Crond服务是运行的程序,可以通过crontab在固定的间隔时间执行执行的系统指令或script脚本。时间间隔的单位可以是分钟、小时、日、月、周以及任意以上组合(日和周不要组合),适用于实现周期性的日志分析或数据备份等企业运维场景工作。
转载:http://blog.51cto.com/13543214/2105896 作者:来自51CTO博客作者mo默羽的原创作品
sar命令
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、 系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。
sar命令常用格式
sar [options] [-A] [-o file] t [n]
其中:
t为采样间隔,n为采样次数,默认值是1;
-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
options 为命令行选项,sar命令常用选项如下:
-A:所有报告的总和
-u:输出CPU使用情况的统计信息
-v:输出inode、文件和其他内核表的统计信息
-d:输出每一个块设备的活动信息
-r:输出内存和交换空间的统计信息
-b:显示I/O和传送速率的统计信息
-a:文件读写情况
-c:输出进程统计信息,每秒创建的进程数
-R:输出内存页面的统计信息
-y:终端设备活动情况
-w:输出系统交换活动信息
1. CPU资源监控
例如,每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中,需键入如下命令:
sar -u -o test 10 3
屏幕显示如下:
17:06:16 CPU %user %nice %system %iowait %steal %idle
17:06:26 all 0.00 0.00 0.20 0.00 0.00 99.80
17:06:36 all 0.00 0.00 0.20 0.00 0.00 99.80
17:06:46 all 0.00 0.00 0.10 0.00 0.00 99.90
Average: all 0.00 0.00 0.17 0.00 0.00 99.83
输出项说明:
CPU:all 表示统计信息为所有 CPU 的平均值。
%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。
1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈
2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量
3. 若 %idle 的值持续低于1,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU 。
如果要查看二进制文件test中的内容,需键入如下sar命令:
sar -u -f test
2. inode、文件和其他内核表监控
例如,每10秒采样一次,连续采样3次,观察核心表的状态,需键入如下命令:
sar -v 10 3
屏幕显示如下:
17:10:49 dentunusd file-nr inode-nr pty-nr
17:10:59 6301 5664 12037 4
17:11:09 6301 5664 12037 4
17:11:19 6301 5664 12037 4
Average: 6301 5664 12037 4
输出项说明:
dentunusd:目录高速缓存中未被使用的条目数量
file-nr:文件句柄(file handle)的使用数量
inode-nr:索引节点句柄(inode handle)的使用数量
pty-nr:使用的pty数量
3. 内存和交换空间监控
例如,每10秒采样一次,连续采样3次,监控内存分页:
sar -r 10 3
屏幕显示如下:
输出项说明:
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
4. 内存分页监控
例如,每10秒采样一次,连续采样3次,监控内存分页:
sar -B 10 3
屏幕显示如下:
输出项说明:
pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)
pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)
fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor)
majflt/s:每秒钟产生的主缺页数.
pgfree/s:每秒被放入空闲队列中的页个数
pgscank/s:每秒被kswapd扫描的页个数
pgscand/s:每秒直接被扫描的页个数
pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数
%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比
5. I/O和传送速率监控
例如,每10秒采样一次,连续采样3次,报告缓冲区的使用情况,需键入如下命令:
sar -b 10 3
屏幕显示如下:
18:51:05 tps rtps wtps bread/s bwrtn/s
18:51:15 0.00 0.00 0.00 0.00 0.00
18:51:25 1.92 0.00 1.92 0.00 22.65
18:51:35 0.00 0.00 0.00 0.00 0.00
Average: 0.64 0.00 0.64 0.00 7.59
输出项说明:
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s
6. 进程队列长度和平均负载状态监控
例如,每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:
sar -q 10 3
屏幕显示如下:
19:25:50 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
19:26:00 0 259 0.00 0.00 0.00
19:26:10 0 259 0.00 0.00 0.00
19:26:20 0 259 0.00 0.00 0.00
Average: 0 259 0.00 0.00 0.00
输出项说明:
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
7. 系统交换活动信息监控
例如,每10秒采样一次,连续采样3次,监控系统交换活动信息:
sar - W 10 3
屏幕显示如下:
19:39:50 pswpin/s pswpout/s
19:40:00 0.00 0.00
19:40:10 0.00 0.00
19:40:20 0.00 0.00
Average: 0.00 0.00
输出项说明:
pswpin/s:每秒系统换入的交换页面(swap page)数量
pswpout/s:每秒系统换出的交换页面(swap page)数量
8. 设备使用情况监控
例如,每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:
# sar -d 10 3 –p
屏幕显示如下:
17:45:54 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
17:46:04 scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:46:04 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:46:04 vg_livedvd-lv_root 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17:46:04 vg_livedvd-lv_swap 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
其中:
参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0
tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.
rd_sec/s:每秒读扇区的次数.
wr_sec/s:每秒写扇区的次数.
avgrq-sz:平均每次设备I/O操作的数据大小(扇区).
avgqu-sz:磁盘请求队列的平均长度.
await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).
svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.
%util:I/O请求占CPU的百分比,比率越大,说明越饱和.
1. avgqu-sz 的值较低时,设备的利用率较高。
2. 当%util的值接近 1% 时,表示设备带宽已经占满。
要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来
怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看
netstat
-r, - 路由显示路由表
-I, - interface = <Iface>显示<Iface>的接口表
-i, - interfaces显示接口表
-g, - groupss显示多播组成员资格
-s, - 统计显示网络统计信息(如SNMP)
-M, - masquerade显示伪装连接
-v, - verbose是详细的
-W, - wide不截断IP地址
-n, - 数字不解析名称
--numeric-hosts不解析主机名
--numeric-ports不解析端口名称
--numeric-users不解析用户名
-N, - 符号解析硬件名称
-e, - 扩展显示其他/更多信息
-p,--programs显示套接字的PID /程序名称
-o, - 用户显示计时器
-c, - 连续不断上市
-l, - 显示监听服务器套接字
-a, - all显示所有套接字(默认值:已连接)
-F, - fib display Forwarding Information Base(默认)
-C, - cache显示路由缓存而不是FIB
-Z, - context显示套接字的SELinux安全上下文
参考:Linux命令应用大词典 作者: 於越