you are better than you think

shell命令小结

· by thur · Read in about 1 min · (128 Words)
shell commands

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 ' ' -; }

Comments