JasonJian

寻得本性,自得其乐

导航

【Linux shell编程】Redirection commamd

redirection

  • redirection的意思就是将本来要输出到屏幕的内容重定向到别的文件
  • 本来是从键盘等的输入变为从别的文件来的输入

standard output and standard input

  • 在linux中一切都是文件,标准输出和标准输入也都是一个文件,只是这两个文件是直接与显示器和键盘等输入设备联系在一起的

>

  • 此符号是将标准输出重定向到指定文件
  • 如果某命令输出错误,它的输出是不会被转到标准输出的,而是输出到stderr

cat

  • 连接文件
  • cat将其后跟的文件参数重定向到标准输入
  • cat后可以跟多个参数(文件名),从而将这些小文件连接起来成一个大的文件
  • cat后不跟任何参数的时候,cat等待键盘的标准输入
  • ctrl-d表示达到了一个文件的结尾。
  • 下面列举一些简单的例子
  • cat > lazy_dog.txt: 之后开始等待从键盘的输入
  • cat < lazy_dog.txt: 将lazy.dog.txt的内容输入到cat,然后再打印到标准输出进行输出

sort

  • 文本排序

如何将标准错误输出到文件

  • 在输出之前使用一个2,下面这两种方式都可以达到这个目的
  • ls -l /bin/usr 2> ls-error.txt
  • ls /bin/usr > test.md 2>&1
  • ls -l /bin/usr &> ls-output.txt 这句话中的&>是一个操作符,他表示将标准输出和标准错误的内容都输出到文件

dev/null

  • 有些时候我们希望我们命令行的标准输出和标准输入不做任何处理,此时我们可以将这条命令输出到dev/null
  • dev/null 是一个传统的unix文件

pipeline

  • | :就是pipeline的运算符
  • 它有两个参数,一个命令的标准输出作为另一个命令的标准输入

>|的区别

  • >是将标准输出输入到文件,他总是会重新创建或者覆盖现有的文件
  • |是将输出重定向为另一个命令的标准输入,他不会创建或者修改文件

uniq

  • uniq将标准输入或者文件输入中的重复行进行过滤,仅仅保留唯一的行
  • uniq经常在一个命令行的pipeline中以sort的结果作为标准输入

wc

  • 用于显示一个文件的总行数,单词数以及字节数

grep

  • 此处不多介绍grep的功能,简单介绍一下grep的几个常用选项功能
  • -i:匹配表达式时,忽略大小写
  • -v:查找不匹配表达式的的行

head和tail

  • 分别是打印一个文件开头和一个文件结尾的行的命令
  • -n 选项指定打印多少行
  • tail的-f选项可以实时的显示文件末尾的内容,这在监控某些日志文件时非常有用,只要所监视的文件有刷新,会立即将该文件的最新内容显示出来

posted on 2014-08-03 22:03  JasonJian  阅读(682)  评论(0编辑  收藏  举报