如何使用CD,PWD和ls探索Linux服务器上的文件系统

走在命令行上你的第一个步骤可以是相当艰巨的。在这篇文章中,我们力求让您的介绍简单而直接。我们将开始向您展示如何四处走动在命令行上,找出你在哪里,什么是你身边的小。您可以使用这些技能在随后的向导来完成更复杂的任务。

介绍


熟悉命令行是利用Linux服务器平台的力量的第一步。 它也是基本上所有服务器相​​关活动的基本前提,您可能希望在此环境中执行。

虽然存在许多工具的图形替代,但学习命令行是一种技能,将允许您以通过大多数GUI(图形用户界面)不可能实现的方式来处理效率,速度和灵活性。

我们都必须从某个地方开始,所以我们将介绍这篇文章中的基础知识:如何浏览您的系统并找出有什么。

先决条件


这篇文章是非常基本的,所以它不假定很多先验知识。 但是,您需要登录到您的VPS实例才能开始探索。 您可以执行此操作的选项很大程度上取决于您在家使用的操作系统。

当你创建一个新的DigitalOceanDroplet ,你将通过电子邮件发送一个密码,并给定IP地址访问你的新服务器。 使用链接的文章了解如何连接到您的VPS。

ssh root@your_IP

另一个选项是使用DigitalOcean控制面板右上角的“控制台访问”按钮。 这将直接在Web浏览器窗口中创建虚拟终端会话。

使用pwd找出您的位置


此时,您应该登录到您的Linux机器。 你可能会看到这样的东西:

root@your_hostname:~# 

这是提示。 它是我们键入命令的地方。

但还有更多的。 您也位于服务器文件系统中的特定位置。 您将始终位于服务器文件层次结构中的一个位置或另一个位置,这将影响您键入的命令的操作方式。

这类似于在本地计算机上打开文件浏览器时。 您可以单击不同的文件夹以移动到文件系统中的不同位置。 如果您转到文件浏览器的编辑菜单,您可能有一些选项将应用于您所在的特定文件夹中的项目。

命令行只是同一个想法的文本表示。

那么我们在文件系统中的哪里呢? 提示本身有一个线索。 在之前右#$在提示符的结束字符(这将取决于您登录哪些用户),你会看到一个波形符(〜)。 这代表你的“home”目录。

您的主目录是存储用户文件的位置。 〜字符是此目录的缩写。

找出你是在文件系统的另一种方法是用一个命令调用pwd 这将是你的第一个命令!

在终端中键入这些字符,然后按ENTER键:

pwd

/root

/root目录是根(管理)用户的主目录。 如果您以另一个用户身份登录,您将看到如下所示的内容:

pwd
/home/your_username

您在本教程中登录的用户并不重要,因此每个输出都很好。

用ls环顾四周


现在你知道你目前在哪个目录。但是我们怎么知道这个目录是什么?

我们可以问我们的服务器的文件和目录都与一个命令调用当前目录ls 现在在命令提示符处键入它:

ls

这应该只是返回到命令提示符,不给你任何信息。 命令失败了吗? 不,它成功,它只是没有找到任何文件或文件夹在您当前的目录。

让我们来创建一些测试文件怎么看ls当有此目录中的文件的行为。 键入此以创建几个文件:

touch file{1..5}

这将在我们当前目录中创建5个名为file1,file2,...,file5的文件。

让我们重试ls命令来看看它会做:

ls

file1  file2  file3  file4  file5

精彩。 该命令现在识别我们有一些文件在我们的主目录。

大多数命令都有默认行为,当你像我们上面那样调用它时执行。 但是,大多数命令行为也可以通过传递可选参数到命令来扩充。 你可能会听到这些被称为“选项”,“参数”,“标志”或“参数”。

有时,这些激活通过命令可用的可选功能,并且其他时候这些指定应该采取命令的对象。

让我们从第一种情况开始。

探索ls选项


不是所有的命令都有一个内置的帮助选项,但我们许多人。 在大多数情况下,你可以通过添加访问此--help-h在命令的结尾。 我们可以通过尝试这种ls现在的命令:

ls --help

Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters
      --block-size=SIZE      scale sizes by SIZE before printing them.  E.g.,
. . .

这将为您提供有关命令的正确使用的一些指导,并让您了解哪些选项可用于更改默认行为。 左边的列给出了要输入的字符以增加命令,右边的列描述每个标志。

