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在处理结构化数据和生成报表方面表现出色。
在实际工作中,根据具体需求选择合适的工具,可以显著提高工作效率。
热门推荐
从古典诗词中汲取灵感:适合女孩的名字精选
夏至是什么时候?夏至是什么意思?
什么叫手机流量?看完文章后,就知道它到底是什么了
开展期货量化交易对硬件有哪些要求?满足这些要求会带来哪些优势?
数控车床螺纹加工指令G32、G92、G76实例讲解
房子抵押贷款一定要夫妻双方签字吗
困难补助申请范文的填写注意事项有哪些?
胆囊壁毛糙=胆囊炎?
如何修剪指甲,才能避免甲沟炎的发生?
40位国服芈月出装铭文汇总:打野对抗路各有侧重
惊蛰去霉运,记得:1不说,吃2样,做3事,尊重老传统,讨吉利!
什么运动最有益长寿?近10万运动员数据分析可供参考
中科院研究揭示童年虐待与成年慢性疼痛关联机制
电脑配置升级攻略:解除CPU瓶颈束缚
芦荟怎么施肥,芦荟基肥、追肥方法
芦荟怎样盆栽才会爆盆呢?
血液灌流的操作流程详解
3分钟!一文读懂血液透析的治疗模式与功能
内向没有主见怎么办
糖尿病进入靶向治疗新时代!新研究:两类已上市的新降糖药,终将成为主流!
人体小肠病变怎样检查
博鳌观察:一场论坛背后的“自贸港热度”
帕萨特 B5 2.0 常见故障及解决方案
科学岛团队在钨基超高温陶瓷的研制及抗氧化烧蚀性能方面取得新进展
前端如何不需要后端
国际物流7大运输方式该如何选择(国际物流运输方式大全)
农业地膜的分类及作用
全球4大"隐世家族":数百年不衰,中国也有1家
悬流(1V1)词枝:如何通过简洁表达提高文章吸引力?
夫妻一方出家是否算作离婚?法律解读与处理建议