www.zhblog.net

输入输出重定向和管道命令符

运行环境:vps

Linux版本:CnetOS7.4


1.输入输出重定向

标准输入重定向(STDIN,文件描述符为 0):默认从键盘输入,也可从其他文件或命令中输入

标准输出重定向(STDOUT,文件描述符为 1):默认输出到屏幕

错误输出重定向(STDERR,文件描述符为 2):默认输出到屏幕

输入重定向符号及作用

符号作用
命令 < 文件将文件作为命令的标准输入
命令 << 分界符从标准输入中读入,直到遇见分界符才停止
命令 < 文件1 > 文件2将文件 1 作为命令的标准输入并将标准输出到文件 2

演示

[root@google ~]# wc -l < abc.txt
3
[root@google ~]# wc -l << over
> hello
> world
> over
2
[root@google ~]# wc -l < abc.txt > bcd.txt
[root@google ~]# cat bcd.txt
3


输出重定向符号及作用

符号作用
命令 > 文件将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 &>> 文件将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

演示

[root@google ~]# man ls > ls_doc.txt
[root@google ~]# echo "hello" > ls_doc.txt
[root@google ~]# echo "world" >> ls_doc.txt
[root@google ~]# cat ls_doc.txt
hello
world
[root@google ~]# ls -l nofile
ls: cannot access nofile: No such file or directory
[root@google ~]# ls -l nofile
ls: cannot access nofile: No such file or directory
[root@google ~]# ls -l nofile > error.txt
ls: cannot access nofile: No such file or directory
[root@google ~]# cat error.txt
[root@google ~]# ls -l nofile 2> error.txt
[root@google ~]# ls -l nofile 2>> error.txt
[root@google ~]# cat error.txt
ls: cannot access nofile: No such file or directory
ls: cannot access nofile: No such file or directory
[root@google ~]# wc -l "abc" &>> error.txt
[root@google ~]# cat error.txt
ls: cannot access nofile: No such file or directory
ls: cannot access nofile: No such file or directory
wc: abc: No such file or directory
[root@google ~]# wc -l abc.txt &>> error.txt
[root@google ~]# cat error.txt
ls: cannot access nofile: No such file or directory
ls: cannot access nofile: No such file or directory
wc: abc: No such file or directory
3 abc.txt


2.管道命令符

把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入,格式:

命令A | 命令B | 命令C ...

前面的替换命令tr

[root@google ~]# head -n 2 abc.txt | tr a-z A-Z
HELLO WORLD
HELLO WORLD
[root@google ~]# head -n 2 abc.txt | tr [:lower:] [:upper:] > ABC.txt
[root@google ~]# cat ABC.txt
HELLO WORLD
HELLO WORLD


查找文本并统计行数grep、wc

[root@google ~]# grep "nologin" /etc/passwd | wc -l
19


分页查看目录

[root@google ~]# ls -l /etc/ | more
total 1416
-rw-r--r--  1 root root       16 Jun  6  2018 adjtime
-rw-r--r--  1 root root     1518 Jun  7  2013 aliases
-rw-r--r--  1 root root    12288 Jun  6  2018 aliases.db
......省略


密码重置

echo "123456" | passwd --stdin root 

展开阅读全文

评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 心情