Skip to content
 

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 个关键目录: ​

  1. /etc:以后你配置 Nginx、MySQL、网络等,绝大多数配置文件都在这里。
  2. /var/log:服务报错、系统出问题时,排查日志的第一现场。
  3. /home/用户名:你登陆系统后的默认工作区。
  4. /usr/local:用户自行编译或安装第三方软件的常见位置。
  5. / (根目录):整个文件系统的起点。

2. 核心基础命令与实操案例 ​

学习 Linux 命令最忌讳死记硬背。我们把命令按使用场景拆解,并附带真实工作案例。

2.1 目录切换与路径查看 ​

  • pwd (Print Working Directory):显示当前所在目录的绝对路径。
  • cd (Change Directory):切换目录。

实用路径相对符: ​

  • .:当前目录
  • ..:上一级目录
  • ~:当前用户的家目录
  • -:切换回上一次所在的目录

实操案例 1:在目录间快速穿梭

bash
# 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:查看系统日志与隐藏文件

bash
# 1. 详细列出当前目录下所有文件(含隐藏文件),并显示可读大小
ls -lah
# 2. 实时追踪 Nginx 的错误日志(实时刷新新日志)
tail -f /var/log/nginx/error.log
# 3. 查看最近 50 行系统日志
tail -n 50 /var/log/syslog

2.3 文件与目录创建、复制、移动及删除 ​

  • mkdir (Make Directory):创建目录。

  • -p:递归创建多级目录。

  • touch:创建空文件或更新文件时间戳。

  • cp (Copy):复制文件或目录。

  • -r:递归复制整个目录。

  • mv (Move):移动文件/目录,或重命名文件。

  • rm (Remove):删除文件或目录(极其危险的命令)。

  • -r:递归删除目录及其内容。

  • -f:强制删除,不提示确认。

实操案例 3:项目目录搭建与备份

bash
# 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 myproject

2.4 文件内容搜索与查找 ​

  • find:在文件系统中搜索文件/目录。
  • grep:在文件内容中搜索匹配的文本字符串(极其强大的过滤工具)。

实操案例 4:精准查找与内容过滤

bash
# 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 node

3. Vim 编辑器:在终端里改文件 ​

在服务器上修改 Nginx 配置、YAML、crontab,系统默认弹出的往往是 Vim。它最大的门槛不是命令多,而是工作方式与普通编辑器完全不同:默认状态下敲键盘是「下命令」,不是「打字」。

3.1 三种模式与最小可用命令 ​

模式进入 / 返回说明
普通模式启动默认,Esc 返回移动光标、删除、复制、粘贴、撤销
插入模式i(a 光标后、o 下方新行;I/A/O 为行首/行尾/上方新行)正常打字,底部显示 -- INSERT --
命令行模式: / ?保存、退出、查找、替换

必须记住的 4 条:i 开始编辑、Esc 回到普通模式、:wq 保存退出、:q! 不保存强制退出。

实操案例 5:修改配置文件的标准流程

bash
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 常见坑 ​

  1. 出不来:Esc + :q!;提示 E37: No write since last change 说明有未保存改动,用 :wq 或 :q!。
  2. 方向键打出 A B C D、退格无效:执行 :set nocompatible 与 :set backspace=indent,eol,start,写进 ~/.vimrc 永久生效。
  3. 提示 Swap file ".xxx.swp" already exists:上次异常退出留下的交换文件,需恢复用 vim -r 文件名,否则 rm -f .文件名.swp。
  4. 编辑只读文件忘了加 sudo::w !sudo tee % > /dev/null 保存后 :q! 退出。
  5. 粘贴代码缩进错乱:粘贴前 :set paste,粘贴后 :set nopaste。

3.5 常用配置 ~/.vimrc ​

vim
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. 常见实战小技巧 ​

  1. Tab 键自动补全:输入命令或路径时,连按两下 Tab 键可以自动补全名称或列出候选清单,能极大地提高输入速度并减少拼写错误。
  2. Ctrl + C:强行终止当前正在终端前台运行的命令(如卡住的程序或 tail -f)。
  3. Ctrl + L 或 clear:快速清空当前终端屏幕。
  4. history:查看过去执行过的历史命令列表;可以使用 !数字 直接再次运行某条历史命令(例如 !102)。

5. 总结 ​

场景需求核心命令常用参数/组合示例
我知道我在哪pwdpwd
我想去别的地方cdcd - (返回上一步) / cd ~ (回家目录)
我想看有什么lsls -lah
我想建目录/文件mkdir / touchmkdir -p a/b/c
我想看日志tailtail -f /var/log/syslog
我想找文件findfind / -name "app.config"
我想搜内容grepgrep -rn "API_KEY" .
我想改文件内容vimvim /etc/nginx/nginx.conf,改完 :wq 保存退出

熟练掌控 Linux 的第一步就是不再恐惧黑乎乎的命令行。建议在虚拟机或测试服务器中,顺着上面的实操案例亲自敲一遍命令,感受文件系统的树状流转!