INTRO(1)

名称
intro - 用户命令的介绍

描述
手册页的第一部分描述了用户命令和工具，例如，文件操作工具、各个 shell、编译器、网页浏览器、文件和图像查看器和编辑器，等等。

注记
Linux 是类 UNIX 的一个变种，粗略地看，很多 UNIX 下的用户命令都可以同样地在 Linux（以及 FreeBSD 和很多其它类 UNIX 系统上）工作。

在 Linux 下，存在 GUI（图形用户界面），其中您可以进行指向、点击或者拖曳，这些工作一般不需要阅读大量手册即可完成。传统的 UNIX 环境是一个 CLI（命令行用户界面），其中您键入命令来告诉计算机该做什么。这样更快、更强大，但是需要先弄清楚这些命令是什么。下面是如何开始工作的一些基础性指导。

  登录
要开始工作，您可能需要首先提供您的用户名和密码以打开一个会话。login(1) 程序现在会为您启动一个 shell（命令解释器）。在图形登录的时候，您需要在一个有着菜单和图标的屏幕上使用鼠标点击，最终可以在一个窗口内启动一个 shell。参见 xterm(1)。

  使用 shell
用户输入命令并将其传送给命令解释器，即 shell。它不是内置的，只是一个独立程序，您可以更改自己使用的 shell。每个人都有其最喜爱的选择。标准的 shell 被称作 sh。参见 ash(1)、bash(1)、chsh(1)、csh(1)、dash(1)、ksh(1)、zsh(1)。

一个会话的进行可能如下所示：

    knuth login: aeb
    Password: ********
    $ date
    Tue Aug  6 23:50:44 CEST 2002
    $ cal
         August 2002
    Su Mo Tu We Th Fr Sa
                 1  2  3
     4  5  6  7  8  9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
    $ ls
    bin  tel
    $ ls -l
    total 2
    drwxrwxr-x   2 aeb       1024 Aug  6 23:51 bin
    -rw-rw-r--   1 aeb         37 Aug  6 23:52 tel
    $ cat tel
    maja    0501-1136285
    peter   0136-7399214
    $ cp tel tel2
    $ ls -l
    total 3
    drwxr-xr-x   2 aeb       1024 Aug  6 23:51 bin
    -rw-r--r--   1 aeb         37 Aug  6 23:52 tel
    -rw-r--r--   1 aeb         37 Aug  6 23:53 tel2
    $ mv tel tel1
    $ ls -l
    total 3
    drwxr-xr-x   2 aeb       1024 Aug  6 23:51 bin
    -rw-r--r--   1 aeb         37 Aug  6 23:52 tel1
    -rw-r--r--   1 aeb         37 Aug  6 23:53 tel2
    $ diff tel1 tel2
    $ rm tel1
    $ grep maja tel2
    maja    0501-1136285
    $

这里键入 Control-D 会终止会话。

这里的 $ 是命令提示符—这是 shell 用来提示它已经准备好接收下一条命令的方式。提示符可以用许多方式进行定制，同时可能包含诸如用户名、机器名、当前目录、时间等等附加信息。进行一次类似 PS1="下面该做些什么，主人？" 这样的赋值可以按照用户要求修改该提示的内容。

我们可以看见的命令有 date（提供日期和时间），以及 cal（提供日历）。

命令 ls 列出当前目录的内容—它告诉您您拥有什么文件。使用 -l 选项可以给出一个长列表，其中包括文件的所有者、大小和日期，以及人们读取和/或修改它的权限。例如，这里的“tel”有37字节长，由 aeb 所有，其所有者可以读取或写入它，其他人只能读取它。所有者和权限可以使用 chown 和 chmod 命令进行修改。

命令 cat 将会显示一个文件的内容。（其名称来自“concatenate and print”：所有当作参数给出的文件将会被连接起来并发送至“标准输出”（见 stdout(3)），这里是终端屏幕。）

命令 cp（来自 "copy" 单词）将会复制一个文件。

命令 mv（来自“move”），则只会将其重命名。

命令 diff 列出两个文件之间的不同之处。这里没有输出，因为两者之间没有区别。

命令 rm（来自“remove”）删除文件，请小心！它不见了。没有回收站或者类似的东西。删除即意味着丢失。

命令 grep（来自“g/re/p”）在一个或多个文件中寻找某个字符串的出现情况。这里它找到了 Maja 的电话号码。

  路径名和当前目录
文件存在于一个巨大的树结构中，即文件目录结构。每个文件有一个 pathname 描述从树的树根（被称作 /）到这个文件的路径。例如，这样的一个完整路径名可能是 /home/aeb/tel。总是使用完整的路径名可能不太方便，所以当前目录下文件的名称可以缩写为只给出其最后一部分。这就是在当前目录是 /home/aeb 时 /home/aeb/tel 可以被缩写为 tel 的原因。

命令 pwd 打印当前目录。

命令 cd 改变当前目录。

请交替尝试使用 cd 和 pwd 命令并探索 cd 的用法：“cd”、“cd .”、“cd ..”、“cd /”和“cd ~”。

  目录
命令 mkdir 创建一个新目录。

命令 rmdir 在目录为空的情况下删除该目录，若非空则提示出错。

命令 find 具有不寻常的语法，它可以使用给定的文件名或其它属性查找文件。例如，“find . -name tel”会从当前目录（也被称作 .）开始寻找文件 tel。而“find / -name tel”会做同样的工作，但是从目录树的根开始寻找。在以 GB 为单位计量容量的磁盘上进行大规模查找可能耗时很多，使用 locate(1) 可能是相对更好的方案。

  磁盘和文件系统
命令 mount 会将某些磁盘（或者软盘、光盘等等）上寻找到的文件系统挂载到大的文件系统层次中。而 umount 会将其重新卸载。命令 df 会告诉您磁盘上还有多少空闲空间。

  进程
在一个 UNIX 系统上，有许多用户进程和系统进程同时运行。您正与其交互的进程被称为在 前台 运行，其它的则在 后台。命令 ps 将会为您显示哪些进程是活跃的，以及这些进程的编号。命令 kill 允许您将其停止。如果没有额外参数，这将是一个友好的请求：请停止吧。而“kill -9”命令，后面加上该进程的编号则会立刻杀死它。前台进程通常可以通过按下 Control-C 来杀死。

  获取信息
系统上可能有成千上万个命令，每个都有许多可用参数。传统上，命令使用 man 手册页 进行记录（类似当前这个文档），这样使用“man kill”命令就可以显示命令“kill”的使用方法（而“man man”则记录了命令“man”的使用方法）。“man”程序将文字送给某些 分页器，通常是 less 程序。敲击空格键可以翻到下一页，点击 q 可以退出。

文档中，习惯上会使用一个名称和一个分类编号来指代一个手册页，例如 man(1)。手册页通常简明扼要，允许您在忘记某些细节时进行快速查找。对新手来说，一段介绍性文字和更多的示例和解释可能会更有用。

许多 GNU/FSF 软件提供了 info 文件。输入“info info”以查阅使用 info 程序的一段介绍。

特别的主题通常被作为 HOWTO 文档。请在 /usr/share/doc/howto/en 目录下看一看，如果您找到了 HTML 文档的话，请使用浏览器阅览。

参见
ash(1), bash(1), chsh(1), csh(1), dash(1), ksh(1), locate(1), login(1), man(1), xterm(1), zsh(1), wait(2), stdout(3), man-pages(7), standards(7)

跋
本页面是 Linux man-pages 项目 4.09 版的一部分。该项目的描述、有关报告错误的信息以及本页面的最新版本可以在 https://www.kernel.org/doc/pan-pages/ 上找到。