重定向、管道——Linux基本命令(6)

1.输出重定向

Linux默认输入是键盘,输出是显示器。可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,可以直接把一个已经写好的文件用‘<’指向这条命令,就直接可以统计这个文件的字符数等了。

STDOUT(标准输出)和STDERR(标准错误)可以被重定向到文件

命令操作符号文件名

支持的操作符号包括:

把STDOUT重定向到文件

如图,etc下有passwd文件,app下没有passwd文件,将他们两个重定向导出到文件ls.txt中,回车之后只剩下错误的那条。然后我们查看ls.txt文件,发现正确的标准输出在里面

2>把STDERR重定向到文件

同样,使用2>则将正确的显示出来,将错误输出到ls.txt文件了。

 

&> 把所有输出重定向到文件(或者> 2>&1也可以)

如图,两种方法将正确错误都输入进文件了

值得注意的是,使用>会默认将文件内容覆盖。

使用set -C禁止将内容覆盖已有文件,但可追加

>>  在原有内容的基础上,追加内容

>|file强制覆盖

set +C允许覆盖

也可以一次分别将输出和错误各自定向至不同位置

如图,分别定向到right.txt和error.txt文件中。


2.tr转换和删除

tr [OPTION]... SET1 [SET2]

(先输入条件,之后回车可以输入要想转换的内容,输入一行输出一行,直到Ctrl+C退出)

也可以使用重定向功能,不需要输入,直接输入一个文件,就可以被替换了

如图,不需要将.bashrc的内容重新打一遍,就可以输出了.bashrc内容。(这种操作不会改变.bashrc的内容。)

  -c –C--complement 取字符集的补集(就是不删除什么)

如图,将除了c以外的字符都换成a


-d  --delete 删除所有属于第一字符集的字符

如图,将文件中所有的abc都删除了

-s  --squeeze-repeats 把连续重复的字符删除成一个字符

如图,将重复的abc变成一个,其余重复的字母不动。

-t  --truncate-set1 将第一个字符集对应字符转化为第二字符集(没对应上的就不替换了)

对应的字符

[:alnum:]:字母和数字

[:alpha:]:字母

[:cntrl:]:控制(非打印)字符

[:digit:]:数字

[:graph:]:图形字符

[:lower:]:小写字母

[:print:]:可打印字符

[:punct:]:标点符号

[:space:]:空白字符

[:upper:]:大写字母

[:xdigit:]:十六进制字符


3.从文件中导入STDIN

同样的,我们可以使用<来重定向标准输入STDIN

某些命令能够接受从文件中导入的STDIN

tr ‘a-z’ ‘A-Z’< /etc/issue  该命令会把/etc/issue中的小写字符都转换成大写字符

tr –d abc < /etc/fstab  该命令可以删除fstab文件中的所有abc中任意字符(这两个功能上面已经使用过了)

cat> file 可以写入内容到文件中

按ctrl+d或者 ctrl+c离开,可以使用文件来代替键盘的输入

<<终止词

可以随意编辑,直到某一行只有那个终止词,将退出编辑,将上面的内容都发送给文件。

如图,直到最后一行为!时,自动退出。

Cat > filea <  fileb

如图,将text.txt中的内容写入到file.txt中

同样,我们也可以通过这种方式导入文件到邮件里并发送。

(发送邮件的代码为 mail -s “邮件名” 想要发送给的用户,然后输入内容后使用Ctrl+d退出)

现在我们将text.txt这个文件写入邮件并发送:

如图,登陆magedu用户,输入mail查看邮件,发现收到了这封内容是text.txt的信。(看完之后输入quit退出)


4.管道

管道(使用符号“|”表示)用来连接命令

如图,将1+2传给计算器,得出结果

命令1 | 命令2 | 命令3 | …  将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN。

如图,将|与tr结合使用,将所有重复的空格变成一个空格。

然后继续使用|和grep命令(这个命令以后会讲到)查询/boot那行

| 只能将正确结果重定向给下一条命令

使用 2>&1 | 或 |&  可以将全部结果重定向


5.重定向到多个目标tee

  命令1 | tee [-a ] 文件名 | 命令2

把命令1的STDOUT保存在文件中,做为命令2的输入

-a 追加

使用:

保存不同阶段的输出

复杂管道的故障排除

同时查看和记录输出

时间: 2024-08-06 20:08:29

重定向、管道——Linux基本命令(6)的相关文章

linux 从入门到跑路&ndash;重定向 管道

