Linux三个命令:ps,grep,tail

这几天在服务器上跑Python的几个程序,因为运行时间较长,所以涉及到后台运行的问题,顺便也深入了解了一下Linux的几个命令。

ps

ps命令用来显示当前的进程。是Process Status的缩写。如果需要动态的显示进程,可以使用top命令。

ps常用参数

  • -A-e:列出所有的进程;
  • aux:列出所有使用者的详细进程(最常用);
  • u:指定用户的进程;
  • r:列出正在运行的程序;
  • T:当前终端的所有进程。

输出列的含义


上图中的各列分别代表:

  • USER:进程拥有者;
  • PID:进程的ID;
  • %CPU:CPU占用率;
  • %MEM:内存占用率;
  • VSE:该进程使用掉的虚拟内存量 (Kbytes);
  • RSS:该进程占用的固定的内存量 (Kbytes);
  • TTY:该进程是在那个终端机上面运作。若与终端机无关,则显示?tty1-tty6是本机上面的登入者程序;pts/0等等则表示为由网络连接进主机的程序;
  • STAT:该程序目前的状态。
    • R:正在执行;
    • S:睡眠状态。在等待某个条件的形成或接受到信号;
    • D:不可中断。收到信号不唤醒和不可运行,进程必须等待直到有中断发生;
    • T:终止。进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行;
    • Z:僵死。进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放;
    • <:高优先级进程;
    • N:低优先级进程;
    • s:进程的领导者(在它之下有子进程);
    • l:多进程,克隆线程;
    • +:位于后台的进程组。
  • START:进程启动时间和日期;
  • TIME:进程使用的总cpu时间;
  • COMMAND:正在执行的命令行命令。

grep

grep命令用于查找文件里符合条件的字符串。
使用格式:grep [option] pattern file

grep常用参数

  • i:忽略大小写;
  • r:递归的查找(当查找一个目录而不是文件时必须加上);
  • v:反向查找。显示不包含匹配文本的行;
  • *py:在file处可直接指定文件后缀。

pattern可使用正则表达式。

例子

在当前目录的后缀为.py的文件中查找import


在目录/code中递归地查找import


在当前目录文件名包含t的文件中查找不包含=的内容

tail

用于查看文件的内容,有一个常用的参数-f常用于查阅正在改变的日志文件。
使用格式:tail [parameter] file

tail常用参数

  • -f:循环读取。对于正在修改的文件比较有用(如日志文件);
  • -n:显示文件最后几行;
  • -s:与-f合用,表示在每次循环间隙几秒。

组合使用

最经典的用法:使用Linux的终端中的管道符号|1在进程中查找,如ps aux|grep python
实现按照进程的CPU占用率/内存占用率排序:ps aux --sort -pcpups aux --sort -pmem
只输出少量信息(按enter查看更多):ps aux --sort -pcpu|less

参考

http://www.runoob.com/linux
http://www.cnblogs.com/peida
https://www.jianshu.com/p/e1abfb1d9e8d

1. 用法: command1 | command2,它的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2