linux基础命令(二)

前言:上回我们介绍了如何查看及文件目录,如何创建目录和文件,如何复制、删除、移动目录和文件以及如何查找目录和文件,这次我们会介绍其他linux的常用命令,以及如何通过命令来寻求帮助。

在linux系统中,凡是在字符操作界面中输入的能够完成特定操作和任务的字符串,都可以称为“命令”。而严格一点来说,“命令”通常只代表了实现某一类功能的指定或程序的名称。

linux命令行的通用格式有助于在学习命令的过程中举一反三,了解使用大多数命令的基本方法。linux系统中能够使用的命令数量繁多,具体选项也各不相同,使用格式也可能存在细微区别。下面介绍几种常用的使用在线帮助的方法。

1.使用help命令

help命令本身是linux shell中的一个内建指令,其用途是查看各shell内部命令的帮助信息。使用help命令时,只需要添加内部指令的名称作为参数即可。
可跟选项:
-s:输出短格式的帮助信息。仅包括命令格式。
例如,执行“help pwd”命令可以查看shell内部命令pwd的帮助信息(pwd命令用于显示当前用户所在的工作目录)。
linux基础命令(二)
对于大多数linux外部命令,可以使用一个通用的命令选项“–help”,用于显示对应命令字的格式及选项等帮助信息。若该命令字没有“–help”选项,一般只会提示简单的命令格式。例如,执行“ls --help”命令可以查看ls命令的帮助信息(ls命令用于显示文件或目录列表信息)。
linux基础命令(二)
。。。。。。。。中间省略部分内容
linux基础命令(二)

2.使用man手册页

man手册页(manual page)是linux系统中最为常用的一种在线帮助形式,绝大部分的外部软件在安装时为执行程序、配置文件提供了详细的帮助手册页。这些手册页中的信息按照特定的格式进行组织,通过统一的手册页浏览程序man进行阅读。
可跟选项:
-a:在所有的man帮助手册中搜索;
-f:等价于whatis指令,显示给定关键字的简短描述信息;
-P:指定内容时使用分页程序;
-M:指定man手册搜索的路径。
例如,执行“man file”命令可以查看file命令的手册页信息(file命令用于判断文件的类型)。
linux基础命令(二)
linux基础命令(二)
…省略部分内容
在阅读man手册时将以全屏的文本方式显示,并且提供了交互式的操作环境。按向上箭头、向下箭头可以进行上下的滚动一行文本内容,按page up键和page dpwn键可以向上、向下翻页显示。按Q或q键可以随时退出手册页的阅读环境,按 / 键后可以对手册内容进行查找。

在linux系统中,绝大多数的配置文件都是以普通文本格式保存的,这些配置文件决定系统相关服务、程序的运行特性。对于一个文本格式的配件文件,可以有不同的查看方式来获知文件内容,如直接显示整个文件内容、分页查看文件内容,或者只查看文件开头或末尾的部分内容,在linux系统中,分别由不同的命令来实现这些操作。

3.cat——显示并连接(concatenate)文件的内容

cat命令本来用于连接多个文件的内容,但在实际使用中更多地用于查看文件内容。cat命令是应用最为广泛的文件内容查看命令。
使用该命令时,只需要把要查看的文件路径作为参数即可。例如,以下操作就可以查看网卡配置文件中的内容,并了解其配置信息。
linux基础命令(二)

4.more和less——分页查看文件内容

使用cat命令可以非常简单地直接显示出整个文件的内容,但是当文件中的内容较多时,很可能只能看到最后一部分信息,而文件前面的大部分内容却不及看到。而more和less命令通过采用全屏的方式分页显示文件,便于我们从头到尾仔细地阅读文件内容。

more命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)可以用下列不同的方法对提示做出回答:

