Linux操作系统与服务配置
上QQ阅读APP看书,第一时间看更新

3.3.4 Shell的常用功能

RHEL 6.5默认的Shell是Bash(Bourne Again Shell),它除了担任用户与Kernel间沟通的管道之外,还具备以下特性:

①交互式处理(Intercative Processing)。

②命令补全功能(Command completion function)。

③查阅历史记录命令(history)。

④别名(Alias)功能。

⑤输入/输出重新导向(Input/Output Redirection)。

⑥管道(Pipes)。

1.交互式处理

自从用户登录系统开始,Shell就出现提示符号(视Shell与用户身份的不同会有不同的符号),并且等待用户输入命令。接收用户输入的命令后,按命令的不同来执行,执行完毕后,Shell会将结果回传给用户,并且两次显示提示符号,以等待用户的下一次输入。一直持续到执行exit或按【Ctrl+D】组合键注销Shell才会结束,这种沟通方式称为交互式处理(Intercative Processing)。

2.命令补全功能

命令补全功能(Command completion function)是指用户输入命令时,并不需要输入完整的命令,系统会自动找出最符合的名称,这种功能可以节省经常输入长串命令的时间。

例如:在系统中有很多以sys开始的命令,如果不记得完整的命令,只要输入开头的几个字母,快速按两次【Tab】键,就会出现所有以sys开始的命令,当输入syst,然后按【Tab】键系统就会自动补足完整的命令system(还字符串必须是唯一的),然后可以按照这种方式补充到最终命令。

【例3.5】命令补全功能一。

【例3.6】命令补全功能二。

[root@localhost /]# system- //只需要输入到syst,然后按一次【Tab】键,后面自动出现em-

3.查阅历史记录命令

①每当在Linux系统上输入命令并按下【Enter】键后,这个命令就会存放在命令记录表中,根据bash的默认值,这个记录表就是~/.bash_history文件。这个文件的保存记录定义在HISTSIZE环境变量中,默认的记录为1000笔,可以直接打开~/.bash_history文件,或者输入history | less命令来查看目前的命令记录。

【例3.7】history命令的一种用法。

②可以使用history n命令查阅最近的命令记录,如最近3笔记录的范例。

【例3.8】history命令的又一种用法。

③还有一种执行命令最快的方式就是使用命令记录号码,在命令记录中,每个命令都会赋予一个记录号码,可以利用这个号码来指定欲执行的旧命令,使用这个方法的语法为“!nnn”。

【例3.9】使用“!”和命令序号执行命令。

以上命令!!相当于执行了ls。

④别名(Alias)功能:指提供用户自行定义为简单的字符串,以替换复杂的命令选项,或者多个命令的连续组合,这可为用户量身定做自己习惯的操作命令。

例如,在DOS系统中通过dir命令显示目录中的内容,而在Linux中必须输入“ls–a”。若希望以dir替换“ls–a”,可以使用别名的功能。

【例3.10】alias命令的使用一

若想知道目前系统中所有的别名命令有哪些可以直接使用Alias命令,而不需要任何参数,可以使用如下命令。

【例3.11】alias命令的使用二。

若想取消刚才定义的别名,使用unalias命令来取消此别名。

【例3.12】unalias命令的使用。

⑤输入/输出重新导向。Linux中提供的输入/输出重新导向(I/O Redirection)功能提供了一套规则,让用户将执行所需的输入(<)或执行所需的输出(>),由标准的输入装置(stdin)键盘,或者标准的输出装置(stdout)显示器,重新导向到文件、打印机或其他装置(/dev/null)。

例如,命令cat/file1.txt>/file2.txt是将cat/file1.txt的输出结果导向文件(file2.txt),而不是显示器(stdout)。另外,命令是mail–s Jack<Letter.txt表示邮件并不是由键盘(stdin)输入,而是导向为由文件Letter.txt输入。

【例3.13】将命令的输出保存到文件,而不是显示器。

【例3.14】将文件aaa的内容作为命令的输入。

⑥管道。管道(Pipes)的功能可以将数个简单的命令集合在一起来执行一个较复杂的工作,除了第一个和最后一个命令之外,每个命令的输入都是前一个命令的输出,而每个命令的输出也将成为下一个命令的输入。

【例3.15】管道功能示例。