Linux 目录结构与基础命令
更新: 8/31/2026字数: 0 字 时长: 0 分钟

在 Linux 世界里,最核心的一条设计哲学就是:“一切皆文件”。
无论是一个普通的文本文件、一个目录、一个硬件设备(如硬盘、网卡),甚至是一个正在运行的进程,在 Linux 中都以文件的形式呈现。
为了让你能够顺畅地在 Linux 中 navigate(导航)和操作,本篇文章将带你理清 Linux 的目录结构,并掌握最常用的基础命令与真实实操案例。
1. Linux 目录结构解析(FHS 标准)
与 Windows 拥有 C:\、D:\ 等多个盘符不同,Linux 只有一个根目录 /。所有的文件和目录都是从根目录延伸出来的树状结构(文件系统层级标准 FHS)。
/ (根目录)
├── bin -> /usr/bin (存放普通用户可执行的常用基础命令)
├── sbin -> /usr/sbin (存放系统管理员/root使用的系统管理命令)
├── home (普通用户的家目录,如 /home/alex)
├── root (系统管理员 root 的家目录)
├── etc (核心!存放所有系统和软件的配置文件)
├── var (存放经常变动的文件,如日志 /var/log、缓存等)
├── tmp (临时文件目录,系统重启或定期会自动清理)
├── usr (用户安装的软件、库文件目录 /usr/local)
├── dev (设备文件目录,如硬盘 /dev/sda、串口等)
└── proc (虚拟文件系统,反映当前内核与进程状态)重点记住这 5 个关键目录:
/etc:以后你配置 Nginx、MySQL、网络等,绝大多数配置文件都在这里。/var/log:服务报错、系统出问题时,排查日志的第一现场。/home/用户名:你登陆系统后的默认工作区。/usr/local:用户自行编译或安装第三方软件的常见位置。/(根目录):整个文件系统的起点。
2. 核心基础命令与实操案例
学习 Linux 命令最忌讳死记硬背。我们把命令按使用场景拆解,并附带真实工作案例。
2.1 目录切换与路径查看
pwd(Print Working Directory):显示当前所在目录的绝对路径。cd(Change Directory):切换目录。
实用路径相对符:
.:当前目录..:上一级目录~:当前用户的家目录-:切换回上一次所在的目录
实操案例 1:在目录间快速穿梭
# 1. 查看当前在哪里
pwd
# 输出: /home/alex
# 2. 进入 /etc/nginx 目录
cd /etc/nginx
# 3. 快速回到上一次所在的目录 (/home/alex)
cd -
# 4. 直接回到当前用户的家目录
cd ~2.2 查看与浏览文件
ls(List):列出目录下的文件和子目录。-l:以长格式(详细信息)显示。-a:显示所有文件(包含以.开头的隐藏文件)。-h:以人类易读的单位格式显示文件大小(如 1K, 5M, 2G)。cat:一次性输出整个文件内容(适合看短文件)。less:分屏查看大文件(按q退出,/向上搜索,?向下搜索)。tail:查看文件末尾内容。-n 20:查看最后 20 行。-f:实时追踪文件更新(查看日志神技)。
实操案例 2:查看系统日志与隐藏文件
# 1. 详细列出当前目录下所有文件(含隐藏文件),并显示可读大小
ls -lah
# 2. 实时追踪 Nginx 的错误日志(实时刷新新日志)
tail -f /var/log/nginx/error.log
# 3. 查看最近 50 行系统日志
tail -n 50 /var/log/syslog2.3 文件与目录创建、复制、移动及删除
mkdir(Make Directory):创建目录。-p:递归创建多级目录。touch:创建空文件或更新文件时间戳。cp(Copy):复制文件或目录。-r:递归复制整个目录。mv(Move):移动文件/目录,或重命名文件。rm(Remove):删除文件或目录(极其危险的命令)。-r:递归删除目录及其内容。-f:强制删除,不提示确认。
实操案例 3:项目目录搭建与备份
# 1. 一次性创建多层级目录结构 myproject/src/components
mkdir -p myproject/src/components
# 2. 在 src 目录下创建一个 index.js 文件
touch myproject/src/index.js
# 3. 备份 index.js 为 index.js.bak
cp myproject/src/index.js myproject/src/index.js.bak
# 4. 将 index.js 重命名为 main.js
mv myproject/src/index.js myproject/src/main.js
# 5. 安全删除备份文件
rm myproject/src/index.js.bak
# 6. 强制删除整个测试项目目录(小心使用 -rf)
rm -rf myproject2.4 文件内容搜索与查找
find:在文件系统中搜索文件/目录。grep:在文件内容中搜索匹配的文本字符串(极其强大的过滤工具)。
实操案例 4:精准查找与内容过滤
# 1. 在 /var/log 目录下查找名字包含 "error" 的 log 文件
find /var/log -name "*error*.log"
# 2. 在当前配置目录的所有文件中,查找包含 "port 8080" 的行
grep -rn "port 8080" /etc/nginx/
# 参数说明: -r 递归查找, -n 显示行号
# 3. 组合技:查找正在运行的程序中是否有 node 进程
ps aux | grep node3. Vim 编辑器:在终端里改文件
在服务器上修改 Nginx 配置、YAML、crontab,系统默认弹出的往往是 Vim。它最大的门槛不是命令多,而是工作方式与普通编辑器完全不同:默认状态下敲键盘是「下命令」,不是「打字」。
3.1 三种模式与最小可用命令
| 模式 | 进入 / 返回 | 说明 |
|---|---|---|
| 普通模式 | 启动默认,Esc 返回 | 移动光标、删除、复制、粘贴、撤销 |
| 插入模式 | i(a 光标后、o 下方新行;I/A/O 为行首/行尾/上方新行) | 正常打字,底部显示 -- INSERT -- |
| 命令行模式 | : / ? | 保存、退出、查找、替换 |
必须记住的 4 条:i 开始编辑、Esc 回到普通模式、:wq 保存退出、:q! 不保存强制退出。
实操案例 5:修改配置文件的标准流程
vim /etc/nginx/nginx.conf # 1. 打开文件
# 2. 按 i 编辑,改完按 Esc 回普通模式
:wq # 3. 保存退出卡住时的万能口诀:先按
Esc,再输入:q!回车。
3.2 光标移动与编辑
| 分类 | 常用命令 |
|---|---|
| 移动 | h j k l 左下上右;w/b 前后单词;0/$ 行首行尾;gg/G 首行末行;:n 跳第 n 行;* 搜索光标所在单词;% 跳转配对括号 |
| 删除 | x 删字符;dw 删词;dd 删行;dG 删到文件末尾 |
| 复制粘贴 | yy 复制行;p/P 粘贴到光标下/上方;u 撤销,Ctrl + r 重做 |
命令语法统一为 操作 + 范围,加数字前缀即可批量:3dd 删 3 行、5yy 复制 5 行、d$ 删到行尾、cw 改词(d 删除 / y 复制 / c 修改)。
3.3 查找替换与批量注释
| 命令 | 作用 |
|---|---|
/关键词 | 向下查找,n 下一个 / N 上一个,:noh 取消高亮 |
:%s/old/new/g | 全文替换 |
:%s/old/new/gc | 全文替换并逐个确认(y 替换 / n 跳过 / a 全部 / q 退出) |
:5,15s/^/# /g | 给第 5 到 15 行统一加注释 |
Ctrl + v → j 选列 → I → 输入 # → Esc | 可视块模式批量注释;删注释则选列后按 d |
3.4 常见坑
- 出不来:
Esc+:q!;提示E37: No write since last change说明有未保存改动,用:wq或:q!。 - 方向键打出
A B C D、退格无效:执行:set nocompatible与:set backspace=indent,eol,start,写进~/.vimrc永久生效。 - 提示
Swap file ".xxx.swp" already exists:上次异常退出留下的交换文件,需恢复用vim -r 文件名,否则rm -f .文件名.swp。 - 编辑只读文件忘了加 sudo:
:w !sudo tee % > /dev/null保存后:q!退出。 - 粘贴代码缩进错乱:粘贴前
:set paste,粘贴后:set nopaste。
3.5 常用配置 ~/.vimrc
set nocompatible " 关闭 vi 兼容模式
set number " 显示行号
set cursorline " 高亮当前行
set tabstop=4 " Tab 宽度 4
set shiftwidth=4 " 缩进宽度 4
set expandtab " Tab 转空格
set hlsearch " 高亮搜索结果
set ignorecase " 搜索忽略大小写
set backspace=indent,eol,start
syntax on " 语法高亮写入后重新打开 Vim 生效,或执行 :source ~/.vimrc。
4. 常见实战小技巧
- Tab 键自动补全:输入命令或路径时,连按两下
Tab键可以自动补全名称或列出候选清单,能极大地提高输入速度并减少拼写错误。 Ctrl + C:强行终止当前正在终端前台运行的命令(如卡住的程序或tail -f)。Ctrl + L或clear:快速清空当前终端屏幕。history:查看过去执行过的历史命令列表;可以使用!数字直接再次运行某条历史命令(例如!102)。
5. 总结
| 场景需求 | 核心命令 | 常用参数/组合示例 |
|---|---|---|
| 我知道我在哪 | pwd | pwd |
| 我想去别的地方 | cd | cd - (返回上一步) / cd ~ (回家目录) |
| 我想看有什么 | ls | ls -lah |
| 我想建目录/文件 | mkdir / touch | mkdir -p a/b/c |
| 我想看日志 | tail | tail -f /var/log/syslog |
| 我想找文件 | find | find / -name "app.config" |
| 我想搜内容 | grep | grep -rn "API_KEY" . |
| 我想改文件内容 | vim | vim /etc/nginx/nginx.conf,改完 :wq 保存退出 |
熟练掌控 Linux 的第一步就是不再恐惧黑乎乎的命令行。建议在虚拟机或测试服务器中,顺着上面的实操案例亲自敲一遍命令,感受文件系统的树状流转!