46-文本编辑器及文本处理
- 常见文本编辑器
- linux文本编辑器介绍
- Linux文本编辑器-emacs
- Linux文本编辑器-nano
- Linux文本编辑器- gedit
- Linux文本编辑器- kedit
- Linux文本编辑器- vi
- Linux文本编辑器- vim
- 使用vim编辑器
- vim基础操作-打开文件
- vim基础操作-移动光标
- vim基础操作–数据操作
- vim基础操作-行号显示与取消
- vim基础操作-查找与替换
- vim基础操作-设置搜索高亮
- vim基础操作-修改文件
- vim基础操作-撤销或重做
- vim基础操作-保存文件并退出
- 文本处理
- 查看文件- cat (1)
- 查看文件- more (1)
- 查看文件- less (1)
- 文件摘选和字段提取
- 文件摘选- head
- 文件摘选- tail
- 提取列或字段- cut
常见文本编辑器
linux文本编辑器介绍
- 文本处理是操作系统对文件管理的基础操作,文本编辑器是操作系统基础的功能软件之一,主要用来编写和查看文本文件。不同的文件编辑器有不同的辅助功能。根据使用环境的不同,Linux 的文本编辑器有很多类型。
- 常见的 Linux 文本编辑器有:emacs,nano,gedit,kedit,vi,vim。
Linux文本编辑器-emacs
- emacs是一款功能强大的编辑器,与其说是一款编辑器,它更像一个操作系统。emacs带有内置的网络浏览器、IRC客户端、计算器,甚至是俄罗斯方块。当然,emacs需要在图形化界面的Linux中使用。
- 优点:
可定制,可扩展
功能强大
可以与许多自由软件编程工具集成 - 缺点:
入门单独搞,对普通用户不友好
Linux文本编辑器-nano
- nano是命令行界面下一个相对简单的文本编辑器,它是为了代替闭源的Pico文本编辑器而开发的,1999年以GPL协议发布第一个版本,是一个自由软件,同时也是GNU计划的一个组成部分。nano有很多人性化的功能设计,如语法高亮、正则表达式搜索和替换、平滑滚动、多个缓冲区、自定义快捷键、撤销或重复编辑。
- 优点:
易于使用,操作简单,适用于简单文本编辑。 - 缺点:
对复杂的文本编辑比较耗时,无强大的命令功能进行复杂操作,不支持如宏、一次编辑多个文件、窗口分割、垂直块/矩形选择/编辑、自动完成等高级功能。
Linux文本编辑器- gedit
- gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器。它简单易用,有良好的语法高亮,对中文支持很好,支持包括GB2312、GBK在内的多种字符编码。gedit是一款自由软件。gedit包含语法高亮和标签编辑多个文件的功能。利用GNOME VFS库,它还可以编辑远程文件。它支持完整的恢复和重做系统以及查找和替换。
- 优点:
图形化界面,易上手,操作习惯与Windows类似,包括常用的快捷键如复制粘贴等。 - 缺点:
需要安装图形化桌面才能使用。
Linux文本编辑器- kedit
- 与gedit类似,kedit是KDE图形化桌面中常用的一种文本编辑器。kedit编辑器,特别适用于浏览文本和各种配置文件。
- 优点:
图形化界面,易上手,操作习惯与Windows类似,包括常用的快捷键如复制粘贴等。 - 缺点:
需要安装图形化桌面才能使用。
Linux文本编辑器- vi
- vi是标准的Unix文本编辑器,也是最古老的文本编辑器、最通用的文本编辑器。所有的Linux、Unix都默认带有vi文本编辑器。虽然vi的操作方式与其他常用的文本编辑器(如gedit)很不相同,但是由于其运行于字符界面,并可用于所有unix/linux环境,仍被经常使用。
- vi的三种命令模式:
Command : 命令模式,用于输入命令;
lnsert : 插入模式,用于插入文本;
Visual : 可视模式,用于浏览文本。 - 优点 : 通用,几乎所有的Unix、Linux都自带vi。
- 缺点 : 功能简单,显示效果单一。
Linux文本编辑器- vim
- Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
- Vim的第一个版本由布莱姆·米勒在1991年发布。最初的简称是Vi IMitation,随着功能的不断增加,正式名称改成了Vi lMproved。现在是在开放源代码方式下发行的自由软件。
- 从vi派生出来的vim具有多种模式:
基本模式 : 普通模式、插入模式、可视模式、选择模式、命令行模式、Ex模式
派生模式 : 操作符等待模式、插入普通模式、插入可视模式、插入选择模式、替换模式
其他: Evim - openEuler 20.03 LTS系统安装后默认没有安装vim,需要手动安装vim
使用vim编辑器
vim基础操作-打开文件
[root@openEuler~]# vim filename
- 如果filename文件存在,则会打开文件并显示文件内容
- 如果filename文件不存在,vim会在下面提示[New File],并且会在第一次保存时创建该文件。
vim基础操作-移动光标
- 快速移动光标:
上下左右键或k、j、h、l键上下左右移动光标。
0 移动到行首
g0移到光标所在屏幕行行首
:n移动到第n行。
gg:到文件头部。
G:到文件尾部。
:set nu : 显示行编号 - 数据操作:
yy or Y:复制整行文本。
y[n]w:复制一(n)个词。
d[n]w:删除(剪切)1(n)个单词
[n] dd:删除(剪切)1(n)行。
vim基础操作–数据操作
- 复制:
yy or Y:复制整行文本。
y[n]w:复制一(n)个词。 - 粘贴:
面向行的数据:
·p放置数据在当前行的下面
·Р放置数据在当前行的上面
面向字符的数据:
·p放置数据在光标的后面.
Р放置数据在光标前 - 删除(剪切):
d[n]w:删除(剪切)1(n)个单词
[n] dd:删除(剪切)1(n)行。
vim基础操作-行号显示与取消
-
显示行号
:set nu
-
取消显示行号
:set nonu
vim基础操作-查找与替换
- 查找
:/word在光标之后查找一个字符串word,按n向后继续搜索,shift+n向上搜索。
:?word在光标之前查找一个字符串word,按n向后继续搜索。 - 替换
:\s/word1/word2 : word1替换为word2,替换光标后的第一个word1
:\s?word1?word2 : word1替换为word2,替换光标前的第一个word1
:1,5s/word1/word2/g : 将文档中1-5行的word1替换为word2
不加g则只替换每行的第一个
word1。
%s/word1/word2/gi : 将文档所有的word1替换为word2,i不区分大小写。
vim基础操作-设置搜索高亮
-
临时设置时,在命令模式下输入:
:set hlsearch
-
永久设置,需要在/etc/vimrc中配置,增加一行set hlsearch,然后更新变量即可。
vim基础操作-修改文件
- 使用vim filename打开文件后,进入的是普通模式。当想要修改文件时,可以按i键进入插入模式。进入插入模式时,会在最下面提示当前模式是Insert。按ecs可以退出插入模式,回到普通模式。
vim基础操作-撤销或重做
- u撤销最近的改变
- U撤销当前行自从光标定位在上面开始的所有改变.
- Ctrl+r重做最后一次“撤销”改变
vim基础操作-保存文件并退出
- 退出插入模式:
·在插入模式下按ecs键退出插入模式 - 常用的保存/退出的命令:
:w 保存
:q 退出
:wq 保存并退出
:q! 强制退出
:wq! 强制保存并退出
文本处理
查看文件- cat (1)
- cat是一个文本文件查看和连接工具。cat有如下功能:
显示文件内容,cat filename
编辑一个文件,cat > filename。
将几个文件合并为一个文件,cat file1 file2 > file3.(这里>表覆盖(原文件内容))
如果要保留原文件 cat >> filename或cat file1 file2 >> file3 - cat常用选项有:
-n:从1开始对所有行编号并显示在每行开头
-b:从1开始对非空行编号并显示在每行开头
-s:当有多个空行在一起时只输出一个空行
-E:在每行结尾增加$
–help:显示帮助信息
查看文件- more (1)
- more可以一次查看文件或者标准输入的一页,与cat不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
- 命令格式: more [options] …
- more常用的选项有:
+n : 从第n行开始显示
-n : 定义屏幕大小为n行
-c : 从顶部清屏,然后显示 (例:more -c10 file.txt :)
-s ∶把连续的多个空行显示为一行 - more白常用操作:
Enter : 默认向下滚动1行
Ctrl+F : 向下滚动一屏
空格键 : 向下滚动一屏
Ctrl+B : 向上滚动一屏
b : 向上滚动一屏
= : 输出当前行号
:f : 输出文件名和当前行号
q : 退出more
查看文件- less (1)
- less可以一次查看文件或者标准输入的一页,less的用法比起more更加的有弹性。支持与vim相似的编辑:(/word 向后查找关键字 , ?word向前查找关键字)
- 命令格式: less [option]文件
- less常用的选项有:
-f:强制打开特殊文件,例如外围设备代号、目录和二进制文件-g:∶只标志最后搜索到的关键字
-i:忽略搜索时的大小写
-N:显示每行的行号
-s:当有多个空行在一起时只输出一个空行
前面这几个选项可以进入less之前使用,也可以在进入less之后使用
-o<文件名> : 将less输出的内容保存到指定文件
例:
ls -l /etc | less -o /root/output.txt
用less选项显示ls命令的输出信息,并保存在指定目录下的output.txt文件当中 - less常用的操作:
b:向上翻一页
d:向下翻半页
h:显示帮助界面
q:退出less
u:向上翻半页
y:向上翻一行
空格键:向下翻一页
Enter:向下翻一行
上下键:向上/下翻一行
文件摘选和字段提取
文件摘选- head
- head用来显示文件的开头至标准输出中,默认head命令可以显示文件的前10行
- 命令格式: head [option]…[文件]…
- head常用的选项有:
-q : 输出时隐藏文件名,head默认不显示文件名
-v : 输出时显示文件名
-c num : 显示前num 个字节
-n num:显示前num行
文件摘选- tail
- tail用来显示文件的末尾至标准输出中,默认tail命令可以显示文件的后10行
- 命令格式: tail [option]… [file]…
- tail常用的选项有:
-f : 循环读取,对于日志文件的监控非常有用
-q : 不显示文件名,tail默认不显示文件名
-v : 显示文件名
-c num : 显示文件最后num个字节
-n num : 显示文件最后num行
-s : 与-f结合使用,表示每次反复的时间间隔休眠s秒
提取列或字段- cut
- cut用于显示文件或者标准输入的特定列,如:
- [root@openEuler ~]# cut -d: -f1/etc/passwd
#显示/etc/passwd文件以:间隔的第一列 - 命令格式: cut [option]… [文件]
- cut常用的选项有:
-b:仅显示行中指定直接范围的内容
-c[范围]∶仅显示行中指定范围的字符
-d : 指定字段的分隔符,默认的字段分隔符为“TAB"
-f[范围] : 显示指定第num个字段的内容,可以用逗号隔开显示多个字段 - 指定范围的方式:
N : 每行的第N个字节,字符或字段
N- : 每行的第N个字节,字符或字段到每行的末尾
-M : 每行的第1个字节,字符或字段到每行第M个
N-M : 每行的第N到M个字节,字符或字段