Linux-Shell学习-重定向

Content:

重定向标准输出正则表达式

重定向标准错误shell

重定向标准输入less

 

 

会用到的命令:spa

 

cat、sort、uniq、grep、wc、head、tail命令行

 

能够经过man或者info命令查看更多的使用方法code

 

I/O重定向容许咱们改变输入的来向和输出的走向。blog

 

 

重定向标准输出:

# 把/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、一、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是一个字符设备文件,叫作位存储捅,对输入不作处理。ip

重定向标准输入:

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

你能够这样,class

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命令行》

相关文章
相关标签/搜索