--help我们添加的是,我们可以通过一个选项的一个例子。

找到可用于您感兴趣的命令的选项的另一种方法是检查手册。 这是通过打字来完成man后面你感兴趣的命令现在就来试试:

man ls

您可以使用箭头键滚动页面,然后输入“q”退出。

正如你所看到的, ls有,我们可以传递给命令来改变它的行为相当多的选择。 让我们试试几个。

ls -l

-rw-r--r-- 1 root root 0 Feb 28 19:45 file1
-rw-r--r-- 1 root root 0 Feb 28 19:45 file2
-rw-r--r-- 1 root root 0 Feb 28 19:45 file3
-rw-r--r-- 1 root root 0 Feb 28 19:45 file4
-rw-r--r-- 1 root root 0 Feb 28 19:45 file5

这向我们显示了相同的五个文件,但它以“长”格式显示它们。 这为我们提供了有关文件的更多信息,例如所有者(第一个“root”),组所有者(第二个“root”),文件大小(0),文件上次修改的日期,信息。

让我们尝试另一个选项:

ls -a

.   .aptitude      .bashrc  file2  file4  .profile  .ssh
..  .bash_history  file1    file3  file5  .rnd      .viminfo

这显示我们以前没有看到的一些文件。 -a标志和代名词--all标志。 这说明我们在当前目录中的文件,包括隐藏文件。

在Linux系统中,所有以起点命名的文件在默认情况下都是隐藏的。 他们不是秘密,任何人都可以找到他们,他们只是为了方便文件管理的方式。 通过传递-a标志,我们可以告诉ls显示这些文件也是如此。

我们也可以传递多个标志,通过简单地将它们串在一起:

ls -l -a

drwx------  4 root root 4096 Feb 28 19:45 .
drwxr-xr-x 23 root root 4096 May  3  2013 ..
drwx------  2 root root 4096 Feb 28 17:19 .aptitude
-rw-------  1 root root 2036 Feb 28 18:20 .bash_history
-rw-r--r--  1 root root  570 Jan 31  2010 .bashrc
-rw-r--r--  1 root root    0 Feb 28 19:45 file1
. . .

这很好,但我们也可以折叠选项标志,像这样:

ls -la

这将运行完全相同,并减少打字。

另一个有趣的选项是-R标志,递归列出文件。 既然我们有我们的家目录中唯一的目录是隐藏的,我们必须通过-a选项太:

ls -Ra

    .:
.   .aptitude      .bashrc  file2  file4  .profile  .ssh
..  .bash_history  file1    file3  file5  .rnd      .viminfo

./.aptitude:
.  ..  cache  config

./.ssh:
.  ..  authorized_keys

现在我们知道如何改变如何ls的行为,让我们改变“对象”是ls上操作。

在其他目录中使用ls


默认情况下, ls将列出当前目录的内容。 但是,我们可以传递任何目录的名称,我们希望看到命令结束时的内容。

例如,我们可以看到一个名为目录的内容/etc上可用通过键入所有的Linux系统:

ls /etc

acpi            fstab        magic        rc.local
adduser.conf        fstab.d      magic.mime   rc.local.orig
aliases         fuse.conf    mailcap      rcS.d
aliases.db      gai.conf     mailcap.order    reportbug.conf
alternatives        groff        mailname     resolvconf
anacrontab      group        mail.rc      resolv.conf
apm         group-       manpath.config   rmt
. . .

我们在这里看到这个目录中有很多文件。

以斜杠(/)开头的任何目录路径称为“绝对”路径。 这是因为它引用特定于最高目录的目录路径,根目录,由“/”字符指定。

引用目录的另一种方法是使用“相对”路径。 这将查找相对于您当前所在目录的目录。这些目录规范不以斜杠开头。

我们在当前文件夹中没有任何非隐藏目录,所以让我们做一些快速演示。 我们还会在里面添加一些文件。 不要担心这些命令,现在,他们只是用来演示一个想法,现在,所以只是键入他们按原样:

mkdir dir{1..3}
touch dir{1..3}/test{A,B,C}

这将创建一些目录与一些文件里面。 我们可以看到一个正常的目录ls命令:

ls

dir1  dir2  dir3  file1  file2  file3  file4  file5

