03.Linux 文件系统与常用命令入门:从路径导航到文件管理
文章摘要: 本文从 Linux 的树形文件系统讲起,说明根目录以及 /home、/etc、/usr、/dev、/var、/tmp 等常见目录的用途,并解释绝对路径、相对路径和家目录的区别。文章按实际操作顺序介绍 pwd、cd、ls、mkdir、touch、cat、rm、cp、mv 等命令,通过一个完整练习完成目录创建、文件编辑、复制、移动和重命名,最后总结权限错误、路径错误和误删文件的排查方法。
Linux 命令行的难点不在于命令数量,而在于理解路径和文件系统。本文先解释目录树,再通过一组连续命令完成目录创建、复制、移动和删除。
一、Linux 为什么只有一棵目录树
Windows 常用 C:、D: 等盘符区分磁盘分区;Linux 把所有文件和目录组织成一棵树,树根用 / 表示。无论系统挂载了多少块硬盘,用户看到的路径都从 / 开始。
Linux 中的“磁盘分区”和“目录”不是同一个概念。分区可以挂载到某个目录,例如把一块硬盘挂载到 /data,挂载完成后,用户仍然通过 /data 访问它。虚拟机共享文件夹也可以挂载到 /mnt/hgfs,这就是“设备或资源接入统一目录树”的体现。
二、常见目录及其用途
| / | 所有文件的根目录 |
| /bin | 常用二进制命令 |
| /sbin | 系统管理相关命令 |
| /home | 普通用户的家目录,例如 /home/linux |
| /root | root 超级用户的家目录 |
| /etc | 系统配置文件 |
| /dev | 设备文件,例如磁盘、声卡 |
| /lib | 系统库文件 |
| /usr | 应用程序、共享资源和库 |
| /var | 日志、缓存和运行过程中变化的数据 |
| /tmp | 临时文件目录,内容可能在重启后清理 |
| /mnt | 临时挂载其他文件系统的位置 |
| /opt | 部分第三方软件的安装目录 |
初学者最常用的是 /home/用户名、/etc、/usr 和 /mnt。修改 /etc 下的配置通常需要管理员权限,删除系统目录中的文件可能导致系统或软件无法运行。
三、理解绝对路径和相对路径
路径是命令行操作的参照物。/home/linux/test 是绝对路径,因为它从 / 开始;test 或 ../test 是相对路径,因为它依赖当前所在位置。
Linux 用几个特殊符号表示路径:
- .:当前目录;
- ..:上一级目录;
- ~:当前用户的家目录,例如 /home/linux;
- -:cd – 中表示上一次所在的目录。
假设当前目录是 /home/linux/project/src:
cd .. # 进入 /home/linux/project
cd ../.. # 进入 /home/linux
cd ./ # 仍在 /home/linux/project/src
cd ~/project # 从任意位置进入家目录下的 project
路径中大小写敏感,Test 和 test 是两个不同的名字。命令中出现空格时,路径需要使用引号或反斜杠,例如 cd "my project"。
四、终端提示符和快捷键
常见终端提示符如下:
linux@ubuntu:~/project$
其中 linux 是当前用户名,ubuntu 是主机名,~/project 是当前目录,$ 表示普通用户。若提示符最后是 #,通常表示当前是 root 用户,执行命令时要更加谨慎。
常用快捷键:
- Ctrl + Alt + T:打开终端;
- Ctrl + L 或执行 clear:清空终端显示;
- Ctrl + C:终止当前正在运行的命令;
- Ctrl + D:退出当前 Shell 或结束输入;
- Tab:自动补全文件名和命令;
- ↑:调出上一条命令;
- Ctrl + Alt + Enter:切换虚拟机全屏,具体组合键可能因软件设置而异;
- Ctrl + Shift + +:放大终端字体;
- Ctrl + -:缩小终端字体。
快捷键只影响终端操作体验,不会改变文件内容。执行不确定的命令前,可以先按 Tab 查看可补全的名称,减少拼写错误。
五、先学会查看当前位置
1. pwd:显示当前目录
pwd
pwd 是 print working directory 的缩写。排查“文件明明存在却找不到”时,第一步通常就是执行 pwd。
2. cd:切换目录
cd /etc # 进入绝对路径
cd /home/linux # 进入用户家目录
cd .. # 返回上一级目录
cd . # 仍停留在当前目录
cd – # 返回上一次所在目录
cd ~ # 返回当前用户的家目录
cd 不会自动列出目录内容,切换后可以用 pwd 验证结果,再用 ls 查看文件。
六、查看目录和文件
1. ls:列出目录内容
ls
ls /etc
ls -l
ls -a
ls -lh
常用选项如下:
- -l:以详细列表显示权限、所有者、大小和修改时间;
- -a:显示以 . 开头的隐藏文件;
- -h:以更容易阅读的单位显示文件大小,通常和 -l 一起使用;
- -R:递归列出子目录,目录较大时不建议随意使用。
ls -la 可以同时查看详细信息和隐藏文件。文件名前的 . 只是命名规则,不代表文件损坏。
2. file 和 stat:进一步确认文件
file hello.c
stat hello.c
file 根据内容判断文件类型,stat 可以查看权限、大小、修改时间和 inode 等信息。当文件扩展名与实际内容不一致时,这两个命令很有帮助。
七、新建和查看文件
1. mkdir:创建目录
mkdir test
mkdir -p project/src/include
如果父目录不存在,普通 mkdir 会失败;-p 会按层级创建缺失的父目录。目录已存在时,可以加 -p 避免重复创建时报错。
2. touch:创建空文件或更新时间
touch hello.c
touch log1.txt log2.txt
touch 创建不存在的文件;如果文件已经存在,则主要作用是更新访问时间和修改时间。它不会自动写入内容。
3. cat、printf:查看和写入文本
cat hello.c
printf 'Hello World\\n' > message.txt
printf 'Another line\\n' >> message.txt
> 会覆盖目标文件,>> 会追加内容。使用重定向前要确认符号是否写对,误把 >> 写成 > 可能覆盖原有内容。
八、删除文件和目录
1. rm 的常用形式
rm hello.c # 删除文件
rm -i hello.c # 删除前询问
rm -r test # 递归删除目录及其内容
rm -f hello.c # 强制删除文件
rm -rf 会递归、强制删除目录,执行前必须确认路径。Linux 通常没有回收站,误删后很难恢复。尤其不要在没有检查 pwd 的情况下,对通配符或根目录使用删除命令。
更稳妥的操作顺序是:
pwd
ls
ls -ld target
rm -ri target
先确认当前目录和目标,再选择交互式删除。
九、复制和移动
1. cp:复制文件或目录
mkdir test
touch helloworld.c
cp helloworld.c ./test/ # 复制到 test 目录
cp helloworld.c ./test/backup.c # 复制并改名
cp -r test test2 # 递归复制目录
cp -a test test2 # 递归复制并尽量保留属性
复制前要确认目标目录存在。普通 cp 复制目录时通常会提示需要递归选项,-r 用于递归复制,-a 还会尽量保留时间、权限和目录结构。
2. mv:移动或重命名
mv helloworld.c test/ # 移动到 test 目录
mv oldname.c newname.c # 在同一目录下就是重命名
mv test test_backup # 重命名目录
mv 可以同时完成移动和重命名,判断标准是目标参数是否包含新的目录路径。目标文件已存在时,可能被覆盖;重要文件移动前可以先使用 -i:
mv -i source.txt backup/
十、完成一个完整练习
下面的练习覆盖导航、查看、创建、写入、复制和重命名。请在自己的家目录中操作:
cd /home/linux
pwd
ls
cd /etc
ls
cd /home/linux
mkdir -p first
cd first
touch log1.txt log2.txt
printf 'Hello World\\n' > log1.txt
printf 'Hello World\\n' > log2.txt
cp log1.txt ../
mv log2.txt log.c
ls -l
预期结果是:first 目录中有 log1.txt 和 log.c,/home/linux 中还有一份复制出来的 log1.txt。可以继续检查:
cd ..
ls -l log1.txt
cd first
cat log1.txt
cat log.c
也可以使用 find 查看练习目录中的文件:
find /home/linux/first -maxdepth 1 -type f -print
这里使用 printf 写入文本,避免依赖图形界面编辑器。若要用 Vim 编辑文件,可以执行 vim log1.txt,按 i 进入插入模式,编辑后按 Esc,输入 :wq 并回车保存退出。
十一、常见错误和排查方法
1. No such file or directory
路径拼写错误、大小写不一致,或者当前目录不正确,都可能出现这个错误。先执行 pwd,再使用 ls 分段确认路径:
ls /home
ls /home/linux
ls /home/linux/first
2. Permission denied
当前用户没有访问或修改目标文件的权限。先使用 ls -l 查看权限和所有者,再判断是否应该使用 sudo。不要为了绕过权限问题而习惯性执行 sudo rm,管理员权限会放大误操作的影响。
3. cp: -r not specified
复制对象是目录,需要加递归选项:
cp -r source_dir target_dir
4. 命令执行后没有输出
很多 Linux 命令“成功时不输出任何内容”,例如 mkdir、touch 和 cp。可以用 echo $? 查看上一条命令的退出状态,返回 0 通常表示成功,再用 ls 验证结果。
十二、初学者的操作习惯
掌握这些命令后,就能完成大部分 Linux 入门练习。后续再学习 grep、find、权限、管道、重定向和 Shell 脚本,命令行才会真正成为高效的开发工具。
网硕互联帮助中心




评论前必须登录!
注册