Linux 导航和文件管理

简介

导航和操作文件系统中的文件和文件夹是使用大多数计算机的关键部分。云服务器大多使用相同的通用Linux外壳和通用Linux命令来处理文件和文件夹。本终端将介绍使用这些命令的一些基本技能。

前提条件和目标

为了按照本指南进行操作,您需要能够访问Linux服务器。如果您需要有关第一次连接到服务器的信息,您可以遵循我们关于使用SSH.连接到linux服务器的指南

您还需要了解终端的工作原理以及Linux命令的外观。本指南介绍了terminal.

本指南中的所有内容都可以使用常规的非根(非管理)用户帐户完成。您可以通过遵循发行版的初始服务器设置指南来了解如何配置这种类型的用户帐户,例如Ubuntu 22.04.

准备好开始时,使用SSH连接到您的Linux服务器,然后在下面继续。

导航与探索

您需要掌握的最基本技能是在文件系统中移动,并了解您周围的情况。您将在本节中查看允许您执行此操作的工具。

使用pwd命令找出自己的位置

当您登录到您的服务器时,通常会被放入您的用户帐户的主目录 。主目录是为用户存储文件和创建目录而保留的目录。它是文件系统中您拥有完全主控权的位置。

要找出您的主目录相对于文件系统其余部分的位置,可以使用pwd命令。此命令显示您当前所在的目录:

1pwd
1[secondary_label Output]
2/home/sammy

主目录以用户帐户命名。该目录位于名为/home的目录中,该目录本身位于顶级目录中,通常称为目录,并由单个斜杠/表示。

使用ls查看目录内容

现在您知道了如何显示您所在的目录,接下来可以查看目录的内容。

目前,您的主目录没有太多可查看的内容,因此您可以转到另一个填充更多的目录进行浏览。使用cd移动到此目录。之后,您将使用pwd确认您已成功移动:

1cd /usr/share
2pwd
1[secondary_label Output]
2/usr/share

现在您在一个新目录中,让我们来看看里面有什么。为此,您可以使用ls命令:

1ls
1[secondary_label Output]
2adduser groff pam-configs
3applications grub perl
4apport grub-gfxpayload-lists perl5
5apps hal pixmaps
6apt i18n pkgconfig
7aptitude icons polkit-1
8apt-xapian-index info popularity-contest
9. . .

如您所见,此目录中有许多项。您可以向该命令添加一些可选标志以修改默认行为。例如,要以扩展形式列出所有内容,可以使用-l标志(表示):

1ls -l
 1[secondary_label Output]
 2total 440
 3drwxr-xr-x 2 root root 4096 Apr 17 2022 adduser
 4drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications
 5drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport
 6drwxr-xr-x 3 root root 4096 Apr 17 2022 apps
 7drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt
 8drwxr-xr-x 2 root root 4096 Apr 17 2022 aptitude
 9drwxr-xr-x 4 root root 4096 Apr 17 2022 apt-xapian-index
10drwxr-xr-x 2 root root 4096 Apr 17 2022 awk
11. . .

这一观点为我们提供了大量信息。第一个块描述文件类型(如果第一列是)和权限。随后的每个列按顺序描述指向系统上其他位置的该文件的硬链接数量、所有者、组所有者、项大小、上次修改时间和项的名称。

要获取所有文件的列表,包括_HIDDEN_FILES和目录,可以添加-a标志。由于在/usr/Shar目录中没有真正的隐藏文件,让我们返回到您的主目录并尝试该命令。您可以通过键入不带参数的cd返回到主目录:

1cd
2ls -a
1[secondary_label Output]
2. .. .bash_logout  .bashrc  .profile

如您所见,有三个隐藏文件,以及特殊指示符...。您会发现,配置文件通常存储为隐藏文件,就像这里的情况一样。

对于点和双点条目,这些并不完全是目录,而是引用相关目录的内置方法。单点表示当前目录,双点表示该目录的父目录。这将在下一节中派上用场。

使用cd移动文件系统

在上一节中,您已经进行了两次目录移动,以演示ls的一些属性。让我们更好地了解一下这里的命令。

首先返回到/usr/Shar目录:

1cd /usr/share

这是通过提供_绝对路径_来更改目录的示例。在Linux中,每个文件和目录都位于最顶层的目录下,该目录称为目录,但用一个前导斜杠/来表示。绝对路径指示目录相对于该顶级目录的位置。这允许我们以明确的方式从文件系统中的任何位置引用目录。每条绝对路径都必须以那个斜杠开头。

另一种方法是使用_相对路径_。相对路径是指与当前目录相关的目录。对于层次结构中接近当前目录的目录,这通常较短,并且有时不需要假设目录在更广泛的文件系统中的位置是有益的。可以按名称引用当前目录中的任何目录,而不使用前导斜杠。您可以通过键入以下命令从当前位置切换到/usr/Shar内的locale目录:

1cd locale

通过提供当前目录路径之后的路径部分,还可以使用相对路径移动多个目录级。在这里,您可以通过输入以下命令进入en目录中的LC_MESSAGES目录:

1cd en/LC_MESSAGES

要返回到当前目录的父目录,可以使用特殊的双点指示器。例如,您现在位于/usr/Share/Locale/en/LC_MESSAGES目录中。要向上移动一级,您可以键入:

1cd ..

这会将我们带到/usr/Share/Locale/en目录。

您可以通过运行cd返回到主目录,而无需指定目录。你也可以在其他命令中使用~代替你的home目录:

1cd ~
2pwd
1/home/sammy

要了解有关如何使用这三个命令的更多信息,您可以查看我们的linux filesystem.探索指南

查看文件

在上一节中,您学习了如何导航文件系统。您可能在使用ls命令时在各个目录中看到了一些文件。与一些操作系统不同,Linux和其他类似Unix的操作系统在系统的大部分部分都依赖于纯文本文件。

在本教程中,您查看文件的主要方式是使用less命令。这就是所谓的分页器,因为它允许你滚动文件的页面。前面的命令会立即执行并返回到命令行,而less是一个应用程序,它会继续运行并占据屏幕,直到您退出。

您将打开/etc/services文件,这是一个配置文件,包含系统知道的服务信息:

1less /etc/services

该文件将在less中打开,允许您查看适合终端窗口区域的文档部分:

 1[secondary_label Output]
 2# Network services, Internet style
 3#
 4# Note that it is presently the policy of IANA to assign a single well-known
 5# port number for both TCP and UDP; hence, officially ports have two entries
 6# even if the protocol doesn't support UDP operations.
 7#
 8# Updated from http://www.iana.org/assignments/port-numbers and other
 9# sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services .
10# New ports will be added on request if they have been officially assigned
11# by IANA and used in the real-world or are needed by a debian package.
12# If you need a huge list of used numbers please install the nmap package.
13
14tcpmux 1/tcp                           # TCP port service multiplexer
15echo 7/tcp
16. . .

要滚动,可以使用键盘上的向上和向下箭头键。若要向下翻页,可以使用空格键、键盘上的向下翻页按钮或使用`Ctrl-f‘快捷键。

若要向上滚动,您可以使用Page Up按钮或Ctrl-b键盘快捷键。

要搜索文档中的某些文本,您可以键入正斜杠/,后跟搜索词。例如,要搜索邮件,您可以键入:

1/mail

这将向前搜索整个文档,并在第一个结果处停止。要得到另一个结果,可以键入小写的N键:

1n

要后退到前一个结果,请使用大写N

1N

要退出less程序,可以输入q退出:

1q

查看文件还有许多其他方法,在某些情况下会派上用场。cat命令输出文件的内容,并立即返回提示符。默认情况下,head命令显示文件的前10行。同样,`tail‘命令显示最后10行。这些命令以一种有用的方式显示文件内容,以便将其通过管道传输到其他程序。这一概念将在本系列教程的后面部分介绍。

文件和目录操作

在本节中,您将创建和操作文件和目录。

用触控创建文件

许多命令和程序都可以创建文件。创建文件的最直接方法是使用`ouch‘命令。这将使用指定的名称和位置创建一个空文件。

首先,确保您在您的主目录中,因为这是您有权保存文件的位置。然后,您可以通过键入以下命令来创建名为file1的文件:

1cd
2touch file1

现在,如果您查看目录中的文件,您可以看到新创建的文件:

1ls
1[secondary_label Output]
2file1

如果您在现有文件上使用ouch命令,它会更新与该文件关联的上次修改时间。记住这一点很有帮助。

您还可以同时创建多个文件。您也可以使用绝对路径。例如,您可以键入:

1touch /home/sammy/file2 /home/sammy/file3
2ls
1[secondary_label Output]
2file1 file2 file3

使用mkdir创建目录

touch命令类似,mkdir命令允许您创建空目录。

例如,要在主目录中创建一个名为test的目录,您可以键入:

1cd
2mkdir test

您可以通过键入以下命令在test目录中创建一个名为example的目录:

1mkdir test/example

要使上面的命令工作,test目录必须已经存在。要告诉mkdir它应该创建构造给定目录路径所需的任何目录,可以使用-p选项。这允许您在一个步骤中创建嵌套目录。您可以通过键入以下命令创建类似于some/other/directories的目录结构:

1mkdir -p some/other/directories

该命令将首先创建some目录,然后在其中创建other目录。最后,它将在这两个目录中创建directories目录。

使用mv移动和重命名文件和目录

您可以使用mv命令将文件移动到新位置。例如,您可以通过输入以下命令将file1移到test目录:

1mv file1 test

通过使用特殊的点引用来引用当前目录,您可以将该FILE_BACK_移到您的主目录。确保您在您的主目录中,然后运行mv命令:

1cd
2mv test/file1 .

mv命令也用于重命名文件和目录。从本质上讲,移动和重命名都只是调整现有项的位置和名称。

因此,要将test目录重命名为testing,您可以键入:

1mv test testing

<$>[备注] 注意 :外壳不会阻止您做出意外的破坏性操作。如果要重命名文件并选择已存在的名称,则要移动的文件将覆盖以前的文件。如果您不小心覆盖了以前的文件,则无法恢复它。 <$>

删除cp文件和目录

使用mv命令,您可以移动或重命名文件或目录,但不能复制它。cp命令可以创建现有项目的新副本。

例如,您可以将file3复制到名为file4的新文件中:

1cp file3 file4

mv操作不同,file3之后将不再存在,现在您同时拥有file3file4

<$>[备注] 注意 :与mv命令一样,如果您不注意作为操作目标的文件名,可能会覆盖文件。例如,如果上例中已经存在file4,则其内容将完全替换为file3的内容。 <$>

为了复制整个目录,您必须在命令中包含-r选项。这代表递归,因为它复制目录以及目录的所有内容。

例如,要将ome‘目录结构复制到名为Again’的新结构中,您可以键入:

1cp -r some again

与现有目标会导致覆盖的文件不同,如果目标是现有目录,则会将文件或目录复制到目标中:

1cp file1 again

这将创建file1的新副本,并将其放置在again目录中。

使用rm和rmdir删除文件和目录

要删除文件,可以使用rm命令。

注意 :使用rm等具有破坏性的命令时要格外小心。在shell中没有撤消命令,因此可能会意外地永久销毁重要文件。

要删除常规文件,只需将其传递给rm命令:

1cd
2rm file4

同样,要删除空目录,可以使用rmdir命令。只有当有问题的目录中没有任何内容时,此操作才会成功。例如,要删除testing目录中的example目录:

1rmdir testing/example

要删除非空目录,可以使用带有-r选项的rm命令,该命令将递归删除目录的所有内容以及目录本身。

例如,要删除`ats‘目录和其中的所有内容,您可以键入:

