RHCE课程-RH033Linux基础笔记五之常用文本处理命令、输入输出重定向、管道
cat是concatenate的缩写,所以它的作用其实是连接文件。但默认情况下它会将连接文件的结果送到标准输出。所以我们常用来显示文件内容。类似于dos中的type。
当一个文件的内容超过一屏后,我们可以用more这个指令来逐屏察看文件内容。
less在more的基础上,更可以逐行察看,前后翻页。
拷贝, 移动,重新命名,和删除
cp是copy的缩写,可以用来将一个文件复制为另一个文件。所以cp的格式应该是cp[源文件][目标文件]。cp相当于dos中的copy。(-R递归)
递归就是如果那个目录里面还有目录,都会一层一层的全部拷贝
mv是move的缩写,可以用来将一个文件移动到另一个位置。同时,移动的过程中可以改变文件的名字,当目标文件名与源文件名不一致时,mv就起到了rename的作用。mv相当于dos中的move和rename。
rm是remove的缩写,可以用来删除一个文件。rm相当于dos中的delete。如果你是删除目录的话,也要使用 -r, 递归删除
可以啊,有两种方法
1、你删除这条别名
2、使用 -f 参数,强制删除
使用 -f 一定要注意,这个是强制删除的意思
wc用来统计一个文件的行数(-l)、词数(-w)、字符数(-c)并送到标准输出。
grep用来从一个文件中找出匹配指定关键字的那一行,并送到标准输出,结合管道,我们通常用它来过滤搜索结果.
例如:
ls -a | grep bash
.bash_history
.bash_logout
.bash_profile
.bashrc
. 替代任何一个单一字符
.* 替代零个或任意个字符
[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为尾的行
显示文件开头部分内容,默认显示十行参数 --lines或者 –n 指明显示行数
tail显示文件结尾部分内容,参数 -f 显示文件的即时更新,用于监视日志文件
这个命令很常用了
打开两个终端
sort用来按各种需要重新排列文本,一般运用在一个管道之后。例如:
[Lonny@stationXX Lonny] $ ls -a | grep bash | sort
.bash_history
.bash_logout
.bash_profile
.bashrc
[Lonny@stationXX Lonny] $ ls -a | grep bash | sort -r
.bashrc
.bash_profile
.bash_logout
.bash_history
默认情况下sort按照字母顺序排列文本。
-n 按照数字排序
-r 反向排序
-u 将重复的行去除
diff - 报告文本差异内容
uniq - 去除文件中重复的行
cut -显示文件中的某一列
paste - 将文本按列拼接
diff
diff用于比较两个文件之间的区别,并送到标准输出。输出时先报告两个文件的哪一行不同。
该命令告诉用户,为了使两个文件 file1 和 file2 一致,需要修改它们的哪些行。
#diff file1 file2
字母(a、d和c)之前的行号(n1,n2)是针对file1 的,其后面的行号(n3,n4)是针对 file2 的。字母 a、d 和 c 分别表示附加、删除和修改操作。
uniq
uniq用于去除文本中重复的行。-u参数可以只显示那些没有被重复过的行。-d显示有被重复过的行。
cut
cut可以根据一个指定的标记(默认是tab)来为文本划分列,然后将此列显示,例如:
[root@stationXX root] $ cut –f 1 –d : /etc/passwd
-d表示以什么分隔符,-f显示第几列
paste将几份文集那按照列的方式拼接。默认情况下,新文件的列分隔符是tab,也可以用-d参数指定分隔符
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;sed –n
-n 关闭默认的输出而只输出那些带有p标志的行
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
最后一个参数 也要结合上周我们学习的重定向
先写规则文件:
查找带h的行,把hello改成redking
查找带w的行,把world改成michael
效果如下:
rmdir- 删除空目录
输入:过滤器的数据来源
标准输入stdin(0):默认是键盘
输出:过滤器的数据去向
标准输出stdout (1):默认是终端屏幕
错误输出 :报错讯息与标准输出走不同的I/O通道
标准错误输出stderr(2):默认是终端屏幕
重定向:标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向
大多数工具都会以其后的文件名为输入源
有一些过滤器一定需要添加 >以明确输入源
需要一对字母、符号或字符串作为起始终结标识符
可以选择任意符号作为起始终结标识符
范例:
ls –l > listfile
将当前目录下的文件以长模式显示,然后写入listfile文件
使用>>可以将输出追加入文件
ll / >> listfile
默认情况下,系统报错会显示到终端屏幕上
使用2>将报错讯息重定向入一个文件
ls /luoli 2> /dev/null
使用2>>将报错讯息追加入一个文件
ls /luoli passwd 2>> results
ls –l | grep pass
允许多重管道
注意管道前过滤器的输出与管道后过滤器的输入数据类型要匹配
分屏显示当前目录下的文件
cat file1 > file2
拷贝file1到file2
cat file* > file
将数个小文件合并成一个文件
RHCE课程-RH033Linux基础笔记五之常用文本处理命令、输入输出重定向、管道相关推荐
- RHCE课程-RH131Linux管理笔记五-Linux远程登陆telnet及ssh服务
telnet相信大家都不陌生,在RHCE课程-RH131Linux管理笔记三-linux系统服务介绍及管理里面我们已经配置过了,我也不多做介绍,直接说安装吧. 使用yum安装的前提是你已经配置好YUM ...
- linux100day(day3)--常用文本处理命令和vim文本编辑器
今天,来介绍几个常用文本处理命令和vim文本编辑器 day3--常用文本处理命令和vim文本编辑器 col,用于过滤控制字符,-b过滤掉所有控制字符,这个命令并不常用,但可以使用man 命令名| co ...
- Linux下常用文本处理命令
Linux下面有很多经典的非常有用的命令,其中处理文本的命令就有很多.这些小工具经过了几十年时间的洗礼,现在已经变成了经典,已经变成了Linux下面的标准,其实它们一直是遵循着Linux的标准.下面就 ...
- Coolite Toolkit学习笔记五:常用控件Menu和MenuPanel
Coolite Toolkit里的Menu控件和其他的.NET Web控件不一样,如果只是设计好了Menu或是通过程序初始化菜单项,菜单是不会呈现在界面上的,因为Coolite Toolkit规定Me ...
- RHCE课程-RH131Linux管理笔记八-安装和管理XEN虚拟机
安装需要用到NFS,所以今天我们会简单说说NFS的. 虚拟化大家应该都知道吧,现在炒的比较热门的东西,linux的虚拟化软件只有这三种:virtualbox 开源免费的:xen 开源免费的:VMwar ...
- 计算机基础笔记(五)—数据库
前言 不必害怕未知,无需恐惧犯错,做一个Creator! 目录 前言 文件结构 顺序文件 索引文件 散列文件 目录 数据库 数据库体系结构 数据库模型 数据库的设计 其他数据库 文件结构 文件是数据记 ...
- JAVA学习笔记(五十七)- 常用设计模式
单例模式 /** 单例模式* 应用场合:有些对象只需要一个,此时可以使用单例模式* 作用:保证整个应用中某个实例有且只有一个* 类型:饿汉模式.懒汉模式*/ public class Test04 { ...
- Word基础(五)给文本添加无序列表
在Word中,如何给文本添加无序列表呢? 方法: 选中文本 点击开始选项卡,段落分类中的左上角找到项目符号并点击其下拉三角 选择想要的符号即可 在Word中,如何给文本添加多级列表呢? 方法:以添加二 ...
- c++清空一个txt文本_Linux下常用文本处理命令大全
Linux中很多文本工具都使用到了正则表达式,正则表达式可以极大的简化linux系统管理工作,因为网上有很多正则相关的教程,所以这里不再讲述,我当时看的是菜鸟的正则表达式,看个一下午在实验几遍基本就会 ...
最新文章
- bottle嵌入html,css,js
- Android工程师面试该怎么准备?年薪50W
- 静态方法和实例化方法的区别 -转载
- 误删除了_msdcs.domain.com
- win7台式电脑怎么连wifi_修改WiFi密码后电脑连不上网如何解决 修改WiFi密码后电脑连不上网解决方法【详解】...
- ubuntu 18.04 conda 环境中编译 pytorch
- 国家中长期教育改革和发展规划纲要(2010-2020年)
- 《电路分析导论(原书第12版)》一3.14 压控电阻
- SDN(软件定义网络)详解
- 换热站实际应用程序:西门子200smart PLC与威纶通触摸屏换热站程序、西门子1200plc与昆仑通态触摸屏换热站程序
- ClientToScreen ()与 ScreenToClient()
- oracle 数据库日志归档,ORACLE 数据库日志归档的清理
- MiiX私享会 · 第六期: BCH姜家志100分钟深聊BCH硬分叉与算力战!
- (萌新的数电学习)用 VHDL语言设计一个异或门
- qt linux不能读写u盘文件,Qt读取U盘文件内容
- 位图矢量化:Potrace的应用
- php 连接数据库有很多notice,PHP Notice: undefined index 完美解决方法
- ps作图缩小有锯齿的解决方法
- 已知ip地址求子网掩码
- 非全日制毕业的研究生现在怎么样了?
热门文章
- SecondaryNameNode的Inconsistent checkpoint fields异常
- (译)MySQL的10个基本性能技巧
- Mobx入门之四:自定义reactions,when, autorun
- MySQL---主从复制
- js关于子元素不触发父元素事件的若干方法
- 【转】windows上安装gvim
- 如何在C++中集成LUA脚本(LuaWrapper For C++篇)
- AI考拉技术分享会--IDE 常用功能 for Node.js
- [译] 用 Redis 和 Python 构建一个共享单车的 app
- 百度竞价初学者怎样才能建立一个好的思路