RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道.docx

上传人:b****8 文档编号:29979068 上传时间:2023-08-04 格式:DOCX 页数:23 大小:1.07MB
下载 相关 举报
RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道.docx_第1页
第1页 / 共23页
RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道.docx_第2页
第2页 / 共23页
RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道.docx_第3页
第3页 / 共23页
RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道.docx_第4页
第4页 / 共23页
RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道.docx

《RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道.docx》由会员分享,可在线阅读,更多相关《RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道.docx(23页珍藏版)》请在冰豆网上搜索。

RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道.docx

RHCE课程RH033Linux基础笔记五之常用文本处理命令输入输出重定向管道

RHCE课程-RH033Linux基础笔记五之常用文本处理命令、输入输出重定向、管道

RHCE课程-初级部分5、常用文本处理命令,输入输出重定向,管道

今天主要以命令为主,虽然普通的命令没技术含量,但是有技术含量的都是以普通的命令为基础

Cat文件名

cat是concatenate的缩写,所以它的作用其实是连接文件。

但默认情况下它会将连接文件的结果送到标准输出。

所以我们常用来显示文件内容。

类似于dos中的type。

比如我要看install.log的内容就可以使用catinstall.log

这个文件是系统安装的时候,安装了哪些软件,都记录在这里面的,你们发现没有,我们使用cat的时候,只能看见最后,开始的部分看不见。

所以我们要使用more

More文件名

当一个文件的内容超过一屏后,我们可以用more这个指令来逐屏察看文件内容。

使用方法,more文件名,然后使用空格键,他会一页一页的往下翻,使用回车键,他会一行一行的往下翻.按b可以往上翻页.如果会vim的会员可以使用v,他会在当前一页进入vi编辑模式。

Less文件名

less在more的基础上,更可以逐行察看,前后翻页。

他相对与more来说,他的优势是可以一行一行的看。

而more是一页一页的查看,个人感觉两个命令功能差不多。

还有less这个命令都可以输入/关键字进行搜索

下面我们学习最常用的文件处理命令

拷贝,移动,重新命名,和删除

你们现在自己的家目录中建立redhat文件,然后再在自己的家目录中建立51cto目录,使用cp命令把redhat拷贝到51cto里面

cp

cp是copy的缩写,可以用来将一个文件复制为另一个文件。

所以cp的格式应该是cp[源文件][目标文件]。

cp相当于dos中的copy。

(-R递归)

可以使用相对路径和绝对路径,这在以前的课程我们已经讲过了

现在我们要把redhat文件备份,到当前目录,备份名字redhat.bk

下面大家把51cto备份成51cto.bk,记住要使用-r或者-R命令,在linux里面,严格区分大小写,这个命令对这两个参数都支持

递归的拷贝是什么意思?

递归就是如果那个目录里面还有目录,都会一层一层的全部拷贝

记住-r 参数很重要

再提示一点,cp的时候可以使用 cp* 目标地址,用*表示本目录的所有文件

mv

mv是move的缩写,可以用来将一个文件移动到另一个位置。

同时,移动的过程中可以改变文件的名字,当目标文件名与源文件名不一致时,mv就起到了rename的作用。

mv相当于dos中的move和rename。

大家可以44这个命令把redhat移动到/home里,然后把51cto也移动过去。

rm

rm是remove的缩写,可以用来删除一个文件。

rm相当于dos中的delete。

如果你是删除目录的话,也要使用-r,递归删除

还可以使用-i交互式删除,也就是系统要提示你是否删除

怎么删除目录没加-i参数,光-r参数也提示啊?

我不是说了吗?

如果是目录,需要递归删除。

大家发现了吗?

不使用-i他也会提示问你是否删除,这是我们上周的课程讲过,alias别名,大家使用alias命令查看别名。

能不能让他不提示呢?

可以啊,有两种方法

1、你删除这条别名

2、使用-f参数,强制删除

使用-f一定要注意,这个是强制删除的意思

我上周讲过管道和重导向

现在大家使用cat和重导向把/etc/passwd 复制到用户主目录

这个命令可以代替cp使用,而且通常使用这个命令比较多,要求大家掌握

大家知道这个命令原理吧?

先使用cat显示这个文件,然后使用重定向符号把显示的内容定向到passwd里面

关于<,> ,<<,>>使用,参考上周课程

wc

wc用来统计一个文件的行数(-l)、词数(-w)、字符数(-c)并送到标准输出。

做统计的时候很方便

grep

grep用来从一个文件中找出匹配指定关键字的那一行,并送到标准输出,结合管道,我们通常用它来过滤搜索结果.

例如:

 

ls -a|grepbash

.bash_history

.bash_logout

.bash_profile

.bashrc 

通常可以使用这种方法,查找PASSWD文件里和ROOT有关系的行。

grep支持用扩展的正则表达式来进一步定义关键字,具体如下:

.             替代任何一个单一字符

.*            替代零个或任意个字符

[abc]       替代a、b或c

[^abc]     替代除了a、b、c以外的字符

a*            替代空、a、aa、aaa、乃至更多个a

a?

          替代一个或零个单独的a

a+           替代a、aa、aaa乃至更多个a

a\{n\}      替代重复了n次的a

^a           替代以a为首的行

a$           替代以a为尾的行

head

显示文件开头部分内容,默认显示十行参数--lines或者–n指明显示行数

tail

tail显示文件结尾部分内容,参数-f显示文件的即时更新,用于监视日志文件

这个命令很常用了

