Linux 导航和文件管理

简介: Linux 导航和文件管理

本文详细介绍了在Linux服务器上使用基本命令进行文件和目录操作,包括pwd、ls、cd、mkdir、touch、mv、cp、rm、rmdir等,以及如何使用nano文本编辑器编辑文件。后续还会涉及权限管理等内容。

简介

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

先决条件和目标

为了跟随本指南,您需要访问 Linux 服务器。如果您需要关于首次连接到服务器的信息,可以参考我们的使用 SSH 连接到 Linux 服务器的指南。

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

本指南中的所有内容都可以通过常规的非根(非管理员)用户帐户完成。您可以通过按照您的发行版的初始服务器设置指南(例如 Ubuntu 22.04)来学习如何配置此类型的用户帐户。

当您准备好开始时,请使用 SSH 连接到您的 Linux 服务器,并继续以下操作。

导航和探索

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

使用 “pwd” 命令找到您所在的位置

当您登录到服务器时,通常会被放置在您的用户帐户的主目录中。主目录是为您的用户设置的一个目录,用于存储文件和创建目录。这是您拥有完全控制权的文件系统中的位置。

要找出您的主目录在文件系统中的位置,您可以使用 pwd 命令。此命令显示您当前所在的目录:

pwd
/home/sammy

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

使用 “ls” 查看目录内容

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

当前,您的主目录没有太多内容可供查看,因此您可以转到另一个更繁华的目录进行探索。使用 cd 命令移动到此目录。之后,您将使用 pwd 确认您成功移动了:

cd /usr/share
pwd
/usr/share

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

ls
adduser            groff                          pam-configs
applications       grub                           perl
apport             grub-gfxpayload-lists          perl5
apps               hal                            pixmaps
apt                i18n                           pkgconfig
aptitude           icons                          polkit-1
apt-xapian-index   info                           popularity-contest
. . .

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

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

此视图为我们提供了大量信息。第一个块描述了文件类型(如果第一列是 “d”,则该项目是一个目录,如果是 “-”,则是一个普通文件)和权限。随后的每一列依次描述了系统中该文件的硬链接数、所有者、组所有者、项目大小、最后修改时间和项目的名称。

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

cd
ls -a
. .. .bash_logout  .bashrc  .profile

如您所见,有三个隐藏文件,以及 ...,这些是特殊指示符。通常,配置文件存储为隐藏文件,就像在这里一样。

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

使用 “cd” 在文件系统中移动

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

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

cd /usr/share

这是一个通过提供绝对路径来更改目录的示例。在Linux中,每个文件和目录都位于最顶层的目录下,这个目录被称为"根"目录,但是用一个单独的斜杠"/"来引用。绝对路径指示了目录相对于这个顶级目录的位置。这让我们能够从文件系统的任何地方以一种无歧义的方式引用目录。每个绝对路径都必须以斜杠开头。

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

cd locale

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

cd en/LC_MESSAGES

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

cd ..

这将把我们带到/usr/share/locale/en目录。

您可以通过运行cd而不指定目录来随时返回到您的主目录。您还可以在任何其他命令中使用~来代替您的主目录:

cd ~
pwd
/home/sammy

要了解更多关于如何使用这三个命令的信息,您可以查看我们的指南,了解如何探索Linux文件系统。

查看文件

在上一节中,您学会了如何浏览文件系统。在使用ls命令查看各个目录时,您可能会看到一些文件。与一些操作系统相反,Linux和其他类Unix操作系统依赖于纯文本文件来构建系统的大部分内容。

在本教程中,您将主要使用less命令来查看文件。这被称为"分页器",因为它允许您浏览文件的各个页面。而前面的命令会立即执行并将您返回到命令行,less是一个应用程序,它会继续运行并占据屏幕,直到您退出。

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

less /etc/services

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

