news 2026/9/30 7:13:26

Linux路径与编辑实战:从定位到验证的完整工作流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux路径与编辑实战:从定位到验证的完整工作流

Linux小白修炼日记 Day 04:路径、目录与文本编辑,运维每天都要用的基本功

    • 一、为什么必须学这一课?
      • 1.1 先建立当天工作目录
      • 1.2 今天的操作习惯(背下来)
    • 二、工作目录、家目录与路径
      • 2.1 当前工作目录
      • 2.2 家目录
      • 2.3 绝对路径 vs 相对路径(重点)
      • 2.4 路径中的特殊符号
      • 2.5 使用 ls 查看目录
      • 2.6 使用 mkdir 创建目录
      • 2.7 使用 touch 创建空文件
    • 三、Linux 目录体系与若依目录规划
      • 3.1 从根目录观察
      • 3.2 为若依规划目录
    • 四、文件内容查看:不同场景用不同工具
      • 4.1 cat:查看短文件
      • 4.2 less:分页阅读
      • 4.3 head / tail:查看首尾
      • 4.4 tail -f:动态观察新增内容(运维必会)
    • 五、Vim 与安全修改配置
      • 5.1 三种核心模式
      • 5.2 用真实命令输出练习 Vim(安全做法)
      • 5.3 创建并保存若依配置样例
      • 5.4 完成一次安全修改(完整流程)
      • 5.5 使用 vimtutor 巩固(课后作业)
    • 六、路径排障与课堂收尾
      • 6.1 相对路径故障复现
      • 6.3 最后检查(只检查,不再改动)
      • 6.4 今天应该会做什么(验收)
      • 6.5 清理与保留
    • 七、课后拓展(选做)
      • 7.1 使用 `{}` 批量生成名称
      • 7.2 Vim 的临时设置与永久设置
    • 八、写在最后

大家好,我是正在转行运维的小白。今天是我更新 Linux 学习日记的第四天。
前三天搞懂了安装、登录和命令执行模型。但真到了操作文件的时候,我发现自己连“我在哪、这个路径指向谁”都说不清楚。
今天这一课把路径、目录体系、文件查看、Vim 编辑、备份比较验证全部串起来。最大的收获不是记住了几个命令,而是建立了一套定位 → 查看 → 备份 → 编辑 → 比较 → 验证的工作习惯。以后改任何配置都不会慌。


一、为什么必须学这一课?

后面部署若依、Nginx、MySQL、Docker、K8s 时,操作形式一直在变,但下面这些问题每天都会遇到:

  • 当前位于哪个目录?
  • 命令里的路径最终指向哪个文件?
  • 配置、程序、日志、数据应该放在哪里?
  • 文件很长时怎么快速查看?
  • 修改配置后,怎么证明只改了计划中的内容?
  • 改错了怎么根据备份恢复?

路径判断错,命令本身完全正确,也可能读错文件或改错配置。今天的主线不是记目录名,而是建立工作习惯。

1.1 先建立当天工作目录

whoamihostnamemkdir-p~/cc-vm/day04cd~/cc-vm/day04pwd

1.2 今天的操作习惯(背下来)

1. 定位:主机、用户、当前目录和完整目标路径 2. 查看:原文件内容和关键位置 3. 备份:修改前保存可识别的副本 4. 编辑:只修改计划中的内容 5. 比较:用 diff 确认实际变化 6. 验证:检查内容、语法或程序实际行为

今天只用cc-vm(10.0.0.10/24),不需要启用其他节点。


二、工作目录、家目录与路径

2.1 当前工作目录

pwd是Print Working Directory的缩写,显示当前工作目录。

Shell 解析相对路径时,从当前工作目录开始计算。所以排查路径问题的第一条命令通常是pwd。

⚠️ 当前工作目录属于进程运行环境。不同终端里的两个 Bash 可以在不同目录,不要根据另一个窗口的状态推断当前窗口。

2.2 家目录

每个用户都有自己的家目录:

用户家目录
普通用户 cc/home/cc
普通用户 jinghui/home/jinghui
root/root

