程序:指令+数据
读入数据:Input
输出数据:Output
在linux中一条指令或者程序,可以分为三种形式:
标准输入:-0 默认接受来自键盘的输入
标准输出:-1 默认输出到终端窗口
标准错误: -  2 默认输出到终端窗口
I/O重定向:改变默认位置
把输出和错误重新定向到文件
支持的操作符号包括:
> 把STDOUT重定向到文件,这里默认的是1,省略
2> 把STDERR重定向到文件
&> 把所有输出重定向到文件
需要注意的是,多次>  会覆盖,而并非追加到文件里面的内容
/dev/null是一个类似于回收站的东西,且不能删除此文件,经常利用这个文件来配合使用重定向
例如;给 ttyang用户修改密码123456
echo 123456 | passwd --stdin ttyang > /dev/null
> 文件内容会被覆盖
set -C 禁止将内容覆盖已有文件,但可追加
>| file 强制覆盖
set +C 允许覆盖
>> 原有内容基础上,追加内容
例如;此用法了解即可
[root@centos7 data]#echo time out > /data/stdout.log
[root@centos7 data]#set -C
[root@centos7 data]#echo time out > /data/stdout.log
-bash: /data/stdout.log: cannot overwrite existing file
2> 覆盖重定向错误输出数据流
2>> 追加重定向错误输出数据流
标准输出和错误输出各自定向至不同位置
COMMAND > /path/to/file.out 2> /path/to/error.out
>默认就是1,标准输出   2>标准错误
合并标准输出和错误输出为同一个数据流进行重定向
&>  覆盖重定向
&>> 追加重定向
两种写法;
COMMAND > /path/to/file.out 2>&1 (顺序很重要)
COMMAND >> /path/to/file.out 2>&1
之前其实一直不懂第一种写法, 是这样理解的,将标准输出追加到/path/to/file.out,2放到1里面,而1前面已经定义。所以是将所有信息打印到/path/to/file.out
tr  转换和删除字符
Usage: tr [OPTION]... SET1 [SET2]
Translate, squeeze, and/or delete characters from standard input,
writing to standard output.
-c –C --complement:取字符集的补集
-d --delete:删除所有属于第一字符集的字符
-s --squeeze-repeats:把连续重复的字符以单独一个字符表示
-t --truncate-set1:将第一个字符集对应字符转化为第二字符集对应的字符
[:alnum:]:字母和数字 [:alpha:]:字母 [:cntrl:]:控制(非打印)字符
[:digit:]:数字 [:graph:]:图形字符 [:lower:]:小写字母 [:print:]:可打印字符
[:punct:]:标点符号 [:space:]:空白字符 [:upper:]:大写字母
[:xdigit:]:十六进制字符
例如:
1.[root@centos7 ~]#tr abc 123
asfjhvbb
1sfjhv22
其他参数上面所解释搭配使用
从文件中导入标准输入
使用 < 来重定向标准输入
某些命令能够接受从文件中导入的STDIN
tr ‘a-z’ ‘A-Z’< /etc/issue
该命令会把/etc/issue中的小写字符都转换成大写字符
tr –d abc < /etc/fstab
删除fstab文件中的所有abc中任意字符
cat > file
mage
wangxiaochun
按ctrl+d离开,可以使用文件来代替键盘的输入
cat < file1 > file2
cat < file1 >> file1
把多行发送给STDIN
使用“<<终止词”命令从键盘把多行重导向给STDIN
直到 终止词 位置的所有文本都发送给STDIN
有时被称为就地文本(here documents)
例如:
1.[root@centos7 ~]#cat <<$
> sdfnv
> adwhdweuyfg
> 123
> $
sdfnv
adwhdweuyfg
123
2.还有另外一种多行重定向的方式EOF,end of file;它是C语言中生成用于表示文件结束的表示方法。
[root@centos7 ~]#cat <<EOF > test.txt   EOF 后面有空格
> lindahd
> sadjwfw
> deiu23
> EOF
[root@centos7 ~]#
[root@centos7 ~]#
[root@centos7 ~]#cat test.txt
lindahd
sadjwfw
deiu23
pidof bash查看某个进程的进程编号
| 只能传输标准输出,而不能传输标准错误
通过 2>&1、|&  将标准输出和标准错误均通过管道传输
mail: 通过电子邮件发送输入
echo "test email" | mail -s "test" wang@example.com
其中 test为邮件标题,用双引号连起来
例如:mail -s help root <<EOF
> Hello,i am $USER,The system version is here,please help me to check
> it ,thanks!
> EOF
bc:算术运算
echo "2^3" |bc
tee命令,配合管道使用,既要打印在屏幕,又可以重定向到文件里
[root@centos7 ~]#hostname  |tee /data/f2.log
centos7.localdomain
tee -a  <append> 不覆盖,只是追加的效果
计算1+2+3+...+99+100的总和
echo {1..100}| tr ' ' '+' |bc
或者seq -s+ 100|bc
windows中查看用户账号 net user
查看组账号 net localgroup
查看口令期限: net  account