# 网络服务,互联网风格
#
# 请注意,目前IANA的政策是为TCP和UDP分配一个单一的众所周知端口号;因此,即使协议不支持UDP操作,官方端口也有两个条目。
#
# 从http://www.iana.org/assignments/port-numbers和http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services等来源进行更新。
# 如果有官方分配的端口并在现实世界中使用,或者是Debian软件包需要的端口,将根据请求添加新端口。
# 如果您需要一个巨大的已使用数字列表,请安装nmap软件包。
tcpmux          1/tcp                           # TCP端口服务多路复用器
echo            7/tcp
. . .

要滚动,您可以使用键盘上的上下箭头键。要向下翻页,可以使用空格键、键盘上的"Page Down"按钮或CTRL-f快捷键。

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

要在文档中搜索一些文本,可以输入斜杠"/“,然后跟上搜索词。例如,要搜索"mail”,您可以输入:

/mail

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

n

要向后移动到上一个结果,使用大写的N键:

N

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

q

在某些情况下,还有许多其他查看文件的方法。cat命令输出文件的内容并立即将您返回到提示符。head命令默认显示文件的前10行。同样,tail命令显示文件的最后10行。这些命令以对其他程序有用的方式显示文件内容。这个概念将在本教程系列的后面部分介绍。

文件和目录操作

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

使用 “touch” 创建文件

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

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

cd
touch file1

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

ls
file1

如果对现有文件使用 touch 命令,则会更新与该文件关联的“最后修改”时间。这一点值得记住。

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

touch /home/sammy/file2 /home/sammy/file3
ls
file1  file2  file3

使用 “mkdir” 创建目录

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

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

cd
mkdir test

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

mkdir test/example

为了使上述命令生效,test 目录必须已经存在。要告诉 mkdir 应该创建任何必要的目录以构造给定的目录路径,您可以使用 -p 选项。这允许您一次性创建嵌套目录。您可以通过输入以下命令创建类似 some/other/directories 的目录结构:

mkdir -p some/other/directories

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

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

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

mv file1 test

您可以使用特殊的点引用来将该文件移回到您的主目录中,以引用当前目录。确保您位于您的主目录中,然后运行 mv 命令:

cd
mv test/file1 .

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

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

mv test testing

使用 “cp” 复制文件和目录

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

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

cp file3 file4

mv 操作不同,file3 将不再存在,现在您有 file3file4 两个文件。

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

例如,要将 some 目录结构复制到名为 again 的新结构中,您可以输入:

cp -r some again

与文件不同,如果目标是一个已存在的目录,文件或目录将被复制到目标中:

cp file1 again

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

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

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

注意:在使用任何破坏性命令如 rm 时要非常小心。Shell 中没有“撤消”命令,因此有可能意外永久删除重要文件。

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

cd
rm file4

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

rmdir testing/example

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

例如,要删除 again 目录及其中的所有内容,您可以输入:

rm -r again

编辑文件

目前,你已经知道如何将文件作为对象进行操作,但还没有学会如何实际编辑它们并向其中添加内容。

nano 是一种常见的命令行 Linux 文本编辑器之一,对于初学者来说是一个很好的起点。它的操作方式与上面讨论的 less 程序有些相似,因为在使用期间它会占用整个终端。

nano 编辑器可以打开现有文件,也可以创建新文件。如果你决定创建一个新文件,可以在调用 nano 编辑器时给它命名,或者在保存内容时稍后再命名。

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

cd
nano file1

nano 应用程序将打开该文件(目前为空白)。界面看起来像这样:

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

顶部显示了应用程序的名称和你正在编辑的文件的名称。中间显示了文件的内容,目前为空白。底部显示了一些按键组合,指示编辑器的一些控制功能。对于这些按键组合,^ 字符表示 CTRL 键。

要在编辑器内获取帮助,请按 Ctrl+G

当你完成浏览帮助时,输入 Ctrl+X 返回到你的文档。

在这个例子中,你可以输入以下两句话:

Hello there.
Here is some text.

要保存你的工作,请按 Ctrl+O

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

如你所见,底部的选项也已经改变。这些是上下文相关的,这意味着它们会根据你要做的事情而改变。要确认写入 file1,请按 Enter

保存后,如果你进行了额外的更改并尝试退出程序,你将看到类似的提示。添加一行新内容,然后尝试按 Ctrl+X 退出 nano

