介绍
🧑💻 刚接触 Linux 或 LabEx?我们建议从 Linux 快速入门 课程开始。
欢迎来到激动人心的 Linux 文件管理世界!在本教程中,我们将踏上掌握 ls
命令的旅程——这是你在文件系统中导航的得力助手。无论你是初出茅庐的系统管理员,还是充满好奇的新手,理解 ls
命令对于你的 Linux 冒险至关重要。
想象你是一名侦探,正在调查一个神秘的文件夹。ls
命令就是你的放大镜,它能揭示隐藏的线索,揭开文件系统的秘密。让我们开始我们的调查吧!
🧑💻 刚接触 Linux 或 LabEx?我们建议从 Linux 快速入门 课程开始。
欢迎来到激动人心的 Linux 文件管理世界!在本教程中,我们将踏上掌握 ls
命令的旅程——这是你在文件系统中导航的得力助手。无论你是初出茅庐的系统管理员,还是充满好奇的新手,理解 ls
命令对于你的 Linux 冒险至关重要。
想象你是一名侦探,正在调查一个神秘的文件夹。ls
命令就是你的放大镜,它能揭示隐藏的线索,揭开文件系统的秘密。让我们开始我们的调查吧!
打开终端,开始我们的调查吧!
点击桌面上的 Xfce Terminal 图标,打开一个新的终端窗口。
现在,让我们使用基本的 ls
命令来初步查看一下。
输入:
ls
输出:
data_file.txt test test_file.txt
以下步骤不再包含命令提示符和输出结果的截图。请在终端中输入命令以查看输出。
恭喜!你刚刚列出了目录的内容。这些是我们神秘房间中的可见“线索”。让我们来理解一下我们所看到的内容:
data_file.txt
和 test_file.txt
是文件。在 Linux 中,文件扩展名(如 .txt
)通常用于指示文件类型,但它们并不是强制性的。test
很可能是一个目录(文件夹)。注意它没有文件扩展名。如果你看到不同的文件名,请不要担心——你的目录内容可能会有所不同。重要的是,你现在可以看到当前目录中的内容了!
现在我们已经看到了显而易见的线索,接下来让我们寻找隐藏的内容。在 Linux 世界中,隐藏文件和目录以点(.
)开头。这些通常是配置文件或目录,它们不会干扰你的正常视图。
输入:
ls -a
输出:
. .. data_file.txt test test_file.txt
-a
选项会显示所有文件,包括隐藏文件。让我们分解一下我们所看到的内容:
.
表示当前目录。它是一个可以在命令中使用的快捷方式。..
表示父目录(上一级目录)。这在导航时非常有用。你可能会想:“为什么我没有看到任何实际的隐藏文件?”在这个例子中,我们的目录除了 .
和 ..
之外,没有包含任何隐藏文件。在许多目录中,尤其是在你的主文件夹中,你经常会看到像 .bashrc
或 .config
这样的文件。
如果你来自 Windows 背景,这可能会显得很奇怪。在 Windows 中,隐藏文件是一个属性,而在 Linux 中,它是由文件名决定的。任何以点开头的文件都被视为隐藏文件。
一名优秀的侦探需要详细的信息。让我们使用 -l
选项来获取长列表格式。这将为我们提供有关每个文件和目录的更多信息。
输入:
ls -l
输出:
total 8
-rw-rw-r-- 1 labex labex 12 Aug 7 11:23 data_file.txt
drwxrwxr-x 2 labex labex 6 Aug 7 11:23 test
-rw-rw-r-- 1 labex labex 27 Aug 7 11:23 test_file.txt
哇,信息量真大!让我们逐条分解:
文件权限:第一列(例如 -rw-rw-r--
)显示文件权限。
-
表示普通文件,d
表示目录)。r
表示读权限,w
表示写权限,x
表示执行权限。链接数:权限后面的数字(本例中文件为 1,目录为 2)。
所有者名称:文件所有者的用户名(本例中为 labex)。
组名称:有权访问文件的组(本例中也是 labex)。
文件大小:以字节为单位的大小(data_file.txt 为 12 字节,test 目录为 6 字节,test_file.txt 为 27 字节)。
最后修改日期和时间:文件最后一次修改的时间(本例中所有文件均为 Aug 7 11:23)。
文件或目录名称:文件或目录的名称。
注意到 test
的权限开头有一个 d
了吗?这意味着它是一个目录!此外,它的大小为 6 字节,这在某些文件系统中是空目录或接近空目录的典型大小。
这种详细视图让我们一目了然地了解文件和目录的许多信息。它对于理解谁可以访问文件、文件最后修改的时间以及文件的大小非常有用。
以字节为单位的文件大小可能难以理解,尤其是对于较大的文件。让我们使用 -h
选项与 -l
选项结合,使文件大小更易于人类阅读。
输入:
ls -lh
👆 LabEx 小贴士: 点击代码块右下角的“Explain Code”与 Labby AI 聊天,获取代码解释。
输出:
total 8.0K
-rw-rw-r-- 1 labex labex 12 Aug 7 11:23 data_file.txt
drwxrwxr-x 2 labex labex 6 Aug 7 11:23 test
-rw-rw-r-- 1 labex labex 27 Aug 7 11:23 test_file.txt
现在我们可以看到总大小为 8.0K,这比以字节显示要容易理解得多!
-h
选项代表“human-readable”(人类可读)。它将文件大小转换为更易于人类理解的格式。以下是它的工作原理:
这在处理大文件或快速了解文件占用空间时特别有用。
你可能会注意到,即使我们添加了 -h
选项,我们仍然保留了 -l
选项。这是因为 -h
修改了长列表格式的输出。如果我们只使用 ls -h
,我们将完全看不到文件大小!
现在我们已经学习了几种选项,让我们将它们结合起来,全面了解我们的神秘房间,包括隐藏的线索和以人类可读格式显示的详细信息。
输入:
ls -alh
输出:
total 12K
drwxr-xr-x 1 labex labex 60 Aug 7 11:23 .
drwxr-x--- 1 labex labex 4.0K Aug 7 11:24 ..
-rw-rw-r-- 1 labex labex 12 Aug 7 11:23 data_file.txt
drwxrwxr-x 2 labex labex 6 Aug 7 11:23 test
-rw-rw-r-- 1 labex labex 27 Aug 7 11:23 test_file.txt
这个命令结合了我们所学的所有内容:
-a
显示所有文件,包括隐藏文件-l
提供长列表格式,显示详细信息-h
使文件大小以人类可读格式显示让我们分解一下我们所看到的内容:
.
)及其父目录(..
),我们之前在 ls -a
中看到过。ls -l
中看到的所有详细信息。-h
选项。你可能会好奇,为什么我们看到的总大小为 12K,而将所有可见文件的大小相加却不到这个值。这是因为总大小包括了目录条目本身所占用的磁盘空间。
另外,注意选项的顺序并不重要。ls -alh
、ls -hal
、ls -lha
都会产生相同的输出。这对于大多数 Linux 命令都是如此,这使得它们非常灵活!
有时,线索的顺序很重要。让我们探索如何以不同的方式对文件进行排序。
首先,让我们按修改时间排序,最新的文件排在最前面:
输入:
ls -lt
该命令以长格式(-l
)列出文件,并按修改时间(-t
)排序,最近修改的文件排在最前面。
如果你没有看到顺序上的差异,那是因为该目录中的所有文件可能是在同一时间创建或修改的。在实际场景中,如果文件是在不同时间修改的,你会看到最近更改的文件排在最前面。
现在,让我们反转顺序,以查看最旧的文件排在最前面:
输入:
ls -ltr
r
选项会反转排序顺序。同样,如果所有文件的修改时间相同,你将看不到差异。
以下是一些其他有用的排序选项:
-S
:按文件大小排序,最大的文件排在最前面-X
:按文件扩展名字母顺序排序-v
:按版本排序(适用于编号文件)你可以将这些选项与我们之前的选项结合使用。例如,ls -lhSr
会以长格式显示文件,文件大小以人类可读格式显示,并按大小排序,最小的文件排在最前面。
记住,在 Linux 中,你通常可以组合选项来创建功能强大且自定义的命令!
到目前为止,我们一直在查看当前目录的内容。但如果我们想在不进入子目录的情况下查看其内容呢?我们可以使用 ls
命令并将目录名作为参数。
输入:
ls -l test
该命令将列出 test
目录的内容,而我们仍然保持在当前位置。如果 test
目录为空,你会看到类似以下的消息:
total 0
这意味着该目录存在,但不包含任何文件。
如果 test
目录中有文件,你会看到它们像我们在当前目录中看到的那样列出。
这种“窥探”目录的能力在探索文件系统或查找特定文件时非常有用。你甚至可以使用通配符一次性查看多个目录的内容。例如:
ls -l */
这将显示当前目录中所有直接子目录的内容。
记住,如果你没有读取目录的权限,ls
会告诉你访问被拒绝。这是 Linux 强大安全模型的一部分,确保用户只能访问他们被允许访问的文件和目录。
现在你已经掌握了 ls
的基础知识,让我们来玩点有趣的,进一步探索吧!Linux 不仅仅是严肃的工作——它也可以很有趣。我们将使用一个名为 cowsay
的有趣程序,以一种有趣的方式显示我们的目录内容,然后我们将学习 ls
中的颜色选项。
首先,让我们试试 cowsay
的技巧:
输入:
ls | cowsay
你应该会看到类似以下的内容:
_________________________________________
/ data_file.txt test test_file.txt \
\ /
-----------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
是不是很有趣?我们刚刚让一头牛说出了我们目录的内容!
你可能会对 ls
和 cowsay
之间的 |
符号感到好奇。这被称为“管道”(pipe),它是 Linux 中一个强大的功能,用于将命令连接在一起。如果你现在还不明白它的工作原理,别担心——这完全正常!我们将在未来的课程中学习更多关于管道的知识。现在,尽情享受这只会说话的牛吧!
现在,让我们进一步探索一下 ls
。你知道 ls
可以以不同的颜色显示输出吗?默认情况下,许多 Linux 系统会自动显示颜色。但我们可以控制这种行为。让我们尝试使用一个特殊选项来关闭颜色:
输入:
ls --color=never
你现在应该会看到没有任何颜色的目录内容。这是 ls
的纯文本输出。
ls
中的 --color
选项可以接受三个值:
never
:从不使用颜色(我们刚刚尝试的)always
:始终使用颜色,即使将输出发送到文件或其他命令auto
:当直接输出到终端时使用颜色,但在将输出发送到其他地方时不使用颜色使用 ls --color=never
在脚本中或当你希望确保输出一致时非常有用,无论你的终端设置如何。
这些小小的探索向你展示了 Linux 命令通常有许多可以改变其行为的选项。随着你继续 Linux 的旅程,你会发现 ls
和其他命令的更多有用功能!
恭喜你,侦探!你已经掌握了 ls
命令的基础知识。让我们回顾一下我们所学的内容:
ls
- 列出当前目录中的文件和目录。ls -a
- 显示所有文件,包括隐藏文件。ls -l
- 显示文件和目录的详细信息。ls -h
- 以易于人类理解的格式显示文件大小。ls -alh
- 显示所有文件,包含详细信息和人类可读的大小。ls -lt
、ls -ltr
- 按修改时间排序,最新的或最旧的文件排在最前面。ls [目录名]
- 在不改变当前位置的情况下查看其他目录的内容。还有许多 ls
选项值得探索。以下是一些你可能会觉得有用的选项:
-R
:递归列出子目录(显示所有子目录的内容)-S
:按文件大小排序(最大的排在最前面)-X
:按文件扩展名字母顺序排序-1
:每行列出一个文件(适用于脚本)记住,你随时可以通过在终端中输入 man ls
来查看 ls
的手册页,以获取完整的选项列表和详细说明。不要被手册页吓到——一旦你习惯了阅读它们,它们就是信息的宝库!
有了这些工具,你已经具备了在任何 Linux 系统中探索和管理文件的能力。ls
命令只是你 Linux 旅程的开始,但它是你每天都会使用的重要工具,随着你对操作系统的熟练程度提高,它会变得更加得心应手。
在你继续探索 Linux 的过程中,请记住以下几点:
File.txt
、file.txt
和 FILE.txt
在 Linux 中是不同的文件。ls
中学到的概念(如选项和参数)也适用于许多其他 Linux 命令。熟能生巧!尝试在不同的目录中使用 ls
并结合不同的选项。你用得越多,它就会变得越自然。
记住,每个专家都曾是初学者。只要有耐心和练习,你很快就能像专业人士一样在 Linux 文件系统中导航!
祝你探索愉快,如果需要复习 ls
命令,请随时参考本指南。你的 Linux 世界之旅才刚刚开始!