linux 从入门到跑路 重定向 管道 Linux给程序提供三种I/O设备 标准输入(STDIN)-0默认接受来自键盘的输入 标准输出(STDOUT)-1默认输出到终端窗口 标准错误(STDERR)-2默认输出到终端窗口 I/O重定向:改变默认位置 重定向 重定向会覆盖原文件内容 > 把STDOUT重定向到文件 2> 把STDERR重定向到文件 &> 把所有输出重定向到文件 set –C 禁止将内容覆盖已有文件,但可追加 set +C 允许覆盖 >| file 强制覆盖 #

linux基础知识-I/O重定向,管道

系统设定 默认输出设备:标准输出,STDOUT, 1 默认输入设备:标准输入, STDIN, 0 标准错误输出:STDERR, 2 标准输入:键盘标准输出和错误输出:显示器 I/O重定向: Linux:>: 覆盖输出 [[email protected] ~]# ll /var/ > /tmp/var.out [[email protected] ~]# cat /tmp/var.outtotal 76drwxr-xr-x.  2 root root 4096 Jun 21  2015 acc

Linux基本命令(2)

1.如果在任何命令的后面加上一个>和文件名(不一定事先存在),那么这个命令的执行结果就被送至该文件中.如: $ls /usr/bin > ~/unknown 如果该文件已经存在,则ls命令的输出结果将会覆盖原来的文件内容.如果用csh和tcsh型的shell,可用下列方法避免覆盖, $set noclobber 在bash下,可用下列命令避免覆盖, $noclobber=1    (不一定是1,其他数值也可以) 2.可以用>>将命令的结果附加到文件的末尾,如 $ls /usr/bi

Linux基本命令—权限管理、文件搜索、帮助、压缩解压、网络通信

Linux基本命令-权限管理.文件搜索.帮助.压缩解压.网络通信 Linux 权限管理命令 文件搜索命令 帮助命令 压缩解压命令 网络通信指令 2017-11-12 权限管理命令 chmod 改变文件或目录权限: 格式:chmod [{ugo} {+-=} {rwx}] [文件或目录]:或 [mode=421] [文件或目录] -u:所有者: -g:所属组: -o:其他人 -rwx:可读可写可执行:对应权值 r-4.w-2.x-1,可按照数字改变权限:eg.rwxr-xr--表示754: eg.

Linux03 /Linux基本命令

Linux03 /Linux基本命令 1.Linux命令行的组成结构 2.Linux系统命令操作语法格式 命令 空格 参数 空格 [文件或路径]需要处理的内容 rm -rf /tmp/* ls -la /home 1.一般情况下,[参数]是可选的,一些情况下[文件或路径]也是可选的 2.参数 > 同一个命令,跟上不同的参数执行不同的功能 3.执行linux命令,添加参数的目的是让命令更加贴切实际工作的需要 4.linux命令,参数之间,普遍应该用一个或多个空格分割 3.创建一个目录 /boy w

linux 基本命令2

Linux基本命令(二) 1. 输出重定向命令:> Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中. 如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )   注意: >输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部. 2. 分屏显示:more 查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键

LINUX基本命令行手册一

linux基本命令行手册一    1.1基本的网络命令        1>wget 从服务器上检索或下载文件,支持HTTP,HTTPS,FTP协议,服务器响应后,会将请求到的文件下载到当前用户所处的目录下        语法:wget [option]... [URL]...        option:            -t:尝试请求服务器的次数,若在指定的次数内,未响应,则断开链接            -o:将信息输出保存在记录文件中            -nc:支持断点下载,当下

转:Linux基本命令大全

Linux基本命令大全 新手刚刚接触Linux的时候可能处处感到不便,不过没有关系,接触新的事物都有这样的一个过程,在你用过Linux一段时间后,你就会逐渐了解Linux其实和Windows一样容易掌握. 由于操作和使用环境的陌生,如果要完全熟悉Linux的应用我们首先要解决的问题就是对Linux常用命令的熟练掌握.本章我们就来介绍Linux的常用基本命令. 首先启动Linux.启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中“系统管理员”拥有最高权限. 在启动Linux后

Linux基本命令(一)

Linux基本命令 编辑器 vim编译器 Gnu工具链-gcc调试器 GDB操作系统是用C来写的 系统编程 (核心骨架 80%) 文件I/O 文件系统 进程{ 进程控制原语.进程间通信.进程间关系 信号 线程{ 线程控制原语.线程同步机制 网络编程{ socket套接字. TCP/IP/UDP.并发服务器开发(多进程并发.多线程并发.异步I/O(epoll.select.poll)) shell编程 {正则表达式数据库 gnu创始人 理查德 马修 斯托曼 shell:命令解释器,根据输入的命令执