【Linux】Shell与文本处理实训

目录

实训1:vim编辑器的应用 

(1)在当前目录中,通过vi(m)命令新建wol文件。

(2)进入vi编辑器后,通过按字母i进入insert模式。输人一行文字“I am a student!"。

(3)按ESC.退回命令模式,输人“: wq",保存退出。

(4)拷贝/etc/man.config文件到当前目录。

(5)用vi打开它,请问现在是在什么模式?

(6)将光标移动到行尾,再将光标移动到行首。

(7)将光标移动到21行,删除5行。

(8)撤销刚才的操作。

(9)将光标移动到11行,复制10行。

(10)将复制的内容粘贴到文章末尾。

(11)在vi中设定行号,移动到第58行。

(12)移动到第一行,并且向下查找bzip2这个字符串,请问它在第几行?

(13)移动到第5行将man字符串(全部)改为大写MAN字符串?

(14)修改完之后,突然反悔了,要全部复原。

(15)将这个文件另存成一个man. test. config的文件。

(16)保存退出。

(17)使用vi新建文档Hello. java。

(18)进人编辑模式输人源代码。

(19) 保存退出。

实训2:重定向、管道

(1) 用ls命令显示当前目录的文件列表。

(2)使用输出重定向,把ll命令在终端上显示的当前目录中的文件列表重定向到list中去。

(3)查看文件list中的内容,往意在列表中会多出一个文件list,其长度为0,这说明Shell是首先创建了个空文件,然后再运行Is 命令。

(4)再次使用输出重定向,把1s命令在终端上显示的当前目录中的文件列表重定向到文件list中去。这次使用管道符号>>进行重定向。

(5)查看文件list的内容,注意其中两行list文件的信息中文件大小的区别。

(6)使用echo命令,在屏幕上显示内容为“happy”的字符串:

(7)使用echo命令,将“happy”的字符串写人network文件中。

(8)将1s/etc/xl命令执行错误重定向到home目录下的cw文件中。

(9)使用cat命令将list文件和network文件合并成一个文件list_network

(10)使用tr命令将network文件中的h字母转化成大写的H字母。

(11)使用tr命令將network文件中的h字母转化成大写的H字母,并写人networkl文件中去。

(12)练习使用"cat>network2<< !".

(13)利用管道和grep命令,在上面建立的文件list中查找字符中list.

(14)利用管道和wc命令,计算文件list中的行数、单词数和字符数。

(15)将/et/passwd 文件内容重定向到/home目录下的pd文件中。

实训3: grep及正则表达式

(1)将/etc/passwd 中有出现root 的行取出来,并以高亮显示。

(2)将/ete/ passwd中有出现root的行取出来,同时显示这些行在etc/ passwd的行号。

(3)将/etc/ passwd中没有出现root的行取出来。

(4)将/etc/passwd 中没有出现root和nologin的行取出来。

(5)将/etc/passwd 中出现“root" 或"mail"的行。

实训4:正则表达式

(1)匹配行首。

①查看以字符“a”开头的行。

②查看以字符串“abc"开头的行。

(2) $匹配行尾。

①查看以字符串“33”结尾的行。

②查看以字符“3”结尾的行。

(3) []:匹配[]内的字符或者关系。

①查看包含字符“1” 或者包含字符“2”包含字符“3”的行。

②查看包含字符test或taste的行。

(4).:匹配任意的单字符。

①查找任意字符开头,然后第二个字符为3。

②查找任意两个字符开头,然后第三个字符为3。

(5)¥:紧跟一个单字符,表示匹配0个或者多个此字符。

①匹配字符“3”0次或者多次。

②匹配字符串“23",但是3被匹配的次数≥0。

(6) \ :用来屏蔽元字符的特殊含义。

①在字符串“365.398”中,查找“.”这个字符,而不是任意单字符。

(7)搜索到有oo的行,但不想要oo前面有g.

(8)搜寻包含特定字符串“the" 的行。