打开两个终端

第一个终端我们输入cat>redhat

第二个终端我们输入tail-fredhat

都是同一个redhat文件,在第一个终端输入几个字符,然后按回车

效果出来了,这就是即时监控

tail-f 命令一般用来监控日志文件

sort

sort用来按各种需要重新排列文本,一般运用在一个管道之后。

例如:

[Lonny@stationXXLonny]$ls -a|grepbash|sort

.bash_history

.bash_logout

.bash_profile

.bashrc

[Lonny@stationXXLonny]$ls -a|grepbash|sort-r

.bashrc

.bash_profile

.bash_logout

.bash_history

默认情况下sort按照字母顺序排列文本。

-n     按照数字排序

-r   反向排序

-u     将重复的行去除

 

diff- 报告文本差异内容

uniq-去除文件中重复的行

cut-显示文件中的某一列

paste-将文本按列拼接

diff

diff用于比较两个文件之间的区别,并送到标准输出。

输出时先报告两个文件的哪一行不同。

该命令告诉用户,为了使两个文件file1和file2一致,需要修改它们的哪些行。

#diff file1file2

字母(a、d和c)之前的行号(n1,n2)是针对file1的,其后面的行号(n3,n4)是针对file2的。

字母a、d和c分别表示附加、删除和修改操作。

 

uniq

uniq用于去除文本中重复的行。

-u参数可以只显示那些没有被重复过的行。

-d显示有被重复过的行。

cut

cut可以根据一个指定的标记(默认是tab)来为文本划分列,然后将此列显示,例如:

[root@stationXXroot]$cut–f1–d:

/etc/passwd

-d表示以什么分隔符,-f显示第几列

把PASSWD的第一列显示出来,导入到file文件里,自己操作一下,然后看下这个文件内容

这个命令在以后的服务器架设中很有用处的,一定要记住,-d后面跟的是分割符号 -f后面是第几行然后重定向

vim/etc/passwd

我们查看passwd文件,看他的规律,都是用:

分分隔的,所以-d后面是:

然后用户是第一列,所以我们用-f1,passwd最后一个标签是该用户默认使用的shell.

那么我要把最后一列复制出来,放到file2中。

怎么做?

cut-f7-d:

/etc/passwd >file2

paste

paste将几份文集那按照列的方式拼接。

默认情况下,新文件的列分隔符是tab,也可以用-d参数指定分隔符

流编辑器sed(StreamEditor)

sed是一种在线编辑器,它一次处理一行内容。

处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(patternspace),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。

接着处理下一行,这样不断重复,直到文件末尾。

文件内容并没有改变,除非你使用重定向存储输出。

Sed主要用来自动编辑一个或多个文件;sed–n

-n关闭默认的输出而只输出那些带有p标志的行

我们今天初步学习下,这个主要是编程使用的。

我们介绍他的几个简单用法就行了。

如果你要学编程可以自己下来深入研究

建立这样一个文件

例:

查找/tmp/redhat文件中包括文本hello的所有行。

sed–n‘/hello/p’/tmp/redhat

例:

查找/tmp/redhat文件中不包括hello的所有行

sed‘/hello/d’/tmp/redhat

d:

从结果中删除匹配行

s:

全部行

g:

替换这一行的所有匹配的字符

例:

查找/tmp/redhat文件中"str1"的所有行,并将查找到的行的"str2"替换为"str3"

sed‘/str1/s/str2/str3/g’/tmp/redhat

这些都是高级文本处理的时候用,如果你记不住也没关系,至少你要知道有这个工具,急到用的时候可以在查资料和参数

sed也可以将规则写成一个sed文件,使用'–f'来指定使用的脚本文件。

最后一个参数也要结合上周我们学习的重定向 

先写规则文件:

查找带h的行,把hello改成redking 

查找带w的行,把world改成michael

 

效果如下:

mkdir-创立新目录

rmdir-删除空目录

输入、输出、重定向

输入:

过滤器的数据来源

标准输入stdin(0):

默认是键盘

输出:

过滤器的数据去向

标准输出stdout

(1):

默认是终端屏幕

错误输出:

报错讯息与标准输出走不同的I/O通道

标准错误输出stderr

(2):

默认是终端屏幕

重定向:

标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向

使用“<”来重定向输入源

大多数工具都会以其后的文件名为输入源

有一些过滤器一定需要添加>以明确输入源

使用>>让系统将一次键盘的全部输入,先送入虚拟的‘当前文档’,然后一次性输入

需要一对字母、符号或字符串作为起始终结标识符

可以选择任意符号作为起始终结标识符

使用>改变数据输出目标

范例:

ls–l >listfile

将当前目录下的文件以长模式显示,然后写入listfile文件

使用>进行输出重定向,文件的原内容会被覆盖

使用>>可以将输出追加入文件 

ll/ >>listfile

错误重定向

系统错误与标准输出使用的I/O管道不同

默认情况下,系统报错会显示到终端屏幕上

使用2>将报错讯息重定向入一个文件

ls/luoli2>/dev/null

使用2>>将报错讯息追加入一个文件

ls/luolipasswd2>>results

使用|将前一个过滤器的输出直接送入后一个过滤器的输入

ls–l|greppass

允许多重管道

注意管道前过滤器的输出与管道后过滤器的输入数据类型要匹配

ls–l|more

分屏显示当前目录下的文件

  

cat file1>file2

拷贝file1到file2

catfile*>file

将数个小文件合并成一个文件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1