Linux Vim文本编辑 + 重定向实战笔记(CentOS7)
摘要:本文整理CentOS7下vim编辑器常用快捷键、文本编辑操作以及shell输入输出重定向全套实战。全部示例命令可直接复制运行,区分覆盖/追加、标准输出/错误输出,讲解/dev/null黑洞设备、here‑doc、tee工具,标注新手高频踩坑点,适合CSDN、语雀实验笔记与面试复习。
一、Vim编辑器
安装vim
# CentOS7安装vim
yum install vim
普通模式 — 光标定位
打开vim默认进入普通模式,下面快捷键均在普通模式执行
| gg | 跳转到文档第一行 |
| G | 跳转到文档最后一行 |
| w | 向后移动到下一个单词开头 |
| e | 向后移动到下一个单词末尾 |
| b | 向前移动到上一个单词开头 |
| ^ / 0 | 跳转到当前行首 |
| $ | 跳转到当前行尾 |
| ( | 跳转到上一个句子头部 |
| ) | 跳转到下一个句子尾部 |
| { | 跳转到上一个自然段开头 |
| } | 跳转到下一个自然段开头 |
文本选中(可视模式)
v # 字符选中,按方向键选中文本
V # 行选中,直接选中整行
普通模式 → 插入模式(编辑文本)
| i | 在当前光标位置插入 |
| I | 跳转到行首,进入插入模式 |
| a | 在光标后面追加字符 |
| A | 跳转到行末尾,进入追加模式 |
| o | 在当前行下方新开一行并进入插入模式 |
| O | 在当前行上方新开一行并进入插入模式 |
普通模式 — 删除操作
x # 删除光标处单个字符;5x 删除往后5个字符
X # 删除光标前面一个字符
dw # 删除一个单词;d5w 删除向后5个单词
d3b # 删除向前3个单词
d$ # 从光标删除到行末尾
D # 等价 d$,从光标删除到行尾
⚠️注意:删除内容会存到vim缓冲区,可以粘贴。
撤销回退
u # 撤销上一次操作
U # 撤销当前行全部修改
普通模式 — 修改操作(删除后直接进入插入模式)
s # 删除当前光标字符,进入插入模式
S # 删除整行内容,进入插入模式
cw # 删除一个单词,直接进入编辑
C # 从光标删除到行尾,进入插入模式
普通模式 — 字符替换
r # 替换**单个字符**,替换完成直接回到普通模式
R # 持续替换模式,一直覆盖字符,按ESC退出回到普通模式
普通模式 — 复制(yank)
yy # 复制当前一行,等价 y1y
y3y # 复制连续3行
# 语法拆解:y(动作复制) + 数量 + 对象(y代表行/w单词)
二、Shell重定向
重定向:改变数据流输出方向,不再输出到屏幕,流向文件/设备
文件描述符:
| 0 | stdin | 标准输入,输入数据 |
| 1 | stdout | 标准输出,命令正常正确输出信息 |
| 2 | stderr | 标准错误,报错、异常信息 |
1> 等价于 >;0< 等价于 <
输出重定向
1. 1> / > 覆盖重定向标准输出
只保存正确输出,覆盖原有文件;报错依旧打印屏幕
# 将find正常结果覆盖写入passwd.list,权限报错打印屏幕
find /etc -name 'passwd' 1>passwd.list
2. 2> 覆盖重定向标准错误
只保存报错信息,覆盖原有文件;正确输出打印屏幕
# 报错写入passwd.err,匹配到的文件打印到屏幕
find /etc -name 'passwd' 2>passwd.err
3. 1>> / >> 追加标准输出
正确输出追加写入文件,不会覆盖旧内容;报错打印屏幕
find /etc -name 'passwd' >> passwd.list
4. 2>> 追加标准错误
报错信息追加写入文件,正确输出打印屏幕
find /etc -name 'passwd' 2>> passwd.err
黑洞设备 /dev/null
写入该设备的数据直接丢弃消失,常用于屏蔽报错信息
# 只看正常输出,把报错丢弃
ls /etc /abc 2>/dev/null
# 标准输出+错误全部丢弃,屏幕无任何输出
ls /etc /abc &> /dev/null
快速清空文件(覆盖空内容)
文件不存在会自动创建
> passwd.list
cat passwd.list
正确输出+错误输出同时写入同一个文件
# 通用写法,兼容绝大多数shell: >文件 2>&1
find /etc -name 'passwd' > passwd.log 2>&1
# bash专属简写 &>
find /etc -name 'passwd' &> passwd.all
✅面试考点:2>&1 不能写成 2>1;后者是把错误输出写入名字叫1的普通文件。
输入重定向 <
# 两条命令效果等价
cat passwd.list
cat < passwd.list
多行输入重定向 <<(Here‑Doc)
<<停止符,遇到匹配停止符结束输入,常用于快速生成配置文件
cat <<EOF > nginx.conf
> server {
> listen 80;
> }
EOF
# 查看生成的配置
cat nginx.conf
tee命令
tee:接收管道输入,一份输出屏幕,一份写入文件;本身不产生数据,依赖管道|
# tee 默认覆盖写入文件
# -a 参数:追加写入,不覆盖原有内容
cat nginx.conf | tee -a passwd.log
网硕互联帮助中心





评论前必须登录!
注册