如果你没有保存,将会询问你是否保存修改:

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

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

你可以使用 cat 程序显示文件的内容,或者使用 less 程序打开文件进行查看。在使用 less 查看后,记得按 q 返回到终端。

less file1
Hello there.
Here is some text.
Another line.

在某些指南中可能会提到的另一个编辑器是 vimvi。这是一个更高级的编辑器,非常强大,但学习曲线陡峭。如果你被告知使用 vimvi,可以随意使用 nano。要学习如何使用 vim,请阅读我们的入门指南。

结论

到目前为止,你应该已经了解如何在 Linux 服务器上进行操作,以及如何查看可用的文件和目录。你还应该知道文件操作命令,可以让你查看、复制、移动或删除文件。最后,你应该对使用 nano 文本编辑器进行一些编辑操作感到舒适。

有了这些技能,你应该能够继续阅读其他指南,并学会如何充分利用你的服务器。在我们的下一个指南中,你将了解如何查看和理解 Linux 权限。


目录
相关文章
|
7月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux 读取命令 read命令使用指南
【Shell 命令集合 文件管理】Linux 读取命令 read命令使用指南
97 0
|
7月前
|
监控 网络协议 Shell
【Shell 命令集合 文件管理】Linux 远程文件复制命令 rcp 命令使用教程
【Shell 命令集合 文件管理】Linux 远程文件复制命令 rcp 命令使用教程
91 0
|
7月前
|
Shell Linux C语言
【Shell 命令集合 文件管理】Linux 删除 rm命令使用指南
【Shell 命令集合 文件管理】Linux 删除 rm命令使用指南
171 0
|
7月前
|
安全 Shell Linux
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
242 0
|
7月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux 快速定位文件和目录 slocate命令使用教程
【Shell 命令集合 文件管理】Linux 快速定位文件和目录 slocate命令使用教程
78 0
|
2月前
|
存储 安全 Linux
Linux文件管理命令md5sum awk
通过结合 `md5sum`和 `awk`,不仅可以高效地进行文件完整性校验,还能灵活地处理和分析校验结果,为系统管理、数据审计等工作提供强大的支持。
78 2
|
2月前
|
存储 Linux
Linux文件管理(超详细讲解)
Linux文件管理(超详细讲解)
223 5
|
6月前
|
Linux C++
Linux文件管理命令(一)
这是关于Linux命令行的一些内容,主要包括了一些常见的Linux命令及其参数的用法。例如,`ls` 命令用于列出目录内容,不同的参数如 `-a` 显示所有文件(包括隐藏文件),`-l` 以详细模式显示,`-S` 按大小排序等。`mkdir` 命令用于创建目录,`cp` 命令用于复制文件或目录,`mv` 命令用于移动或重命名文件或目录,而`rm` 命令则用于删除文件或目录。在使用这些命令时,可以结合不同的参数来实现不同的操作。
|
6月前
|
Unix Linux 开发工具
Linux 命令 `ctags`:代码导航的利器
`ctags` 是一款Unix工具,用于生成代码标签,方便在Vim、Emacs等编辑器中快速跳转到函数、变量定义。在Linux上,可通过包管理器安装。使用`ctags -R`生成`tags`文件,然后在Vim中用`Ctrl+]`跳转,`Ctrl+T`返回。Emacs则使用`M-.`和`M-,`。`ctags`可自定义语言映射和排除规则,是提升编程效率的利器。
|
6月前
|
Linux Windows
Linux文件管理命令(二)
`Linux`文件管理涉及`ls`显示目录内容,`cd`切换目录,`pwd`显示当前目录,`whoami`显示当前用户,`hostname`显示主机名,目录使用正斜杠 `/` 分隔,根目录始于第一个 `/`。`man`命令用于获取命令帮助,如`man ls`,也可用`--help`参数,如`ls --help`。常用快捷键包括`Ctrl+C`取消操作,`Ctrl+L`清屏,`Ctrl+D`退出用户,`Ctrl+A`移动光标到行首,`Ctrl+E`移动到行尾。查看`PATH`环境变量用`echo $PATH`。