文件重定向
文件描述符 0:keyboard…
标准输入重定向 从文件中读数据
设备 | 文件描述符 | 类型 |
---|---|---|
键盘 | 0 | 标准输入 |
显示器 | 1 | 标准输出 |
显示器 | 2 | 错误输出 |
标准输入重定向
s19@GOJ:~$ cp /tmp/add .
s19@GOJ:~$ ./add
2 6
8
s19@GOJ:~$ nano a.in
s19@GOJ:~$ ./add <a.in
8
tr
- tr只能从标准输入中读取数据,将输入文件重定向到标准输入,或从管道读入数据。
- 对应替换 tr只能对用户键盘输入有效,不支持后面跟一个文件名进行处理
#替换abc为123
s19@GOJ:~$ tr abc 123
aaa
111
abbc
1223
abcde
123de
^C
#替换a-z到A-Z
s19@GOJ:~$ tr a-z A-Z
apple
APPLE
putty
PUTTY
s19@GOJ:~$ tr a-z A-Z < /tmp/student
JONH DOE ECE 3.54
PAM MEYER CS 3.61
JIM DAVIS CS 12.71
JASON KIM ECE 3.97
AMY NASH ECE 2.38
JIM DAVIS EECS 12.71
s19@GOJ:~$ tr a-z A-Z /tmp/student
tr: 额外的操作数 "/tmp/student"
Try 'tr --help' for more information.
标准输出重定向
命令>文件
以覆盖方式把命令的结果输出保存在文件里命令>>文件
以追加方式把命令的结果输出保存在文件里命令 2>>文件
以追加方式把错误命令的结果输出保存在文件里,2
和>>
之间不可以有空格
s19@GOJ:~$ ./add >result
3 5
s19@GOJ:~$ cat result
8
s19@GOJ:~$ cat /tmp/student
jonh Doe ECE 3.54
Pam Meyer CS 3.61
Jim DAVIS CS 12.71
Jason Kim ECE 3.97
Amy Nash ECE 2.38
Jim DAVIS EECS 12.71
s19@GOJ:~$ sort -k4 -n >result /tmp/student
s19@GOJ:~$ cat result
Amy Nash ECE 2.38
jonh Doe ECE 3.54
Pam Meyer CS 3.61
Jason Kim ECE 3.97
Jim DAVIS CS 12.71
Jim DAVIS EECS 12.71
s19@GOJ:~$ cat /tmp/f1 /tmp/f2
this is f1
this is f2
s19@GOJ:~$ cat /tmp/f1 /tmp/f2 >result
s19@GOJ:~$ cat result
this is f1
this is f2
s19@GOJ:~$ ./add >>result
3 2
s19@GOJ:~$ cat result
this is f1
this is f2
5
- 如果文件不存在,create文件
- 如果文件存在,则覆盖文件内容
多命令顺序执行
多命令符号 | 格式 | 作用 |
---|---|---|
: | 命令1:命令2 | 多个命令执行,相互没关系 |
& | 命令1&&命令2 | 逻辑与,1正确2才会执行 |
ll | 命令1ll命令2 | 逻辑或,1不正确执行2 |
linux管道
命令1 |命令2
命令1的正确输出作为命令2的操作对象
将一条命令的标准输出成为另外一条命令的标准输入。过滤器:cat、grep、gzip、lp、sort、uniq、wc
ls -l | more
df
磁盘使用情况显示
du
显示目录或者文件大小
s19@GOJ:~$ du /tmp/* 2>/dev/null |sort -rn|head -5
9040 /tmp/jieba.cache
24 /tmp/grade.csv
24 /tmp/a
20 /tmp/bf8f84e4-b15d-47ef-be3c-858cd0c2b46e
20 /tmp/5d517a3f-8b35-4000-a09c-91aeb99a7661
/var
数据库、变动的文件大小变化tee who| tee result
把who的结果输出到屏幕,并且重定向到result- p开头代表管道文件
- cat从标准输入中读,再输出到标准输出
- cat >/tmp/pipe
- cat /tmp/pipe