cd和cd ~都回当前用户家目录。符号~由 Shell 展开,不是文件系统里真实存在的目录名。

练一组:

pwdcd/etcpwdcd~/cc-vm/day04pwdcdpwdcd~pwd

2.3 绝对路径 vs 相对路径(重点)

先用地铁路线理解:起点为什么重要?

地铁里的“所在站”相当于当前工作目录,沿途站点相当于路径里的目录层级。目标没变,变的是从哪里开始描述路线。

读一条路径,固定问三个问题:

1. 从哪里出发:以 / 开头就从根目录;否则从 pwd 出发 2. 经过哪些目录:从左到右逐段读 3. 最后到达什么对象:最后一段通常是要访问的文件或目录
类型判断方法示例特点
绝对路径从/开始/etc/hosts不依赖当前目录,含义稳定
相对路径不以/开头./hosts从当前工作目录计算

真实案例:目标都是/etc/ssh/sshd_config.d,但两人位置不同。

# 终端 A:cc从 / 出发cd/pwdls-ldetc/ssh/sshd_config.d# 终端 B:景会从 /etc 出发cd/etcpwdls-ldssh/sshd_config.d# 两边都用绝对路径,写法一样ls-ld/etc/ssh/sshd_config.d

结论:相对路径随 pwd 改变,绝对路径不依赖当前位置。

💡 脚本、变更记录和生产操作更适合写完整路径;交互练习可以在确认pwd后用相对路径。

2.4 路径中的特殊符号

写法含义示例
.当前目录./config
..上级目录../logs
~当前用户家目录~/magedu
-上一次所在目录(仅 cd 用)cd -

练一组:

pwd cd .. pwd cd ./day04 pwd cd /etc cd - pwd

习惯:每次按 Enter 前,先根据当前 pwd 预测下一次会到哪里,再用新的 pwd 验证。

2.5 使用 ls 查看目录

先掌握四个常用组合:

选项作用
-l长格式显示
-a显示隐藏文件
-h与 -l 配合,易读单位
-d查看目录本身,不展开内容
lsls-lls-lals-lh/var/logls-ld/var/log

⚠️名称以点开头的文件默认不显示。ls -a可查看。隐藏 ≠ 加密或禁止访问,Bash、Git、SSH 和很多工具都把用户级配置保存在家目录的隐藏文件里。

ls~ls-a~ls-l~/.bashrc ~/.profile

2.6 使用 mkdir 创建目录

mkdir -p可以补齐不存在的父目录,也可以在目录已存在时保持成功。

mkdir reports mkdir -p reports/2026/09 ls -ld reports reports/2026 reports/2026/09

2.7 使用 touch 创建空文件

touch app.log ls -l app.log

⚠️文件不存在时touch 会创建一个 0 字节空文件;文件已存在时不会清空内容,只更新时间戳。所以 touch 前仍要确认路径。


三、Linux 目录体系与若依目录规划

Linux 从根目录/组织所有文件。目录名表达职责,今天先认识常用的,磁盘与挂载关系留到存储课程。

3.1 从根目录观察

cd/pwdlsls-ld/etc /var /usr /opt /home /tmp /proc
目录主要职责后续典型对象
/etc系统和服务配置SSH、Nginx、systemd 配置
/var经常变化的数据日志、缓存、队列
/usr发行版管理的程序和库/usr/bin、/usr/lib
/opt额外部署的应用若依应用目录
/home普通用户家目录实验文件、用户配置
/tmp临时文件可能被定期清理
/proc内核和进程运行视图CPU、内存、进程参数

现代 Linux 中/bin、/sbin、/lib可能指向/usr下的对应目录,链接原理安排在 Day 05。

3.2 为若依规划目录

正式环境可以把额外应用放在/opt/ruoyi。今天先在用户家目录建一套职责相同的实验结构:

mkdir -p ~/cc-vm/ruoyi/config mkdir -p ~/cc-vm/ruoyi/logs mkdir -p ~/cc-vm/ruoyi/data mkdir -p ~/cc-vm/ruoyi/backup ls -ld ~/cc-vm/ruoyi ls -l ~/cc-vm/ruoyii

