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
·保存不同阶段的输出
·复杂关东的故障排除
·同时查看和记录输出
硬链接:在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
·保存不同阶段的输出
·复杂关东的故障排除
·同时查看和记录输出
相关文章推荐
- Linux socket 初步
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- Linux 下无损图片压缩小工具介绍