1rm -r again

编辑文件

目前,您知道如何将文件作为对象来操作,但您还没有学习如何实际编辑它们并向其中添加内容。

nan是为数不多的几个常见的命令行Linux文本编辑器之一,对于初学者来说是一个很好的起点。它的操作有点类似于上面讨论的‘less’程序,因为它在其使用期间占据了整个终端。

Nan编辑器可以打开已有的文件,也可以创建文件。如果您决定创建一个新文件,您可以在调用Nan编辑器时为其命名,或稍后在保存内容时为其命名。

您可以通过键入以下命令打开file1文件进行编辑:

1cd
2nano file1

)。界面看起来像这样:

1GNU nano 4.8 file1                                         
2
3                                  [ New File ]
4^G Get Help   ^O WriteOut   ^R Read File  ^Y Prev Page  ^K Cut Text   ^C Cur Pos
5^X Exit       ^J Justify    ^W Where Is   ^V Next Page  ^U UnCut Text ^T To Spell

在顶部,您有应用程序的名称和正在编辑的文件的名称。中间显示的是当前为空的文件内容。在底部,您有许多组合键,这些组合键指示了一些用于编辑器的控件。其中,^字符表示CTRL键。

要从编辑器中获得帮助,请按Ctrl+G

浏览完帮助后,键入Ctrl+X返回到文档。

在本例中,您只需键入以下两句话:

1[label file1]
2Hello there.
3
4Here is some text.

To save your work, press Ctrl+O.

1File Name to Write: file1                                                            
2^G Get Help M-D DOS Format M-A Append M-B Backup File
3^C Cancel M-M Mac Format M-P Prepend

如你所见,底部的选项也发生了变化。这些是上下文相关的,这意味着它们将根据您试图做的事情而变化。若要确认写入file1,请按Enter

保存后,如果您进行其他更改并尝试退出程序,您将看到类似的提示。添加一行,然后尝试按Ctrl+X退出nan

如果您尚未保存,系统将要求您保存所做的修改:

1Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ?                         
2 Y Yes
3 N No           ^C Cancel

您可以按Y保存更改,按N放弃更改并退出,或按Ctrl+C取消退出。如果您选择保存,您将收到与之前收到的相同文件提示,确认您要将更改保存到同一文件。按Enter保存文件并退出编辑器。

您可以使用cat程序显示您创建的文件的内容,或者使用less程序打开文件进行查看。使用less观看后,请记住要按q才能返回终端。

1less file1
1[secondary_label Output]
2Hello there.
3
4Here is some text.
5
6Another line.

您可能会看到在某些指南中引用的另一个编辑器是vimvi。这是一个更高级的编辑器,非常强大,但伴随着陡峭的学习曲线。如果有人告诉您使用vimvi,请随意使用nan。要了解如何使用vim,请阅读我们的vim.入门指南

结论

到目前为止,您应该已经了解了如何绕过您的Linux服务器以及如何查看可用的文件和目录。您还应该知道允许您查看、复制、移动或删除文件的文件操作命令。最后,您应该习惯于使用Nan文本编辑器进行一些编辑。

通过这几项技能,您应该能够继续学习其他指南,并学习如何最大限度地利用您的服务器。在我们的下一个指南中,您将了解如何查看和理解linux permissions.

Published At
Categories with 技术
comments powered by Disqus