目录与文件导航
pwd、cd、ls、find、mkdir。
目录与文件导航
这一课你将能做到
- 用 pwd / cd / ls 三件套在任意目录结构中自由移动并看清周围有什么
- 区分绝对路径与相对路径,熟练使用
.、..、~、-四个特殊路径 - 用 find 按名字、大小、时间定位文件,比如找出占满磁盘的大日志
为什么要学
Linux 一切皆文件:配置是文件、日志是文件、设备也是文件。你登上一台陌生服务器排查问题,第一件事就是在文件系统里找到「案发现场」——Nginx 配置在哪、Spring Boot 日志在哪、MySQL 数据目录还剩多少空间。找不到文件,后面所有操作都是空谈。
人话:这就像在陌生城市找路。pwd 是「我现在在哪」,ls 是「周围有什么」,cd 是「我要去哪」,find 是「帮我搜一搜那个东西在哪」。这四个动作熟练了,你永远不会在服务器里迷路。
先建立图像
Linux 目录是一棵从 / 出发的倒挂树:
/
├── etc/ ← 系统配置(nginx.conf 在这附近)
│ └── nginx/
├── opt/ ← 第三方软件常放这(/opt/myapp)
│ └── myapp/
│ ├── app.jar
│ └── logs/
│ └── app.log
├── home/
│ └── deploy/ ← 普通用户家目录,~ 就指这里
├── var/
│ └── log/ ← 系统日志大本营
└── tmp/ ← 临时文件,重启可能清空
路径的四种写法(假设你当前在 /home/deploy):
| 写法 | 含义 | 完整指向 |
|---|---|---|
| /opt/myapp/app.jar | 绝对路径,从根写起 | 永远不变 |
| ./a.sh 或 a.sh | 当前目录下 | /home/deploy/a.sh |
| ../deploy | 上一级的 deploy | /home/deploy |
| ~/shell-lab | 家目录下的 shell-lab | /home/deploy/shell-lab |
跟着做
步骤 1:搭建一个练习树
mkdir -p ~/nav-lab/opt/myapp/logs ~/nav-lab/var/log
cd ~/nav-lab
echo "hello" > opt/myapp/app.jar
echo "ERROR oom" > opt/myapp/logs/app.log
echo "system log" > var/log/messages.txt
mkdir -p 可以一次创建多级目录,相当于 mkdir -p 递归模式。
步骤 2:看清当前位置和周围
pwd # 输出 /home/你的用户名/nav-lab
ls # opt var
ls -l # 长格式:权限、属主、大小、时间
ls -a # 显示隐藏文件(以 . 开头,如 .bashrc)
ls -lh # h 让大小变成 K/M/G 可读格式,运维必用
ls -lt # 按修改时间倒序,最新改的排最前
组合技:ls -lht 是「按时间倒序 + 可读大小」,看最近改过哪个配置文件极快。
步骤 3:四个特殊路径与 cd 技巧
cd opt/myapp # 相对路径进入
cd .. # 退回上一级
cd - # 回到上一个待过的目录(来回横跳神器)
cd # 什么参数都不带,直接回家 ~
cd /opt # 绝对路径,一步到位