Linux

Linux
Kitholt FrankVim快捷指令总结
一、输入模式(Insert Mode)
进入方式:在普通模式下按 i、a、o、O 等
退出方式:按 Esc 或 Ctrl+[ 返回普通模式
1. 基础输入
i→ 在光标前插入a→ 在光标后插入o→ 在当前行下方插入新行并进入插入模式O→ 在当前行上方插入新行并进入插入模式
2. 插入模式下的快捷操作
Ctrl+h→ 删除前一个字符(相当于退格键)Ctrl+w→ 删除前一个单词Ctrl+u→ 删除到行首Ctrl+r [寄存器]→ 插入寄存器内容(如Ctrl+r "粘贴剪贴板)Ctrl+o→ 临时执行普通模式命令(如Ctrl+o dd删除当前行后返回插入模式)Ctrl+n/Ctrl+p→ 自动补全(向下/向上选择候选词)
二、命令模式(Normal Mode)
默认模式,按 Esc 返回此模式
1. 光标移动
- 字符级
h/j/k/l→ 左/下/上/右 - 单词级
w→ 下一个单词开头,b→ 上一个单词开头,e→ 当前单词末尾 - 行级
0→ 行首,^→ 行首非空字符,$→ 行尾gg→ 文件第一行,G→ 文件最后一行,:[n]→ 跳转到第 n 行 - 屏幕级
Ctrl+f→ 向下翻页,Ctrl+b→ 向上翻页H→ 屏幕顶部行,M→ 屏幕中间行,L→ 屏幕底部行
2. 编辑操作
- 删除
x→ 删除当前字符,dw→ 删除到下一单词开头,dd→ 删除整行d$或D→ 删除到行尾,d[n]w→ 删除 n 个单词(如d3w) - 复制/粘贴
yy→ 复制当前行,y$→ 复制到行尾,p→ 粘贴到光标后,P→ 粘贴到光标前 - 撤销与重做
u→ 撤销,Ctrl+r→ 重做 - 缩进
>>→ 向右缩进当前行,<<→ 向左缩进
3. 查找与标记
/keyword→ 向下查找,?keyword→ 向上查找n→ 下一个匹配项,N→ 上一个匹配项*→ 查找当前光标下的单词ma→ 标记当前位置为标记a,`a→ 跳转到标记a
4. 可视模式(子模式)
v→ 进入字符可视模式,V→ 行可视模式,Ctrl+v→ 块可视模式- 选中后操作:
d→ 删除,y→ 复制,>/<→ 缩进,~→ 大小写切换
三、底线命令模式(Command-line Mode)
进入方式:普通模式下按 :
1. 文件操作
:w→ 保存文件:w [filename]→ 另存为新文件:q→ 退出,:q!→ 强制退出不保存:wq或:x→ 保存并退出:e [file]→ 打开新文件
2. 查找与替换
:%s/old/new/g→ 全局替换old为new:s/old/new/g→ 替换当前行所有old:noh→ 取消搜索结果高亮
3. 分屏与窗口
:sp [file]→ 水平分屏,:vsp [file]→ 垂直分屏:close→ 关闭当前窗口,:only→ 关闭其他窗口
4. 标签页
:tabnew [file]→ 新建标签页:tabn→ 下一个标签页,:tabp→ 上一个标签页
5. 配置与调试
:set number→ 显示行号,:set nonumber→ 隐藏行号:syntax on→ 启用语法高亮:help [command]→ 查看命令帮助(如:help :s)
四、模式切换速记
- 输入模式 → 普通模式:
Esc - 普通模式 → 底线命令模式:
: - 普通模式 → 可视模式:
v/V/Ctrl+v - 任何模式 → 普通模式:
Esc(多次按确保退出)
五、高效组合示例
- 删除 3 行并粘贴:
3dd→p - 全局替换并保存:
:%s/foo/bar/g→:w - 分屏编辑:
:sp ~/.vimrc→ 修改后:wq - 快速注释多行:
Ctrl+v选中行 →I#→Esc(块插入)
六、配置建议(~/.vimrc)
1 | set number " 显示行号 |
用户与用户组
一、用户管理
1. 创建用户
useradd常用选项:1
2
3useradd [选项] <用户名>
# 示例:
useradd -m -s /bin/bash john # 创建用户john,自动生成家目录(-m),指定shell为bash(-s)-m:自动创建用户家目录(如/home/john)-s <shell>:指定用户的登录shell(如/bin/bash)-g <主组>:指定用户的主组(默认创建同名组)-G <附加组>:指定用户的附加组(多个组用逗号分隔)
2. 设置用户密码
passwd1
2passwd <用户名> # 为指定用户设置密码(root可操作其他用户)
passwd # 修改当前用户自己的密码
3. 修改用户属性
usermod常用选项:1
2
3
4usermod [选项] <用户名>
# 示例:
usermod -l newname oldname # 修改用户名(-l)
usermod -aG sudo john # 将用户john添加到sudo组(-aG表示追加附加组)-l <新用户名>:修改用户名-d <新家目录>:修改用户家目录路径-aG <附加组>:将用户追加到附加组(不覆盖原有组)
4. 删除用户
userdel1
2
3userdel [选项] <用户名>
# 示例:
userdel -r john # 删除用户john,并删除家目录和邮件池(-r)
二、用户组管理
1. 创建用户组
groupadd1
2
3groupadd <组名>
# 示例:
groupadd developers # 创建名为developers的组
2. 修改组属性
groupmod1
2
3groupmod [选项] <组名>
# 示例:
groupmod -n newgroup oldgroup # 修改组名(-n)
3. 删除用户组
groupdel1
2
3groupdel <组名>
# 示例:
groupdel developers # 删除组developers(需确保组内无用户)
4. 管理组成员
gpasswd1
2
3
4gpasswd [选项] <组名>
# 示例:
gpasswd -a john developers # 将用户john添加到developers组(-a)
gpasswd -d john developers # 将用户john从developers组移除(-d)
三、查看用户与组信息
1. 查看当前用户
whoami1
whoami # 显示当前登录用户名
2. 查看用户信息
id1
2
3id <用户名> # 显示用户UID、GID及所属组
# 示例:
id john # 输出:uid=1001(john) gid=1001(john) groups=1001(john),27(sudo)cat /etc/passwd1
cat /etc/passwd # 查看所有用户信息(格式:用户名:密码占位符:UID:GID:描述:家目录:shell)
3. 查看组信息
getent group1
getent group # 查看所有组信息(格式:组名:密码占位符:GID:组成员)
groups1
2
3groups <用户名> # 查看用户所属的组
# 示例:
groups john # 输出:john : john sudo
四、文件权限与归属
1. 修改文件所有者
chown1
2
3
4chown [用户]:[组] <文件/目录>
# 示例:
chown john:developers file.txt # 将文件所有者改为john,所属组改为developers
chown -R john:developers dir/ # 递归修改目录及其子文件(-R)
2. 修改文件所属组
chgrp1
2
3chgrp <组名> <文件/目录>
# 示例:
chgrp developers file.txt # 将文件所属组改为developers
3. 修改文件权限
chmod1
2
3
4
5# 数字模式
chmod 755 file.sh # 权限:rwxr-xr-x(所有者=7,组=5,其他=5)
# 符号模式
chmod u+x,g-w,o=r file.sh # 所有者添加执行权限,组移除写权限,其他仅保留读权限
五、实用场景示例
创建用户并加入sudo组
1
2
3useradd -m -s /bin/bash john
passwd john
usermod -aG sudo john # 允许john使用sudo提权批量删除用户
1
2
3userdel -r user1
userdel -r user2
# 或结合脚本操作快速查看所有用户列表
1
cut -d: -f1 /etc/passwd # 提取/etc/passwd中的用户名




