Linux重定向和管道的基础学习
重定向和管道
本章节内容:
三种I/O设备
把I/O频道重定向入
使用管道链接命令
一、标准输入和输出:
程序:指令+数据
读入数据:Input;输出数据:Output
打开的文件都有一个fd:file descriptor (文件描述符)
Linux给程序提供三种I/O设备:
标准输入(STDIN)-0默认接受来自键盘的输入
标准输出(STDOUT)-1默认输出到终端窗口
标准错误(STDERR)-2默认输出到终端窗口
I/O重定向:改变默认位置
不是所有的标准输入都有标准输出;标准输出是默认的当前终端窗口。
三种合并正常输出流和错误输出流的方法:
二、将输出和错误输出重新定向到文件:
标准输出和错误输出可以被重定向到文件:
命令操作符号文件名
支持的操作符号包括:
标准输出和错误输出可以各自定向至不同位置;
了解重定向的使用:
1、> 把标准输出重定向到文件(文件内容会被覆盖);>> 原有内容基础上,追加内容;
2、2>把错误输出重定向到文件;2>>: 追加重定向错误输出数据流;
3、&>把合并所有输出重定向到文件;&>>:追加重定向
COMMAND > /path/to/file.out2> &1 (顺序很重要)
COMMAND >> /path/to/file.out2>> &1
新的写法(&>),入下图:
以前旧的写法(2>&1),入下图:
禁止覆盖:(针对当前终端有效)
# set -C: 禁止将内容覆盖已有文件,但可追加(>>)
强制覆盖:>|
# set +C: 允许覆盖
4、合并多个程序执行的结果重定向,命令格式为:(COMMAND;COMMAND) > /path/filename
5、使用字符给系统用户写邮件,格式:# mail –s 标题用户名
回车后,等待内容的输入,结束以“.”,切记.的前面不能够空格。
用户chesfer查看来自root用户发给其的邮件,如下图:
6、多行输入重定向的开始/结束符:<<EOF / >EOF
三、认识和使用tr命令:
tr–转换和删除字符
使用格式: tr[OPTION]...SET1 [SET2]
使用选项:-c或——complerment:取字符集的补集
-d或——delete:删除所有属于第一字符集的字符
-s或—squeeze-repeats:把连续重复的字符以单独一个字符表示
-t或--truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符
tr –c使用:如下图,将不是a和b的字母全部给转换成n
四、管道:只能接收标准输出,而不能接收错误输出。
管道(使用符号“|”表示)用来连接命令;
命令1 | 命令2 | 命令3 | … :将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN;
STDERR默认不能通过管道转发,可利用2>&1 | 或|& 实现(无法判断前面的COMMAND是否成功);
最后一个命令会在当前shell进程的子shell进程中执行用来;
1、组合多种工具的功能使用,如下:
eg: ls /etc/ | tr 'a-z' 'A-Z'
2、# who | tee | tr 'a-z' 'A-Z'
3、# ls-l/etc|less一页一页地查看输入:
练习与作业:
1、 将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中
tr [[:lower:]] [[:upper:]] < /etc/issue >//tmp/issue.out
2、 将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中
# w | tr [[:lower:]] [[:upper:]] > /tmp/who.out
3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:Hello,I am 用户名,the system version is here,pleasehelp me to check it ,thanks!
操作系统版本信息
mail help root <<EOF
<Hello, I am chesfer(`id -un`),the system version is here,pleasehelpme to check it ,thanks!
<`cat /etc/centos-release`
<EOF
4、将/root/下文件列表,显示成一行,并文件名之间用空格隔开。
# ls/root/ | tr ‘\n’ ‘ ’
作业:
5、file1文件的内容为:”1 2 34 5 6 7 8 9 10” 计算出所有数字的总和
# cat file1 |tr " " "+ " | bc
6、删除Windows文本文件中的'^M'字符
#cat-A f11.ext
#dos2unix f11.txt
7、处理字符串“xt.,l 1jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格
# catfiles | tr -d [[:alpha:]][[:punct:]]
8、将PATH变量每个目录显示在独立的一行
#echo $PATH | tr ":" "\n"
9、删除指定文件的空行
# #cat fs | tr -s [[:space:]]
10、将文件中每个单词(字母)显示在独立的一行,并无空行
#cat fs | tr [[:space:]] '\n' | tr -s [[:space:]]
11、软、硬链接区别
软链接:两个文件名拥有两个不同的inode节点号;指向两块不同的数据块;两个文件名是一个“主 从”的关系;其中任何一个删除,对另外的文件名没有任何的影响;每增加一个文件名,inode节点号上的链接数增加一个,反之,删除一个文件名,链接数减一,直至为零,inode节点号和数据块才会被回收;链接的文件名数据块上只是存放源文件名的访问路径;可以对目录进行软链接;可以跨分区创建链接;可以对不存在的文件名创建链接;链接方式上为ln -s 源文件 链接名
硬链接:两个/多个文件名只能拥有同一个inode节点号;指向同一块的数据块;两个或多个文件名是一个“平等”的关系;其中任何的一个删除掉,另外的一个虽然存在,但其指向的链接是一个无效的链接;不能够对目录进行链接;不能跨分区创建链接;不能够对不存在的文件名创建链接;链接方式上为ln 源文件 链接名
转载于:https://blog.51cto.com/11888240/1832263
Linux重定向和管道的基础学习相关推荐
- Linux重定向与管道
重定向 所用命令指令 echo: echo会将输入的字符串送往标准输出.输出的字符串间以空白字符隔开, 并在最后加上换行号. cat:查看目标文件的内容 -b 对非空输出行编号 -n 对输出的所有行编 ...
- Linux重定向和管道
文章目录 一.重定向 1.1 输出重定向 1.1.2 重定向 1.1.2 追加重定向 1.2 输入重定向 二.管道 一.重定向 linux启动后,会默认打开3个文件描述符,分别是: 标准输入:stan ...
- Linux 鸟叔的私房菜 基础学习篇(第四版) 课后习题答案
答案仅供参考,来源于本人和网上,并非绝对正确,请酌情参考! 文章目录 第零章 计算机概论 第一章 Linux是什么与如何学习 第二章 主机划分与磁盘分区 第三章 安装CentOs 7.x 第四章 首次 ...
- Linux 重定向与管道
https://blog.csdn.net/qq_38364548/article/details/118575079?utm_medium=distribute.pc_feed_v2.none-ta ...
- Linux系统学习: 进程、重定向和管道指令:xargs 指令的作用是
进程 为了弄清楚这节课程的内容,也就是管道,我们先来讨论一下进程. 我们知道,应用的可执行文件是放在文件系统里,把可执行文件启动,就会在操作系统里(具体来说是内存中)形成一个应用的副本,这个副本就是进 ...
- Linux基础学习笔记(十二)——管道命令
文章目录 前言 管道命令 cut命令 sort,wc,uniq命令 sort命令 uniq命令 wc命令 双向重定向--tee命令 字符替换命令 tr命令 col命令 join命令 paste命令 e ...
- Linux命令行学习之路(六)——重定向和管道
今天我们来总结一下个人认为linux下最为实用和厉害的重定向和管道 在说今天的重点之前,必须要先学一点其他的新知识:标准输入(stdin).标准输出(stdout).标准错误输出(stderr) 标准 ...
- linux shell 变量 管道,linux下shell,变量,管道,重定向等基础知识及技巧
知识点如下: 1,关于shell编程中的变量,shell编程中的变量分为4种 本地变量:只对本系统本用户自己的shell有用 环境变量:对本系统的所有shell都有用 用export来声明变量 例 ...
- Linux shell脚本基础学习
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...
- Linux shell脚本基础学习详细介绍(完整版)一
Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提. 1. Li ...
最新文章
- 关键词热度分析工具_亚马逊卖家: 产品关键词挖掘分析必备工具!
- 我觉得要技术者上升到整体去考虑会好点
- java中,如何实现输入一个正整数,并将这个数字反转输出,比如输入123,输出321
- 获取 当前日期、当前时间、前一天日期
- c语言设计第4章答案,《C语言程序设计》第4章习题答案.doc
- msdn服务器系统,操作系统
- javaJavaScript DOM
- Java-集合第三篇List集合
- 计算机组成原理 唐朔飞 知识点,计算机组成原理知识点总结(唐朔飞版)
- 按照 ASCII 码从小到大进行排序
- WPS导入SQLSERVER的数据
- pandas合并多个数据表
- Java实现语音阅读功能开发(输入文字,转语音播放)
- 微信公众平台修改服务器,微信公众平台开发配置及自定义分享
- e1000网卡驱动第二天_3
- 【第134期】 游戏策划:我录用了一位待业半年的往届生
- 微信小程序反编译及源码抓取(2021最新)
- 如何解决未能初始化战场服务器,初始化失败,教您如何解决cf初始化失败
- PentesterLab靶场sql注入流程
- Lottie——强大的动画渲染框架
热门文章
- 凸优化第八章几何问题 8.4极值体积椭圆
- xshell与虚拟机VMware中centos6.7系统突然连不上
- 相似矩阵对角化 | 找到一个可逆矩阵 P 使得 P^(-1)AP 成为一个对角矩阵
- Raki的PRML阅读笔记 第1章:Introduction
- html中父子元素的解释,CSS 子绝父相 理解
- php缓存memclear,PHP内存缓存加速功能memcached安装与用法
- js刷新当前页面的几种方式
- 第 7 章 Neutron - 079 - 在 ML2 中 enable local network
- 重学前端学习笔记(四十一)--CSS的颜色
- iOS开发-多台机器共用证书问题