第7章 Linux文件过滤及内容编辑处理

第7章 Linux文件过滤及内容编辑处理

在第5章,我们讲解了Linux系统文件及目录处理的基本命令知识和应用实践,本章继续为大家讲解处理Linux系统文件内容的一些核心命令,这些命令同样十分重要。

7.1 vi/vim:纯文本编辑器

Windows下最基本的文本编辑器就是记事本,当然,还有一些功能强大的文本编辑器,例如notepad++、emeditor等,如果与Linux系统相比较,那么你会发现Windows下的记事本对应的就是Linux里的vi命令,而notepad++、emeditor这样的编辑器对应则是vim命令,因此,掌握vi/vim命令是学好Linux的重要的必修课之一,因为这两个命令是管理Linux必不可少的工具。

7.1.1 命令详解

【命令星级】  ★★★★★

【功能说明】

vi是Linux命令行界面下的重要文字编辑器。vim是vi命令的增强版,例如,高亮显示代码、自动缩进等。vim与vi编辑器是兼容的,建议读者多用vim编辑器替代vi编辑器。

【用法格式】


vim  [option]  [file]
vim  [选项]    [文件]  

【vim的三种模式】

vim分为三种模式:普通模式、编辑模式、命令模式,其作用分别如下。

(1)普通模式

用vim命令打开一个文件后,默认的状态就是普通模式。在这个模式中,不能进行编辑输入操作,但可以按“上下左右”键来移动光标,同时还可以执行一些操作命令进行如删除、复制、粘贴等工作。

(2)编辑模式

在普通模式下不能进行编辑输入操作,只有按下“i,I,o,O,a,A,r,R,s,S”(其中“i”最为常用)等字母进入编辑模式后才可以执行录入文字等编辑操作。确定文件是否处于编辑模式状态有一个重要的特征,那就是在窗口的左下角要有插入的标记“--INSERT--”或“--插入--”,如图7-1所示。

图7-1 vim编辑模式

(3)命令模式

在普通模式下,输入“:”或“/”或“?”时,光标会自动定位在那一行,在这个模式中,可以执行保存、退出、搜索、替换、显示行号等相关操作。

图7-2所示的是vim的三种模式转换示意图。

图7-2 vim的三种模式转换示意图

【选项说明】

表7-1针对vi/vim命令的参数选项进行了说明。

表7-1 vi/vim命令的参数选项及说明

7.1.2 使用范例

范例7-1:进入普通模式。


[root@oldboy ~]# vim oldboy_new.txt

输入“vim文件名”即可直接进入vim窗口。如图7-3所示,左下角会显示这个文件的当前状态。如果是新文件,则会显示[New File],如"oldboy_new.txt"[New File]。

图7-3 vim编辑新文件窗口底部

如果是已存在的文件,则会显示当前文件名、行数、字符数等,如图7-4所示。


[root@oldboy ~]# vim /etc/services

图7-4 vim编辑已有文件窗口底部

范例7-2:进入编辑模式。

在普通模式下,按下i键就可以进入编辑模式,此时可输入任意文本内容。当然还有很多字母也可以实现同样的功能,如“I,o,O,a,A,r,R,s,S”,从图7-5中可以看到,其左下角有个“--INSERT--”,表示可以编辑内容了。

图7-5 vim编辑模式窗口

范例7-3:按[Esc]键切回到普通模式。

编辑完内容后,可按[Esc]键退出编辑模式,进入普通模式,此时,细心的读者可以从图7-6中注意到窗口左下角的“--INSERT--”消失了。

图7-6 vim从编辑模式返回普通模式窗口

范例7-4:使用命令模式保存文件内容,退出vim编辑器。

切回到普通模式后,此时就可以使用命令模式保存文件内容了,如图7-7所示,输入“:wq”(保存退出)或“:wq!”(强制保存退出)后敲下回车键即可保存退出。

图7-7 vim命令模式保存文件窗口底部

7.1.3 通过vim命令打开文件的方法小结

以下列举几种通过vim命令打开文件的方法。

·vim file:打开/新建文件,光标置于第1行行首,file为任意文件名。

·vim file+n:打开文件,光标置于第n行行首,n为自然数。

·vim file+:打开文件,光标置于最后1行行首。

·vim file+/pattern:将光标置于与pattern匹配的第一个字符串处,pattern为任意字符串。

有关vi/vim的命令深入知识(含vim配置及编程开发配置)讲解,可以参考《跟老男孩学Linux运维:Shell编程实战》一书的第16章。

7.2 echo:显示输出文本内容

7.2.1 命令详解

【命令星级】  ★★★★★

【功能说明】

echo命令能将指定文本显示在Linux命令行上,或者通过重定向符写入到指定的文件中。

【语法格式】


echo  [option]  [string]
echo  [选项]    [文本] 

【选项说明】

表7-2针对echo命令的参数选项进行了说明。

表7-2 echo命令的参数选项及说明

