一、网络连接管理(nmli)
(一)nmcli命令行配置IP
tyl@myhost:~$ nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.24.24/24
tyl@myhost:~$ nmcli connection modify ens160 ipv4.gateway 192.168.24.2
tyl@myhost:~$ nmcli connection modify ens160 ipv4.dns 192.168.24.2
tyl@myhost:~$ nmcli connection modify ens160 connection.autoconnect yes
tyl@myhost:~$ nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
tyl@myhost:~$ ip a

(二)nmcli 修改网络连接名称
tyl@myhost:~$ nmcli connection show
NAME UUID TYPE DEVICE
ens160 4d957f7a-3fc5-3305-890e-7f9f26ffa3f7 ethernet ens160
lo 14f7e4c0-3373-46a7-844a-05d139a12e60 loopback lo
tyl@myhost:~$ nmcli connection modify ens160 connection.id haha
tyl@myhost:~$ nmcli connection show
NAME UUID TYPE DEVICE
haha 4d957f7a-3fc5-3305-890e-7f9f26ffa3f7 ethernet ens160
lo 14f7e4c0-3373-46a7-844a-05d139a12e60 loopback lo
tyl@myhost:~$ nmcli connection modify haha connection.id ens160
tyl@myhost:~$ nmcli connection show
NAME UUID TYPE DEVICE
ens160 4d957f7a-3fc5-3305-890e-7f9f26ffa3f7 ethernet ens160
lo 14f7e4c0-3373-46a7-844a-05d139a12e60 loopback lo

