1、究竟什么是命令

一条命令不外乎以下四种情况:

  • 可执行程序。可执行程序就像在/usr/bin目录里看到的所有文件一样。在该程序类别中,程序可以编译为二进制文件,比如C、C++语言编写的程序,也可以是shell、Perl、Python、Ruby等脚本语言编写的程序。
  • shell内置命令。bash支持许多在内部称之为shell builtin的内置命令。例如,cd命令就是shell内置指令。
  • shell函数。shell函数是合并到环境变量中的小型shell脚本。
  • alias命令。我们可以在其他命令的基础上定义自己的命令。

2、识别命令

2.1、type–显示命令的类型

type命令是一个shell内置命令,可以根据指定的命令名显示shell将要执行的命令类型,格式如下:
​type command​

Linux--命令的使用_搜索

2.2、which–显示可执行程序的位置

有时候,系统中可能会安装一个可执行程序的多个版本。这种现象虽然在桌面系统中不常见,但是在大型服务器中却是很常见的。使用which命令可以确定一个给定可执行文件的准确位置。

Linux--命令的使用_搜索_02


which命令只适用于内置命令和命令别名(真正可执行程序的替代物)。试图在shell内置命令(例如,cd)中使用which命令时,要么没响应,要么得到一条错误信息:


3、获得命令文档

3.1、help–获得shell内置命令的帮助文档

bash为每一个shell内置命令提供了一个内置的帮助工具。输入help,然后输入shell内置命令的名称即可使用该帮助工具,例如:

Linux--命令的使用_可执行程序_03


注意表示法:出现在命令语法描述中的方括号表示一个可选项。竖线符号代表的是两个互斥的选项。比如:​​cd [-L|-P][dir]​​ 这种表示法说明,cd命令可能又一个-L参数,也可能是-P参数,甚至跟参数dir。

3.2、help–显示命令的使用信息

很多可执行程序都支持- -help选项,- -help选项描述了命令支持的语法和选项。例如:

Linux--命令的使用_搜索_04


一些程序不支持- -help选项,但是我们还是要试试。这通常会产生一条错误消息,该错误消息也能揭示相同的命令使用信息。

3.3、man–显示程序的手册页

大多数供命令行使用的可执行文件,提供一个称之为manual或者是man page的正式文档。该文档可以用一种称为man的特殊分页程序来查看,用法格式:​​man program​​​ 手册文档在格式上会有所不同,但是通常都包括标题、命令句法的摘要、命令用途的描述、命令选项列表以及每个命令选项的描述。但是,手册文档通常不包括实例,更多的是作为一个参考使用,而不是教程。例如,尝试查看​​ls​​命令的手册文档:

Linux--命令的使用_搜索_05


在大多数Linux系统中,man命令调用less命令来显示手册文档。所有,当显示手册文档是,你熟悉的所有less命令都能奏效。

man命令显示的“手册文档”被分为多个部分(section),它不仅包括用户命令,也包括系统管理命令、程序接口、文件格式等。

手册文档的组织结构

部分

内容

1

用户命令

2

内核系统调用的程序接口

3

C库函数程序接口

4

特殊文件,如设备结点和驱动程序

5

文件格式

6

游戏和娱乐,例如屏幕保护程序

7

其它杂项

8

系统管理命令

有时候我们需要查看手册文档的具体部分,以查找我们需要的信息。当我们所查找的一个文件格式同时也是一个命令名的时候,这一点就尤为重要了。如果没有指明部分编号(section number),通常我们会获得第一次匹配的实例(它可能会出现在第一部分)。为了指明具体在哪个部分,我们可以这样使用man命令:​​man section search-term​​​例如:​​man 5 passwd​​。该命令将会显示文件/etc/passwd的文件格式描述手册。

3.4、apropos–显示合适的命令

我们有可能会搜索参考手册列表,才进行基于某个搜索条目的匹配。尽管有些粗糙,但是这种方法有时还是有用的。下面是一个使用floppy为搜索条目,来搜索参考手册的例子。

Linux--命令的使用_超链接_06


在输出中,每一行的第一个字段四手册页的名称,第二个字段显示部分。主要,带有-k选项的man命令与apropos命令在功能上基本是一致的。

3.5、whatis–显示命令的简要描述

whatis程序显示匹配具体关键字的手册页的名字和一行描述。

Linux--命令的使用_搜索_07

3.6、info–显示程序的info条目

GNU项目提供了info页面来代替手册文档。info页面可通过info阅读器来显示。info页面使用超链接,这与网页结构很相似。
info程序读取info文件,该文件是树形结构,分为各个单独的节点,可一个节点包含一个主题。info文件包含的超链接可以实现节点间的跳转。通过前置星号可以识别超链接,将光标放在超链接上并按Enter键,可以激活它。
可以通过输入info以及程序名(可选的)来调用info。
例如:​​​info coreutils​

用于控制阅读器的命令

命令

功能


显示命令帮助

PAGE UP or BACKSPACE

返回上一页

PAGE DOWN or Spacebar

返回下一页

n

Next–显示下一个节点

p

Previous–显示上一个节点

u

Up–显示当前显示节点的父节点(通常是一个菜单)

ENTER

进入光标所指的超链接

q

退出

3.7、README和其他程序文档文件

系统中安装的很多软件包都有自己的文档文件,它们存放在​​/usr/share/doc​​​目录中。其中大部分文档文件是以纯文本格式存储的,因此可以用​​less​​​命令来查看。有些文件是HTML格式,并且可以用Web浏览器来查看。我们可以会遇到一些以​​.gz​​扩展名结尾的文件。这表明它们是使用gzip压缩程序压缩过的。gzip包包含一个特殊的less版本,称之为zless。zless可以显示由gzip压缩过的文本文件的内容。


4、使用别名创建自己的命令

我们可以使用​​alias​​​命令创建自己的命令,但是在开始前,我们需要展示一个命令行的小技巧,通过使用分号来分隔多条命令,就可以将多条命令输入在一行中,其工作方式为:​​command1;command2;command3...​

Linux--命令的使用_超链接_08


我们可以看到,我们将3条命令放置在同一行中。首先我们将当前目录改变为/usr,然后列出这个目录内容,最后返回到原始目录(使用cd -)。那么程序结束的位置恰恰是开始的位置。现在,我们通过​​alias​​命令将以上命令整合成一条新的命令,首先要为新命令虚构出一个名称,试试名称test。不过输入前,我们最好检查一下名称test是否已经被使用过了。为此,我们可以再次使用​​type​​命令.。

Linux--命令的使用_搜索_09


这个名字已经用过了,试试foo

Linux--命令的使用_超链接_10


foo没有被使用。下面创建新命令的别名:

Linux--命令的使用_超链接_11


注意这个命令的结构:​​alias name='string'​

在​​alias​​命令之后输入name,紧接着是一个等号(没有空格),等号之后是一个用单引号括起来的字符串,该字符串的内容将赋值给name。定义好的别名可以用在shell期待的任何地方:

Linux--命令的使用_超链接_12


也可以再次使用type命令来查看别名:

Linux--命令的使用_可执行程序_13


要删除别名,可以使用unalias命令:

Linux--命令的使用_超链接_14