为了能看到什么是“DIR1”目录里面,我们可以像我们展示了上面,通过追加我们要看到到我们的当前目录的值末尾的目录给的绝对路径。 我们可以找到当前目录:

pwd

/root

然后将我们感兴趣的目录添加到结尾:

ls /root/dir1

testA  testB  testC 

但我们不必这样做。 我们可以通过命名目录来引用当前目录中的目录,如下所示:

ls dir1

testA  testB  testC 

如果我们不使用斜杠开始路径规范,则操作系统将从当前目录开始查找目录路径。

到处走


到目前为止,我们已经学会了如何找出其中我们在文件系统中,我们已经学会了如何使用ls命令来了解在特定目录下的文件的一些信息。

但是我们如何更改我们的工作目录? 更改我们的工作目录将允许我们使用来自不同位置的相对路径。 通常,对包含它们的目录中的文件进行操作更容易。

我们可以通过使用周围的文件层次移动cd命令。 此命令代表更改目录。

在其最基本的用法,我们可以输入:

cd

这看起来不会做任何事情。 事实上,它没有。 什么cd确实没有任何额外的信息是改变你的home目录。 因为我们已经在我们的主目录中,所以命令没有做。

如何使用命令的更一般的想法是这样的:

cd /path/to/directory

在这种情况下, /path/to/directory应当与要移动到的目录位置的路径被取代。 例如,要更改为由单个斜杠(/)指定的“root”目录,它是树的顶部,我们可以键入:

cd /

注意 :根目录(单斜杠“/”指定)是从根用户(位于“/根”)的主目录不同。 这首先可能会引起混乱,但请记住,目录树的顶部称为文件系统根。

您可能已经注意到您的命令提示符已更改。

在“#”或“$”之前,目录列表已从波浪符(记住,看起来像“〜”代表用户的主目录的符号)更改为文件系统的“根”目录。

我们可以验证我们现在是在通过使用不同的目录pwd再次命令:

pwd

/

我们还可以检出我们的新目录中的文件:

ls

bin   etc     lib         media  proc  sbin     sys  var
boot  home    lib64       mnt    root  selinux  tmp  vmlinuz
dev   initrd.img  lost+found  opt    run   srv      usr

我们已成功移至其他位置。 现在,让我们尝试使用相对路径移动到一个新目录。 我们看到,有一个名为usr该目录中。 通过键入以下内容更改为:

cd usr

正如你所看到的,我们可以使用相对路径以cd为好。 我们如何回到根目录? 我们可以键入相同的cd /我们前面使用的命令,但让我们尝试不同的东西。

让我们尝试使用相对路径向上移动树。 我们如何使用相对路径引用包含当前文件夹的文件夹?

我们可以使用特殊语法引用包含我们当前目录的目录。 包含我们当前目录的目录称为其“父”目录。 我们可以使用两个点(..)引用父目录。

让我们回到上一级:

cd ..
pwd

/

如你所见,我们回到根目录。 我们也可以用一个点来引用我们当前的目录:

ls .

bin   etc     lib         media  proc  sbin     sys  var
boot  home    lib64       mnt    root  selinux  tmp  vmlinuz
dev   initrd.img  lost+found  opt    run   srv      usr

这在许多情况下很有用,在这个阶段可能不是很明显,但你会欣赏的能力,以后参考你的当前目录容易。

正如我们前面所说,“〜”符号引用我们的主目录。 让我们使用它作为另一个目录路径的开始更改为我们的“dir1”在我们的家:

cd ~/dir1
pwd

/root/dir1

我们现在使用“〜”符号替换我们的路径的第一部分,现在已经进入我们的主目录中的一个目录。

但是,如果我们忘记在更改目录之前做一些事情,并想要回到我们最近的目录怎么办? 我们可以通过键入以下内容返回到上一个目录:

cd -
pwd

/

我们回到我们的最后一个目录。

让我们回到我们的主目录结束。 我们可以通过使用波浪号作为切换到的路径来实现。 但是你可能还记得,默认模式cd是我们回到我们的家目录,如果我们不加任何路径。 让我们尝试:

cd
pwd

/root

正如你所看到的,我们已经使它回到我们的主目录了。

结论


你现在应该有必要的工具,探索文件系统相当多。 你不知道如何调查文件,但你应该能够轻松地浏览系统,跟踪你的位置,并看到你身边的文件。

作者:Justin Ellingwood