介绍
欢迎来到 Linux 基础文件操作实验!在 Linux 中,几乎所有内容都被视为文件,这使得文件操作成为使用系统的基础。本实验将引导你学习管理文件和目录最常用的命令,帮助你更熟练地在 Linux 系统中进行导航和组织。
欢迎来到 Linux 基础文件操作实验!在 Linux 中,几乎所有内容都被视为文件,这使得文件操作成为使用系统的基础。本实验将引导你学习管理文件和目录最常用的命令,帮助你更熟练地在 Linux 系统中进行导航和组织。
在 Linux 中,每个用户通常都有一个「主目录」(Home Directory),用 ~ 表示。不过,在本实验环境中,我们将从 /home/labex/project 目录开始,这是我们的默认工作目录。
首先,请在桌面上打开一个终端,或者切换到实验环境中的终端选项卡。

让我们先来了解当前所处的位置:
pwd
pwd 代表「打印工作目录」(print working directory)。它会显示你在文件系统中的当前位置。这个命令对于在 Linux 文件结构中定位自己至关重要。你应该会看到输出为 /home/labex/project。
现在,让我们探索一下当前目录与主目录之间的关系:
echo ~
注意:如果你因为某些国家的键盘布局差异而无法在桌面终端输入
~符号,可以尝试切换到虚拟机界面左上角的独立终端(Terminal)选项卡。
该命令将显示主目录的路径,应该是 /home/labex。
要查看当前目录的内容,请使用:
ls
这将列出你当前工作目录(/home/labex/project)下的文件和目录。
我们也来检查一下主目录的内容:
ls ~
此命令会列出主目录的内容,它可能与你当前的工作目录不同。
理解当前工作目录和主目录之间的区别,对于有效地在 Linux 文件系统中导航非常重要。
Linux 使用的是所谓的「层级文件系统」。你可以把它想象成一棵带有分支的大树。主干被称为「根目录」(Root Directory),用一个正斜杠 / 表示。所有其他目录和文件都从这个根部延伸出来。
让我们探索如何在这个树状结构中移动:
pwd
这里应该显示 /home/labex/project。如果没有显示这个,说明你可能在其他目录。使用 cd /home/labex/project 即可回到起点。
ls
这会列出当前位置的所有文件和文件夹。由于 /home/labex/project 目前是空的,所以你什么也看不到。
cd ..
.. 代表「上一级目录」。执行此命令后,再次输入 pwd。你现在应该处于 /home/labex 中。
cd project
这会带你回到 /home/labex/project。
cd ~
~ 是主目录的快捷方式。输入 pwd 确认你处于 /home/labex。
cd /home/labex/project
这被称为「绝对路径」,因为它从根目录(/)开始并提供了完整的定位信息。
既然我们已经知道如何导航,现在来创建一些文件并探索如何列出目录内容。
首先,确保你处于 /home/labex/project 目录中:
cd /home/labex/project
touch file1.txt
touch 命令用于创建一个空文件。如果文件已经存在,它会更新文件的时间戳而不改变其内容。这是创建新的空文件的一种简单方法。
echo "Hello, Linux" > file2.txt
这个命令做了两件事:
echo 是一个打印文本的命令。> 符号将 echo 的输出重定向到一个名为 file2.txt 的文件中。如果该文件不存在,则创建它;如果已存在,则覆盖其内容。echo "Hidden file" > .hiddenfile
这会创建一个隐藏文件。在 Linux 中,任何以点(.)开头的文件或目录名都被视为隐藏的。
mkdir testdir
mkdir 命令(make directory 的缩写)会创建一个名为 testdir 的新目录。
ls

这会显示当前目录的内容。你应该能看到 file1.txt、file2.txt 和 testdir。
ls -l
-l 选项(那是小写的 L,不是数字 1)提供「长格式」列表。你会看到额外的详细信息,如文件权限、所有者、大小和修改日期。
ls -a
这将显示所有文件,包括我们创建的隐藏文件 .hiddenfile。
ls -la
这将长格式(-l)与显示所有文件(-a)的功能结合在了一起。
ls -l testdir
这会列出 testdir 目录的内容(此时该目录应该是空的)。
现在我们有了一些可以操作的文件,让我们学习如何复制它们:
cp file1.txt file1_copy.txt
这会在当前目录下创建一个 file1.txt 的副本,命名为 file1_copy.txt。
让我们验证一下副本:
ls
cp file2.txt testdir/
这会将 file2.txt 复制到 testdir 目录中。
cp -r testdir testdir_copy
-r 选项代表「递归」(recursive)。在复制目录时必须使用此选项,以确保目录内的所有内容都被一并复制。
ls
ls testdir
ls testdir_copy

在 Linux 中,mv 命令既用于移动也用于重命名:
mv file1.txt newname.txt
这会将 file1.txt 重命名为 newname.txt。
mv newname.txt testdir/
这会将 newname.txt 移动到 testdir 目录中。
mv testdir_copy new_testdir
这会将 testdir_copy 重命名为 new_testdir。
mv testdir/newname.txt ./original_file1.txt
这会将 newname.txt 从 testdir 中移出,并重命名为当前目录下的 original_file1.txt。
ls
ls testdir

