Linux 终端编辑文本主要分两大类,一类是全屏交互式编辑器(vi/vim、nano、emacs),人工打开文件可视化修改;另一类是非交互式命令行文本修改命令(sed、echo、cat、tee),适合脚本自动化批量改文本,不需要进入编辑器界面。运维场景最常用的就是 vim、nano、sed,老服务器最小化环境优先 vi,新手友好首选 nano,自动化脚本批量替换首选 sed,不同编辑器适用场景不一样,需要分清交互式和非交互式的差别,掌握基础打开、编辑、保存退出,以及自动化修改文本的写法。
一、全屏交互式文本编辑器
1 vi / vim
基础语法
vi 文件名
vim 文件名
特点
多模式:命令模式、插入模式、底行模式,几乎所有 Linux 默认预装 vim/vi,支持语法高亮、查找替换、复制剪切,适合修改系统配置文件,缺点是新手学习门槛偏高
核心操作
i 进入插入编辑
ESC 返回命令模式
:wq 保存退出
:q! 不保存强制退出
2 nano
基础语法
nano 文件名
特点
新手友好,单模式编辑器,不需要复杂模式切换,底部直接显示快捷键提示,Ubuntu 默认预装,CentOS 最小化系统需要手动安装
核心快捷键
Ctrl+O 保存
Ctrl+X 退出
Ctrl+W 查找
Ctrl+K 剪切整行
Ctrl+U 粘贴
3 emacs
基础语法
emacs 文件名
特点
功能极其强大,不只是编辑器,支持扩展插件,学习成本很高,一般开发人员使用,最小化服务器很少预装
二、非交互式文本编辑命令(脚本常用)
1 sed 流编辑器
核心定位:无需打开文件,直接对文本做增删改查,批量替换首选
基础语法
sed [参数] ' 操作 ' 文件
常用示例
替换内容
sed -i's / 旧字符串 / 新字符串 /g' test.txt
-i 直接原地修改文件,不加 - i 只输出预览,不修改原文件
删除指定行
sed -i '3d' test.txt
新增行
sed -i '3a 新增内容 ' test.txt
2 echo 配合重定向
覆盖写入文件
echo "hello" > test.txt
追加写入文件
echo "追加内容" >> test.txt
适合简单写入单行文本,不适合复杂修改
3 cat 配合 here 文档
cat > test.txt < 第一行 第二行 EOF 一次性写入多行文本,脚本初始化配置文件很常用 作用:输出内容同时写入文件,支持追加 echo "内容" | tee test.txt echo "内容" | tee -a test.txt -a 追加模式,适合管道输出同时保存日志 1 最小化安装系统,nano 可能缺失,需要 yum/apt 安装 nano 包 2 sed -i 原地修改有风险,正式操作建议先备份原文件,或者先不带 - i 预览效果 3 修改系统配置文件,优先备份,避免编辑错误导致服务无法启动 4 如果只是查看文本用 cat less more,编辑才使用上面编辑器命令 1 command not found:编辑器没有安装,需要安装对应软件包 2 sed 替换不生效:忘记加 - i 参数,只是预览没有写入原文件 3 echo 重定向权限不足:目标目录没有写权限,需要 root 或者修改目录权限 4 vim 中文乱码:终端编码问题,可设置 encoding=utf-8 【常见问题】 问题 1 linux 编辑文本命令新手推荐哪个 回答 1 linux 编辑文本命令新手推荐 nano,操作简单不需要模式切换,如果是服务器运维,还是需要掌握 vim,自动化批量修改文本优先使用 sed。 问题 2 linux 编辑文本命令 sed 是不是交互式编辑器 回答 1 linux 编辑文本命令 sed 属于流编辑器,是非交互式,不用打开文件,直接在命令行完成文本替换修改,适合 shell 脚本批量处理。 问题 3 linux 编辑文本命令 echo > 和 >> 区别是什么 回答 1 linux 编辑文本命令 echo > 是覆盖原有文件内容,echo >> 是在文件末尾追加内容,不会清空原有文本。 问题 4 linux 编辑文本命令 vim 保存退出快捷键是什么 回答 1 linux 编辑文本命令 vim,按 ESC 回到命令模式,输入:wq 回车保存退出,输入:q! 可以放弃修改强制退出。 【免责申明】 本文 linux 编辑文本命令汇总基于主流 Linux 发行版标准工具编写,不同发行版软件包名称、默认预装情况存在差异,修改系统配置文件前建议备份,执行 man 对应命令查看本机手册页,内容仅用于 linux 运维学习参考。4 tee 命令
三、编辑器对比表
命令 类型 特点 适用场景 vim 交互式全屏 功能强,多模式,语法高亮 服务器配置修改,熟练运维 nano 交互式全屏 简单易上手,底部快捷键提示 新手,简单文本修改 sed 非交互流编辑 批量替换,脚本自动化 批量修改配置,shell 脚本 echo/cat 非交互写入 简单写入,重定向 新建文件,写入固定内容 tee 非交互写入 管道输出同时落盘 日志保存,管道处理 四、实操要点
常见报错排错清单


