Linux-Shell学习-重定向

Content:

重定向标准输出

重定向标准错误

重定向标准输入

 

 

会用到的命令:

 

cat、sort、uniq、grep、wc、head、tail

 

可以通过man或者info命令查看更多的使用方法

 

I/O重定向允许我们改变输入的来向和输出的走向。

 

 

重定向标准输出:

# 把/usr/bin目录下的文件和目录通过ls -l的格式输入到当前目录的ls-output.txt文件中
ls -l /usr/bin > ls-output.txt 
ls -l ls-output.txt 
cat ls-output.txt 
# 如果目录不存在,则会出错,输出‘没有那个文件或者目录’到屏幕
ls -l /bin/usr > ls-output.txt 
# 如果在执行一遍下面的shell,ls-output.txt的内容会被覆盖
ls -l /usr/bin > ls-output.txt
# 所以我么可以这样来清除文件的内容
> ls-output.txt
# 当然有追加的模式
ls -l /usr/bin >> ls-output.txt

重定向标准错误:

# 如果目录不存在,并不会出现错误的提示,而是直接存到文件中
# ‘2>’是连在一起的,标准输入、输出和错误分别为0、1、2 ll /bin/usr 2> ls-error.txt

重定向标准输出和错误到同一个文件

# '2>&1'是连在一起的
# 这个方法有两个重定向,首先重定向到标准输出的文件,然后重定向文件描述符2(标准错误)到描述符1(标准输出).
# 对于顺序敏感,如果重定向错误在重定向标准输出前则失效
ll /bin/usr > ls-output.txt 2>&1
# 下面这个方法也是可以的
ll /bin/usr &> ls-output.txt

处理不需要的输出:

ll -l /bin/usr 2> /dev/null

可以看到/dev/null是一个字符设备文件,叫做位存储捅,对输入不做处理。

重定向标准输入:

cat:

# 从文件获得标准输入
cat ls-output.txt
# cat还可以把多个文件连起来,假如你有LOG.[0-9]10个文件
# touch LOG{1..9}                 ll LOG[1-9]
cat LOG[1-9] > LOG-ALL
# 如果cat后面没有东西就表示输入来自键盘,ctrl + d告诉cat到文末了
cat
cat > Typing
cat Typing
# 把文件作为标准输入源,和cat [file]效果一样
cat < [file]

管道线比较有用,感觉

# command1的输出可以作为command2的输入
command1 | command2

你可以这样,

ll /usr/bin | less
# 下面是过滤器的使用
# 产生一个有序列表 ll /usr/bin | sort | less

# 忽略重复行
ll /usr/bin | sort | uniq | less
# 打印行、字和字节数
ll /usr/bin | wc
# grep pattern [file] 打印匹配行,pattern是正则表达式
ll /usr/bin | sort | uniq | grep zip
# head和tail打印头和尾 -n是行数 -f可以监控这个文件,如果有添加就会显示在屏幕上
ll /usr/bin | tail -n 5

tee-从stdin读取数据,并同时输出到Stdout和文件

ll /usr/bin | tee ls.txt | grep zip

 

参考:

《快乐Linux命令行》

转载于:https://www.cnblogs.com/KuroNJQ/p/11308082.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值