学习鸟哥的Linux私房菜笔记(6)——过滤器、输入输出及管道

el/2024/7/13 12:26:10

一、过滤器

Linux中的应用工具分为三种:
交互工具
过滤器
编辑器
能够接受数据,过滤再输出的工具,称之为过滤器

对过滤器和进程,存在着输入源与输出对象

二、输入、输出、重定向

输入:过滤器的数据来源

——标准输入stdin(0):默认是键盘

输出:过滤器的数据去向

——标准输出stdout(1):默认是终端屏幕

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

——标准错误输出stderr(2):默认是终端屏幕

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

三、输入重定向

使用" "来重定向输入源

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

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

cmmond  <  file (将原本需要键盘输入的通过文件读取)

上面,将.pash_profile中的所有大写字符改成小写字符

四、从当前文档输入

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

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

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

五、输出重定向

使用 > 改变数据输出目标

例如:ls -l  > listfile

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

文件已有内容会被全部消除

六、覆盖与追加

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

ls -l > listfile

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

ls -l >> listfile

七、错误输出重定向

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

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

使用 2 >将错误讯息重定向到一个文件

find / -type s 2 > /dev/null

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

find / -name passwd 2>> results

八、双重输出重定向

使用 > 2>可以将一次操作的正确、错误输入,被单独地送到不同的地方:

find / -perm -2 2> error > results

使用&>将所有输入都送向同一个地方:

find / -perm +6000 > file

另一种方式

九、管道

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

ls -l | grep pass

允许多重管道

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

十、重定向、管道的常用范例

ls -l | more

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

cat < filea > fileb

拷贝filea到fileb

cat file.* > file

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



http://www.ngui.cc/el/5557315.html

相关文章

学习鸟哥的Linux私房菜笔记(13)——用户管理

一、检查用户身份 用户可以使用下列指令了解用户身份 who &#xff1a;查询当前在线的用户 groups &#xff1a;查询用户所属组 id &#xff1a;显示当前用户信息 finger &#xff1a;查询用户信息 二、添加用户 用指令添加命令 useradd <username> passwd <passwd&g…

mysql 查询出某字段的值为空的语句

1.不为空 select * from table where id <> ""; select * from table where id ! ""; 2.为空 select * from table where id ""; select * from table where isNull(id); 具体情况具体分析&#xff0c;如果字段是char或者varchar类型的&am…

Junit配置

1.点击Build Path ---》configure 2.选择Add Library &#xff0c;点击next 3.选择Junit4&#xff0c;点击Finish

Git常用命令解说(从创建到提交)

Git库中由三部分组成 Git 仓库就是那个.git 目录&#xff0c;其中存放的是我们所提交的文档索引内容&#xff0c;Git 可基于文档索引内容对其所管理的文档进行内容追踪&#xff0c;从而实现文档的版本控制。.git目录位于工作目录内。 1&#xff09;工作目录&#xff1…

git 创建 .gitignore 文件 建立项目过滤规则

创建 .gitignore 随意设置想跟踪哪些文件和不跟踪哪些文件. 1.在项目根目录下建立 .gitignore 文件 2. .gitignore文件过滤有两种模式&#xff0c;开放模式和保守模式 2.1开放模式负责设置过滤哪些文件和文件夹 eg&#xff1a; 过滤文件夹设置&#xff1a; /mtk/ 过滤文件设…

使用eclipse 添加user library

在Eclipse中有两种常用的添加引用的jar包的方法&#xff0c;一个就是添加Referenced Library&#xff0c;这种方式很简单&#xff0c;出选中项目右键->import之外&#xff0c;还可以直接向WebRoot->WEB-INF->lib中复制粘贴jar包文件&#xff0c;缺点是下次添加同样的j…

java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Tim

分析&#xff1a;loginTime的时间有误。改成如图所示的时间格式&#xff0c;而不能为 0000-00-00 00:00:00

hibernate 泛型 DAO

Data Access Object (DAO) 是一般的J2EE项目中的一个常见的模块&#xff0c;在我们用一般的方法去实现DAO的过程中会发现在为每个pojo实现DAO的的时候会不断地区重复的写一些常用的方法&#xff0c;如update(),delete(),find()等。 为了解决以上所述的缺点&#xff…

java判断list不为null,又要判断size>0

List listnew ArrayList();这样的list不为null&#xff0c;但是size0,这样的集合对于之后的判断是没用的&#xff0c;甚至是报异常&#xff0c;如list.get(0.....n)这样的取值判断&#xff0c;就会报异常。 所以判断时候往往要双重判断。即list!null && list.size()>…

[com.sun.istack.SAXException2: 在对象图中检测到循环。这将产生无限深的 XML:

-----解决方案-------------------- 序列化对象时检测到循环引用 -------------------- 提示已经非常详细了&#xff0c;就是说你的对象之间有互相引用到&#xff0c;比如A&#xff0c;B类&#xff0c; A中有个成员是B的实例&#xff0c;B中有个成员是A的实例。 自己去看自己的…