一 命令
命令可以是下面四种形式之一:
1.是一个可执行程序,就像我们所看到的位于目录/usr/bin中的文件一样。属于这一类的程序,可以编译成二进制文件,诸如用C和C++语言写成的程序。也可以是由脚本语言写成的程序,如shell,Perl,Python,ruby,等等。
2.是一个內建于shell自身的命令。bash支持若干命令,内部叫做shell内部命令(builtins)。例如:cd命令就是一个shell内部命令。
3.是一个shell函数。这些是小规模的shell脚本,它们混合到环境变量中。在后续的章节中,我们将讨论配置环境变量以及书写shell函数。
4.是一个命令别名。我们可以定义自己的命令,建立在其他命令之上。
二 识别命令
1.显示命令类型:type
type命令是shell内部命令,它会显示命令的类别:
type command
“command”是要检测的命令名。
示例:
xyw@xyw-virtual-machine:~$ type type
type 是 shell 内建
xyw@xyw-virtual-machine:~$ type ls
ls 是 `ls --color=auto' 的别名
xyw@xyw-virtual-machine:~$ type cp
cp 是 /bin/cp
注意:ls命令实际上是ls命令加上选项“–color=auto”的别名。
2.显示一个可执行程序的位置:which
有时在一个操作系统中,不只安装了可执行程序的一个版本。为了确定所给定的执行程序的准确位置,使用which命令:
xyw@xyw-virtual-machine:/usr$ which ls
/bin/ls
xyw@xyw-virtual-machine:/usr$ which less
/usr/bin/less
xyw@xyw-virtual-machine:/usr$ which cp
/bin/cp
注意:which命令只对可执行程序有效,不包括内部命令和命令别名。别名是真正的可执行程序的替代物。
当试着使用shell内部命令时,例如:cd命令,我们或者得不到回应,或者得到一个错误信息。
3.得到shell内部命令的帮助文档:help
bash有一个內建的帮助工具,可供每一个shell内部命令使用。
输入“help”,接着是shell内部命令名:
[me@linuxbox ~]$ help cd
cd: cd [-L|-P] [dir]
Change ...
注意:出现在命令语法说明中的方括号,表示可选的项目。一个竖杠字符表示互斥选项。在上面cd命令的例子中:
cd [-L|-P][dir]
这种表示法说明:cd命令可能有一个“-L”选项或者“-P”选项,进一步,可能有参数“dir”
4.显示用法信息:–help
许多可执行程序支持一个–help选项,这个选项是显示命令所支持的语法和选项说明:
xyw@xyw-virtual-machine:~$ mkdir --help
用法:mkdir [选项]... 目录...
Create ...
5.显示程序手册页:man
许多希望被命令行使用的可执行程序,提供了一个正式的文档,叫做手册或手册页(man page)。一个特殊的叫做man的分页程序,可用来浏览它们:
man program
”program“是要浏览的命令名。
手册文档的格式有点不同,一般地包含一个标题、命令语法的纲要、命令用途的说明、命令选项列表及每个选项的说明。
在大多数Linux系统中,man使用less工具来显示参考手册。所以当浏览文档时,你所熟悉的less命令都能有效。
man所显示的参考手册,被分成几个章节。它们不仅仅包括用户命令,也包括系统管理员命令、程序接口,文件格式等。下表描绘了手册的布局:
有时候需要查看参考手册的特定章节,从而找到需要的信息。没有指定章节号时,总是得到第一个匹配项。
可以这样使用man命令来指定章节号:
man section search_term
例如:
xyw@xyw-virtual-machine:~$ man 5 passwd
结果:
PASSWD(5) 文件格式和转化
名称
passwd - 密码文件
描述
...
命令运行结果会显示文件/etc/passwd的文件格式说明手册。
6.显示适当的命令:apropos
可以使用apropos命令基于某个关键字的匹配项来搜索参考手册列表,例如以“floppy”为关键词:
xyw@xyw-virtual-machine:~$ apropos floppy
fdformat (8) - low-level format a floppy disk
...
输出结果每行的第一个字段是手册页的名字,第二个字段展示章节。
注意:man命令加上”-k“选项可以和apropos完成同样的功能。
7.显示非常简洁的命令说明:whatis
whatis程序显示匹配特定关键字的手册页的名字和一行命令说明:
xyw@xyw-virtual-machine:~$ whatis ls
ls (1) - list directory contents
8.显示程序info条目:info
GNU项目提供了一个命令程序手册页的替代物,称为“info”。info内容可通过info阅读器程序读取,info页是超级连接形式的,与网页很相似。
info程序读取info文件,info文件是树型结构,分化为各个结点,每一个包含一个题目。info文件包含超级链接,它可以让你从一个结点跳到另一个结点。一个超级链接可通过它开头的星号来辨别出来,把光标放在它上面并按下enter键,就可以激活它。
当显示一个info页面时,用下表中的命令来控制阅读器:
到目前为止,我们所讨论的大多数命令行程序,属于GNU项目“coreutils”包。所以输入:
xyw@xyw-virtual-machine:~$ info coreutils
将会显示一个包含超级链接的手册页,这些超级链接指向包含在coreutils包中的各个程序。