shell命令小结
1、列出头十个最耗内存的进程
ps aux | sort -rnk +4 | head
ps 输出格式如下:
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
sort -k是指定排序的字段。ps命令输出的第4个字段是内存占用率。
2、列出当前目录里最大的10个文件。
du -s * | sort -rn | head
3、列出本机进程监听的端口号。
netstat -tlnp
netstat -anop
可以显示侦听在这个端口号的进程
4、去除html文本中的标签
sed 's/<[^<]*>//g' $file
如果不加[^<]则过滤不掉<。这种方式是最大匹配,比如文本内容为abcdabef, 过滤方式为sed ‘s/a[^a]b//g’,最终结果就是输出ef,从开始的a到最后一个b全部被过滤掉
5、输出文件中指定字符串的前两行
grep -B 2 "grepstr" $file
6、当你的机器在内网的时候,可以通过这个命令查看外网的IP。
curl ifconfig.me
7、比较浮点数大小
if (echo ${A} ${B} | awk '!($1>$2){exit 1}') then ...
if (echo ${A} – ${B} | bc -q | grep -q "^-"); then ...
python中比较两个浮点数
if math.fabs( A - B) < delta:
8、按照时间从早到晚显示目录下的内容,简单记忆:t time // r reverse
ls -ltr
9、显示网络接口名称(匹配以文本中每行的开头为非空格的一个或多个字符)
/sbin/ifconfig | grep -oE -e "^[^ ]+"
注意和/sbin/ifconfig | grep -oE -e “^[^ ]” 的区别 问题:如何显示匹配特定字符串的第一个字符 或者说显示每行的第一个字符 10、一个打印分隔符的函数
separator(){ printf '%*s\n' $(tput cols) '' | tr ' ' -; }