您的位置:首页 > 运维架构 > Linux

Linux 链接文件、重定向、管道讲解

2016-07-29 22:03 274 查看
链接文件

硬链接:在inode表中记录一个条目,所有的元数据和原始文件元数据相同。相当于两个名字。
删除原始文件,另一个条目也能够找数据本身。
不能跨分区链接
~]#ln [原始文件] 链接文件
软链接:在inode表中记录一个条目,指针指向原始文件条目,删除原始条目,符号连接找不到原始数据。
新的inode号。
可以跨分区链接,
可以对目录进行链接
ln -s [原始文件] 链接文件

标准I/O和管道

一、三种I/O设备
linux中给程序提供三种I/O设备
* 标准输入 0--stdin 默认接收来自键盘的输入
* 标准输出 1--stdout 默认输出到终端窗口
* 标准错误 2--stderr 默认输出到终端窗口
I/O重定向:改变默认位置
二、把I/O频道重定向入文件
把输出和错误重定向到文件
格式为:
命令 操作符合 文件名
> 重定向标准输出到文件
·文件内容会被覆盖
~]# set -C:禁止蒋内容覆盖已有文件,但可追加
强制覆盖:>|
~]# set +C:允许覆盖
>> 原有内容基础上,追加内容
2>: 覆盖重定向错误输出数据流;
2>>: 追加重定向错误输出数据流
&> 覆盖标准输出重定向
&>> 追加标准输出重定向
()合并多个程序的STDOUT
(ls;cat /etc/passwd)> ~/a.txt
tr
转换和删除字符
tr [OPTION]... SET1 [SET2]
-c 取字符集的补集
-d 删除所有属于第一字符集的字符
-s 把连续重复的字符以单独一个字符
表示
-t 将第一个字符集对应字符转化为第二
字符集对应的字符
从文件中导入STDIN
< 重定向标准输入
~]# tr [a-z] [A-Z] < /etc/issue
·该目录会把/etc/issue中小写字符转换成小写字符
把多行发送给STDIN
<< 终止符:从键盘把多行重定向给STDIN,直到 终止符 位置的所有文本都发送给STDIN

管道
| 连接命令
COMMAND1 | COMMAND2 | COMMAND3 | ...
释:·将命令1的输出发送给命令2的输入,命令2的输出发送给命令3的输入
·标准错误默认不能通过管道转发,可利用 2>&1 或 |& 实现
tee
重定向到多个目标
~]# COMMAND1 | tee 文件名 | COMMAND2
释:把命令1的STDOUT保存在文件名中,然后管道输入给命令2
·保存不同阶段的输出
·复杂关东的故障排除
·同时查看和记录输出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息