五个目录分别保存:程序、配置、日志、数据、备份。后续发布与排障继续沿用这套结构。


四、文件内容查看:不同场景用不同工具

关键认知:读 20 行配置文件和观察不断增长的日志,不应该用同一种方式。

4.1 cat:查看短文件

cat/etc/hostnamecat/etc/os-releasecat-n/etc/hosts

cat会连续输出全部内容,适合较短文件。大文件一次铺满终端不利于定位。

4.2 less:分页阅读

less/etc/services

less主要用于阅读,不会因为浏览文件而保存修改。查看长配置和日志时比cat更容易保留上下文。

less 里的按键:

按键作用
Space向下翻一页
b向上翻一页
g跳到文件开头
G跳到文件结尾
/keyword向下搜索
n下一个匹配
N上一个匹配
q退出

4.3 head / tail:查看首尾

head/etc/passwdhead-n5/etc/passwdtail/etc/passwdtail-n20/var/log/dpkg.log

默认 10 行,用-n指定行数。

4.4 tail -f:动态观察新增内容(运维必会)

tail -f ~/cc-vm/day04/app.logg

再开一个终端模拟日志写入:

echo "request completed" >> ~/cc-vm/day04/app.logg

回到第一个终端观察新增行,按Ctrl + C停止。

⚠️Ctrl + C只结束当前tail -f,不会删除日志文件,也不会停止写日志的应用。
后面部署若依、Nginx、MySQL 时,会用同样方式观察实时日志。


五、Vim 与安全修改配置

为什么现在学 Vim?后面切换到 Ubuntu Server 后没有图形编辑器。Nginx、MySQL、systemd 和若依都要改文本配置。

5.1 三种核心模式

模式主要工作进入方式
命令模式(Normal)移动、删除、复制、粘贴、撤销打开文件默认,或按Esc
插入模式(Insert)输入和修改文本命令模式按i
末行模式(Command-line)保存、退出、设置命令模式按:

忘记当前模式时,先按Esc回到命令模式。

5.2 用真实命令输出练习 Vim(安全做法)

ls -la > /tmp/file.txt cat /tmp/file.txt vim /tmp/file.txt

⚠️>会把左侧命令输出写入右侧文件,如果目标文件已存在,原内容会被覆盖。这里只用来准备练习文件。

Vim 常用按键:

操作按键
左、下、上、右移动h、j、k、l
文件开头、结尾gg、G
搜索;上一个、下一个匹配/keyword;N、n
替换当前行第一个匹配:s/旧内容/新内容/
替换全文所有匹配:%s/旧内容/新内容/g
替换全文并逐项确认:%s/旧内容/新内容/gc
删除字符、删除行x、dd
复制行、粘贴yy、p
撤销u

