在传统的类UNIX操作系统中,所有的管理工作都是通过命令的方式完成,虽然在目前的绝大多数Linux的发行版中都包括了图形界面,一些管理工作可以通过图形工具完成。但是作为一个合格的Linux工程师,最直接、最有效的管理方式还是使用命令,因为Linux绝大多数的管理工作必须通过命令完成。在开始学习Linux命令之前我们首先应该了解Linux命令的一些基础知识。
在Linux操作系统中,命令一般分为以下两种。
(1)Shell内部命令:Shell内部命令是一些较为简单的又常用的命令,如cd、mkdir、rm等,这些命令在Shell启动时载入内存,就像是操作系统本身所具有的命令一样。
(2)Shell外部命令:Linux中大多数命令属于Shell外部命令,每一个Shell外部命令都有一个独立的可执行程序。也就是说,Shell外部命令实际上是一些实用工具程序,管理员可以独立地在Shell环境下安装或卸载这些Shell外部命令。
在Linux中执行命令时,Shell内部命令可以在任何目录、任何时间执行,而Shell外部命令在执行时,Linux必须可以找到对应的可执行程序。在Shell中有一个名为PATH的环境变量(可使用如下方法显示PATH的内容),该变量中包括一些路径用于Shell自动搜索。如果可执行程序直接位于PATH变量所包括的路径中,则可以直接输入可执行程序的名称;如果不在PATH变量所包括的路径中,则需要指定路径来运行这个可执行程序。
· 查看PATH变量内容。
· 不在PATH变量中定义的路径必须使用绝对路径来运行这个可执行程序。
[root@srv ~]# /usr/local/apachectl start
Shell解释器在用户和内核之间相当于一个翻译的角色,负责解释用户输入的命令。Shell是操作系统与用户进行交互的界面,当用户输入命令后由Shell对命令进行分析并交给适当的后台程序进行处理,等待处理完成后,将处理结果返回给用户。根据程序功能的不同,Shell可能返回一些输入信息或不返回任何输入信息。在Linux中命令的基本格式都采用如下所示的格式。
命令 [选项] [参数]
命令是需要执行的操作;选项说明对命令的要求;参数用于描述命令的作用对象。在下面的例子中“ls”是需要执行的操作;“-l”选项表示对“ls”的要求(在“ls”命令中“-l”表示要求以长格式显示文件信息);“/boot”是“ls”命令的参数,表示“ls”命令的作用对象是“/boot”目录。
在执行Linux命令时可以根据需要包括“选项”或“参数”,通过“选项”或“参数”可以让一个命令每次运行时都能够接受用户不同的指令,采取不同的运行方式、作用于不同的对象、产生不同的运行结果,一般“选项”会出现在“参数”的前面。在执行Linux命令时需要注意以下几点。
(1)在Linux中无论是文件名、目录名、命令等对英文字符的处理都是区分大小写的,因此“ls”和“LS”代表两个不同的命令。
(2)在“命令”、“选项”、“参数”中间至少使用一个空格分隔。
(3)虽然并不是所有的Linux命令都要求“选项”必须出现在“参数”前面,但推荐在执行命令时,“选项”放在“参数”前面。
(4)在Linux命令中“选项”一般需要一个引导符,以“-”引导的是短格式选项(单个字符),如“-l”;以“--”引导的是长格式选项(多个字符),如“--detail”。多个短格式选项可以写在一起,只用一个“-”引导,如“-rv”和“-r -v”表示相同的意思。
在Linux的图形界面打开终端或是在虚拟控制台中输入命令时,系统都提供了一些辅助操作提高命令的输入效率,下面介绍几种常用的辅助操作。
(1)Tab键补全命令行。当在命令提示符下输入命令或程序名时,可以不必输入完整命令或程序名,使用Tab键,Linux系统将自动补全命令、程序名、文件或目录。比如希望从当前切换到/etc/services目录下可以输入“cd /e<Tab键>/ser<Tab键>”。Tab键根据前几个字母查找出匹配内容,如果内容唯一会自动将所有内容补全,如果内容不唯一系统将不会做出任何反应,这时可连续使用两次Tab键会列出与前几个字母匹配的所有内容。图 3-46中在cd /etc/s后使用两次Tab键的效果。
图3-46 Tab键补全
图3-47 history
(2)历史命令。Linux系统中保留了用户键入的每一个命令的历史记录,并提供多种方式让用户方便从历史记录中找到命令。查看当前历史记录可使用“history”命令(如图 3-47所示),在history命令中每个历史记录都有一个编号,使用“history -c”可清除命令的历史记录。可以通过“↑”和“↓”方向键快速浏览历史记录列表。
(3)快捷键。在图形界面打开终端或虚拟控制台都可以使用以下快捷键(这些快捷键使用是不区分大小写的)。
· Ctrl+U:清空从光标所在位置到行首。
· Ctrl+K:清空从光标所在位置到行尾。
· Ctrl+L:清屏,相当于“clear”命令。
· Ctrl+C:停止本次命令的执行。
· Ctrl+R+<若干字符>:开始向上搜索包含该字符的命令,继续按Ctrl+R,查找上一条匹配的命令。
· Ctrl+U:剪切命令行中光标所在处之前的所有字符(不包括自身)。
· Ctrl+K:剪切命令行中光标所在处之后的所有字符(包括自身)。
· Alt+<:历史列表第一项。
· Alt+>:历史列表最后一项。
· Alt+u:把当前词转化为大写。
· Alt+l:把当前词转化为小写。
(4)使用上一行命令的最后一个参数。在输入命令时使用【ESC+.】组合键可以在光标所在位置加入上一行命令的最后一个参数。如上一行命令是“cp /boot/grub/grub.conf/home/charles”,那么使用“ESC+.”可以在光标所在位置加入“/home/charles”。
(5)特殊字符。!<数字>:执行命令历史列表的第<数字>条命令;!!:执行上一条命令;!<字符串>:执行含指定字符串的最新命令。
(6)强制换行。在输入命令的过程中如果命令太长,可以通过“\”分多行输入。
[root@srv ~]# cp /boot/grub/grub.conf \
> /home/charles
(7)在使用Linux命令指定文件、目录以及在一些查找中指定“范本样式”时,可使用一些通配符:“*”任意个字符、“?”任意一个字符、“[0-9]”表示0到 9、“[abc]”匹配“abc”中的任何一个字符、“[^abc]”不能匹配“abc”中的任何一个字符。
在各种Linux发行版中包含了大量的开源软件,如在RHEL 5.x中就包括了Apache、Samba、Squid等。这些开源软件不但向用户开放其源代码,而且还提供了软件开发者或其他参与者编写的大量帮助文档。这些帮助文档会与软件一起发布,并且随软件一起安装到系统中,用户可以在使用这些开源软件时使用这些帮助文档。一般Linux用户可以通过以下几种方法获得一个命令的帮助信息。
大多数Linux命令都提供了对应的联机帮助文档,这些文档可以使用“man”命令查看。使用man命令时,只需在所查找的命令前输入“man”即可。在图 3-48的例子中就是使用“man”命令查看“touch”命令的联机帮助文档。
“man”命令显示的帮助文档的信息一般保存在“/usr/shareman”目录,在显示帮助文件时一般包括以下几个部分。
(1)NAME:显示程序名称。如果有其他一些和待帮助程序包有关的程序,也会同时显示。
(2)Synopsis:显示命令的格式及所有的选项和参数。
(3)Description:显示程序功能的描述信息。
(4)Options:显示所有选项清单及功能描述。
图3-48 man
(5)See Also:显示与这个程序相关的其他程序。
(6)Files:显示这个程序使用或修改的文件。
(7)History:显示这个程序开发的重要里程碑。
(8)Authors:显示程序的作者。
使用“man”命令显示帮助文档时会进入“man”命令的环境,在该环境中会用到以下功能键。
(1)q:退出“man”命令。
(2)回车:一行一行地向下翻页。
(3)空格:一页一页地向下翻页。
(4)b:向上翻页。
(5)/ <字符串>:在帮助文档中查找“<字符串>”中指定的内容。
(6)n:查找上一次查找内容的下一个匹配。
Shell命令一般可以使用“-h”或“--help”选项获得帮助信息,有些Shell命令两种方式都支持,有些Shell命令只支持其中一种(如图 3-49所示)。使用“-h”或“--help”选项时所获得的帮助信息只是比较简单的帮助信息,并没有“man”命令全面。
图3-49 --help
help命令用于查看Shell命令的使用方法。使用help命令时,只需在所查找的命令前输入“help”即可,如图 3-50所示。
图3-50 help
info是GUN的超文本帮助系统,大多数Linux软件都提供了info文件形式的在线帮助文档。info文件一般保存在“/usr/shrare/info”目录,可以使用info命令查看。使用info命令时,只需在所查找的命令前输入“info”即可,如图 3-51所示。
图3-51 info