学会使用/proc。它在调试正在出现的问题的时候有时会效果惊人。比如:/proc/cpuinfo,/proc/meminfo,/proc/cmdline,/proc/xxx/cwd,/proc/xxx/exe,/proc/xxx/fd/,/proc/xxx/smaps(这里的xxx表示进程的 id 或 pid)。
当调试一些之前出现的问题的时候,sar非常有用。它展示了 cpu、内存以及网络等的历史数据。
关于更深层次的系统分析以及性能分析,看看stap(SystemTap),perf,以及sysdig。
查看你当前使用的系统,使用uname,uname -a(Unix/kernel 信息) 或者lsb_release -a(Linux 发行版信息)。
无论什么东西工作得很欢乐时试试dmesg(可能是硬件或驱动问题)。
一些命令组合的例子:
当你需要对文本文件做集合交、并、差运算时,结合使用sort/uniq很有帮助。假设a与b是两内容不同的文件。这种方式效率很高,并且在小文件和上G的文件上都能运用 (sort不被内存大小约束,尽管在/tmp在一个小的根分区上时你可能需要-T参数),参阅前文中关于LC_ALL和sort的-u参数的部分。
使用grep . *来阅读检查目录下所有文件的内容,例如检查一个充满配置文件的目录比如/sys、/proc、/etc。
计算文本文件第三列中所有数的和(可能比同等作用的 Python 代码快三倍且代码量少三倍):
如果你想在文件树上查看大小\日期,这可能看起来像递归版的ls -l但比ls -lR更易于理解:
假设你有一个类似于 web 服务器日志文件的文本文件,并且一个确定的值只会出现在某些行上,假设一个acct_id参数在URI中。如果你想计算出每个acct_id值有多少次请求,使用如下代码:
运行这个函数从这篇文档中随机获取一条小技巧(解析 Markdown 文件并抽取项目):
expr:计算表达式或正则匹配
m4:简单地宏处理器
yes:多次打印字符串
cal:漂亮的日历
env:执行一个命令(脚本文件中很有用)
printenv:打印环境变量(调试时或在使用脚本文件时很有用)
look:查找以特定字符串开头的单词
cut、paste和join:数据修改
fmt:格式化文本段落
pr:将文本格式化成页/列形式
fold:包裹文本中的几行
column:将文本格式化成多列或表格
expand和unexpand:制表符与空格之间转换
nl:添加行号
seq:打印数字
bc:计算器
factor:分解因数
gpg:加密并签名文件
toe:terminfo entries 列表
nc:网络调试及数据传输
socat:套接字代理,与netcat类似
slurm:网络可视化
dd:文件或设备间传输数据
file:确定文件类型
tree:以树的形式显示路径和文件,类似于递归的ls
stat:文件信息
time:执行命令,并计算执行时间
lockfile:使文件只能通过rm -f移除
logrotate: 切换、压缩以及发送日志文件
watch:重复运行同一个命令,展示结果并高亮有更改的部分
tac:反向输出文件
shuf:文件中随机选取几行
comm:一行一行的比较排序过的文件
pv:监视通过管道的数据
strings:从二进制文件中抽取文本
tr:转换字母
iconv或uconv:简易的文件编码
split和csplit:分割文件
sponge:在写入前读取所有输入,在读取文件后再向同一文件写入时比较有用,例如grep -v something some-file | sponge some-file
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-51206-5.html
被警告后也就撤出了
就是有人先知道要双降啊
来吧