一、Linux结构体系
1.核心空间划分
**内核空间:**操作系统核心层,负责硬件管理,进程调度,内存管理等核心操作,有最高权限
**用户空间:**普通程序运行的空间,权限受限,需通过系统调用与内核交互,隔离性强,降低系统被攻击的风险
2.层次划分
| 层级 | 功能描述 |
|---|---|
| 用户空间层 | 普通用户程序、应用程序运行层 |
| 系统调用层 | 封装内核接口,为用户程序提供内核服务调用入口 |
| 内核层 | 接收并处理系统调用,管理硬件、进程、内存等核心资源 |
| 硬件层 | 物理硬件(CPU、内存、磁盘、外设等) |
二、Linux目录结构
1.核心特性
Linux是一个文件系统的操作系统 ,所有的内容均以文件形式出现 ,采用单根目录(/) 的倒置树型结构,所有文件 / 目录均挂载在根目录下;
2.常用目录
| 目录 | 功能说明 |
|---|---|
| /bin | 存放系统基础命令(如 ls、cd),所有用户可执行 |
| /etc | 系统配置文件目录(如网络、用户配置) |
| /home | 普通用户的家目录(如 /home/xd),~ 代指当前用户家目录 |
| /root | 管理员(root)的家目录 |
| /tmp | 临时文件目录,系统重启后可能清空 |
| /var | 存放可变数据(如日志、缓存) |
| /usr | 存放用户程序、库文件等 |
三、Linux 命令基础
1. 命令组成规则
指令通用形式:
指令 [选项] [参数]
- 选项:以
-(短选项)或--(长选项) 开头,用于修改命令行为(如ls -a、ls --all);- 参数:命令操作的目标(如文件、目录路径);
- 示例:
cd ..(无选项,..为参数)、ls -l /home(-l为选项,/home为参数)。
2. 基础导航与查看命令
| 命令 | 功能说明 |
|---|---|
| cd | 切换目录,cd 无参数时跳转到当前用户家目录;cd -切换到上一次所在目录 |
| cd .. | 返回上一级目录;cd ../.. 返回上两级 |
| ls | 显示当前目录文件 / 目录, 常用选项:- -a:显示所有文件(含隐藏文件,以 . 开头) - -l:显示详细信息(权限、大小、时间等) - -r:按名称逆序显示 - -R:递归显示子目录内容 - -lh:以人性化单位显示文件大小(如 KB/MB) |
| pwd | 显示当前目录的绝对路径 |
| clear | 清空终端屏幕 |
| Ctrl + c | 强制终止当前运行的命令 / 程序 |
| sudo su | 切换到 root 管理员用户(需输入当前用户密码);exit 可退出 root 回到普通用户 |
| man [指令] | 查看命令官方帮助手册(q 退出手册);--help 也可查看简易帮助(如 ls --help) |
四、文件与目录管理
1. 文件类型识别
| 首字符 | 文件类型 | 说明 |
|---|---|---|
| - | 普通文件 | 文本、二进制、脚本等 |
| d | 目录文件 | 存放文件 / 子目录的容器 |
| p | 管道文件 | 进程间通信的临时文件 |
| l | 链接文件 | 类似快捷方式 |
| c | 字符设备文件 | 如键盘、串口 |
| b | 块设备文件 | 如磁盘、U 盘 |
2. ls -l 详细信息解析
| 字段 | 含义说明 |
|---|---|
| -rwxrwxr-x | 权限:- 第 1 位:文件类型(- 为普通文件) - 2-10 位:权限分 3 组(所有者 / 组用户 / 其他用户),每组 r(读)、w(写)、x(执行),- 表示无对应权限 |
| 1 | 链接数:文件表示硬链接数,目录表示子目录数(不含 . 和 ..) |
| zyg zyg | 所有者 / 所属组 |
| 16968 | 文件大小(字节);ls -lh 可显示为 KB/MB 等 |
| 11 月 5 02:26 | 文件最后修改时间(非创建时间,补充:stat 文件名 可查看创建 / 修改 / 访问时间) |
| test.sh | 文件名 |
3. 目录操作命令
| 命令 | 功能说明 |
|---|---|
| mkdir 目录名 | 创建空目录 |
| mkdir -p 路径 | 递归创建多级目录(如 mkdir -p a/b/c) |
| mkdir -m 777 目录名 | 创建目录并直接设置满权限(777 表示所有者 / 组 / 其他均有 rwx 权限,补充:权限数字 r=4、w=2、x=1) |
| mkdir -p a/b -m 777 | 递归创建多级目录,仅对最后一级目录(b)设置 777 权限 |
| rmdir 目录名 | 删除空目录(非空则报错) |
| rm -rf 目录名 / 文件名 | 强制删除(-r 递归删目录,-f 强制不询问);rm a b c 批量删除多个文件 / 空目录 |
4. 文件操作命令
| 命令 | 功能说明 |
|---|---|
| touch 文件名 | 创建空文件;若文件已存在,更新其最后修改时间(不修改内容) |
| cp 文件 1 文件 2 | 拷贝文件 1 到文件 2:文件 2 不存在则创建,存在则覆盖 |
| cp -r 目录 1 目录 2 | 拷贝目录 1 到目录 2:目录 2 不存在则创建,存在则将目录 1 整体放入目录 2 中cp -r a 222/333 |
| mv | 移动 / 重命名:、 mv+文件名+目录名:将文件移动到对应的目录中 mv file1 /home/(移动) mv+文件1+文件2:若文件2存在,则将文件1中的内容放到文件2中,并且文件1被删除;如果文件2不存在,则创建一个并且将文件1中的内容复制进去,并删除文件1 mv file1 file2(重命名) mv+目录1+目录2:若目录2有内容,则移动失败;如果目录2中没有内容,则把目录1放到目录2中 |
| rm 文件名 | 删除文件 rm -i |
| more+文件名 | 将一个文件分页显示 |
| tail +-n+文件名 | 查看文件后n行的内容 |
| cat | cat+文件名:可以将文件的内容打印出来 cat+文件名1+文件名2:按照文件名顺序打印输出 cat 文件1>文件2:将文件1中的内容覆盖到文件2中(等价 cp 文件名 文件名) cat 文件1>>文件2:将文件1中的内容追加到原本文件2的内容后 cat >文件1:将屏幕上输入的内容覆盖到文件1中 cat>>文件2:将屏幕上输入的内容追加到文件1中 |
| tar打包 | tar -cvf +包名.tar+打包的文件名(1.txt 2.txt 3.txt):打包不压缩 tar -tvf +包名.tar:查看包内文件 tar -xvf+包名.tar+-C +目标地址:将包中内容解包到指定位置 tar -rvf +包名.tar +追加文件:将文件追加到包.tar,不覆盖 tar -zcvf+包名.tar+打包的文件名:将包中文件打包且压缩 tar -zxvf+包名.tar+-C +目标地址:将包中内容解包到指定位置 |
| 通配符 | ?:代表任意一位字符 eg.grep "1" 1?.txt *:代表任意字符,任意几位 [abc]:代表从字符abc中任取一个,只代表一位 [a-c]:代表从字符a-c中任取一个,只代表一位 [^abc]:代表输出除了字符abc之外任取一个,只代表一位 |
五、Vim 编辑器详解
1. 基本启动与模式切换
| 操作 | 功能说明 |
|---|---|
| vi 文件名 / vim 文件名 | 启动编辑器:文件不存在则创建,存在则打开 |
| 模式切换 | 启动后默认「命令模式」(无法输入文本) 按 a/i/o/A/I/O 进入「编辑模式」 编辑模式按 Esc 回到「命令模式」 命令模式按 Shift + : 进入「底行命令模式」 |
2. 编辑模式进入方式
| 按键 | 插入位置 |
|---|---|
| a | 光标后插入 |
| i | 光标前插入 |
| o | 当前行下方新建行插入 |
| A | 当前行末尾插入 |
| I | 当前行开头插入 |
| O | 当前行上方新建行插入 |
3. 命令模式常用操作
| 操作 | 功能说明 |
|---|---|
| yy | 复制光标所在行 |
| nyy | 复制从光标行开始的 n 行(如 3yy 复制 3 行) |
| p | 粘贴到光标下方 |
| np | 粘贴 n 次(如 2p 粘贴 2 次) |
| dd | 删除光标所在行 |
| ndd | 删除从光标行开始的 n 行(如 5dd 删除 5 行) |
| u | 撤销上一步操作 |
| Ctrl + r | 恢复撤销的操作(反撤销) |
| gg | 跳转到文件首行 |
| G | 跳转到文件末行 |
| nG | 跳转到第 n 行(如 10G 跳转到第 10 行) |
4. 底行命令模式常用操作
| 操作 | 功能说明 |
|---|---|
| :w | 保存文件(不退出) |
| :q | 退出编辑器(文件未修改时) |
| :wq | 保存并退出 |
| :q! | 强制退出(不保存修改) |
| :set number | 显示行号 |
| :set nonumber | 关闭行号 |
| :n | 跳转到第 n 行(如 :5 跳转到第 5 行,补充) |
| :% s / 旧内容 / 新内容 /g | 全局替换所有行的旧内容为新内容(补充,如 :%s/test/hello/g) |
5. Vim 异常处理
- 未正确保存退出时,会生成交换文件(
.文件名.swp),导致再次打开文件时提示异常; - 解决:终端执行
rm .文件名.swp删除交换文件,即可正常编辑。