命令行星期二——第五部分
=========================================================
对，你也许已经猜到了又是我们相见的时候了。这一次我们将会学习如何使用命令工作。因此，事不宜迟，我们直入正题吧。

肖茨先生指出，到现在为止，我们学习了一些神奇的命令及其参数和选项，而今天正是我们揭开他们那神秘面纱一角的一天。我们将会学习如下的一些命令及其作用：type, which, help和man。但是在此之前，我么先学习一下——

###什么是命令？###

我们可以将**命令**分为四个种类。

**1）可执行的程序：**命令可以是一个可执行程序。如果你在前面的课程中有遍历过你的系统，这也是你应该做的。你也许已经发现了/user/bin这个目录，你看到很多的像transmission-gtk, deluge-gtk等的名字。对我们新手来说，现在这些可以编译成二进制文件或者用脚本语言编写的可执行程序具体是什么并不太重要。重点是，他们是可执行文件，你可以运行它们。找到/user/bin这个目录，列出里面的文件，随便挑一个去运行它。

**2）shell内置命令：** bash提供了一系列的shell内置命令，例如，cd命令就是一个shell内置命令。

**3）shell函数：**内置于系统环境中的小型的shell脚本。现在我们简单的提及一下它，因为在后面的几个星期中我们将要学习它。

**4）别名：**你可以基于其他命令定义你自己的命令。我们也会在后面的课程中学习到。

现在，知道我们要处理的命令的哪一类是有意义的。我们可以使用**type**命令查看。

###type###

你可以使用**type + command**来查看你要使用的命令属于什么类型。你只要输入type command就可以得到命令类型的输出，如下：

![type mkdir](https://news.opensuse.org/wp-content/uploads/2014/07/Zaslonska-slika-2014-07-15-091448.png)

或者

![type ls](https://news.opensuse.org/wp-content/uploads/2014/07/Zaslonska-slika-2014-07-15-091640.png)

从上面例子可以看出‘ls’命令实际上是‘\_ls’的别名。（LCTT译注：不同机器上的别名定义可能不同，比如RedHat/Centos系列上，ls实际上是‘ls --color=auto’的别名，而这个‘\_ls’想必是openSUSE上的情况。）

###which###

有时（虽然在桌面系统中很少会出现这种情况），在一台机器中存在一个可执行程序的多个版本。为了找到某个可执行程序的准确位置，我们可以使用which命令。which命令只对可执行程序有用。

![which transmission-gtk](https://news.opensuse.org/wp-content/uploads/2014/07/Zaslonska-slika-2014-07-15-092052.png)

如今，多数的命令都会附带说明文档，因此，当你在没有网络的的情况下使用命令行时，你不能在论坛或者IRC上提问，但是你又必须要知道某个命令的准确用法。此时你有两种解决方法，第一个是——

###help###

help命令对shell内置命令有用（在上面的第二类中我们有提到过）。所以，你可以选择一个shell内置命令为例，如cd，简单的输入help cd即可。你会得到一个有用的页面，去试一下看cd为我们提供了什么功能。该页面列出了该命令的用法和可选项（选项列在方括号中，表明它们是可选的，如果方括号中有垂直分隔符分隔某些选项，则这些选项是互斥的，不要同时使用他们！）

###--help###

（LCTT译注：Linux上的命令中，通常单字符参数前使用一个破折号，而多个字符的长参数则使用两个破折号，原文此处用的是“-help”，实际上这种情况很少，所以修正为“--help”）

help只对shell内置命令有用。但是很多的可执行程序有--help选项。其作用类似于help命令，但是你必须在你要查看帮助的命令后输入 --help。例如，transmission-gtk --help。试一下看在改该可执行程序中有什么可选项可以使用。

###man###

多数的可执行程序都提供一个正式发说明文档。你可以使用man命令查看这份说明文档。试一下只输入man program，看有什么输出。在你的系统中随便找一个程序去尝试一下。例如，我们试一下man transmission-gtk。你会打开了一个由目录分割的文件。这个文件包含该程序是什么、做什么和你可以怎样去使用它等的信息。但是这个文件并没有提供使用范例，因为它不是一个指导手册。（LCTT译注，man里面有时候也会带有一些范例，但是往往不会很详细，另外还有一个info命令，通常能得到更多的使用帮助。不过真正理解每个命令的各种用户，还是要多查阅各种资料，并亲自试验才行。）

这周我们就到先讲这里了。

我想再花一分钟来感谢大家对本节的建议和贡献。是你们让这个系列的文章变得越来越好，我希望在你们的帮助下，我们这些新用户在夏季结束前可以使用基本的命令行工具。你们是最棒的。像我一样的新用户们，我们都会感到失落，坚持到底，我们的付出总会有回报的！
 
--------------------------------------------------------

via: https://news.opensuse.org/2014/07/15/command-line-tuesdays-part-five/

译者：[cvsher](https://github.com/cvsher) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出
