《Linux命令行与Shell脚本编程大全》学习笔记2

来源:互联网 发布:mac怎么截取gif动态图 编辑:程序博客网 时间:2024/05/18 01:35
     0、下面是书本第四章<更多的bash shell命令>的学习笔记,并且只记录那些,本人不知道的抑或遗忘的内容。

     1、命令ps,Linux系统中使用的GNU ps命令支持3个不同类型的命令行参数:Unix风格的参数,前面加单破折线;BSD风格的参数,前面不加破折线;GNU风格的长参数,前面加双破折线。参数-e显示所有的进程,-f显示完整格式的输出,因此想查看系统上运行的所有进程,可以用-ef;-H参数能把输出的进程组织成一个层数的格式,简单地说就是树状,这样可以轻松地看懂那些进程启动了那些进程,但是用GNU风格的--forest参数,显示的树状结构,更清晰;BSD风格的l参数能输出更详细的状态码(STAT列)。双字符状态能比Unix风格输出的单字符状态码更清楚地表示进程的当前状态。最后man ps后的文档,真的讲的非常清晰,非常好。

     2、命令top,与ps命令类似,但该命令能实时显示进程的信息,默认情况,top命令在启动时会按%CPU值来排序,top中交互命令都是单字符,在top命令运行时键入可改变top的行为。u显示某个用户的进程,k结束指定的进程(必须是进程属主或root用户),h可显示帮助信息。

     3、命令kill,默认情况下,kill命令会向命令行中列出的全部PID发送一个TERM信号,TERM信号告诉进程可能的话停止运行。不过,如果有跑飞的进程,通常会忽略这个请求。如果进程忽略它,可用INT或HUP。程序收到了这些信号,会在关掉进程前有序地停止它正在做的事。KILL信号的强制性最强。当进程收到这个信号时,它会立即停止运行。这可能导致文件损坏。主要我们在使用top命令可以用交互命令k来杀进程,这是非常方便的。kill命令只能用进程的PID而不能用命令名,而killall命令通过进程名而不是进程号来结束进程,并且killall命令也支持通配符。

     4、命令mount,默认情况下,mount命令会输出当前系统上挂载的设备列表。要手动在虚拟目录中挂载设备,需要以root用户身份登录。通常手动挂载媒体设备的基本命令:mount -t type device directory。type参数指定了磁盘格式化的文件系统类型,后两个参数定义了该存储设备的设备文件的位置以及挂载点在虚拟目录中的位置。.iso文件是将一个完整的CD镜像文件。大多数烧录CD的软件都能基于这个.iso文件来烧录一张CD。mount命令的特性之一就是允许你将一个.iso文件直接挂载到Linux虚拟目录里,而不用先将它烧录到CD里。可用-o参数加上loop选项来完成这个操作。mount命令会将CD镜像.iso文件当做真实CD来挂载,用户就能访问它的文件系统了。

     5、命令umount,可用来移除一个可移动设备,注意命令名中并没有字母n。

     6、命令df,可用查看已挂载磁盘的使用情况,通常会使用参数-h,以方便阅读。注意该命令的输出值显示的是Linux系统认为的当前值。有可能系统上有运行的进程已经创建或删除了某个文件,但尚未释放文件。这个值是不会算进闲置空间的。

     7、命令du,会递归显示当前目录下所有的文件、目录和子目录的磁盘使用情况,它会以磁盘的块为单位来显示每个文件或目录占用了多大的存储。参数-h会显示成方便可读的方式;参数-s
会显示每个输出参数的总计,比如du -s会显示当前目录下所有文件的大小总和;一个常用的命令是du -h --max-depth=1 显示当前文件以及目录(实质是该目录下所有的文件大小总合)的大小。也可对输出结果排序du -h --max-depth=1 | sort -hr,按从大到小输出,用命令du -hs * | sort -hr 能达到同样的目的,两个命令sort命令的参数-h,他可以用来比较可读的数据。比如2K、1G等数据。

     8、命令sort,想特意强调的参数-k和-t,这两个参数在对按字段分隔的数据进行排序时非常有用,例如/etc/passwd文件。可以用-t参数来指定字段分隔符,然后用-k参数来指定排序的字段。例如,要对/etc/passwd根据用户ID进行数值排序,可以这么做:sort -t ':' -k 3 -n /etc/passwd。

     9、bzip2工具是个正在逐渐普及的相对来说较新的压缩包,在压缩大型二进制文件领域尤其流行。bzip2软件包有以下几个工具,bzip2:用来压缩文件;bzcat:用来显示压缩的文本文件的内容;bunzip2用来解压缩压缩后的.bz2文件;bzip2recover:用来尝试恢复损坏的压缩文件。默认情况下,bzip2命令尝试压缩原始文件,并用压缩后的文件(同样的文件名后加.bz2扩展名)替换它,并且该工具不能应用到目录文件,支持文件名使用通配符。

     10、到目前为止,Linux上最流行的文件压缩工具就是gzip工具了。这个软件包含下面的工具,gzip:用来压缩文件;gzcat:用来查看压缩过的文本文件的内容;gunzip:用来解压文件。同样命令gzip尝试压缩原始文件,并用压缩后的文件(同样的文件名后加.gz扩展名)替换它,并且该工具不能应用到目录文件,同样支持文件名使用通配符。

     11、Linux的zip软件包含5个命令,zip:创建一个压缩文件,包含指定的文件和目录;zipcloak:创建一个加密的压缩文件,包含指定的文件和目录;zipnote:从zip文件中提取批注;unzip:从压缩过的zip文件中提取文件和目录。要查看zip命令的可选参数,在命令行下输入命令自身。zip命令的强大之处,它能够将这个目录下的文件都压缩到单个文件。这让它成为归档整个目录结构的理想工具。并且压缩后的文件依然存在,需要指定压缩后的文件名字。在利用命令unzip时,会在当前zip文件位置重新构建这个目录结构,当前构建后,则个.zip文件还是存在的,这个与windows下是一样的。

     12、命令tar,这是Linux最常使用的归档工具,tar命令最开始是用来将文件写到磁带设备上归档的,然而它也能把输出写到文件里,这种用法在Linux上已经普遍用来归档数据了。参数-c创建一个新的tar归档文件;-x从已有tar归档文件中提取文件;-f file将输出结果到文件或设备file;-v在处理文件时显示文件;-z将输出重定向给gzip命令来压缩文件。tar命令是给整个目录结构创建归档文件的简单方法。这是Linux中分发开源程序源代码文件采用的普遍方法。下载了开源软件之后,会经常看到文件名以.tgz结尾。这些是gzip压缩过的tar文件,可以用命令tar -zxvf filename.tgz来解压。