在/tmp/file.txt中依次练习:

  1. 用gg和G在开头、结尾间移动
  2. 输入/app.log搜索,按n下一个、N上一个
    3.输入:%s/cc/cc-vm/gc``,逐项确认(y替换、n跳过、q` 结束)
  3. 按u撤销替换,恢复原内容
  4. 用yy复制当前行,p粘贴
  5. 用dd删除一行,u撤销
  6. :q!放弃练习改动并退出

💡替换命令拆解:%全文范围,g一行内全部匹配,c每次确认。
处理正式配置时优先用带c的写法,确认匹配范围后再决定是否全部替换。

5.3 创建并保存若依配置样例

pwd vim application.yml

按i进入插入模式,写入:

server:port:8080spring:profiles:active:lab

⚠️YAML 用空格表达层次,不能用 Tab 代替缩进。

写完按Esc返回命令模式,输入:wq保存退出。

Vim 保存退出相关:

操作按键
保存:w
退出:q
保存并退出:wq
放弃修改并退出:q!

5.4 完成一次安全修改(完整流程)

① 修改前确认

whoami hostname pwd cat -n application.yml

② 创建备份并修改

cpapplication.yml../backup/application.yml.bakls-lapplication.yml../backup/application.yml.bakvimapplication.yml

把端口从8080改成8081,不要同时调整其他字段。

③ 比较并验证

diff-u../backup/application.yml.bak application.ymlecho$?cat-napplication.yml
  • diff -u中,-开头来自旧文件,+开头来自新文件
  • 返回 0 表示没有差异,返回 1 表示存在差异
  • 本次应只看到端口从8080变为8081

④ 使用备份恢复

cp../backup/application.yml.bak application.yml.restoreddiff-u../backup/application.yml.bak application.yml.restoredecho$?

结果为 0 表示恢复副本与原备份一致。

真正上线后还要增加语法检查和程序运行验证。

5.5 使用 vimtutor 巩固(课后作业)

command-vvimtutor vimtutor

课堂只完成与配置编辑直接相关的章节。宏、寄存器、多窗口和插件不属于今天的大纲。


六、路径排障与课堂收尾

6.1 相对路径故障复现

cat ./config/application.yml pwd ls -ld . ls -ld ./confils -l ~/cc-vm/ruoyi/config/application.ymlmcat ~/cc-vm/ruoyi/config/application.ymlml ```当前命令会从 `~/cc-vm` 查找 `config/application.yml`,而实际文件在 `~/cc-vm/ruoyi/config/application.yml`。`。 > ⚠️ **不要看到文件不存在就立刻创建同名文件。** 先确认当前目录和预期目标,避免在错误位置制造第二份配置。 ### 6.2 路径与文件类问题的四步法 ```text 现象 → 范围 → 证据 → 验证
  1. 现象:原样记录命令、输出和退出状态
  2. 范围:判断是当前文件、当前目录、当前用户还是整台主机
  3. 证据:用pwd、ls -ld、cat和完整路径确认对象
  4. 验证:修正一个条件后重新执行原命令,确认结果真正恢复

6.3 最后检查(只检查,不再改动)

pwd ls -ls -l ~/cc-vm/ruoyi/configig

逐项确认:

  1. app、config、logs、data、backup五个目录存在
  2. 写出application.yml与.bak备份的完整路径
  3. 确认当前端口为8081
  4. 记下diff -u的关键输出,确认只改了目标行
  5. 用完整路径重新查看配置并记录结果

6.4 今天应该会做什么(验收)

  • 能解释当前工作目录和家目录的区别
  • 能区分绝对路径和相对路径,并正确使用.、..、~、cd -
  • 能说明/etc、/var、/usr、/opt、/home、/tmp、/proc的基本职责
  • 能用pwd、cd、ls、mkdir、touch浏览目录并创建练习对象
  • 能根据文件规模选择cat、less、head或tail
  • 能独立完成 Vim 的编辑、保存、退出、搜索、替换、删除、复制、粘贴、撤销
  • 能执行修改前备份、修改后 diff、结果验证
  • 能用四步法定位一次相对路径故障

6.5 清理与保留

保留若依目录、配置文件、备份和实验日志。下一天继续在这套目录上学习文件管理、通配符、查找、链接和归档。


七、课后拓展(选做)

7.1 使用{}批量生成名称

Bash 会先展开花括号内容,再执行后面的命令。先用echo观察:

echo file{1..3}.txt echo {app,config,logs}

第一条生成file1.txt、file2.txt、file3.txt;第二条生成app、config、logs。

⚠️花括号中逗号两边不要加空格。

确认展开结果后,再与mkdir、touch组合:

💡{}是 Bash 的花括号展开功能,不是文件系统目录语法。
执行批量创建或批量修改前,先把操作部分替换为 echo 确认名称。

7.2 Vim 的临时设置与永久设置

临时设置(只对当前 Vim 会话生效):

:set nu :set cul :set cuc :set et :set ts=2 :set sw=2

关闭某项布尔设置时,在名称前加no:

:set nonu :set nocul :set nocuc :set noet

永久设置(写入~/.vimrc):

vim~/.vimrc

写入以下内容并:wq保存:

set nu set cul set cuc set et set ts=2 set sw=2
完整写法简写作用
set numberset nu显示行号
set cursorlineset cul突出显示光标所在行
set cursorcolumnset cuc突出显示光标所在列
set expandtabset et按 Tab 时使用空格缩进
set tabstop=2set ts=2Tab 显示为 2 字符宽
set shiftwidth=2set sw=2自动缩进用 2 个空格

重新打开任意文件确认生效。~/.vimrc只影响当前用户,不需要为了个人设置改系统级 Vim 配置。


八、写在最后

今天最大的三点收获:

  1. 路径问题的第一步永远是pwd。相对路径从当前目录算起,绝对路径从/算起——看错起点,后面全错。
  2. 修改配置有一套固定流程:定位 → 查看 → 备份 → 编辑 → 比较 → 验证。这六步以后改 Nginx、MySQL、SSH、若依,全部通用。
  3. 不同文件用不同查看工具:短文件cat、长文件less、首尾head/tail、动态日志tail -f。选错工具,效率直接掉一半。

明天继续在这套目录上学习文件管理、通配符、查找、链接和归档。

如果这篇对你有帮助,点个赞让我知道,我会每天更新。有问题评论区见,一起从小白变熟手。


本文为个人学习笔记,命令均在 Ubuntu 26.04.1 Desktop + VMware Workstation 25H2 环境实测。不同版本界面可能略有差异,按选项含义操作即可。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 7:11:00

gRPC微服务搭建(学习阶段3:数据服务系统)

这篇播客基于 Python gRPC 实现的客户端与服务端通信: 首先模拟一个简单的数据服务系统,客户端通过登录接口进行身份验证;在服务端验证用户名和密码后生成 Token服务端接收到请求后,会通过gRPC拦截器统一完成日志记录和Token鉴权。…

作者头像 李华
网站建设 2026/9/30 7:10:51

存算一体与新型存储的嵌入式落地:打破内存墙的工程路径

摘要:存算一体正在从学术研究走向嵌入式落地。SK海力士联合研发的忆阻器AI芯片采用嵌入式RISC-V处理器调度任务,理论峰值约2.54 TOPS。elexcon2026将新型存储技术列为六大核心方向之一。本文从技术路线、工程特性和应用场景三个维度,分析存算…

作者头像 李华
网站建设 2026/9/30 7:10:32

电动车V2G有望能赚钱了?V2G上海居民区实测落地

TL;DR:2025年,上海落地国内最具代表性的居民区V2G规模化试点:联联睿科一年安装1641台私人双向充电桩、731名用户参与,全年累计向电网放电超2万度,部分车主电费账单已经"转负"。针对"放电伤电池"这…

作者头像 李华
网站建设 2026/9/30 7:10:26

蓝牙芯片驱动开发-第7章第1题-芯片睡眠模式的分类标准有哪些

蓝牙面试题解析:芯片睡眠模式的分类标准有哪些? 难度:⭐⭐⭐ 中等 | 场景:社招一面/二面、低功耗开发 | 高频:🔥🔥🔥🔥 标准答案 芯片睡眠模式依据 功耗等级、唤醒时间、保留状态 三个维度分类,通常分为深睡、浅睡、待机三个级别: ① 三种睡眠模式对比 模式 功…

作者头像 李华
网站建设 2026/9/30 7:07:52

二十九、企业级文档问答系统:从零构建一个完整的生产级项目

企业级文档问答系统:从零构建一个完整的生产级项目 📚 专栏导航:这是《LangChain 30篇精讲》的第 29 篇,模块七「项目实战与总结」的开篇。前 28 篇,我们从模型接口一路学到生产部署,知识装了一脑袋。但知识散落各处,是时候把它们串联成一个真实项目了。 写在前面:这次…

作者头像 李华
网站建设 2026/9/30 7:06:27

一文讲透:企业财税合规的三大核心维度与落地思路

在很多中小微企业的经营认知里,“财税合规” 常常是一个被动的、事后的概念:平时忙着拓业务、抓营收,账务能凑就凑、发票能省则省,总觉得 “没被查到就不算问题”;直到遇到税务稽查、股权变更、融资尽调、资质申报时&a…

作者头像 李华