学习有效浏览Shell的基本Linux命令
在这篇文章中,我们介绍了许多基础命令,这些命令在大多数情况下是有效浏览Shell的关键。
一旦我们学会了如何部署Ubuntu服务器,如何管理用户,以及如何管理软件包,我们就应该花点时间来学习一些重要的概念和命令,这将使我们建立更多的基础知识,在理解高级概念和踏上专业知识的道路时对我们有好处。这些基础概念包括用于浏览shell的核心Linux命令。
学习基本的Linux命令
在命令行上建立扎实的能力是至关重要的,它能有效地赋予任何系统管理员或工程师超能力。我们的新能力不会让我们一跃而起,但一定会让我们像忍者一样执行终端命令。虽然我们不会在本节中掌握使用命令行的艺术(这只能通过多年的经验来实现),但我们肯定会变得更加自信。
首先,让我们谈谈在Linux文件系统中从一个地方移动到另一个地方的问题。具体来说,我所说的 "Linux文件系统 "是指Ubuntu安装中包含的各种文件夹(也被称为 "目录")的默认结构。Linux文件系统包含许多重要的目录,每个目录都有自己的指定用途,我们将在书中详细讨论。在我们进一步探讨这个问题之前,我们需要学习如何从一个目录导航到另一个目录。在本节中,我们要介绍的与导航文件系统有关的第一条命令将阐明你目前正在工作的目录。对于这一点,我们有 pwd 命令。
pwd 命令
pwd 代表打印工作目录,并显示你目前在文件系统中的位置。如果你运行它,你可能会看到像这样的输出。

图4.1:查看当前工作目录
在这个例子中,当我运行 pwd时 ,输出结果告诉我,我当前的工作目录是 /home/jay.这被称为你的主目录,在默认情况下,每个用户都有一个。默认情况下,你的用户账户的所有文件都存放在这里。当然,你可以在你喜欢的任何地方创建文件,甚至在你的主目录之外,如果你有这样的权限或者你使用 sudo的话。但是,仅仅因为你 可以, 并不意味着你 应该。正如你在这篇文章中所了解到的,Linux文件系统对几乎所有的东西都有一个指定的位置。但你的主目录,位于 /home/<username>,是你的。你拥有它,你控制它--它是你在服务器上的家。在21世纪初,带有图形用户界面的Linux装置甚至用一个房子的图标来描述你的主目录。
通常情况下,你在主目录下创建的文件会有类似这样的权限字符串。
-rw-rw-r-- 1 jay jay 0 Jul 5 14:10 testfile.txt
你可以看到在默认情况下,你在主目录中创建的文件是由你的用户、你的组拥有的,并且可以被所有三个类别(用户、组和其他)阅读。
cd 命令
要改变我们当前的目录并导航到另一个目录,我们可以使用 cd 命令和我们想要移动的路径。
cd /etc
现在,我还没有去看文件和目录的布局,所以我只是随机地选了 etc 目录。开头的正斜杠指定了文件系统的开始。稍后会有更多关于这个的内容。现在,我们进入了 /etc 目录,我们的命令提示符也发生了变化。

图4.2:改变目录后的命令提示符和pwd命令
正如你可能猜到的,这个 cd 命令代表 改变目录,它是你在导航时将你的工作目录从一个目录移到另一个目录的方法。例如,你可以使用下面的命令来返回到主目录。
cd /home/<user>
事实上,有几种方法可以返回家园,下面的截图展示了其中的几种。

