CentOS 7文件编辑技巧大揭秘!
创作时间:
作者:
@小白创作中心
CentOS 7文件编辑技巧大揭秘!
引用
5
来源
1.
https://phoenixnap.com/kb/how-to-install-vim-centos-7
2.
https://www.cnblogs.com/lei0213/p/8719529.html
3.
https://www.geeksforgeeks.org/how-to-edit-text-files-in-linux/
4.
https://goldenhost.com/secure/knowledgebase/74/How-to-install-Vim-editor-on-CentOS-7.html
5.
https://www.unix.com/unix-for-advanced-and-expert-users/283448-why-editing-file-renaming-new-one-safer.html
在Linux系统中,尤其是使用CentOS 7时,掌握文件编辑的命令行技巧对于提高工作效率至关重要。本文将详细介绍如何利用vi/vim编辑器、sed和awk等工具,在CentOS 7下高效地完成文件修改任务。通过学习这些实用的技巧,你将能够更加轻松地应对日常运维和开发工作中的各种挑战。
01
常用的文件编辑工具
在CentOS 7中,有多种工具可用于文件编辑。其中最常用的包括:
- vi/vim:功能强大的文本编辑器,适合进行复杂的文本编辑操作。
- sed:流编辑器,适用于自动化文本处理和转换。
- awk:强大的文本处理语言,特别适合处理结构化数据。
02
vi/vim编辑器的使用
vi/vim是Linux系统中最常用的文本编辑器之一。它具有多种模式,包括命令模式、插入模式和可视模式等。下面是一些基本操作:
基本操作模式
- 命令模式:启动vim后默认进入的模式,可以输入各种命令。
- 插入模式:按
i
键进入,可以输入文本。按Esc
键退出插入模式。 - 底行模式:输入命令行命令,如保存文件等。
常用命令
移动光标:
h
:左移j
:下移k
:上移l
:右移0
:移动到行首$
:移动到行尾gg
:移动到文件开头G
:移动到文件结尾
搜索与替换:
/pattern
:向下搜索pattern?pattern
:向上搜索pattern:s/old/new/
:替换当前行的第一个old为new:s/old/new/g
:替换当前行所有old为new:%s/old/new/g
:替换整个文件所有old为new
保存与退出:
:w
:保存:q
:退出:wq
或:x
:保存并退出:q!
:强制退出不保存
安装最新版本的Vim
CentOS 7默认可能没有安装最新版本的Vim。你可以按照以下步骤安装Vim 8.2:
sudo yum install gcc make ncurses ncurses-devel
sudo yum install ctags git tcl-devel ruby ruby-devel lua lua-devel luajit luajit-devel python python-devel perl perl-devel perl-ExtUtils-ParseXS perl-ExtUtils-XSpp perl-ExtUtils-CBuilder perl-ExtUtils-Embed
sudo git clone https://github.com/vim/vim.git
cd vim
./configure --with-features=huge --enable-multibyte --enable-rubyinterp
make
sudo make install
03
sed命令行工具
sed(stream editor)是一种流编辑器,能够高效地处理文本流。它将当前处理的行存储在临时缓冲区中,称为“模式空间”,然后用sed命令处理缓冲区中的内容。
基本用法
删除行:
sed '1d' filename # 删除第一行 sed '$d' filename # 删除最后一行 sed '1,2d' filename # 删除第一行到第二行
打印行:
sed -n '1p' filename # 显示第一行 sed -n '$p' filename # 显示最后一行 sed -n '/pattern/p' filename # 显示包含pattern的所有行
添加和插入行:
sed '1a new_line' filename # 在第一行后添加new_line sed '1i new_line' filename # 在第一行前插入new_line
替换内容:
sed 's/old/new/' filename # 替换每一行的第一个old为new sed 's/old/new/g' filename # 替换每一行所有old为new
04
awk文本处理语言
awk是一种强大的文本处理语言,特别适合处理结构化数据。它可以从输入流中读取数据、排序、计算以及生成报告。
基本用法
切割字段:
awk -F ':' '{print $1}' /etc/passwd # 以冒号为分隔符,打印第一列
条件选择:
awk '$1 == "root"' /etc/passwd # 打印第一列等于root的行
计算和格式化输出:
awk '{sum+=$1} END {print sum}' numbers.txt # 计算第一列的总和
05
实战案例:修改文件的最后一个字节
假设我们需要将一个文件的最后一个字节修改为0,同时保持文件的修改时间(mtime)不变。这个需求可以通过结合使用dd命令和touch命令来实现。
- 使用dd命令修改最后一个字节:
dd if=/dev/zero of=yourfile bs=1 count=1 seek=$(( $(stat -c %s yourfile) - 1 )) conv=notrunc
这里的关键是conv=notrunc
选项,它确保文件的其余部分不被截断。
- 使用touch命令恢复原始的时间戳:
original_mtime=$(stat -c %y yourfile)
touch -d "$original_mtime" yourfile
这个案例展示了如何综合运用多个命令行工具来完成复杂的文件编辑任务。
06
总结
在CentOS 7中,vi/vim、sed和awk等工具各有优势:
- vi/vim适合进行复杂的文本编辑操作,尤其是需要交互式编辑的场景。
- sed适用于自动化文本处理和转换,特别适合批量处理。
- awk在处理结构化数据和生成报表方面表现出色。
在实际工作中,根据具体需求选择合适的工具,可以显著提高工作效率。
热门推荐
企业所得税与个人所得税:解析所得税的主要类型及其法律适用
车险出险次数与保费关系全解析:如何合理控制保费支出?
C++11中std::bind使用方法详解
不剃发植发好还是剃发植发好?从舒适度/美观度/价格/成效等角度对比分析!
离婚协议中抚养权变更和抚养费约定的有效性解析
离婚协议可以限制对方再婚吗
交通工具这么多,飞机真是世界上最安全的交通工具吗?
交通工具这么多,飞机真是世界上最安全的交通工具吗?
为了减肥而催吐,可取吗?北京劲松中西医结合健康科普
多少钱才能财富自由?一线城市:1900万元
淋巴炎的特征
嘴唇起泡的原因与预防:健康信号不可忽视的重要提示
嘴唇突然起泡还肿了?可能是这些原因
公路车选购高级指南(轮组篇)
书同文:汉字统一与文化认同的桥梁
专家解读:网传灭蚊神曲真的有效?原来蚊子最爱叮这四类人
中老年人,洗头要谨记“6要点”
揭秘AI智能看面相:真实技术还是虚假骗局?全方位评估其可信度与风险
如何通过肢体语言增加面试好感度
AI教育,不是为了拿满分,而是为了让孩子能在未来活下来
i5 12400和i5 12450H对比
解析显示器插入两根DP线出现故障的原因及解决方法
英国MAT测试是什么
牛津大学哪些专业需要MAT考试?2024年MAT笔试备考秘籍
王者荣耀赵云实战教学,赵云实战详细教学
溢价率在投资决策中扮演什么角色?如何利用溢价率进行风险管理?
自主品牌维修数据分析:电子系统故障偏高、发动机机体组稳定性差且零部件质量仍需提升
二战德国空军防空高射炮兵:组织、装备与实战运用
家里老鼠问题严重,如何快速解决这一难题?
科创板开通需要什么条件?佣金多少?