标准输出和标准错误重定向相关推荐

  1. 【Linux】21.Linux输入输出重定向、2>1、标准输入、标准输出、标准错误

    输入输出重定向.2>&1.标准输入.标准输出.标准错误 https://zhuanlan.zhihu.com/p/47765176 ./test.sh > log.txt 2> ...

  2. nohup后台运行以及重定向标准输出和标准错误

    nohup 加 &大家都知道是后台运行并把stdout输出到文件nohup.out中.其实&是后台运行的命令. 一般都是在linux下nohup格式: nohup command_li ...

  3. dup、dup2实现文件描述符重定向(标准输入、标准输出、标准错误输出)

    目录 dup函数 dup2函数 重定向标准输入 重定向标准输出 重定向标准错误输出 重定向恢复 总结 在前文中,可以知道,文件描述符实际上是指向文件表项的指针数组索引,也就相当于每个文件描述符都对应一 ...

  4. 如何在父进程中读取子(外部)进程的标准输出和标准错误输出结果

    最近接手一个小项目,要求使用谷歌的aapt.exe获取apk软件包中的信息.依稀记得去年年中时,有个同事也问过我如何获取被调用进程的输出结果,当时还研究了一番,只是没有做整理.今天花点时间,将该方法整 ...

  5. 文件IO---标准输入、标准输出和标准错误

    文件IO---标准输入.标准输出和标准错误 (1) 每个进程都会默认打开3个文件描述符,即0.1.2.其中0代表标准输入流.1代表标准输出流.2代表标准错误流.通常标准输入流对应着键盘的设备文件.标准 ...

  6. linux 的错误输出黑洞,Linux的标准输出、标准错误输出、nohup

    1.在bash中标准输出可以用1来表示:通常来说这个1可以省略: 如./xxx >/dev/null 和 ./xxx 1>/dev/null 是一个意思 2.在bash中标准错误输出可以用 ...

  7. 标准错误重定向、标准输入重定向

    标准错误重定向没有专用的重定向操作符.为了重定向标准错误,我们必须参考其文件描述符. 一个程序可以在几个编号的文件流中的任一个上产生输出.虽然我们已经将这些文件流的前 三个称作标准输入.输出和错误,s ...

  8. 标准输出和标准错误输出

    相关概念 默认情况下,总是有三个文件处于打开状态 1. 标准输入(键盘输入) 对应文件描述符0 2. 标准输出(输出到屏幕) 对应文件描述符1 3. 标准错误(也是输出到屏幕) 对应文件描述符2 常用 ...

  9. 标准输入,标准输出和标准错误

    当我们使用文件描述符进行操作时,需要操作标准输入.标准输出.标准错误,可以包含如下头文件: #include <unistd.h> 这个头文件中定义了标准设备: /* Standard f ...

最新文章

  1. linux看dns解析的时间,curl测试dns解析时间
  2. 用VScode配置Python开发环境引用
  3. linux 监控命令iostat,Linux性能监控分析命令(三)—iostat命令介绍
  4. zabbix---agent安装
  5. python绘制中国省界地图,python画中国地图(含省界、河流等)
  6. VS2013扩展——Advanced JavaScript outlining,让js和css也折叠
  7. oracle12c不使用cdb模式,Oracle 12c实现手工建库而非CDB及CDB创建的方法
  8. Recovery文件路径
  9. 60+最佳免费 WordPress 主题 – 完整列表(2021年)
  10. python 阮一峰_阮一峰:Fish shell 入门教程
  11. [Mysql] ROUND函数
  12. 自动切换手机耳机模式和话筒模式
  13. 青铜器RDM与微软Project计划进度管理对比分析
  14. 客官,来看看AspNetCore的身份验证吧
  15. MIT6.824_2021_学习总结 分布式常见知识点
  16. 线性回归(公式推导,Numpy、sklearn实现)
  17. OpenCV/C++ 图片锐化
  18. 华为魔术magic2拆机图_荣耀Magic拆解
  19. 【论】Bike sharing rebalancing problem with variable demand
  20. 【ArcGIS Pro微课1000例】0020:ArcGIS Pro中河流(曲线)、湖泊(水体色)图例制作案例教程

热门文章

  1. Java实现 LeetCode 667 优美的排列 II(暴力)
  2. Java实现 LeetCode 10 正则表达式匹配
  3. java钓鱼_java实现纸牌游戏之小猫钓鱼算法
  4. 干货下载 | 华为《5G应用立场白皮书》中文版
  5. 九寨沟游玩体会-03-旅程
  6. Godex条码打印机(EZ-PL打印语言)集成开发小结
  7. js使用Lodop对接打印机
  8. 利用WebP来缩小图片体积
  9. 2021年安全员-B证考试技巧及安全员-B证操作证考试
  10. Unity Shader 之 实现简单的动态过场切换图片的效果