redirection
- redirection的意思就是将本来要输出到屏幕的内容重定向到别的文件
- 本来是从键盘等的输入变为从别的文件来的输入
- 在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
选项可以实时的显示文件末尾的内容,这在监控某些日志文件时非常有用,只要所监视的文件有刷新,会立即将该文件的最新内容显示出来