1重定向
1.1 重定向符号
> 输出重定向到一个文件或设备 覆盖原来的文件
>! 输出重定向到一个文件或设备 强制覆盖原来的文件
>> 输出重定向到一个文件或设备 追加原来的文件
< 输入重定向到一个程序
1.2标准错误重定向符号
2> 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 b-shell
2>> 将一个标准错误输出重定向到一个文件或设备 追加到原来的文件
2>&1 将一个标准错误输出重定向到标准输出 注释:1 可能就是代表 标准输出
>& 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件 c-shell
|& 将一个标准错误 管道 输送 到另一个命令作为输入
1.3命令重导向示例
在 bash 命令执行的过程中,主要有三种输出入的状况,分别是:
1. 标准输入;代码为 0 ;或称为 stdin ;使用的方式为 <
2. 标准输出:代码为 1 ;或称为 stdout;使用的方式为 1>
3. 错误输出:代码为 2 ;或称为 stderr;使用的方式为 2>
[test @test test]# ls -al > list.txt
将显示的结果输出到 list.txt 文件中,若该文件以存在则予以取代!
[test @test test]# ls -al >> list.txt
将显示的结果累加到 list.txt 文件中,该文件为累加的,旧数据保留!
[test @test test]# ls -al 1> list.txt 2> list.err
将显示的数据,正确的输出到 list.txt 错误的数据输出到 list.err
[test @test test]# ls -al 1> list.txt 2>&1
将显示的数据,不论正确或错误均输出到 list.txt 当中!错误与正确文件输出到同一个文件中,则必须以上面的方法来写!不能写成其它格式!
[test @test test]# ls -al 1> list.txt 2> /dev/null
将显示的数据,正确的输出到 list.txt 错误的数据则予以丢弃! /dev/null ,可以说成是黑洞装置。
1.4为何要使用命令输出重导向
• 当屏幕输出的信息很重要,而且我们需要将他存下来的时候;
• 背景执行中的程序,不希望他干扰屏幕正常的输出结果时;
• 一些系统的例行命令(例如写在 /etc/crontab 中的文件)的执行结果,希望他可以存下来时;
• 一些执行命令,我们已经知道他可能的错误讯息,所以想以『 2> /dev/null 』将他丢掉时;
• 错误讯息与正确讯息需要分别输出时。
2 管线命令 ( pipe )
就如同前面所说的, bash 命令执行的时候有输出的数据会出现,那么如果这群数据必需要经过几道手续之后才能得到我们所想要的格式,应该如何来设定?这就牵涉到管线命令的问题了( pipe ),管线命令使用的是『 | 』。
例子:简单的管线命令
假设我们要读取 last 这个指令中,那个 root 登入的『次数』应该怎么作?
那么我所进行的步骤是:
1. 执行 last ,将所有这个月的所有人登入数据取出来;
2. 使用 grep 将上面的输出数据(stdout)当中的 root 撷取出来,其它的不要;
3. 使用 wc 这个可以计算行数的指令将上一步的数据计算行数!
由于 last 的输出是一行代表一次登入,所以只要计算几行就代表登入几次的意思,经由上面三个步骤,将 last
数据逐步的筛选,就可以得到我们的数据了!整个命令可以写成如下: [test @test bin]# last | grep root | wc
-l
这个管线命令『 | 』仅能处理经由前面一个指令传来的正确信息,也就是standard output ( STDOUT ) 的信息,对于 stdandard error 并没有直接处理的能力。
2.1基本的管线命令指令介绍
• cut
语法:[root @test /root ]# cut -d "分隔字符" [-cf] fields
参数说明:
-d :后面接的是用来分隔的字符,预设是『空格符』
-c :后面接的是『第几个字符』
-f :后面接的是第几个区块?
范例:[root @test /root]# cat /etc/passwd | cut -d ":" -f 1
将 passwd 这个文件里面,每一行里头的 : 用来作为分隔号,而列出第一个区块!也就是姓名所在啦!
[root @test /root]# last | cut -c1-20
将 last 之后的数据,每一行的 1-20 个字符取出来!
• sort
语法:[root @test /root ]# sort [-t 分隔符] [(+起始)(-结束)] [-nru]
参数说明:
-t 分隔符:使用分隔符来隔开不同区间,预设是 tab
+start -end:由第 start 区间排序到 end 区间
-n :使用『纯数字』排序(否则就会以文字型态来排序)
-r :反向排序
-u :相同出现的一行,只列出一次!
范例:[root @test /root]# cat /etc/passwd | sort将列出来的个人账号排序!
[root @test /root]# cat /etc/passwd | sort -t: +2n将个人账号中,以使用者 ID 来排序(以 : 来分隔,第三个为 ID ,但第一个代号为 0 之故)
[root @test /root]# cat /etc/passwd | sort -t: +2nr反相排序啰!
• wc
语法:[root @test /root ]# wc [-lmw]
参数说明:
-l :多少行
-m :多少字符
-w :多少字
范例:[root @test /root]# cat /etc/passwd | wc -l这个文件里头有多少行?
[root @test /root]# cat /etc/passwd | wc -w这个文件里头有多少字!?
• uniq这个指令用来将『重复的行删除掉只显示一个』
语法:[root @test /root ]# uniq
范例:[root @test /root]# last | cut -d" " -f1 | sort | uniq
• tee命令重定向到文件的同时将数据显示在屏幕上
语法:[root @test /root ]# last | tee last.list | cut -d " " -f1
范例:[root @test /root]# last | tee last.list | cut -d " " -f1
• tr
语法:[root @test /root ]# tr [-ds] SET1
参数说明:
-d :删除 SET1 这个字符串
-s :取代掉重复的字符!
范例:[root @test /root]# last | tr '[a-z]' '[A-Z]' <==将小写改成大写
[root @test /root]# cat /etc/passwd | tr -d : <== : 这个符号在 /etc/passwd 中不见了!
[root @test /root]# cat /home/test/dostxt | tr -d '\r' > dostxt-noM
• split
语法:[root @test /root ]# split [-bl] 输入文件 输出文件前导字符
参数说明:
-b :以文件 size 来分
-l :以行数来分
范例:[root @test /root]# split -l 5 /etc/passwd test <==会产生 testaa, testab, testac... 等等的文件
说明:在 Linux 底下就简单的多了!你要将文件分割的话,那么就使用 -b size 来将一个分割的文件限制其大小,如果是行数的话,那么就使用 -l line 来分割!
管线命令在 bash 的连续的处理程序中是相当重要的!另外,在 log file 的分析当中也是相当重要的一环。
管道输送到一个命令的标准输入可以使用标准输入参数”-“ 进行更仔细的控制.如cat命令的示例
eg: sort mylist | more
sort mylist | cat –n | lpr
pwd | cat – mylist | lpr
相关推荐
Linux下的重定向管道
一、 1.思考:date 输出的结果,能否在下一次开机查看? 答案是错误的必须把结果写到文件中 二、重定向 1.标准输入,标准输出,标准错误 FD简介:文件描述,进程使用文件描述来管理打开的文件 链接文件 示例:在/proc目录中查看文本程序的FD 1.通过一个终端,打开一个文本。 2.通过另一个终端,查询文本程序的进程号 第一条:标准输入 第二条:标准输出 第三条:标准错误输出 第四条:常规文件 总结:看到的0124就是FD,程序通过描述符访问文件, 可以是常规文件,也可以是设备文件。 重定向
Linux中>>和>,>和<的区别? 以及“|”是什么意思?
Linux中>>和>,>和<的区别? 以及“|”是
Linux中>和>>的用法 嵌入式
在嵌入式Linux系统中,">“和”>>“是两个常用的重定向符号,用于将命令的输出结果保存到文件中。上述代码执行后,ls -l 命令的输出结果将会被写入到file.txt文件中。其中,">“和”>>"是两个常用的重定向符号,它们用于将命令的输出结果保存到文件中。上述代码执行后,log.txt文件中的内容将会被追加到all_logs.txt文件的末尾。通过这种方式,我们可以将多个日志文件内容合并到一个文件中,便于整理和管理。通过这种方式,我们可以将内核日志保存到文件中,方便后续查看和分析。
linux中 > 、>> 的用法
> 代表追加并覆盖文件 >> 追加重定向文件 比如这样
5、Ubuntu20常用操作_进程管理&重定向和管道&常用命令&网络管理&构建web静态服务器nginx
人在操作电脑时,其实是和 运行着的程序(术语称之为:进程) 在打交道(术语称之为:交互)。进程 是 看不见 摸不着的,它们是 在 电脑CPU中执行的代码指令。所以,我们 和 进程 交互的时候,必须有个设备,我们才能通过它 输入信息给进程,并且显示进程输出信息。在上世纪六七十年代,计算机网络还没有出现, 计算机都是大型机器,非常的昂贵。通常只有大公司和研究机构才有。那时人们通过终端设备和计算机上的程序进行交互,见下图。注意,终端设备 只有 显示器 和键盘 , 是没有 主机部分的。
Linux命令中 > 和 >> 的区别
Linux命令中 > 和 >> 的区别: 1、> 是清空并添加新内容,即重定向。 2、>> 是在文件内容后面追加新内容,即追加重定向。
linux之管道重定向
重定向,管道,参数传递xargs
【Linux】Linux的管道与重定向
在Linux系统中,管道和重定向是使命令行操作更为灵活和高效的关键工具。通过管道,我们可以将一个命令的输出作为另一个命令的输入,实现命令之间的连接和协作。而重定向则允许我们将命令的输入和输出从默认位置进行定向,使得我们能够轻松地将结果保存到文件中或者从文件中读取输入。本文将详细探讨这两个重要概念,并演示它们在日常Linux命令行操作中的应用。管道和重定向是Linux命令行中的两个强大而灵活的工具,它们为用户提供了处理和操作命令输入输出的便利方式。
4.linux重定向和管道
文件描述符(file descriptor)就是内核为了高效管理这些已经被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I0操作的系统调用都通过文件描述符来实现。同时还规定系统刚刚启动的时候,0是标准输入,1是标准输出,2是标准错误。Linux内核对所有打开的文件有一个文件描述符表格,里面存储了每个文件描述符作为索引与一个打开文件相对应的关系,简单理解就是下图这样一个数组,文件描述符(索引)就是文件描述符表这个数组的下标,数组的内容就是指向一个个打开的文件的指针。
Linux管道和重定向
掌握Linux重定向与管道相关知识
Linux的管道和重定向
我们有时候会将一个命令的输出当作另一个命令的输入或者将文件中的内容当作命令的输入,这时候就会用到重定向和管道。file descriptors,FD,文件描述符,进程使用文件描述符来管理打开的文件。FD是访问文件的标识,即链接文件。省去了冗长的绝对路径;0 是键盘只读1,2 是终端可以理解是屏幕3+ 是文件,可读可写输出重定向分为正确输出和错误输出。
Linux重定向和管道
本文主要介绍了Linux中的重定向工具和管道工具。在重定向的内容中,介绍了输出重定向和输入重定向,其中在介绍的重定向的同时还一并介绍了文件描述符FD。在管道工具中,主要介绍了三种管道工具,分别是进程管道、三通管道(tee)、参数管道(Xargs)
Linux系统重定向管道
Linux系统重定向管道一、重定向1.标准输入、标准输出、标准错误1.1FD简介1.2图示2.重定向案例二、管道 一、重定向 1.标准输入、标准输出、标准错误 1.1FD简介 file descriptors ,文件描述符,进程使用文件描述符来管理打开的文件,是链接文件。 1.2图示 2.重定向案例 二、管道 ...
linux之管道与重定向
输入与输出重定向: 在linux操作系统中,输入和输出是两个相对的操作,用户将数据输入到系统的寄存器中,cpu调用处理,处理后的数据同样放入寄存器中,当然系统有很多的寄存器,输入输出的内容在不同的寄存器中,而后在屏幕上显示出来。 输入重定向: cat > file <<EOF 文件中的内容 … EOF 输出重定向: “> + 文件名” ##正确的输出重定向...
Linux命令中的管道和重定向
Linux命令中的管道和重定向 在Linux中有很多标准的命令例如find、sort、du等,可以满足我们完成文档管理、系统管理等诸多需求,但是大多时候一些复杂的需求都需要多个命令搭配起来使用,对于Linux来说一个命令对应于一个进程,因此多个命令协同工作,就涉及到多个进程的通信,Linux提供一种管道的方式来完成进程间通信。 Linux很多命令都需要输入、输出以及错误信息,默认的输入输出以及...
【Linux】 - Linux中的重定向和管道符
如果把这些文件 流中的前三个分别对应标准输入文件、标准输出文件和标准错误文件, 那么shell将在内部用文件描述符分别索引它们为0、1和2。执行两个重定向操作,首先重定向标准输出到ls- output.txt文件中,然后使用标记符2>&1把文件描述符2(标准错误)重 定向到文件描述符1(标准输出)中。那么,就会把ls在屏幕上输出的内容写到/home/test/output.txt(如果文件不存在会自动创建,但目录必须存在)文件中,屏幕上不会存在输出。这条命令表示:搜索出/bin目录下包含zip的所有文件。.
Linux输入,输出的重定向以及管道
系列文章目录 第一章 :red hat linux系统下载安装 第二章:Linux用户和组 第三章:Linux文件管理 第四章:Linux目录管理 第五章:Linux文本编辑器 第六章:Linux文件查找与管理 第七章:Linux输入,输出的重定向以及管道 文章目录系列文章目录前言一、标准输入和标准输出二、重定向1.输出重定向2.输入重定向总结 前言 这一次博客内容主要讲解Linux的输入、输出和重定向以及管道的操作,照例是以实验为主,操作开始前记得抓一张快照。 一、标准输入和标准输出 这个不重要
【Linux】管道和重定向
管道符我们之前用过,ls -l | more,如果显示内容过多,使用more分页。| 将 ls -l 的执行结果传递给 more,把这个结果当作后边这个命令的输入来对待 单独运行more的时候,相当于是把文件当作more命令的输入 通过管道符可以组合多种命令,所以我们可以使用cat 文件名 | more来实现和刚才一样的效果 cat | ps -f cat把文本内容作为输入和终端建立连接,这样文本内容就可以显示在终端了。ps 是查看进程状态 ...
Linux 重定向和管道符
连接左右两个命令,将左侧命令的标准输出作为右侧命令的输入,不传递标准错误。
411




被折叠的 条评论
为什么被折叠?



