命令行星期二 —— 第三篇
今天，肖茨先生将带领我们游历文件系统的第一部分。我们将学到如何访问、列出目录内的文件，以及首次介绍一些选项的运用。OK，让我们开始学习这周的第一个命令。 ls ls 是一个用来列出目录内文件的命令。通过添加选项来实现多种不同的用途。简单起见，你可以只需键入 ls 。但是，你也可以在命令后面添加一个选项，它会帮助你修饰你的命令。如果你想要随意摆弄一些信息时，这会帮到你的。举例来说，当你要从一个命令的大量输出中找寻指定信息，你可以用选项缩小范围来实现。 这就是选项的基础概念。我们可以用下面书写格式表示： command(
命令行 命令行星期二
60.7.41.249
赞！支持！
零度王爵
2014-07-15T15:36:36.000
今天，肖茨先生将带领我们游历文件系统的第一部分。我们将学到如何访问、列出目录内的文件，以及首次介绍一些选项的运用。OK，让我们开始学习这周的第一个命令。 ls ls 是一个用来列出目录内文件的命令。通过添加选项来实现多种不同的用途。简单起见，你可以只需键入 ls 。但是，你也可以在命令后面添加一个选项，它会帮助你修饰你的命令。如果你想要随意摆弄一些信息时，这会帮到你的。举例来说，当你要从一个命令的大量输出中找寻指定信息，你可以用选项缩小范围来实现。 这就是选项的基础概念。我们可以用下面书写格式表示： command(
今天，肖茨先生将带领我们游历文件系统的第一部分。我们将学到如何访问、列出目录内的文件，以及首次介绍一些选项的运用。OK，让我们开始学习这周的第一个命令。


### ls


ls 是一个用来列出目录内文件的命令。通过添加**选项**来实现多种不同的用途。简单起见，你可以只需键入 ls 。但是，你也可以在命令后面添加一个选项，它会帮助你修饰你的命令。如果你想要随意摆弄一些信息时，这会帮到你的。举例来说，当你要从一个命令的大量输出中找寻指定信息，你可以用选项缩小范围来实现。


这就是选项的基础概念。我们可以用下面书写格式表示：



```
command(命令) -option(选项) argument(参数)

```

命令，恩...，我们可以输入 pwd、 ls， 或者我们到目前为止所有学过的命令。


以上我们已经阐述了选项的目的。但是我们需要注意一下书写格式：在前头添加一个破折号。所以，如果选项为 l, 你需要在命令后键入**-l**。


**参数**是一个命令的操作对象（在这个例子中，它是一个目录，我们将会学到如何浏览它们）。


接着，让我们尝试在主目录里尝试用 ls 命令列出 /etc 目录内容。这次我们先不添加选项。


![](/data/attachment/album/201407/14/214837zj7d9iyoqo8i8uqy.png)


就这样，列出了一大堆的文件。它们还根据颜色进行了分类。蓝色的是目录，白色的为普通文件，绿色的似乎是某种 shell 脚本文件。除此之外，还有其他不同的颜色来代表不同的文件类型。


接下来，你可以在刚才的命令里添加 -l 选项。添加选项 -l 后也会列出同样的文件和目录，但是以长格式方式输出。如果你需要查看更多信息的话，这个选项将是不错的选择。


![](/data/attachment/album/201407/14/214839hmpzgpfbbtjt86kk.png)


### 长格式


这样，用了长格式后，你可以看到更详细的信息，以及在每行开头类似-rw-r--r-- 令人抓狂的标示。实际上，这只是一种组合，代表了各种意义的信息。


![](/data/attachment/album/201407/14/214842xzigd3nygn1o31i1.png)


(File Name)就是文件的名称。（Modification time）是文件最后修改的时间。(Size) 用 byte 计量的文件大小。(Group) 是组的名称，和拥有者一起构成文件权限。(Owner) 是文件拥有者的名称。最最重要的…


### …文件权限


文件权限在长格式每一行的开端都显得非常的杂乱。第一个字符代表文件类型。如果是 'd' , 意味着它是一个目录。如果是 '-' , 意味着它是一个一般文件。接下来的三个字符分别代表拥有者的可读， 可写 ，可执行的权限。再接着三个字符表示组成员的享有的文件权限，而最后三个字符表示其他人（既不是拥有者也不是同组）对文件的享有权限。


例如，如果有个文件在长格式下显示为：-rw-r--r--, 这说明这是个普通文件（首字符 '-'），拥有者享有可读可写权限，但是没有可执行权限，导致拥有者无法执行该文件（首字符'-'后'rw-'），用户组和其他用户只享有可读权限（你不难发现'r--'字段在后面出现了两次 。如果用户组是 'rwx' 而不是 'r-'，则意味着它们可读，可写，可执行）。


ls 的下个选项是 ls -la .. ，-a 它会列出所有的文件，包括隐藏文件。在通常情况下，隐藏文件是不可见的。用长格式列出当前工作目录下的父目录的所有文件。


### less


less 是一个可以显示你的文本文件的命令。举例来说，你要在 /etc 下找寻名为 os-release 的文本文件。你可以使用 ls /etc 成功实现，而现在你想要阅读它的内容。


你只需要使用 less /etc/os-release。


![](/data/attachment/album/201407/14/214845dlbr5rn54atxb4rr.png)


..就这样了。


你要如何控制 less 呢?


简单的， 你只需要动动键盘就行了！


less 一次只会显示一个页面的文本。往前翻页你需要按 **Page Up**, 或者 **'b'**。往后翻页你可以按**Page Down**, 或者 **空格**。大写的**G**会跳转到文本的末尾，**1G**会跳转到文本的开端。**/字符**会在文本内搜索指定字符（例如，如果你输入 /suse ，它会找寻所有文本含有的 suse 并标记出来）。n 会重复执行你的搜索，**h**会显示所有的选项（h，即帮助的意思）。


![](/data/attachment/album/201407/14/214848ckc0funl61f0laub.jpg)


按q退出 less 命令。


### file


file 会显示文件的类型，是否是你要找的 ASCII 文本，还是 jpg 图片，bash 脚本等。让我们用 /etc/os-release 执行练习。


![](/data/attachment/album/201407/14/214850kc44pnk43lck4al7.png)


这样，如你所见，os-release 是一个 ASCII 文本文件。 请尝试其他文件，并观察结果。


下回见了，记住…


…一定要玩的开心啊！




---


via: <https://news.opensuse.org/2014/07/01/command-line-tuesdays-part-three/>


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


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

