du可以查看文件或目录占用的磁盘空间
du file1 file2
du -a directory //递归输出目录统计结果
du -h //以KB MB为单位显示磁盘使用情况
du -c file1 file2 //给出两个文件的和
du -s dir //给出当前目录下所有文件的磁盘使用和
du -b //以字节为单位
du -k //以KB为单位
du -m //以MB为单位
du -B BLOCK_SIZE //以BLOCK_SIZE为单位
du --exclude "WILDCARD" dir
du --exclude-from filename
du --max-depth 2 dir
# 找出4个最大的文件,包括目录
du -ak /home | sort -nrk 1 | head -n 4
bogon:Network_Demo liliang$ du -ak ~/Leon/Git | sort -nrk 1 | head -n 4
733964 /Users/liliang/Leon/Git
338284 /Users/liliang/Leon/Git/l8liliang.github.io
327448 /Users/liliang/Leon/Git/Auto-Layout-Demystified
293468 /Users/liliang/Leon/Git/Auto-Layout-Demystified/2ndEdition
# 找出4个最大的文件,不包括目录
find . -type f -exec du -k {} \; | sort -nrk 1 | head -n 4
time可以测量应用程序的执行时间
time APPLICATION
time会执行APPLICATION,当执行完毕后,time将器real时间、sys时间、user时间输出到stderr中,将APPLICATION的正常输出发送到stdout。
time有一个shell内建到命令了,也有一个二进制文件位于/usr/bin/time,默认使用shell内建命令。但是内建到命令选项有限。建议使用绝对路径。
/usr/bin/time -o output.txt COMMAND //-o可以把时间信息写到文件中
/usr/bin/time -a -o output.txt COMMAND //-a与-o配合,表示把时间信息追加到文件中
# 使用-f可以格式化输出
%e real时间,就是开始到结束的时间
%E real时间,就是开始到结束的时间
%U 用户模式下花费的时间
%S 内核模式下花费的时间
%Z 以字节为单位的系统页面大小
%C 命令名称
%D 进程非共享数据区的平均大小,KB
%x 命令的退出状态
%k 进程接收的信号数量
%W 进程被交换出主寸的次数
%P 进程所获得cpu时间百分比。等于(user+system)/real
%K 进程平均内存使用量 KB
%w 进程主动进行上下文切换的次数,例如等等IO操作完成
%c 进程被迫进行上下文切换的次数,由于时间片到期
who命令获取当前在线用户信息
w命令获取当前在线用户的更详细的信息
users列出当前在线用户列表
uptime可以查看系统加电运行时长
last命令可以获取自文件/var/log/wtmp创建之后登录过系统的用户列表,也可以针对某个用户进行查询(last USER)
lastb可以获取失败的用户登录会话信息;lastb -F可以输出完整日期
#!/bin/bash
SECS=3600
UNIT_TIME=60
STEPS=$(( $SECS / $UNIT_TIME ))
echo Watching CPU Usage...
for((i=0;i<STEPS;i++))
do
ps -eocomm,pcpu | egrep -v '(0.0)|(%CPU)' >> /tmp/cpu_usage.$$
sleep $UNIT_TIME
done
echo CPU eaters :
cat /tmp/cpu_usage.$$ | awk '{ process[$1]+=$2; }
END{
for(i in process)
{
printf("%-20s %s\n",i,process[i]);
}
}' | sort -nrk 2 | head
rm /tmp/cpu_usage.$$
watch命令按照指定的时间间隔来执行命令并显示输出
watch -n 5 'ls -l'
watch -n 30 -d 'commands' // -n表示间隔的秒数,-d表示着重标记输出中的差异
inotifywati -m -r -e create,move,delete $path -q
-m表示持续监视
-r递归监视目录(忽略符号连接)
-e指定需要监视的事件列表,access modify attrib move create open close delete
-q减少冗余信息
#smartmontools
smartctl -a /dev/sda // -a 包含设备的全部状态信息包括错误计数,准备时间,加电时间
smartctl -t /dev/sda // 自检
#hdparm能给出更多数据
hdparm -I /dev/sda //基本数据
hardparm命令可以测试磁盘性能。选项-t和-T分别测试缓冲(buffer)和缓存(cache)读操作。
hdparm -t /dev/sda
hdparm -T /dev/sda