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在处理结构化数据和生成报表方面表现出色。
在实际工作中,根据具体需求选择合适的工具,可以显著提高工作效率。
热门推荐
全国应用经济学专业大学排名一览表
书籍与人生:阅读在个人成长中的作用
洛杉矶山火造成巨大破坏的因素有哪些?
提高警惕!识别网络传销,远离网络传销!
日本婚禮種類有哪些?日本常見的結婚儀式介紹(上篇)
房贷“越短越好”还是“越长越好”?银行职工:太多人都是白送钱
如何加快项目招投标进度
王者荣耀新游戏机制:《王者世界》引领回合制游戏革命
一文详解PVOC认证:定义、流程、所需资料及常见问题
人类梦境背后隐藏着什么奥秘?
开放式基金流动性风险管理的优化路径
香蕉与牛奶的营养搭配研究
车辆性能评测是什么
提升技能的实践练习培训法解析与应用
地雷复卦:《易经》中的希望与新生
水管漏水怎么处理?水管漏水快速修复
正是橘子成熟季,十首咏橘诗词,首首果香四溢,令人百般回味!
职工养老保险怎么取出来?辞职后的详细指南
家庭饲养小型鱼之红绿灯(简单易养,配合简单过滤器,打造清澈的鱼缸水生环境)
详解溶质质量分数计算及应用
大模型边推理边纠错,有可能做到吗?这是ICML爆火的演讲
cgi是什么编程
货车为什么要二脚踩离合
消防应急照明和疏散指示系统的维护与保养规范
如何成为一名更好的倾听者?
股票分红对散户投资者有意义吗?
前交叉韧带(ACL)断裂,及时治疗以免膝盖退化。
黄连汤方证研究
“啾”是可爱!请“飞来”福建看候鸟!
西安地铁“一线两段”开通,焕新城市发展活力!