二、XShell远程连接
tyl@myhost:~$ cd /etc/ssh
tyl@myhost:/etc/ssh$ sudo vim sshd_config //以超级用户身份执行该操作,普通用户无权限
关键:开启 PermitRootLogin yes
三、文本编辑与文件操作
(一)文本编辑vim
基础操作流程
- 启动/创建
- 命令:
vim <文件名>(如vim a.txt) - 特性:若文件不存在则直接创建并打开;若存在则打开编辑。
- 命令:
- 模式切换三角
- 插入模式 (Insert) :按
i进入 →→ 用于输入文本。 - 命令模式 (Normal) :按
Esc进入 →→ 用于导航、删除、复制、查找。 - 底行模式 (Command-line) :在命令模式下按
:(Shift + ;) 进入 →→ 用于保存、退出、批量操作、配置。
- 插入模式 (Insert) :按
- 退出机制
- 正常退出 :
:wq或:x(保存并退出)。 - 强制退出 :
:wq!(只读文件强制保存),:q!(不保存强制退出)。 - 仅退出 :
:q(无修改时)。 - 指定路径保存 :
:w /path/to/file(另存为)。
- 正常退出 :
光标导航体系
逻辑 :在命令模式下执行,分为"字符级"、"行级"、"文件级"和"屏幕级"移动。
| 移动维度 | 命令键 | 功能描述 | 备注 |
|---|---|---|---|
| 字符/方向 | h j k l |
左、下、上、右 | 基础移动 |
- + |
上一行行首、下一行行首 | j/k 的替代 |
|
| 单词跳转 | w |
向后跳一个单词 | |
W (Shift+w) |
向后跳一个空白分隔块 | 按空格跳转 | |
| 行内定位 | ^ |
跳转到行首 (第一个非空字符) | |
$ |
跳转到行尾 | ||
| 文件定位 | gg |
跳转到文件开头 | |
G |
跳转到文件末尾 | ||
数字 G |
跳转到指定行行首 | 如 10G 跳第10行 |
|
| 屏幕滚动 | Ctrl + b |
向上翻屏 (Back) | |
Ctrl + f |
向下翻屏 (Forward) |
文本编辑核心
逻辑 :涵盖内容的增、删、改、复、撤。大部分在命令模式 下执行,部分涉及插入模式入口。
- 进入插入模式的快捷方式
- 当前光标 :
i(前插),a(后插)。 - 行首/行尾 :
I(行首插),A(行尾插)。 - 新开一行 :
o(下方新开),O(上方新开)。 - 整行重写 :
cc(剪切当前行并直接进入插入模式)。
2.删除操作 (Delete)
- 字符级 :
x(删光标处),X(删光标前)。 - 行级 :
dd(删整行)。 - 范围级 :
dgg:从光标删至文件开头。dG:从光标删至文件末尾。
3.复制与粘贴 (Copy & Paste)
- 复制 :
yy(复制当前行)。 - 粘贴 :
p(粘贴到光标行之后)。 - 撤销 :
u(Undo)。
4.底行模式下的批量行操作
- 复制行范围 :
:起始行,结束行 co 目标行- 例:
:1,3 co 5(将1-3行复制到第5行之后)。
- 例:
- 移动行范围 :
:起始行,结束行 m 目标行- 例:
:1,8 m 9(将1-8行移动到第9行位置)。
- 例:
查找与替换
逻辑 :主要在命令模式 下查找,在底行模式下替换。
1.查找 (命令模式 Esc)
- 模糊匹配 :
/关键词:向下查找。?关键词:向上查找。- 导航:找到后按
n跳转到下一个匹配项 (顺时针)。
- 严格匹配 (单词) :
/\<单词\>:确保匹配的是完整单词 (如\<and\>不会匹配到stand)。
2.替换 (底行模式 )
- 语法 :
:范围 s/旧内容/新内容/标志 - 全局替换 :
:%s/ro/RO/g或:g/s1/s2/g- 含义:将文件中所有的
s1替换为s2(%代表全文,g代表全局)。
辅助功能与系统交互
1.显示行号:set nu (在底行模式执行)。
2.系统交互
①挂起 :Ctrl + z (将 vim 放入后台)。
②恢复 :fg (在 Shell 中输入,将 vim 调回前台)。
3.智能补全
关键字补齐:Ctrl + n (在插入模式下,根据上下文提示单词)。
(二)文件操作基础命令
1、创建查看复制移动修改删除
| 操作类型 | 核心命令 | 关键选项 / 说明 |
|---|---|---|
| 创建文件 | touch |
新建空文件;若已存在则更新文件时间戳 |
vim |
编辑并保存后创建文件,可直接写入内容 | |
echo "内容" > 文件 |
覆盖重定向创建 / 写入;>> 为追加重定向 |
|
| 查看文件 | cat |
正序输出全部内容 |
tac |
倒序输出全部内容 | |
more/less |
分页查看(less 支持上下滚动、搜索) |
|
head/tail |
查看前 / 后 N 行;tail -f 持续跟踪日志 |
|
| 复制文件 | cp |
-r 递归复制目录;-a 保留所有属性(归档复制) |
| 移动 / 重命名 | mv |
移动文件 / 目录,可重命名,-i:覆盖前有提示; -f:强制覆盖,无提示 |
| 修改内容 | vim |
标准文本编辑器 |
| 删除文件 | rm |
-r 递归删除目录;-f 强制删除;rm -rf /* 为高危命令 |
tail -f

2、文件查找命令 find
-
基本语法
find [查找路径] [查找条件] [处理动作]
- 查找路径:指定从哪个目录开始递归查找(默认当前目录)
- 查找条件:按文件名、用户、大小、时间等过滤
- 处理动作 :对找到的文件执行操作(默认
-print打印)
- 常用查找条件
| 条件选项 | 示例 | 说明 |
|---|---|---|
-user |
find /home -user redhat |
查找 /home 下属于用户 redhat 的文件 |
-name |
find . -name "*.txt" |
按文件名查找(支持通配符 */?) |
-type |
find / -type f |
按类型查找:f= 普通文件,d= 目录,l= 软链接 |
-size |
find / -size +10M |
按大小查找:+10M= 大于 10M,-5k= 小于 5k |
-mtime |
find / -mtime -3 |
按修改时间查找:-3=3 天内修改过 |
3、重定向操作符
| 符号 | 名称 | 作用 | 示例 |
|---|---|---|---|
> |
覆盖重定向 | 将命令输出覆盖写入文件,不存在则创建 | echo "hello" > test.txt |
>> |
追加重定向 | 将命令输出追加到文件末尾 | echo "world" >> test.txt |
< |
输入重定向 | 将文件内容作为命令的输入 | wc -l < test.txt |
(三)文件系统元数据与属性
1、文件时间戳详解(stat 命令查看)
| 时间戳 | 英文 | 含义 | 触发更新场景 |
|---|---|---|---|
| 访问时间 | Access | 最后一次读取文件内容的时间 | cat、less、cp 等读取操作 |
| 修改时间 | Modify | 最后一次修改文件内容的时间 | 编辑文件内容(vim 编辑、echo > 写入等操作) |
| 改变时间 | Change | 最后一次修改文件元数据的时间 | 修改权限、所有者、文件名、时间戳等非内容属性 |
| 创建时间 | Birth | 文件的创建时间 | 仅文件创建时赋值,后续不可修改 |
示例:执行
touch anaconda-ks.cfg后,Access/Modify/Change 时间均更新为当前时间,Birth 时间保持不变。Modify 改变时,Change 一定改变 (因为修改内容本质上也是一种元数据变更),但是 Change 改变时,Modify 不一定改变(比如只改权限 / 文件名,内容没动)
2、元数据
元数据(Metadata) 是描述文件本身属性的数据,和文件内容无关,常见包括:
- 权限(
rwxr--r--) - 所有者 / 所属组(UID/GID)
- 文件名、链接数
- 时间戳(Access/Modify/Change)
- inode 号、文件大小、设备号
- 扩展属性(SELinux 上下文等)
四、权限管理
(一)第文件元数据与基础认知
1、ls -l 输出详解
以 -rw-------. 1 root root 1001 Mar 16 21:09 anaconda-ks.cfg 为例:
- 文件类型与权限 (
-rw-------):首位表示类型,后9位表示权限。 - 硬链接数 (
1):指向该文件 inode 的链接数量。 - 所有者 (
root):文件的属主 (User)。 - 所属组 (
root):文件的属组 (Group)。 - 文件大小 (
1001):默认单位为字节 (可用-h显示人类可读格式如 MB/GB)。 - 时间戳 (
Mar 16 21:09):默认为修改时间 (mtime)。 - 文件名 (
anaconda-ks.cfg):除/外几乎可使用任意字符。 - ACL 标记 (
.或+):.:未配置访问控制列表 (FACL)。+:已配置或曾经配置过 FACL。
2、 文件类型标识 (首位字符)
-:常规文件 (Regular file)d:目录 (Directory)b:块设备 (Block device)c:字符设备 (Character device)s:套接字文件 (Socket)p:管道文件 (Pipe)l:链接文件 (Link/Symbolic link)
(二)通用权限管理
1、 权限含义对照表
| 权限位 | 对文件的作用 | 对目录的作用 |
|---|---|---|
| r (Read) | 查看文件内容 | 列出目录内容 (ls) |
| w (Write) | 修改文件内容 | 在目录内创建/删除文件 (注意: 删除文件取决于目录的 w 权限,而非文件本身) |
| x (Execute) | 执行该程序 (文件内容需可执行) | 进入/切换到该目录 (cd) |
2、 权限修改命令
- 语法 :
chmod [模式] [文件名] - 模式一:字母表达式法
- 用户类别 :
u(所有者),g(所属组),o(其他人),a(所有人)。 - 操作符 :
+(增加),-(移除),=(指定/覆盖)。 - 示例 :
chmod u+x file(给所有者加执行权)chmod g-r file(移除所属组读权)chmod a=rwx file(所有人设为全权)chmod u=r--,g=rw-,o=--x file(精确指定)
- 用户类别 :
- 模式二:数字表示法 (八进制)
- 换算逻辑:r=4, w=2, x=1。
- 组合:rwx=7, rw-=6, r-x=5, r--=4, ---=0。
- 示例 :
chmod 755 file(rwxr-xr-x),chmod 644 file(rw-r--r--)。
- Root 特权说明 :Root 用户理论上无视权限限制(可读/写/执行任何文件),但在实际操作中(如 vim 编辑无 w 权限文件),若没有 w 位,直接保存会失败,需强制保存 (
:w!),但这可能会覆盖原内容且无法看到原始状态。
(三)高级权限控制
1、文件访问控制列表 (FACL)
- 作用:为特定用户或组设置独立的权限,突破 UGO 限制。
- 识别 :
ls -l显示+号。 - 设置命令 (
setfacl) :-m:添加或修改权限。setfacl -m u:redhat:- file(用户 redhat 无任何权限)setfacl -m g:haha:rwx file(组 haha 拥有全权)
-x:删除指定的 ACL 条目。-b:清除所有 ACL 条目,恢复为.状态。
- 查看命令 (
getfacl) :getfacl filename。
2、 文件特殊属性 (chattr / lsattr)
- 作用:底层文件系统级别的属性锁定(比 chmod 更严格)。
- 命令 :
chattr +/- [属性] 文件名(如chattr +i file设为不可变(增删追加等操作均不行);chattr +a file仅可追加)。lsattr 文件名(查看属性)。
(四)特殊权限
逻辑:针对可执行程序或目录的特殊行为控制,涉及 SUID, SGID, Sticky Bit。
| 权限名称 | 标识位 | 作用对象 | 核心功能描述 | 示例/现象 |
|---|---|---|---|---|
| SUID | s / S |
可执行文件 | 临时提权:执行该程序时,进程的有效所有者变为文件的所有者 (而非启动者)。 | /usr/bin/passwd (属主 root,普通用户执行时可修改 shadow 文件)。 chmod u-s 移除。 |
| SGID | s / S |
目录 | 继承属组:在该目录下创建的新文件,其所属组自动继承该目录的所属组。 | 协作目录常用。 chmod g+s /dir。 |
| Sticky | t / T |
目录 | 防误删:目录中的文件仅创建者 (及 root) 可删除,其他人即使有 w 权限也无法删除他人文件。 | /tmp 目录典型应用。 chmod o+t /dir。 |
- 大小写区别 :
- 小写
s/t:表示对应位置原本有x权限 (x+s=s)。 - 大写
S/T:表示对应位置原本无x权限 (-+s=S)。
- 小写
(五)权限掩码与默认值 (Umasks)
逻辑:解释为什么新建文件默认是 644 而不是 777。这是一种"减法"逻辑。
1、概念定义
- Umasks :创建文件/目录时默认要扣除 (Mask out) 的权限。
- 计算公式 :
最终权限 = 最大默认权限 - Umasks- 文件最大默认:666 (rw-rw-rw-),因为文件默认不给执行权。
- 目录最大默认:777 (rwxrwxrwx)。
2、配置与查看
- 查看 :
umask(通常显示为 0022)。- 示例 0022:
- User 扣 0 →→ 保留全部 (rw-)
- Group 扣 2 →→ 去掉 w (r--)
- Other 扣 2 →→ 去掉 w (r--)
- 结果:文件 644,目录 755。
- 示例 0022:
- 修改 :
- 临时生效 :直接在终端输入
umask 0002。 - 永久生效 (当前用户) :编辑
~/.bashrc,添加umask 0002,然后source ~/.bashrc。 - 永久生效 (全局) :编辑
/etc/bashrc。
- 临时生效 :直接在终端输入
- 注意 :修改 umask 只对之后创建的文件生效,不影响已存在的文件。