大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
Linux 导航基础
这一课你将能做到
- 打开终端后,不依赖鼠标,仅用命令在目录树中自由穿梭并确认自己所在位置
- 熟练使用
ls、pwd、cd、man等核心命令完成日常目录浏览与信息查询 - 读懂绝对路径与相对路径的区别,在配置 Nginx、MySQL 数据目录或查看 Spring Boot 日志时准确写出目标路径
为什么要学
Linux 是服务器的事实标准。CodeForge 本站后端(Spring Boot + MySQL + Redis + Nginx)全部部署在 Linux 服务器上。作为开发者,你未来排查线上问题、查看日志、部署服务、修改配置,几乎都在黑乎乎的终端里完成。不会 Linux 导航,就像司机不认识方向盘和油门——哪怕你代码写得再好,到了服务器面前也只能干瞪眼。
面试中,「登录服务器后你第一步做什么?」「怎么看当前目录下有什么文件?」「如何快速回到用户主目录?」这类问题几乎是入门级必问。本课就是帮你迈过这道门槛。
先建立图像
想象 Linux 文件系统是一棵倒长的树:
/ ← 根目录(树根)
├── home ← 普通用户的家目录聚集地
│ └── ubuntu ← 你的用户主目录
│ ├── project ← 你放代码的地方
│ └── logs ← 本地日志
├── etc ← 配置文件(Nginx、MySQL 配置都在这)
├── var ← 日志、数据库文件、缓存
│ └── log ← 系统日志,Spring Boot 外置日志也常挂在这
├── usr ← 用户程序(软件安装目录)
└── tmp ← 临时文件,重启后通常清空
终端是你与这棵树对话的窗口。你始终站在某个「节点」(目录)上,通过命令让系统帮你「看」「走」「问」。
跟着做
以下命令全部基于 Ubuntu 22.04/24.04,打开终端直接敲即可。
步骤 1:打开终端,看清自己站在哪
whoami # 显示当前用户名,例如 ubuntu
pwd # Print Working Directory,显示当前完整路径,例如 /home/ubuntu
cd ~ # 回到用户主目录,~ 是快捷符号
pwd # 再次确认,应显示 /home/ubuntu
步骤 2:四处看看——浏览目录内容
cd /
ls # 列出当前目录(根目录)下的文件和文件夹
ls -l # 长格式列出,显示权限、所有者、大小、修改时间
ls -la # 加上 -a,显示隐藏文件(以 . 开头的文件)
ls -lh # 加上 -h,文件大小以人类可读方式显示(K、M、G)
ls -ltr # 按修改时间倒序,最新的在最后,方便看日志
在 /var/log 下,ls -ltr 是运维人员最常用的命令之一,因为日志最新产生的通常在最后。
步骤 3:开始移动——cd 的几种走法
cd /var/log # 绝对路径:从根目录出发,一步到位
cd .. # 相对路径:退到上一级目录
cd ../.. # 连退两级
cd - # 回到刚才待过的目录,两个目录间来回切换极好用
cd ~ # 无论在哪,直接回家
cd ~/project # 回到主目录下的 project 文件夹
步骤 4:创建和删除目录(导航的延伸)
cd ~
mkdir project # 创建目录
mkdir -p project/app/logs # 一次性创建多级目录
rmdir project # 删除空目录(若非空会报错)
rm -rf project # 强制递归删除目录及其内容,慎用!
步骤 5:获取命令帮助——不会就查
man ls # 查看 ls 的完整手册,按 q 退出
ls --help # 简洁版帮助
whatis pwd # 一句话说明 pwd 是干嘛的
which nginx # 查看 nginx 可执行文件在哪
步骤 6:快速定位文件——find 与 locate
sudo apt update && sudo apt install mlocate -y
sudo updatedb
locate nginx.conf # 全局查找 nginx.conf 在哪
find /etc -name "*.conf" 2>/dev/null # 在 /etc 下递归查找所有 .conf 文件
find /var/log -type f -mtime -1 # 查找 /var/log 下 1 天内修改过的文件
在排查 Spring Boot 外置日志配置或查找 Nginx 配置文件时,find 和 locate 能节省大量时间。
步骤 7:查看目录树结构
sudo apt install tree -y
tree -L 2 /etc/nginx # 只看 /etc/nginx 下两层目录结构
tree -d /var/log # 只显示目录,不显示文件
讲清楚要点
- 根目录
/是一切起点:所有绝对路径都以/开头。没有盘符概念(不像 Windows 有 C:、D:),这是初学者最容易不适应的地方。 .代表当前目录,..代表上级目录:./start.sh表示执行当前目录下的 start.sh;../config/application.yml表示去上级目录找配置。- 隐藏文件以
.开头:ls默认不显示,必须用ls -a。SSH 密钥~/.ssh/id_rsa、Bash 配置~/.bashrc都是隐藏文件。 ~是主目录的简写:每个用户都有自己的~,root 用户的~是/root,普通用户是/home/用户名。- Tab 键自动补全是生命线:敲一半文件名按 Tab,系统自动补全;按两次 Tab 列出所有候选。减少 90% 的拼写错误。
- 命令区分大小写:
CD和cd是不同的东西,Linux 里几乎没有大写命令。 - 历史命令用上下箭头或
Ctrl+R:按Ctrl+R后输入关键字,可以快速搜索历史命令,再也不用重复敲长路径。
你可能会懵的地方
-
为什么我
cd进去后再ls,啥也看不到? 可能是空目录,也可能是你没有-a参数漏看了隐藏文件。先用ls -la确认。 -
绝对路径和相对路径到底什么时候用哪个? 写脚本、配置文件、定时任务(crontab)时用绝对路径,避免执行时因当前目录不对而找不到文件。日常手动操作时相对路径更省事。
-
rm -rf /真的会删光整个系统吗? 会。这是 Linux 最危险的命令之一。现代 Ubuntu 对rm -rf /有保护(--preserve-root),但rm -rf /*仍然致命。删除前先用ls确认目标。 -
命令前面加
sudo是什么意思?sudo= superuser do,以管理员权限执行命令。普通用户无法修改/etc下的系统配置,所以需要sudo。 -
终端里怎么复制粘贴? Linux 终端通常用
Ctrl+Shift+C复制,Ctrl+Shift+V粘贴(注意不是普通的Ctrl+C,那是中断命令)。
错法对照
| 错法 | 问题 | 正解 |
|---|---|---|
cd /home/ubuntu/project/ 后面习惯加反斜杠 \ | Linux 路径分隔符是正斜杠 / | cd /home/ubuntu/project/ |
ls 看不到隐藏文件就认为不存在 | 默认不显示以 . 开头的文件 | ls -la |
cd project 失败提示 No such file | 当前目录下没有 project 目录 | 先用 pwd 确认位置,或用绝对路径 cd ~/project |
mkdir project/app/logs 报错没有 project | mkdir 默认只能创建一级 | mkdir -p project/app/logs |
rm -rf / var/log 手滑多空格 | 会被解析为删除根目录 / 和 var/log | 绝对路径不要手抖加空格:rm -rf /var/log |
CD 或 Ls | Linux 命令严格区分大小写 | cd、ls |
卡点急救
-
现象:终端显示
Permission denied你试图进入一个无权访问的目录,或执行一个无权执行的操作。解决:检查自己是不是在正确的用户下,必要时加sudo,或联系管理员开权限。 -
现象:
command not found: xxx命令没安装,或不在系统的 PATH 环境变量里。解决:sudo apt install xxx安装;或用which xxx确认是否存在。 -
现象:cd 进去后迷路了,不知道自己在哪 随时敲
pwd确认绝对路径;配置 PS1 提示符让它始终显示当前路径(Ubuntu 默认已开启)。
面试常问
-
绝对路径和相对路径的区别? 绝对路径从根目录
/开始,不因当前位置变化而失效;相对路径从当前目录出发,依赖当前工作目录。生产环境配置和脚本中推荐绝对路径。 -
cd -的作用? 回到上一次所在的目录,在日志目录和配置目录之间快速切换时非常高效。 -
Linux 文件系统的核心特点? 一切皆文件(目录、设备、进程信息都被抽象为文件);单根树形结构(没有 Windows 的盘符概念);严格区分大小写。
自测三问
- 你当前在
/home/ubuntu/project,如何用一条命令进入/var/log/nginx? ls -la和ls的区别是什么?为什么运维人员更喜欢ls -ltr看日志目录?- 如何确认
nginx可执行文件安装在系统的哪个位置?
小结一句话
Linux 导航的核心就是「知道自己在哪、看清周围有什么、想去哪就走哪」——pwd、ls、cd 三剑客练熟,你就已经战胜了 80% 的初学者。
延伸
- Ubuntu 官方 Server 指南 — 文件与目录
- Linux man pages online
- 下一课:文件与目录——深入理解软硬链接、inode 与挂载。