Linux 基础:文件系统结构、导航与文件管理
根目录 / 位于整个层级结构的顶端,所有其他分区都挂载于此。关键目录各司其职:/etc 用于配置,/var 用于动态数据,/proc 和 /sys 则是内核的虚拟接口。
/
├── etc # 系统和应用配置
├── var # 可变数据:日志、缓存、队列
├── proc # 内核和进程状态
├── sys # 设备和驱动
├── tmp # 临时文件
├── home # 用户主目录
├── root # root 用户主目录
├── dev # 设备文件
├── usr # 程序和库文件
├── bin # 基本工具(指向 /usr/bin 的符号链接)
├── sbin # 管理命令(指向 /usr/sbin 的符号链接)
├── opt # 第三方软件
├── run # 运行时进程数据
├── mnt # 手动挂载点
└── boot # 引导加载器和内核文件
/etc:集中配置中心
存放服务、网络设置和用户相关的配置文件。关键文件包括 /etc/passwd(用户账户)、/etc/fstab(挂载点)、/etc/hosts(本地主机名解析)和 /etc/ssh/sshd_config(SSH 配置)。
/var:动态数据区
存储变化中的文件,如 /var/log 中的日志、/var/mail 中的邮件、/var/spool 中的打印队列,以及 /var/www 中的 Web 服务器内容。排查问题时,这是你的首选之地。
虚拟文件系统:/proc 和 /sys
/proc 提供进程和内核的实时数据:/proc/cpuinfo 显示 CPU 详情,/proc/meminfo 显示内存统计,/proc/1/ 显示 init 进程。/sys 则为设备提供接口,可实时调整驱动和硬件参数。
用户目录与设备
/home/username 存放个人文件和配置(如 .config 和 .ssh)。/root 是 root 用户的独立目录。/dev 表示硬件:/dev/sda 为磁盘,/dev/null 用于丢弃输出,/dev/random 用于生成熵。
导航命令:ls、cd、pwd
ls 用于列出目录内容,支持各种标志获取更多细节。
ls -l:权限、所有者、大小、日期。ls -a:显示隐藏文件。ls -lh:人性化大小显示(KB/MB/GB)。ls -lt:按时间排序。ls -R:递归列出。
cd 用于切换目录:
cd /etc:绝对路径。cd ..:上级目录。cd ~:主目录。cd -:返回上一个目录。
pwd 显示当前路径:pwd -P 解析符号链接。
查找文件:find 和 locate
find 根据条件递归搜索。
示例:
find . -name "*.log":查找日志文件。find /var -type f:仅文件。find / -size +100M:大于 100MB 的文件。find /var/log -mtime -1:过去一天修改的日志。find /tmp -name "*.tmp" -delete:清理临时文件。
locate 使用数据库,速度更快:
locate passwd。sudo updatedb更新索引。
在 Ubuntu 22.04+ 上,使用 plocate 性能更佳。
tree 可视化目录结构:tree -L 2 -a -I "node_modules"。
文件管理:cp、mv、rm
cp 用于复制:
cp file.txt /tmp/。cp -r dir1/ /backup/。cp -p保留元数据。cp -u仅更新较新文件。
mv 用于移动或重命名:mv old.txt new.txt,mv *.log /archive/。
rm 直接删除,无回收站:
rm -r dir/。rm -rf /— 极其危险,绝不要运行。rm -i提示确认。
创建与链接:mkdir、touch、ln
mkdir -p /path/to/dir 创建嵌套目录。
touch file.txt 创建空文件或更新时间戳:touch -t 202501011200 file.txt。
ln 创建链接:
ln file.txt hardlink.txt— 硬链接(共享 inode)。ln -s file.txt symlink.txt— 符号链接(指向路径)。
硬链接无法跨文件系统;符号链接灵活,但原文件删除后会失效。
关键要点:
/proc和/sys存于内存,不占磁盘——纯内核运行时数据。find功能强大;locate需维护索引以确保速度。rm -rf需谨慎——无回收站保护。mkdir -p和cd -是脚本编写必备。- 硬链接 vs 符号链接:根据需求选择(共享数据 vs 路径引用)。
— Editorial Team
暂无评论。