Linux操作系统及常用命令
Linux目录结构
Linux 采用 单根目录结构(Single Hierarchical Tree),所有文件、设备和分区都挂载在唯一的根目录 / 之下。其目录布局遵循 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准)。
一、 Linux 文件系统的特点
- 一切皆文件(Everything is a file)
- 硬件设备(硬盘、网卡、键盘等)、进程、网络套接字在 Linux 系统中都被抽象为文件进行操作。
- 区分大小写(Case-Sensitive)
/etc/System与/etc/system是两个完全不同的文件。
- 路径分隔符
- 使用正斜线
/(与 Windows 的反斜线\相反)。
- 使用正斜线
- 常见日志与系统文件格式
- 系统配置文件绝大多数为纯文本格式,可以通过 Vim 等文本编辑器直接读取和修改。
二、 根目录 / 下各核心文件夹作用
1 | / (根目录) |
1. 用户与程序运行区
- **
/home**:普通用户的主目录(Home Directory)。- 每个用户有自己的专属文件夹(如
/home/username),存放个人配置文件、下载文件和文档。
- 每个用户有自己的专属文件夹(如
- **
/root**:超级管理员(Root 用户)的主目录。- 出于安全考虑,Root 用户的主目录不在
/home/root,而是独立存放在/root。
- 出于安全考虑,Root 用户的主目录不在
- **
/tmp**:临时文件目录(Temporary)。- 存放系统或应用产生的临时数据。通常系统重启后会自动清空,请勿存放重要数据。
2. 系统配置与硬件管理区
- **
/etc**:系统全局配置文件目录(Editable Text Configuration)。- 包含所有系统服务、网络、用户的配置文件(如
/etc/passwd存放用户账户,/etc/network/interfaces或/etc/netplan存放网络配置)。
- 包含所有系统服务、网络、用户的配置文件(如
- **
/dev**:设备文件目录(Device)。- 包含连接到系统的所有硬件设备映射文件。例如:
/dev/sda或/dev/nvme0n1:第一块硬盘/dev/sda1:硬盘的第一分区/dev/null:黑洞设备(抛弃输入数据)
- 包含连接到系统的所有硬件设备映射文件。例如:
- **
/media与/mnt**:挂载目录(Mount)。- **
/media**:系统自动挂载移动设备(如 U 盘、光驱、外接硬盘)的默认目录。 - **
/mnt**:系统管理员手动临时挂载其他文件系统的目录(如挂载网盘或额外硬盘)。
- **
3. 可执行命令与库文件区
/bin(指向/usr/bin):存放所有用户皆可执行的基础命令(Binary)。- 如
ls,cd,cp,cat,vim等。
- 如
/sbin(指向/usr/sbin):系统管理员专用命令(System Binary)。- 存放涉及系统底层管理的命令,通常需要 root 权限(如
fdisk,ifconfig,reboot,iptables)。
- 存放涉及系统底层管理的命令,通常需要 root 权限(如
/lib&/lib64(指向/usr/lib):动态链接库(Library)。- 类似于 Windows 的
.dll文件,存放/bin和/sbin中命令运行所需共享库。
- 类似于 Windows 的
4. 系统运行状态与内核区(内存虚拟文件系统)
- **
/proc**:进程与内核状态信息(Processes)。- 不占用实际磁盘空间,其内容直接存在于系统内存中。
- 用于反映当前的内核状态和进程信息。例如
/proc/cpuinfo显示 CPU 硬件信息,/proc/meminfo显示内存使用情况,以数字命名的文件夹(如/proc/1234)代表 PID 为 1234 的进程信息。
- **
/sys**:硬件与驱动系统(System)。- 与
/proc类似,也是内存中的虚拟文件系统,专门组织和展现内核中硬件设备与驱动的结构视图。
- 与
- **
/boot**:系统启动引导目录。- 存放 Linux 系统启动所需的内核文件(
vmlinuz)、Initrd 镜像以及引导加载程序(如 GRUB)的配置文件。
- 存放 Linux 系统启动所需的内核文件(
5. 应用软件与动态数据区
- **
/usr**:系统软件资源目录(Unix Software Resources / User Universal Resources)。- 类似于 Windows 的
C:\Program Files。通过系统包管理器(如apt或yum)安装的应用软件大部分存放在此处。 /usr/bin:大部分应用软件的执行程序。/usr/local:管理员手动从源码编译安装软件的建议默认路径。
- 类似于 Windows 的
- **
/opt**:第三方独立软件包安装目录(Optional)。- 适合安装大型静态打包的第三方软件(如 Chrome、Docker、自定义编译软件等)。
- **
/var**:动态变化数据目录(Variable)。- 存放系统运行过程中体积不断变化的文件。
/var/log:核心日志文件目录(如syslog,auth.log,nginx/access.log)。/var/www:Web 服务器(如 Nginx, Apache)默认的网页根目录。/var/lib:数据库及服务运行时状态数据(如 MySQL 数据文件)。
Vim编辑器常用命令
vi 编辑器是 Unix 系统最初的编辑器。它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。
在 GNU 项目将 vi 编辑器移植到开源世界时,他们决定对其作一些改进,由于它不再是以前 Unix 中的那个原始的 vi 编辑器了,开发人员也就将他重命名为 vi improved, 或 vim。
Vim 与普通编辑器的最大区别在于模式切换:
| 模式 | 进入方式 | 作用 |
|---|---|---|
| 普通模式 (Normal) | 任意模式下按 Esc |
光标移动、复制粘贴、快捷删除、触发快捷键(默认模式) |
| 插入模式 (Insert) | 普通模式下按 i / a / o |
正常输入文本 |
| 命令行模式 (Command) | 普通模式下按 : |
保存、退出、搜索替换、显示行号等全局设置 |
| 视图模式 (Visual) | 普通模式下按 v(字符)/ V(行)/ Ctrl+v(块) |
高亮选中文本(类似用鼠标拉框选中) |
二、 快速入门:进入与退出
vim filename:打开或创建文件:w:保存文件:q:退出:wq或ZZ:保存并退出:q!:强制退出(不保存修改)
三、 光标高效移动
- 单词移动:
w:移动到下一个单词词首b:移动到上一个单词词首e:移动到当前/下一个单词词尾
- 行内移动:
0(数字零):移动到行首^:移动到行内第一个非空字符$:移动到行尾
- 页与全文移动:
gg:跳转到文件第一行G:跳转到文件最后一行<行号>G或<行号>gg:跳转到指定行(如15G跳到第 15 行)Ctrl + f:向下翻页(Forward)Ctrl + b:向上翻页(Back)
四、 文本编辑命令(复制、删除、粘贴、撤销)
组合技巧:Vim 命令支持“动词 + 范围/数量”。例如
d2w代表删除 2 个单词,3yy代表复制 3 行。
1. 插入文本
i:在光标前插入a:在光标后追加o:在当前行下方另起一行插入O:在当前行上方另起一行插入A:跳转到行尾并进入插入模式
2. 删除与剪切(d / x)
x:删除光标处的单个字符dd:删除(剪切)当前行dw:删除从光标到词尾的内容d$或D:删除从光标到行尾的内容d0:删除从光标到行首的内容
3. 复制与粘贴(y / p)
yy:复制当前行yw:复制一个单词y$:复制光标到行尾p:粘贴到光标之后/下一行P:粘贴到光标之前/上一行
4. 修改与替换(c / r)
r:替换当前光标处的单个字符(按r后直接输入新字符)cw:更改当前单词(删除单词并自动进入插入模式)cc:清除整行并进入插入模式
5. 撤销与重做
u:撤销上一次操作(Undo)Ctrl + r:重做/反撤销(Redo).(句点):重复上一次编辑动作
五、 查找与替换
1. 当前文件搜索
/keyword:向下搜索keyword?keyword:向上搜索keywordn:跳转到下一个匹配项N:跳转到上一个匹配项*:直接搜索光标所在的单词(向下)#:直接搜索光标所在的单词(向上)
2. 全局批量替换(命令行模式)
:s/old/new/:替换当前行第一个old为new:s/old/new/g:替换当前行所有old为new:%s/old/new/g:替换全篇文本中的所有old为new:%s/old/new/gc:替换全篇,且每次替换前询问确认
六、 块选择与多行编辑(Visual Block)
在处理代码缩进或多行加注释时极其有用:
- 多行同时注释/加字符:
- 按
Ctrl + v进入块选择模式。 - 用
j/k选择需要编辑的多行。 - 按大写
I进入首部插入模式。 - 输入你要添加的内容(如
#或//)。 - 按两次
Esc,选中的所有行都会自动补全该内容。
- 按
- 多行删除:
- 按
Ctrl + v选中文本块,直接按d即可批量删除。
- 按
七、 常用环境配置(在命令行模式输入)
:set nu:显示行号:set nonu:隐藏行号:set hlsearch:高亮显示搜索结果:noh:取消当前高亮(常用):set paste:粘贴模式(防止从外部复制代码时缩进错乱)



