简介
欢迎参加 Linux 基本文件操作实验!在 Linux 中,几乎所有内容都被视为文件,因此文件操作是使用系统的基础。本实验将带你学习管理文件和目录时最常用的命令,帮助你更熟练地浏览和整理 Linux 系统。
了解工作环境
在 Linux 中,每个用户通常都有一个「主目录」,用 ~ 表示。不过,在本实验环境中,我们会从 /home/labex/project 目录开始,这就是默认工作目录。
首先,在桌面上打开终端,或者切换到实验环境中的终端选项卡。

先查看当前所在位置:
pwd
pwd 是「print working directory(打印工作目录)」的缩写,用于显示你在文件系统中的当前位置。这个命令对于确定自己在 Linux 文件结构中的位置非常重要。你应该会看到输出 /home/labex/project。
接着查看当前目录与主目录之间的关系:
echo ~
注意:由于某些国家或地区的键盘布局不同,如果你无法在桌面终端中输入
~,可以尝试切换到虚拟机界面左上角的独立 Terminal 选项卡。
这个命令会显示主目录的路径,应该是 /home/labex。
要查看当前目录中的内容,请使用:
ls
该命令会列出当前工作目录(/home/labex/project)中的文件和目录。
再查看主目录中的内容:
ls ~
该命令会列出主目录的内容。主目录中的内容可能与当前工作目录不同。
理解当前工作目录与主目录之间的区别,对于高效浏览 Linux 文件系统非常重要。
浏览文件系统
Linux 使用我们所说的「层次化文件系统」。你可以把它想象成一棵有许多分支的大树。主干称为「根目录」,用单个正斜杠 / 表示。其他所有目录和文件都从根目录分支出来。
下面来了解如何在这种树状结构中移动:
- 查看当前位置:
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 选项表示「递归」。复制目录时必须使用该选项,以确保目录中的所有内容也被复制。
- 验证副本:
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 等目录。
.
..
.hiddenfile
file1_copy.txt
file2.txt
new_testdir
original_file1.txt
testdir
删除单个文件:
rm original_file1.txtrm命令是「remove(删除)」的缩写,用于删除文件。检查删除结果:lsoriginal_file1.txt应该已经消失。交互式删除(更安全):
这次使用交互式选项
-i尝试删除file2.txt:rm -i file2.txt-i选项会在删除每个文件前提示你确认。输入y(表示 yes),然后按 Enter 键确认删除。如果输入n或其他内容,文件不会被删除。ls如果你确认了删除,
file2.txt就不会再出现。查看删除非空目录时的结果:
还记得通过重命名
testdir_copy创建的new_testdir吗?它仍然包含复制的file2.txt,因此rmdir会失败。先确认其中的内容:ls new_testdir你应该会看到
file2.txt。现在尝试使用rmdir:rmdir new_testdirrmdir(删除目录)只能删除空目录。ls由于
new_testdir不为空,无法删除,因此它应该仍然会出现在列表中。尝试删除非空目录:
现在对
testdir使用rmdir。该目录仍然包含第 4 步复制的file2.txt:ls testdir rmdir testdir你很可能会看到类似
rmdir: failed to remove 'testdir': Directory not empty的错误消息。这是预期结果,因为rmdir无法删除包含文件或其他目录的目录。递归删除目录及其内容:
要删除一个非空目录,需要将
rm与-r(递归)选项一起使用: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 手册页(例如 man ls),进一步了解每个命令及其选项。祝你探索愉快!



