学习的内容来自于Linux Shell脚本攻略(2)
内容只做了简单的记录,方便自己学习
shell 命令查询地址:http://man.linuxde.net/
du和df
du和df是Linux中用于统计磁盘使用情况的两个重要命令,df是disk free的锁业,du是disk usage的缩写
1)找出某个文件(或多个文件)占用的磁盘空间
du filename1 filename2
-a 递归地输出指定目录或多个目录中所有文件的统计结果
-h 以KB、MB或块(block)为单位显示磁盘使用情况
-c 显示磁盘使用总计
-c可以输出作为命令参数的所有文件和目录的磁盘使用情况,他会在输出结果末尾加上一行总计。
-s 只负责输出合计数据
强制使用特定的单位打印磁盘使用情况
-b打印以字节(默认输出)为单位的文件大小
-k 打印以kb为单位的文件大小
-m 打印以MB为单位的文件大小
-B 打印以指定块单位的文件大小
排除部分文件
1)通配符
--exclude
du --exclude "*.txt" files(s)
2)指定需要配出的列表
du --exclude-from Exclude.txt DIRECTORY
exclude.txt中包含了需要排除的文件列表
计算命令执行时间
time可以计算一个命令执行的时间
time COMMAND
介绍工作原理
Real是件指的是挂钟时间,也就是命令从开始执行到结束的时间。这段时间包括其他进程所占用的时间片段以及进程被阻塞时所花费的时间
User时间指的是进程花费在用户模式(内核之外)中的CPU时间。这是唯一真正用于执行进程所花费的时间。执行其他进程以及花费在阻塞状态中的时间并没有计算在内
Sys时间指的是进程花费在内容CPU时间。他代表在内核中执行系统调用所有的时间,这和库代码中不同,后者仍旧运行在用户空间。
time命令的分类。
time命令的可执行二进制文件位于/usr/bin/time,还有一个shell内建命令也叫做time。当运行time时,默认调用的是shell的内建命令。shell内建的time命令选项有限。因此,如果我们需要使用另外的功能,就应该使用可执行文件time的绝对路径(/usr/bin/time)
下面是/usr/bin/time的用法
-o 将执行的时间写入到文件中
写入文件必须本就存在
命令必须放在最后
-a 追加写入
收集与当前登录用户、启动日志及启动故障的相关信息
1)获取当前登录用户的信息
who
登录名、用户所用TTY、登录时间以及登录用户的远程主机名
TTY是与文本相关联的设备文件
2)获得有关登录用户更详细的信息
w
3)列出当前登录主机的用户列表
users
如果某个用户打开了多个伪终端,该用户就会被多次显示
users | tr ' ' ' \n' | sort |uniq
4)查看系统已经加电运行了多少时间
uptime
5)获取上一次启动以及用户登录会话的信息
last
last命令以日志/var/log/wtmp作为输入日志数据,他也可以用选项-f明确的指出日志文件
last -f /var/log/wtmp
6)获取单个用户登录会话的信息
last USER
7)获取重启会话
last reboot
8)获取失败的用户登录会话信息
lastb
列出1小时内占用CPU最多的10个进程
ps
使用watch监视命令输出
我们可能需要在一段时期内以固定的间隔时间不断监视某个命令的输出。例如赋值大文件
watch可以用来在终端中以固定的间隔监视命令的输出
watch COMMAND
指定时间也使用-n
watch -n 5 'COMMAND'
突出表示watch输出中的差异
watch -d 'COMMANDS'