(9)反向搜寻特定字符串"the"(即不包含“the")。

(10)取得任意大小写"the"的这个字符串。

(11)搜索有oo的字符时,则可以使用。

(12)搜索oo时不想搜到oo前面有g的话,可以利用反向选择[^]来达成,

(13)搜索oo前面不想有小写字符。

(14)显示行首为"the"的字符串。

(15)显示行首是小写字符。

(16)显示行尾为点的那行

(17)显示5~9行数据。

(18)显示空白行。

(19)找出g?? d字符串,起头g结束d的四个字符串。

(20)o*代表空字符(就是有没有字符都可以)或者一个到N个o字符,所以grep-n ‘o*’regular _ express. txt就会把所有行全部打印出来,

(21) oo*代表o+空字符或者一个到N个o字符,所以grep 一n 'oo*'regular _express. txt就会把o, 00,000 等的行全部打印出来。

(22)“goo*g"代表gog, goog. gooog等。

(23)找出含g...g字符串的行。

(24)找出含有数字的行。

(25)找出含两个o的字符串。

(26)找出g后含2~5个o然后以g结尾的字符串。

(27)找出g后含2以上的o然后以g结尾的字符串。


实训1:vim编辑器的应用 

(1)在当前目录中,通过vi(m)命令新建wol文件。

(2)进入vi编辑器后,通过按字母i进入insert模式。输人一行文字“I am a student!"。

【Linux】Shell与文本处理实训_第1张图片

(3)按ESC.退回命令模式,输人“: wq",保存退出。

【Linux】Shell与文本处理实训_第2张图片

(4)拷贝/etc/man.config文件到当前目录。

【Linux】Shell与文本处理实训_第3张图片

(5)用vi打开它,请问现在是在什么模式?

当前是命令模式

【Linux】Shell与文本处理实训_第4张图片

(6)将光标移动到行尾,再将光标移动到行首。

按“$”移动至行尾,按“0”或者“^”跳转至行首

【Linux】Shell与文本处理实训_第5张图片【Linux】Shell与文本处理实训_第6张图片

(7)将光标移动到21行,删除5行。

按下“21G”即可跳转到第二十一行,再用“5dd”删除5行

【Linux】Shell与文本处理实训_第7张图片【Linux】Shell与文本处理实训_第8张图片

(8)撤销刚才的操作。

在命令模式下按下“u”即可撤销上一步的操作

【Linux】Shell与文本处理实训_第9张图片

(9)将光标移动到11行,复制10行。

【Linux】Shell与文本处理实训_第10张图片按下“11G”跳转到第11行,再用“10yy”复制10行

(10)将复制的内容粘贴到文章末尾。

按下“G”将光标移动至文件末尾行首,按下“$”跳转到行尾,再用“p”粘贴至文章末尾

【Linux】Shell与文本处理实训_第11张图片

【Linux】Shell与文本处理实训_第12张图片

【Linux】Shell与文本处理实训_第13张图片

(11)在vi中设定行号,移动到第58行。

由于上面方便查看行数已经设定过行号了,命令为“:set number”(在命令模式下启动末行模式,设置set number)

此处我先退出vim编辑器,重新进入后用“:set number(或:set nu)”设置行号(或用“:set nonumber”取消行号,再重新进行设置)。再用“58G”移动到第58行

【Linux】Shell与文本处理实训_第14张图片

(12)移动到第一行,并且向下查找bzip2这个字符串,请问它在第几行?

按下“gg”或者“1G”即可将光标移动到第1行,用“/bzip2”向下查找,结果显示该字符串在第13行

【Linux】Shell与文本处理实训_第15张图片

【Linux】Shell与文本处理实训_第16张图片

(13)移动到第5行将man字符串(全部)改为大写MAN字符串?

按下“5G”跳转到第五行,输入“:s/man/MAN/g”即可将该行全部的“man”修改成“MAN”

【Linux】Shell与文本处理实训_第17张图片

【Linux】Shell与文本处理实训_第18张图片

(14)修改完之后,突然反悔了,要全部复原。

强制退出“:q!”,不保存修改的内容。即恢复到最初状态,完成全部复原。

【Linux】Shell与文本处理实训_第19张图片

(15)将这个文件另存成一个man. test. config的文件。

利用“:w filename”命令进行实现,即为“:w man.test.config”

【Linux】Shell与文本处理实训_第20张图片【Linux】Shell与文本处理实训_第21张图片

(16)保存退出。

【Linux】Shell与文本处理实训_第22张图片【Linux】Shell与文本处理实训_第23张图片

(17)使用vi新建文档Hello. java。

【Linux】Shell与文本处理实训_第24张图片【Linux】Shell与文本处理实训_第25张图片

(18)进人编辑模式输人源代码。

public class hello

public static void main (Srting [] args)

System. out. println (“Hello world!");

按下“a”(或者“i”、“o”)即可从命令模式进入输入模式并且输入代码

【Linux】Shell与文本处理实训_第26张图片

(19) 保存退出。

当前在输入模式中,按下“Esc”键退回到命令模式下,再按“:wq”则进入末行模式且保存退出

【Linux】Shell与文本处理实训_第27张图片

【Linux】Shell与文本处理实训_第28张图片

实训2:重定向、管道

(1) 用ls命令显示当前目录的文件列表。

(2)使用输出重定向,把ll命令在终端上显示的当前目录中的文件列表重定向到list中去。

【Linux】Shell与文本处理实训_第29张图片

(3)查看文件list中的内容,往意在列表中会多出一个文件list,其长度为0,这说明Shell是首先创建了个空文件,然后再运行Is 命令。

【Linux】Shell与文本处理实训_第30张图片

(4)再次使用输出重定向,把1s命令在终端上显示的当前目录中的文件列表重定向到文件list中去。这次使用管道符号>>进行重定向。

(5)查看文件list的内容,注意其中两行list文件的信息中文件大小的区别。

【Linux】Shell与文本处理实训_第31张图片

(6)使用echo命令,在屏幕上显示内容为“happy”的字符串:

(7)使用echo命令,将“happy”的字符串写人network文件中。

(8)将1s/etc/xl命令执行错误重定向到home目录下的cw文件中。

(9)使用cat命令将list文件和network文件合并成一个文件list_network

【Linux】Shell与文本处理实训_第32张图片

(10)使用tr命令将network文件中的h字母转化成大写的H字母。

(11)使用tr命令將network文件中的h字母转化成大写的H字母,并写人networkl文件中去。

(12)练习使用"cat>network2<< !".

【Linux】Shell与文本处理实训_第33张图片

(13)利用管道和grep命令,在上面建立的文件list中查找字符中list.

(14)利用管道和wc命令,计算文件list中的行数、单词数和字符数。

(15)将/et/passwd 文件内容重定向到/home目录下的pd文件中。

【Linux】Shell与文本处理实训_第34张图片

实训3: grep及正则表达式

(1)将/etc/passwd 中有出现root 的行取出来,并以高亮显示。

(2)将/ete/ passwd中有出现root的行取出来,同时显示这些行在etc/ passwd的行号。

(3)将/etc/ passwd中没有出现root的行取出来。

【Linux】Shell与文本处理实训_第35张图片

(4)将/etc/passwd 中没有出现root和nologin的行取出来。

【Linux】Shell与文本处理实训_第36张图片

(5)将/etc/passwd 中出现“root" 或"mail"的行。

实训4:正则表达式

(1)匹配行首。

①查看以字符“a”开头的行。

【Linux】Shell与文本处理实训_第37张图片

②查看以字符串“abc"开头的行。

(2) $匹配行尾。

注:这个题目应该给错了,应该是匹配行尾而非开头

①查看以字符串“33”结尾的行。

②查看以字符“3”结尾的行。

(3) []:匹配[]内的字符或者关系。

①查看包含字符“1” 或者包含字符“2”包含字符“3”的行。

【Linux】Shell与文本处理实训_第38张图片

②查看包含字符test或taste的行。

(4).:匹配任意的单字符。

①查找任意字符开头,然后第二个字符为3。

②查找任意两个字符开头,然后第三个字符为3。

(5)*:紧跟一个单字符,表示匹配0个或者多个此字符。

①匹配字符“3”0次或者多次。

【Linux】Shell与文本处理实训_第39张图片

②匹配字符串“23",但是3被匹配的次数≥0。

(6) \ :用来屏蔽元字符的特殊含义。

①在字符串“365.398”中,查找“.”这个字符,而不是任意单字符。

(7)搜索到有oo的行,但不想要oo前面有g.

(8)搜寻包含特定字符串“the" 的行。

(9)反向搜寻特定字符串"the"(即不包含“the")。

(10)取得任意大小写"the"的这个字符串。

(11)搜索有oo的字符时,则可以使用。

【Linux】Shell与文本处理实训_第40张图片

(12)搜索oo时不想搜到oo前面有g的话,可以利用反向选择[^]来达成,

(13)搜索oo前面不想有小写字符。

(14)显示行首为"the"的字符串。

(15)显示行首是小写字符。

【Linux】Shell与文本处理实训_第41张图片

(16)显示行尾为点的那行

【Linux】Shell与文本处理实训_第42张图片

(17)显示5~9行数据。

【Linux】Shell与文本处理实训_第43张图片

(18)显示空白行。

(19)找出g?? d字符串,起头g结束d的四个字符串。

(20)o*代表空字符(就是有没有字符都可以)或者一个到N个o字符,所以grep-n ‘o*’regular _ express. txt就会把所有行全部打印出来,

【Linux】Shell与文本处理实训_第44张图片

(21) oo*代表o+空字符或者一个到N个o字符,所以grep 一n 'oo*'regular _express. txt就会把o, 00,000 等的行全部打印出来。

【Linux】Shell与文本处理实训_第45张图片

(22)“goo*g"代表gog, goog. gooog等。

(23)找出含g...g字符串的行。

(24)找出含有数字的行。

【Linux】Shell与文本处理实训_第46张图片

(25)找出含两个o的字符串。

【Linux】Shell与文本处理实训_第47张图片

(26)找出g后含2~5个o然后以g结尾的字符串。

(27)找出g后含2以上的o然后以g结尾的字符串。

你可能感兴趣的:(Linux系统管理,linux)