linux 动态定向,Linux 重定向f符号

本文详细介绍了Linux标准输入输出设备,包括键盘、显示器及其对应的设备文件描述符。此外,还深入讲解了Linux的输出重定向,如如何使用不同符号改变命令的输出目的地,包括覆盖和追加两种方式。同时,文中通过实例展示了输入重定向的用法,以及如何利用管道符实现命令间的数据传递。
摘要由CSDN通过智能技术生成

Linux标准输入输出

Linux标准输入、输出设备主要是键盘和显示器,详细介绍如下表所示。

Linux标准输入输出

设备

设备文件名

文件描述符

类型

符号表示

键盘

/dev/stdin

0(缺省是键盘,为0时是文件或者其他命令的输出)

标准输入

<

<<

显示器

/dev/stdout

1(缺省是屏幕,为1时是文件)

标准输出

>

>>

显示器

/dev/stderr

2(缺省是屏幕,为2时是文件)

标准错误输出

2>

2>>

注:其中一个>表示:覆盖原文件中的内容;如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候

两个>即>>表示:追加到原文件中的内容之后;果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响

2、Linux输出重定向

输出重定向:改变程序运行的输入来源和输出地点。

主要的适用方法如下表所示:

输出重定向

类型

符号

功能

标准输出重定向

命令 >文件

以覆盖方式,把命令的正确输出内容输出到指定的文件或设备当中

命令 >>文件

以追加方式,把命令的正确输出内容输出到指定的文件或设备当中

标准错误输出重定向

错误命令 2>文件

以覆盖方式,把命令的错误输出内容输出到指定的文件或设备当中

错误命令 2>>文件

以追加方式,把命令的错误输出内容输出到指定的文件或设备当中

正确/错误输出同时保存

命令 > 文件 2>&1

以覆盖方式,把命令的正确输出和错误输出内容保存到同一个文件当中

命令 >> 文件 2>&1

以追加方式,把命令的正确输出和错误输出内容保存到同一个文件当中

命令 &> 文件

以覆盖方式,把命令的正确输出和错误输出内容保存到同一个文件当中

命令 &>> 文件

以追加方式,把命令的正确输出和错误输出内容保存到同一个文件当中

命令 >>文件1 2>文件2

以追加方式,把命令的正确输出保存在文件1中;以覆盖方式,把命令的错误输出内容保存到文件2中

3、Linux输入重定向

输入重定向

类型

符号

功能

标准输入

命令

命令把文件1的内容作为标准输入

标识符限定输入

命令 <

命令从标准输入中读入内容,直到遇到“标识符”分界符位置

输入输出重定向

命令 文件2

命令把文件1的内容作为标准输入,把文件2作为标准输出

总结一五Linux的输入输出重定向:

1、重新设置命令的默认输入,输出,指向到自己文件(文件,文件描述符,设备其实都是文件,因为linux就是基于设备也是文件,描述符也指向是文件)

2、扩展自己新的描述符,对文件进行读写操作

实例:

1)向文件test.sh里输入内容。

[root@slave-server opt]# cat << EOF >test.sh

> 123123123

> 3452354345

> asdfasdfs

> EOF

[root@slave-server opt]# cat test.sh

123123123

3452354345

asdfasdfs

追加内容

[root@slave-server opt]# cat << EOF >>test.sh

> 7777

> 8888

> EOF

[root@slave-server opt]# cat test.sh

123123123

3452354345

asdfasdfs

7777

8888

错误追加到a.txt,&>>等同于>>和2>>

[root@localhost test]# ls dasd &>> a.txt

查看执行结果

[root@localhost test]# echo $?

2

[root@localhost test]# cat a.txt

ls: 无法访问dasd: 没有那个文件或目录

123

ls: 无法访问dasd: 没有那个文件或目录

[root@localhost test]#

[root@localhost ~]# ps -aux | grep aux

Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ

root 53 0.0 0.0 0 0 ? S 16:33 0:00 [ata_aux]

root 2379 4.0 0.1 110224 1172 pts/2 R+ 22:55 0:00 ps -aux

root 2380 0.0 0.0 103316 868 pts/2 D+ 22:55 0:00 grep aux

查询全部进程后输出结果在进行过滤跟 进行中包含aux的进程。

管道符,前一个命令输出作为后一个命令输入

[root@localhost test]# head -5 /etc/passwd | tr [a-z] [A-Z] > /tmp/passwd.out

[root@localhost test]# cat /tmp/passwd.out

ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH

BIN:X:1:1:BIN:/BIN:/SBIN/NOLOGIN

DAEMON:X:2:2:DAEMON:/SBIN:/SBIN/NOLOGIN

ADM:X:3:4:ADM:/VAR/ADM:/SBIN/NOLOGIN

LP:X:4:7:LP:/VAR/SPOOL/LPD:/SBIN/NOLOGIN

/etc/passwd的前五行小写替换大写到/tmp/passwd..out

[root@localhost test]# who |tail -1 | cut -d' ' -f1 |tr [[:lower:]] [[:upper:]] | tee /tmp/who.out

ROOT

查看登录用户的最后一位,写入/tmp/who.out

[root@localhost test]# free -m |grep "^Mem"

Mem: 3774 159 3407 8 208 3365

[root@localhost test]# free -m |grep "^Mem" |awk '{ print $3}'

158

[root@localhost test]# free -m

total used free shared buff/cache available

Mem: 3774 158 3407 8 208 3365

Swap: 3967 0 3967

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值