图4.3:导航到主目录的其他方法
第一条命令。 cd -,实际上与你的主目录没有任何具体关系。这是一个巧妙的技巧,可以让你返回到你之前所在的任何目录。对我来说,这个 cd – 命令把我带到了我之前所在的目录,而这个目录恰好是 /home/jay.第二个命令。 cd /home/jay将我直接带到了我的主目录,因为我呼出了整个路径。最后一条命令。 cd ~也把我带到了我的主目录。这是因为 ~ 是对主目录完整路径的速记,所以你不需要输入整个路径到 /home/<user>.你可以把这个路径简单地称为 ~.
ls 命令
另一个重要的命令是 ls.该 ls 命令列出了当前工作目录的内容。我们的主目录中可能还没有任何内容。但如果我们通过运行 /etc 运行 cd /etc,就像我们之前做的那样,然后执行 ls,我们会看到 /etc</span> 目录里有一些文件。自己去试试吧,看看。
cd /etc
实际上,我们不必为了列出内容而将工作目录改为/etc 。我们可以直接执行下面的命令。
ls /etc
更妙的是,我们可以运行。
ls -l /etc
这给我们的内容是一个长长的列表,我认为这更容易理解。它将在自己的行中显示每个目录或文件条目,以及权限字符串。但你可能已经知道 ls 以及 ls -l 所以我在这里就不多说了。的 -l 的部分被称为 ls 命令中 的部分被称为 "参数"。我指的不是争论,比如在Linux社区不断持续的关于哪个命令行文本编辑器是最好的争论,在 vim 和 emacs (显然是 vim).相反,我指的是shell命令中参数的概念,它允许你覆盖默认值,或者以某种方式向命令提供选项,比如在这个例子中,我们将输出的 ls 的输出是一个长列表。
Therm 命令
该 rm 命令是我们在 讨论手动删除一个从系统中删除的用户的主目录时 涉及到的另一个命令。所以,在这一点上,你可能很清楚这个命令和它的作用(它删除文件和目录)。这是一个潜在的危险命令,因为你可能用它意外地删除一些你不应该删除的东西。我们使用下面的 命令来删除用户的主目录 dscully:
rm -r /home/dscully
正如你所看到的,我们正在使用 -r 参数来改变命令的行为。 rm 命令的行为,在默认情况下,它不会删除目录,而只会删除文件。参数 -r 参数指示 rm 递归地删除所有东西,即使它是一个目录。该 -r 参数也会删除路径中的子目录,所以你一定要小心使用这个命令。正如我在书的前面提到的,如果你用 sudo 与 rm参数,你可能会删除你的整个Ubuntu安装系统
另一个选项由 rm 提供的另一个选项是 -f 参数,它是 Force的缩写,它告诉 我们 rm 在删除东西之前不做提示。这个参数并不经常需要,而且它的用例也不在本文的范围之内。但是请记住它的存在,如果你需要它的话。
touch 命令
另一个值得了解的基础命令是 touch,它实际上有两个用途。首先,假设你在当前工作目录下有权限这样做,该 touch 命令将创建一个空文件,如果它还不存在的话。第二,该 touch 命令将更新一个文件或目录的修改时间,如果它确实已经存在。

图4.4:实验使用触摸命令
为了说明这一点,在相关的屏幕截图中,我运行了几个命令。首先,我运行了以下命令来创建一个空文件。
touch testfile.txt
该文件之前并不存在,所以当我运行 ls -l 后,它显示新创建的文件的大小为0字节。接下来,我 在 一分钟后再次 运行 touchtestfile.txt 命令,你可以在截图中看到,修改时间从 15:12 到 15:13.
当涉及到查看文件的内容时,我们会在《掌握Ubuntu服务器,第三版》一书的后面讲到。而且肯定还有更多的命令是我们需要学习的,以建立我们的基础。但是现在,让我们从基础概念中抽身出来,更好地理解Linux文件系统的布局。
总结
有更多的Linux命令是你永远无法记住的。我们大多数人只是记住了自己喜欢的命令和命令的变化。随着你的学习和知识的扩展,你会形成自己的这些命令的菜单。在这篇文章中,我们介绍了许多基础性的命令,这些命令在大多数情况下是必不可少的。这些命令包括 grep, cat, cd, ls以及其他一些命令,这次我们进行了探讨。
