0%

Shell学习笔记(4)——更多的bash shell命令

检测程序

ps命令有三种风格的参数:Unix,BSD和GNU。

  1. Unix风格:常用参数-ef,查看所有进程(-e)并且显示完整格式的输出(-f)。使用-l参数会获得更多的输出。输出中S所在列代表进程的状态(0表示正在运行;S正在休眠;R表示可运行,正等待运行;Z代表僵化,进程已结束但父进程不存在;T代表停止)。PRI表示进程优先级,数字越大优先级越低。SZ:假如内存被换出,所需交换空间的大致大小。-H参数可以用层级格式来显示进程(树状,用来显示父进程)。
  1. BSD风格:它的参数前面没有-。例如命令ps l。l参数中会输出更详细的进程状态码(STAT列)。这种双字符状态码第一个字符采用了和Unix风格S列的输出相同的值,第二个字符进一步说明进程状态。
    <:该进程运行在高优先级上;N:运行在低优先级上;L:有页面锁定在内存中;s:该进程是个控制进程;l:该进程是多线程的;+:该进程运行在前端。 3.GNU全字参数:最好用的是—forest参数,会显示层级信息,还会画出可爱的图标QAQ

实时监测进程可以用top命令。不过我推荐install一个htop,好看也更直观。

Linux上进程之间通过信号来通信。信号是预定义好的一个消息,进程能使被他并决定忽略还是作出反应,例如HUP代表挂起,INT中断,QUIT终止运行,KILL无条件终止。结束进程用kill [PID],使用-s参数传递信号给进程,kill –s [signal] [pid]。或者killall [name],进程名name支持通配符。

监测磁盘空间

Linux将所有的磁盘都挂载到一个虚拟目录下,在使用新的存储媒体之前,需要将它放在虚拟目录下,这叫做挂载。
  1. mount:mount命令会输出目前挂载的设备。手动挂载设备需要root权限,mount –t [type] [device] [directory]-o参数添加一些逗号隔开的额外选项,如ro只读,rw读写允许,loop挂载一个文件。将.iso挂载使用如下命令:mount –t iso9660 –o loop [ISO] [directory],ISO是镜像的路径。使用umount [directory || device]卸载设备。
  2. df:查看磁盘剩余空间,-h将磁盘空间显示为人类可读的格式(以M,G等作为单位)
  3. du:显示当前目录下所有文件、目录和子目录的磁盘使用情况,-c显示所有已列出文件总大小,-h按人类可读格式输出大小,-s显示每个输出参数总计。

处理数据文件

  1. 排序数据:sort [filename],即可对文本文件中的数据进行排序输出。-n可以将数字识别成数字而不是字符,-M正确识别月份等,参数很多,man sort看。
  2. 搜索数据:grep [options] pattern [file],pattern为需要匹配的模式,例如grep t file1是在file1中寻找含有t的行并输出这些行。-v参数进行反向搜索,输出不匹配的行;-n显示行数,-c显示有多少行含有匹配的模式;如果要指定多余一个匹配模式,得到所有结果,使用-e来指定每个模式:grep –e t –e f file1会输出含有t和f的所有行。还可以使用正则表达式,略。
  3. 压缩数据:bzip2/gzip [filename],会生成一个filename.bz2/gz的文件。bzcat/gzcat来查看压缩过的文本文件的内容,bunzip2/gunzip来解压文件。zip是另一个压缩程序,使用zip –r [zipname] [filename]来压缩filename至zipname.zip,-r参数用于递归压缩整个目录下的所有文件。
  4. 归档数据:使用tar –cvf [name].tar [object1] [object2]……来将objects归档进name.tar;使用-tf参数列出name.tar的内容但不解压缩;使用-xvf参数来解压name.tar。使用-jcvf/-zcvf将打包的文件再使用bzip2/gzip压缩到name.tar.bz2/name.tar.gz。使用-jxvf/-zxvf来解压缩.tar.bz2/.tar.gz或者.tgz文件。 大概先更到这里,我要去填别的坑了,有空再更。