目录
Linux 常用文本编辑器介绍
文本编辑器是操作系统基础的功能软件之一。根据使用环境的不同,Linux的文本编辑器有很多类型。
常见的Linux文本编辑器有:
• emacs
• nano
• gedit
• kedit
• vi
• vim
Linux文本编辑器-emacs
emacs被公认为是最受专业程序员喜爱的代码编辑器之一,另外一个vim。
emacs是一款功能强大的编辑器,与其说是一款编辑器,它更像一个操作系统。
emacs带有内置的网络浏览器、IRC客户端、计算器,甚至是俄罗斯方块。
优点:
• 可定制,可扩展
• 功能强大
• 可以与许多自由软件编程工具集成
缺点:
• 入门难度高,对普通用户不友好
Linux文本编辑器-nano
Nano是命令行界面下一个相对简单的文本编辑器,适合新手学习。它是为了代替闭源的Pic文本编辑器而开发的,通常默认包含在类似Unix的计算系统中。
Nano主要应用于类UNIX系统(包括Linux),同时也提供了Windows系统的二进制安装包,大多数Linux发行版都自带了Nano。
优点:
• 易于使用,操作简单,适用于简单文本编辑。
缺点:
• 对复杂的文本编辑比较耗时,无强大的命令功
能进行复杂操作,不支持如宏、一次编辑多个
文件、窗口分割、垂直块/矩形选择/编辑、自
动完成等高级功能。
Linux文本编辑器-gedit
gedit是一个GNOME桌面环境下兼容UTF-8的文本编辑器。
gedit是一个自由软件。这是Linux下的一个纯文本编辑器,但你也可以把它用来当成是一个集成开发环境(IDE),它会根据不同的语言高亮显现关键字和标识符。
优点:
• 图形化界面,易上手,操作习惯与Windows
类似,包括常用的快捷键如复制粘贴等。
缺点:
• 需要安装图形化桌面才能使用。
Linux文本编辑器-xedit
与gedit类似,xedit是Xfce图形化桌面中常用的一种文本编辑器。xedit是一个非常小的编辑器,特别适用于浏览文本和各种配置文件。
优点:
• 图形化界面,易上手,操作习惯与Windows类似,包括常用的快捷键如复
制粘贴等。
缺点:
• 需要安装图形化桌面才能使用
Linux文本编辑器-vi
vi是标准的Unix文本编辑器,也是最古老的文本编辑器、最通用的文本编辑器。
所有的Linux、Unix都默认带有vi文本编辑器。虽然vi的操作方式与其他常用的文本编辑器(如gedit)很不相同,但是由于其运行于字符界面,并可用于所有unix/linux环境,仍被经常使用。
优点:
• 通用,几乎所有的Unix、Linux都自带vi。
缺点:
• 功能简单,显示效果单一。
Linux文本编辑器-vim
Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。
Vim的第一个版本由布莱姆·米勒在1991年发布。最初的简称是ViIMitation,随着功能的不断增加,正式名称改成了ViIMproved。现在是在开放源代码方式下发行的自由软件。
现发行的Linux操作系统几乎都自带Vim
Linux vim编辑器使用
Vim-命令格式
命令格式:
vim[options][file]编辑指定文件
主要参数:
• -c:读取文件后会执行-c之后的指令
• -R:以只读方式打开,但是可以强制保存
• -M:以只读方式打开,不可以强制保存
• -r:恢复崩溃的会话
• +num:从第num行开始
Vim-打开文件
如果filename文件存在,则会打开文件并显示文件内容;
如果filename文件不存在,vim会在下面提示[New],并且会在第一次保存时创建该文件(不保存时会产生备份文件)。
Vim-模式介绍
vim编辑器共有三种模式:
• 命令模式:在该模式下可移动光标位置、修改、删除、复制、粘贴、搜索关键字;
• 插入模式:在命令模式下输入“字符”进入插入模式,进行文本编写操作;
• 扩展模式:在命令模式下输入“:”进入扩展模式,进行保存、退出、搜索等。
点esc键或者“ctrl+[”退回命令模式。
Vim-命令模式
vim命令模式相关命令:
• 移动光标:k、j、h、l键(方向键);
• cc:修改,即删除当前行并进入插入模式;
• dd:删除当前行,numdd删除光标所在行及其以下的num行;
• yy:复制当前行,numyy复制光标所在行及其以下的num行;
• p、P:复制的内容作粘贴(p粘贴在当前行下面,P粘贴在当前行上面);
• u、U:撤销最近的操作(u最近一次,U最近操作的那行);
• /keyword:搜索关键字;
• n、N:搜索关键字的时候继续寻找下一个(n向下找,N向上找);
• G:光标跳到最后一行,numG光标跳到num行;
• gg:光标跳到第一行。
Vim-插入模式
命令模式进入插入模式:
• a:光标会跳到当前后一格位置;
• i:光标位置不变;
• A:光标会停在当前行的最后位置;
• I:光标会停在当前行的最前面的位置;
• o:会在光标所在行的下面新增一行空白;
• O:会在光标所在行的上面新增一行空白;
• r:替换光标所在位置的字符,但不进入插入模式;
• R:从光标所在位置开始替换,能替换多个字符。
Vim-扩展模式
保存/退出编辑内容:
• :w保存
• :q退出
• :wq保存及退出
• :w!强制保存
• :q!强制离开
• :wq!强制保存离开
显示/隐藏行号
• :setnu
• :setnonu
查找文件内容
• /word-在光标之后查找一个字符串
• ?word-在光标之前查找一个字符串
替换文件内容
--将文档中1-5行的word1替换为word2,不加g则只替换每行的第一个word1。
1,5s/word1/word2/g
--将文档中所有的word1替换为word2,不区分大小写。
%s/word1/word2/gi
Linux 文本处理命令
cut
cut命令用来显示行中的指定部分,删除文件中指定字段。
cut主要有两个功能:
• 用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的内容输出到标准输出上;
• 连接两个或多个文件,通过重定向合并。
主要参数:
• -b:显示指定范围内的字节(中英文字节数不同);
• -c:显示指定范围内的字符(中英文字节数相同);
• -d:指定字段的分隔符,默认的字段分隔符为制表符;
• -f:显示指定字段的内容(非制表符不能切,需要配合-d);
awk
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理(格式化输出)。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。
它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。
主要参数:
•{print$num}:打印列数;
•-F:指定分隔符(默认空格)。
grep
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
主要参数:
• -c:计算找到搜寻文本的次数;
• -i:搜索时,忽略大小写;
• -l:只显示匹配行的文件名;
• -n:显示匹配文本所在行号;
• -v:反向选择,显示不包含匹配文本的所有行;
• -q:禁止输出任何结果,以退出状态表示搜索是否成功;
• -s:不显示错误消息;
• -r:递归搜索(搜索目录使用);
wc
wc(wordcount)命令统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。
主要参数:
• -l:统计行数(默认);
• -w:统计单词数(默认);
• -c:统计字节数(默认);
• -m:统计字符数;
diff
diff命令在最简单的情况下,比较给定的两个文件的不同。
diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。
主要参数:
• -B:不检查空白行
• -c:显示全部内文,并标出不同之处
• -i:忽略大小写的不同
• -r:比较子目录中的文件
• -w:忽略全部的空格字符
tr
tr(textreplacer)命令可以对来自标准输入的字符进行替换、压缩和删除。
它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。
主要参数:
• -c:反选设定字符,也就是符合set1的部分不做处理,不符合的剩余部分才进行转换;
• -d:删除所有属于set1的字符;
• -s:把连续重复的字符以单独一个字符表示;
• -t:当set1比set2长时,不做字符处理
sed
sed(StreamEDitor)是一种流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。
主要参数:
- -i:直接修改文件内容;
- -n:只打印模式匹配的行;
- -r:支持扩展表达式;
sed标记:
• s/:替换指定字符。
• /N:第N处进行操作;
• /g:表示行内全面替换;
• /Ng:替换N处;
• /d:删除匹配行。