7.2.2 使用范例

范例7-5:打印文本到屏幕输出。


[root@oldboy ~]# echo Hello world      #<==echo直接接想输出的文本。
Hello world
[root@oldboy ~]# echo 'Hello world'    #<==可以使用单引号将内容括起来。
Hello world
[root@oldboy ~]# echo "Hello world"    #<==也可以使用双引号。
Hello world
[root@oldboy ~]# echo -e "hello\tworld" #<==使用选项-e可以识别\t(一个tab)等特殊字符。
hello   world

范例7-6:将单行文本追加到某个文件中。


[root@oldboy ~]# echo "hello world" >>hello.txt  #<==使用追加重定向符号>>将文本
                                                      写入文件。
[root@oldboy ~]# cat hello.txt
hello world

范例7-7:使用-n参数的示例。


[root@oldboy ~]# echo "oldboy";echo "oldboy"      #<==分号可以连接2个命令。
oldboy                                            #<==命令执行结果分成了两行输出。
oldboy
[root@oldboy ~]# echo -n "oldboy";echo "oldboy"   #<==使用-n选项就可以不换行,
                                 输出成一行。
oldboyoldboy

范例7-8:打印彩色输出。

命令如下:


echo -e "\033[30m 黑色字oldboy trainning \033[0m"
echo -e "\033[31m 红色字oldboy trainning \033[0m"
echo -e "\033[32m 绿色字oldboy trainning \033[0m"
echo -e "\033[33m 黄色字oldboy trainning \033[0m"
echo -e "\033[34m 蓝色字oldboy trainning \033[0m"
echo -e "\033[35m 紫色字oldboy trainning \033[0m"
echo -e "\033[36m 天蓝字oldboy trainning \033[0m"
echo -e "\033[37m 白色字oldboy trainning \033[0m"

提示:上文加粗的递增数字表示字体颜色范围。

图7-8为打印效果图。

图7-8 打印彩色输出效果图

假设要打印的背景色的数字范围为40-47,命令如下:


echo -e "\033[40;37m 黑底白字 welcome to old1boy\033[0m"
echo -e "\033[41;37m 红底白字 welcome to old2boy\033[0m"
echo -e "\033[42;37m 绿底白字 welcome to old3boy\033[0m"
echo -e "\033[43;37m 黄底白字 welcome to old4boy\033[0m"
echo -e "\033[44;37m 蓝底白字 welcome to old5boy\033[0m"
echo -e "\033[45;37m 紫底白字 welcome to old6boy\033[0m"
echo -e "\033[46;37m 天蓝白字 welcome to old7boy\033[0m"
echo -e "\033[47;30m 白底黑字 welcome to old8boy\033[0m"

提示:上文加粗的递增数字表示背景颜色范围。

图7-9为打印的效果图。

图7-9 打印彩色背景色效果图

有关字体颜色内容,在《跟老男孩学Linux运维:Shell编程实战》一书的第9章有详细介绍。

范例7-9:打印变量内容。


[root@oldboy ~]# echo $PATH  #<==echo打印环境变量,在环境变量名前面使用“$”符号。
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@oldboy ~]# test=12345  
[root@oldboy ~]# echo $test
12345

提示:与echo类似的命令还有printf,这是一个功能更强的输出命令,具体请见后文。

7.3 cat:合并文件或查看文件内容

7.3.1 命令详解

【命令星级】  ★★★★★

【功能说明】

cat命令可以理解为英文单词concatenate的缩写,其功能是连接多个文件并且打印到屏幕输出,或者重定向到指定文件中。此命令常用于显示单个文件内容,或者将几个文件内容连接起来一起显示,还可以从标准输入中读取内容并显示,生产环境中,它常与重定向或追加符号配合使用。

cat命令的记忆方法:cat的中文意思是猫,可理解为“瞄”一下文件内容,那就是显示文件内容了。根据老男孩的运维经验,cat具备5大常用功能,具体请见表7-3。

表7-3 cat命令常用功能

【语法格式】


cat  [option]  [file]
cat  [选项]    [文件]

说明:在cat命令及后面的选项和文件里,每个元素之间都至少要有一个空格。

【选项说明】

表7-4针对cat命令的参数选项进行了说明。

表7-4 cat命令的参数选项及说明

7.3.2 使用示例

1.基础范例

范例7-10:执行cat的完整命令生成test.txt文件内容。

方法1:


cat >test.txt<<EOF
welcome to my blog.http://oldboy.blog.51cto.com

if you like my blog’s contents,pls support me

bye! boys and girls
EOF #<==这里要敲回车才能结束,另外,EOF必须成对出现,但也可以用别的成对标签进行替换。例如,
oldboy字符标签,默认情况下结尾的EOF必须要顶格写。


方法2:


cat >test.txt<<-EOF  #<==如果cat后面使用了“>>-”符号,则结尾的EOF可以不用顶格,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值