Appearance
文件系统与权限
第一讲解决两个问题:文件到底在哪里、谁能不能动它。服务器排障的八成问题,最后都会落到路径和权限上。
先记住一句话:Linux 一切皆文件;路径决定位置,权限决定生死。
一、路径与目录
bash
pwd # 我在哪
ls -la # 当前目录全部文件,含隐藏文件
cd /var/log # 进入日志目录
cd - # 回到上一个目录
tree -L 2 # 树状看两层目录(需安装 tree)路径分两种:
- 绝对路径:从
/开始,例如/etc/nginx/nginx.conf - 相对路径:从当前目录开始,例如
./logs、../conf
特殊目录:
| 路径 | 含义 |
|---|---|
/ | 根目录 |
/home | 普通用户家目录 |
/etc | 配置文件 |
/var/log | 日志 |
/tmp | 临时文件,重启可能清空 |
/dev/null | 黑洞,写进去就丢弃 |
二、文件与目录操作
bash
touch note.txt # 新建空文件
mkdir -p app/logs # 递归建目录
cp note.txt note.bak # 复制
mv note.bak notes/ # 移动 / 重命名
rm -r app # 递归删除(危险,确认路径后再回车)
find /var/log -name '*.log' # 按名字查找
grep -R "error" /var/log # 递归搜内容⚠️ 红线:
rm -rf一定先pwd和ls确认目录,不要对/、~、*直接执行。
三、权限:rwx 与 chmod
ls -l 的第一列就是权限:
text
-rw-r--r-- 1 user group 1234 Sep 14 10:00 note.txt
drwxr-xr-x 2 user group 4096 Sep 14 10:00 app三组权限依次是:属主 / 属组 / 其他人,每组三位 rwx:
| 符号 | 数字 | 含义 |
|---|---|---|
| r | 4 | 读 |
| w | 2 | 写 |
| x | 1 | 执行 / 进入目录 |
| - | 0 | 无权限 |
bash
chmod 644 note.txt # rw-r--r--
chmod 755 run.sh # rwxr-xr-x
chmod +x run.sh # 加执行权限
chown user:group file # 改属主和属组(通常需要 sudo)理解 755:属主读写执行,同组和其他人只读和执行。
四、软链接与硬链接
bash
ln -s /opt/app/current /var/www/html # 软链接:像快捷方式
ln file hardlink # 硬链接:同一份数据多一个名字
ls -li # 看 inode,硬链接 inode 相同五、动手实验
💡 动手实验:在自己的 Linux / WSL 里完成一次“权限事故复现与修复”。
bash
# 1. 创建脚本并尝试运行
cat > hello.sh <<'SH'
#!/usr/bin/env bash
echo "hello linux"
SH
chmod 644 hello.sh
./hello.sh # 预期报错:Permission denied
# 2. 修复执行权限
chmod +x hello.sh
./hello.sh # 应输出 hello linux
# 3. 模拟目录权限:去掉目录的 x 后无法进入
mkdir demo-dir
chmod 644 demo-dir
cd demo-dir # 预期报错:Permission denied
cd ..
chmod 755 demo-dir
cd demo-dir && pwd # 恢复正常
# 4. 查看文件权限和 inode
ls -li hello.sh小结
- 路径:绝对路径从
/开始,相对路径从当前目录开始 - 权限:
rwx三组,数字分别读 4、写 2、执行 1 chmod 755是可执行脚本 / 目录的常用权限,chmod 644是普通文件常用权限- 排障先问三句:文件在哪?属主是谁?当前用户有没有权限?
🧠 记忆锚点:路径决定文件在哪,rwx 决定你能不能动;看不懂先
ls -l+pwd。
下一讲:用 Shell 把这些命令串起来——Shell 与文本处理。