删除文件和目录是一项强大的操作。与图形界面不同,命令行通常没有「回收站」。使用 rm 进行的删除通常是永久性的。在执行命令之前,请务必仔细检查!
让我们清理一下创建的文件和目录。确保你处于 /home/labex/project 目录中。
pwd
ls -a
你应该能看到类似 original_file1.txt、.hiddenfile、file2.txt 的文件,以及 testdir、new_testdir 等目录。
-rw-rw-r-- 1 labex labex 12 May 3 08:44 .hiddenfile
-rw-rw-r-- 1 labex labex 0 May 3 08:45 file1_copy.txt
-rw-rw-r-- 1 labex labex 13 May 3 08:44 file2.txt
drwxrwxr-x 2 labex labex 23 May 3 08:45 new_testdir
-rw-rw-r-- 1 labex labex 0 May 3 08:44 original_file1.txt
drwxrwxr-x 2 labex labex 23 May 3 08:45 testdir
删除单个文件:
rm original_file1.txt
rm 命令(remove 的缩写)用于删除文件。让我们检查一下:
ls
original_file1.txt 应该已经消失了。
交互式删除(更安全):
让我们尝试删除 file2.txt,但这次使用交互式标志 -i:
rm -i file2.txt
-i 选项会在删除每个文件之前提示你确认。输入 y(代表 yes)并按回车键确认删除。如果你输入 n 或其他任何内容,文件将不会被删除。
ls
如果你确认了,file2.txt 就会消失。
删除空目录:
还记得我们通过重命名 testdir_copy 创建的 new_testdir 吗?让我们检查它是否为空:
ls new_testdir
如果它是空的(不显示任何文件),我们可以使用 rmdir 删除它:
rmdir new_testdir
rmdir(删除目录)仅适用于空目录。
ls
如果 new_testdir 无法删除,那是因为它不是空的。
尝试删除非空目录:
现在,让我们对 testdir 尝试使用 rmdir,它里面还包含我们在步骤 4 中复制的 file2.txt:
ls testdir
rmdir testdir
你可能会看到类似 rmdir: failed to remove 'testdir': Directory not empty 的错误消息。这是正常的,因为 rmdir 无法删除包含文件或其他目录的目录。
删除目录及其内容(递归删除):
要删除一个不为空的目录,我们需要使用带有 -r(递归)选项的 rm:
rm -r testdir
此命令会删除 testdir 目录及其内部的所有内容。请谨慎使用此命令。
ls
testdir 现在应该已经消失了。
强制删除(极其谨慎使用):
有时,你可能希望在不出现提示的情况下删除文件,即使它们是写保护的(尽管我们这里没有这样的文件)。-f(强制)选项可以实现这一点。
让我们删除隐藏文件:
rm .hiddenfile
ls -a
现在,让我们结合使用 -r 和 -f。rm -rf 命令极其强大且具有潜在危险。它会递归地删除目录(-r)并强制删除而不进行提示(-f)。
!!!危险区域!!!
在运行 rm -rf 之前,请绝对确定你知道自己在删除什么。一个小小的拼写错误就可能删除关键的系统文件或你的个人数据,且无法撤销。例如,rm -rf / 可能会尝试删除你的整个系统(如果你有权限的话)。务必反复检查路径。
让我们创建一个临时目录和文件来演示(安全操作):
mkdir temp_dir
touch temp_dir/temp_file.txt
ls -R temp_dir
注意:你可能注意到我们在 ls 中使用了大写的 -R,而不是像在 cp 和 rm 中那样使用小写的 -r。这不仅仅是大小写的区别——它们是完全不同的选项!对于 ls,-R 表示「递归列出」(列出子目录),而 -r 表示「反向排序」。对于 cp 和 rm,递归选项是小写的 -r。请务必查阅手册(man 命令)以了解每个命令的具体选项。
现在,让我们强制删除它:
rm -rf temp_dir
验证删除结果:
ls
temp_dir 应该已经消失了。
请记住:在 Linux 命令行中,删除的文件通常永远找不回来了。请谨慎使用 rm!
恭喜你!你已经学习了 Linux 中核心的文件操作:
cd 和 pwd 在文件系统中导航touch 和 mkdir 创建文件和目录ls 及其选项列出内容cp 复制文件和目录mv 移动和重命名rm 和 rmdir 删除文件和目录这些命令构成了 Linux 文件管理的基础。通过练习,你将能够熟练地从命令行管理你的文件和目录。
请记住要谨慎使用这些命令,尤其是 rm,因为它会永久删除文件和目录,且无法恢复。
在继续你的 Linux 探索之旅时,可以查阅联机帮助页(例如 man ls)来深入了解每个命令及其选项。祝你探索愉快!