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

让我们先了解一下当前所在的位置:
pwd
pwd 代表「打印工作目录」(print working directory)。它会显示你在文件系统中的当前位置。此命令对于在 Linux 文件结构中定位自己至关重要。你应该会看到输出 /home/labex/project。
现在,让我们探索一下当前目录与主目录之间的关系:
echo ~
注意:如果由于某些国家的键盘布局差异,导致你无法在桌面终端输入
~符号,可以尝试切换到虚拟机界面左上角的独立终端选项卡。
该命令将显示你的主目录路径,通常应该是 /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 命令(意为「创建目录」)会创建一个名为 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_copy.txt 的 file1.txt 副本。
让我们验证一下复制结果:
ls
- 将文件复制到另一个目录:
cp file2.txt testdir/
这会将 file2.txt 复制到 testdir 目录中。
- 复制目录:
cp -r testdir testdir_copy
-r 选项代表「递归」(recursive)。在复制目录时必须使用此选项,以确保所有内容都被复制。
- 验证我们的副本:
ls
ls testdir
ls testdir_copy

移动和重命名文件与目录
mv 命令在 Linux 中既用于移动也用于重命名:
- 重命名文件:
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.txtrm命令(意为「移除」)用于删除文件。让我们检查一下:lsoriginal_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_testdirrmdir(移除目录)仅适用于空目录。lsnew_testdir无法被删除,因为它不为空。尝试删除非空目录:
现在,让我们尝试对
testdir使用rmdir,它仍然包含file2.txt(在步骤 4 中复制进去的):ls testdir rmdir testdir你可能会看到类似
rmdir: failed to remove 'testdir': Directory not empty的错误消息。这是预料之中的,因为rmdir无法删除包含文件或其他目录的目录。删除目录及其内容(递归):
要删除不为空的目录,我们需要使用带有
-r(递归)选项的rm:rm -r testdir此命令会删除
testdir目录及其内部的所有内容。请谨慎使用此命令。lstestdir现在应该已经消失了。强制删除(请极其谨慎使用):
有时,你可能希望在不被提示的情况下删除文件,即使它们是写保护的(尽管我们这里没有这种情况)。
-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 command) 以了解每个命令的具体选项。现在,让我们强制删除它:
rm -rf temp_dir验证删除结果:
lstemp_dir应该已经消失了。
记住:在 Linux 命令行中,删除的文件通常会永久消失。请谨慎使用 rm!
总结
恭喜!你已经学习了 Linux 中的基本文件操作:
- 使用
cd和pwd导航文件系统 - 使用
touch和mkdir创建文件和目录 - 使用
ls及其选项列出内容 - 使用
cp复制文件和目录 - 使用
mv移动和重命名 - 使用
rm和rmdir删除文件和目录
这些命令构成了 Linux 文件管理的基础。通过练习,你将能够熟练地从命令行管理你的文件和目录。
请记住要谨慎使用这些命令,尤其是 rm,因为它会永久删除文件和目录,且无法恢复。
在你继续 Linux 之旅的过程中,请探索手册页(例如 man ls)以了解更多关于每个命令及其选项的信息。祝你探索愉快!