按Space键:显示文本的下一屏内容。
按Enier键:只显示文本的下一行内容。
按斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键:显示帮助屏,该屏上有相关的帮助信息。
按B键:显示上一屏内容。
按Q键:退出rnore命令。
可以选项:
-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,‘q’ to quit.]”和“[Press ‘h’ for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线;
+<数字>:从指定数字的行开始显示。

less命令less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。

可以选项:
-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。

5.head和tail——开头或末尾的部分内容

head和tail是一对作用相反的命令,前者用于显示文件开头的一部分内容,后者用于显示文件末尾的一部分内容。可以使用“-n”选项(n为具体的行数)指定需要显示多少行的内容,若不指定行数,默认显示十行。

head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。

可跟选项:
-n<数字>:指定显示头部内容的行数;
-c<字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。
例如,查看用户账号文件 /etc/passwd 开头第1行至第4行的部分内容。
linux基础命令(二)

tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。
可跟选项:
–retry:即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
-c或——bytes=:输出文件尾部的N(N为整数)个字节内容;
-f<name/descriptor>或;–follow:显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。“-f”与“-fdescriptor”等效;
-F:与选项“-follow=name”和“–retry"连用时功能相同;
-n或——line=:输出文件的尾部N(N位数字)行内容。
–pid=<进程号>:与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
-q或——quiet或——silent:当有多个文件参数时,不输出各个文件名;
-s<秒数>或——sleep-interal=<秒数>:与“-f”选项连用,指定监视文件变化时间隔的秒数;
-v或——verbose:当有多个文件参数时,总是输出各个文件名;
–help:显示指令的帮助信息;
–version:显示指令的版本信息。
例如,查看系统公共日志文件 /var/log/messages的最后十行内容,并在末尾跟踪显示该文件中新纪录的内容(按ctrl+c组合键终止)。
linux基础命令(二)

在维护linux系统的过程中,除了查看文件内容以外,有时还需要对文件内容进行统计,或者查找符合条件的文本内容。下面将学习统计和检索文件内容的两个命令工具。

6.wc——统计文件内容中的单词数量(word count)、行数等信息

wc命令用来计算数字。利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。
可跟选项:
-c或–bytes或——chars:只显示Bytes数;
-l或——lines:只显示列数;
-w或——words:只显示字数。
例如,统计当前linux系统中拥有的用户账号数量。
linux基础命令(二)

7.grep——检索、过滤文件内容

grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
可跟选项:
-a 不要忽略二进制数据。
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C<显示列数>或-<显示列数> 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。
例如,在账号文件 /etc/passwd中查找包含“ftp”字符串的行,实际上输出了名为ftp的用户账号的信息。
linux基础命令(二)

在linux系统中,最简单的文件和目录备份工具就是cp复制命令。但是当需要备份的文件、目录数量较多时,仅仅使用cp命令就显得有点力不从心,备份出来的文件数量及其所占用的磁盘空间可能都会对服务器产生不小的压力。因此,有必要对需要备份的数据进行归档和压缩。

这里所说的归档操作实际上相当于“打包”,即将许多个文件和目录合并保存为一个整体的包文件,以方便传递或携带。而压缩操作可以进一步降低打包好的归档文件所占用的磁盘空间,充分提供备份介质的利用率。
linux系统中较常用的压缩命令工具包括gzip、bzip2,最常用的归档命令工具为tar。使用tar命令可以通过特定选项自动调用gzip、bzip2程序,以完成归档、压缩的整套流程,当然也可以完成解压、释放已归档文件的整套流程。
以下分别介绍压缩和归档命令的使用方法。

8.使用压缩和解压缩工具

8.1 gzip和gunzip命令

gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。

gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。
可跟选项:
-a或——ascii:使用ASCII文字模式;
-d或–decompress或----uncompress:解开压缩文件;
-f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h或——help:在线帮助;
-l或——list:列出压缩文件的相关信息;
-L或——license:显示版本与版权信息;
-n或–no-name:压缩文件时,不保存原来的文件名称及时间戳记;
-N或——name:压缩文件时,保存原来的文件名称及时间戳记;
-q或——quiet:不显示警告信息;
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串;
-t或——test:测试压缩文件是否正确无误;
-v或——verbose:显示指令执行过程;
-V或——version:显示版本信息;
-<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;
–best:此参数的效果和指定“-9”参数相同;
–fast:此参数的效果和指定“-1”参数相同。

gunzip命令用来解压缩文件。gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为.gz。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。

可跟选项:
-a或——ascii:使用ASCII文字模式;
-c或–stdout或–to-stdout:把解压后的文件输出到标准输出设备;
-f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
-h或——help:在线帮助;
-l或——list:列出压缩文件的相关信息;
-L或——license:显示版本与版权信息;
-n或–no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理;
-N或——name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上;
-q或——quiet:不显示警告信息;
-r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-S或<压缩字尾字符串>或----suffix<压缩字尾字符串>:更改压缩字尾字符串;
-t或——test:测试压缩文件是否正确无误;
-v或——verbose:显示指令执行过程;
-V或——version:显示版本信息;

8.2 bzip2和bunzip2

bzip2命令用于创建和管理(包括解压缩)“.bz2”格式的压缩包。我们遇见Linux压缩打包方法有很多种,以下讲解了Linux压缩打包方法中的Linux bzip2命令的多种范例供大家查看,相信大家看完后会有很多收获。

可跟选项:
-c或——stdout:将压缩与解压缩的结果送到标准输出;
-d或——decompress:执行解压缩;
-f或-force:bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖。请使用此参数;
-h或——help:在线帮助;
-k或——keep:bzip2在压缩或解压缩后,会删除原始文件。若要保留原始文件,请使用此参数;
-s或——small:降低程序执行时内存的使用量;
-t或——test:测试.bz2压缩文件的完整性;
-v或——verbose:压缩或解压缩文件时,显示详细的信息;
-z或——compress:强制执行压缩;
-V或——version:显示版本信息;
–repetitive-best:若文件中有重复出现的资料时,可利用此参数提高压缩效果;
–repetitive-fast:若文件中有重复出现的资料时,可利用此参数加快执行效果。

bunzip2命令解压缩由bzip2指令创建的”.bz2"压缩包。对文件进行压缩与解压缩。此命令类似于“gzip/gunzip”命令,只能对文件进行压缩。对于目录只能压缩目录下的所有文件,压缩完成后,在目录下生成以“.bz2”为后缀的压缩包。bunzip2其实是bzip2的符号链接,即软链接,因此压缩解压都可以通过bzip2实现。

可跟选项:
-f或–force:解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件;
-k或——keep:在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数;
-s或——small:降低程序执行时,内存的使用量;
-v或——verbose:解压缩文件时,显示详细的信息;
-l,–license,-V或——version:显示版本信息。

9.使用tar归档和释放工具

tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

可跟选项:
-A或–catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或–create:建立新的备份文件;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或–extract或–get:从备份文件中还原文件;
-t或–list:列出备份文件的内容;
-z或–gzip或–ungzip:通过gzip指令处理备份文件;
-Z或–compress或–uncompress:通过compress指令处理备份文件;
-f<备份文件>或–file=<备份文件>:指定备份文件;
-v或–verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-v:显示操作过程;
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p或–same-permissions:用原来的文件权限还原文件;
-P或–absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
–exclude=<范本样式>:排除符合范本样式的文件。
例如,在目录 /opt下创建gzip格式的压缩包,名字为httpa,将 /opt目录下的 httpd文件夹压缩,显示详细过程并执行。
linux基础命令(二)
将 /opt目录下的 httpda.tar.gz 压缩包解压到 /mnt目录下。
linux基础命令(二)
总结:在主机中安装了linux操作系统以后,就具备了提供软件服务、网络服务等功能的基础。然而随操作系统一起安装的软件包毕竟只有少数,实现的功能也比较有限,当需要为主机提供更多的功能时,安装新的应用程序就成为必然要面对的工作。所以,需熟练掌握各种安装及管理程序的命令。