Linux链接文件、管道、重定向讲解
2016-07-30 16:28
381 查看
Linux链接文件、管道、重定向讲解--链接文件-- 硬链接:在inode表中记录一个条目,所有的元数据和原始文件元数据相同。 ·相当于两个名字。 ·删除原始文件,另一个条目也能够找数据本身。 ·不能跨分区链接 ~]#ln [原始文件] 链接文件 软链接:在inode表中记录一个条目,指针指向原始文件条目,删除原始条目,符号连接找不到原始数据。 ·新的inode号。 ·可以跨分区链接, ·可以对目录进行链接 ~]# ln -s [原始文件] 链接文件
标准I/O和管道一、三种I/O设备 linux中给程序提供三种I/O设备
I/O重定向:改变默认位置二、把I/O频道重定向入文件--把输出和错误重定向到文件-- 格式为: #命令 操作符合 文件名> 重定向标准输出到文件 ·文件内容会被覆盖 ~]# set -C:禁止蒋内容覆盖已有文件,但可追加 强制覆盖:>| ~]# set +C:允许覆盖>> 原有内容基础上,追加内容
~]# cat /etc/passwd >> ~/a.tx 例:
&>覆盖输出重定向 ##同上
&>> 追加输出重定向 #同上
()合并多个程序的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中小写字符转换成小写字符例:
管道 |连接命令 COMMAND1 | COMMAND2 | COMMAND3 | ... 释:·将命令1的输出发送给命令2的输入,命令2的输出发送给命令3的输入 ·标准错误默认不能通过管道转发,可利用 2>&1 或 |& 实现例:
【tee】 重定向到多个目标 ~]# COMMAND1 | tee 文件名 | COMMAND2 释:把命令1的STDOUT保存在文件名中,然后管道输入给命令2 例:
标准I/O和管道一、三种I/O设备 linux中给程序提供三种I/O设备
* 标准输入·······0--stdin····默认接收来自键盘的输入 * 标准输出·······1--stdout····默认输出到终端窗口 * 标准错误·······2--stderr····默认输出到终端窗口 |
~]# cat /etc/passwd >> ~/a.tx 例:
[root@localhost ~]# cat a.txt bash: sdfadfa: command not found... [root@localhost ~]# cat /etc/passwd >> ~/a.txt [root@localhost ~]# cat a.txt bash: sdfadfa: command not found... root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin2>: 覆盖重定向错误输出数据流; ##abcdefg 2> ~/a.txt 例:
[root@localhost ~]# abcdefg 2> ~/ab.txt [root@localhost ~]# cat ab.txt bash: abcdefg: command not found... [root@localhost ~]#2>>: 追加重定向错误输出数据流 ##higklm 2>> ~/a.txt 例:
root@localhost ~]# higklm 2>> ~/ab.txt [root@localhost ~]# cat ab.txt bash: abcdefg: command not found... bash: higklm: command not found... [root@localhost ~]#
&>覆盖输出重定向 ##同上
&>> 追加输出重定向 #同上
()合并多个程序的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中小写字符转换成小写字符例:
[root@localhost ~]# cat /etc/issue;tr [a-z] [A-Z] < /etc/issue \S Kernel \r on an \m The hostname \n login termi Welcome to beijing \S KERNEL \R ON AN \M THE HOSTNAME \N LOGIN TERMI WELCOME TO BEIJING [root@localhost ~]# ^C==把多行发送给STDIN== << 终止符:从键盘把多行重定向给STDIN,直到 终止符 位置的所有文本都发送给STDIN例:
[root@localhost ~]# tr [a-z] [A-Z] <<EFO >>abc.txt > hello, > how ,are you ! > EFO [root@localhost ~]# cat abc.txt HELLO, HOW ,ARE YOU ! [root@localhost ~]#
管道 |连接命令 COMMAND1 | COMMAND2 | COMMAND3 | ... 释:·将命令1的输出发送给命令2的输入,命令2的输出发送给命令3的输入 ·标准错误默认不能通过管道转发,可利用 2>&1 或 |& 实现例:
[root@localhost ~]# cat /etc/issue | tac Welcome to beijing login termi The hostname \n Kernel \r on an \m \S [root@localhost ~]# ls sdadfad |& tr 'a-z' 'A-Z' LS: CANNOT ACCESS SDADFAD: NO SUCH FILE OR DIRECTORY [root@localhost ~]#
【tee】 重定向到多个目标 ~]# COMMAND1 | tee 文件名 | COMMAND2 释:把命令1的STDOUT保存在文件名中,然后管道输入给命令2 例:
[root@localhost ~]# who | tee c.txt |tr [a-z] [A-Z] ROOT PTS/0 2016-07-30 15:52 (10.1.250.20) [root@localhost ~]# cat c.txt root pts/0 2016-07-30 15:52 (10.1.250.20) [root@localhost ~]#·保存不同阶段的输出 ·复杂关东的故障排除 ·同时查看和记录输出
相关文章推荐
- Linux 链接文件、重定向、管道讲解
- Linux七天系列(第一天:文件操作、用户权限 、软链接与硬链接 、文件压缩与解压、通信命令、命令链接符 、输入/输出重定向)
- Linux文件管理、重定向和管道
- Linux 重定向以及管道讲解
- Linux学习命令汇总四——Bash中变量.文件通配符.管道与重定向.算术运算及循环或判断语句
- Linux强大的IO重定向和管道功能(内含命令替换,实例:批量删除文件)
- 探秘linux-文件管理(inode理解)及管道和IO重定向
- linux学习入门 基础部分(4)【文件输入输出 重定向,追加 非交互式多行录入 管道“保存” 】
- LINUX的文件链接,管道和用户组
- Linux强大的IO重定向和管道功能(内含命令替换,实例:批量删除文件)
- Linux学习(五)--文件权限,信息显示,管道,重定向
- 【unix学习】重定向、管道、链接文件
- Linux中ELF文件动态链接的加载、解析及实例分析(一): 加载
- linux命令实践-ln:关于链接文件
- Linux下链接文件使用rm无法删除的解决办法
- Linux图形界面远程控制设置(xmanager链接需要配置文件)
- Linux--常用文件重定向命令
- Intel平台下linux中ELF文件动态链接的加载、解析及实例分析(二): 函数解析与卸载
- Linux C/C++ 多目标文件的链接及其Makefile编写($<与$^)
- Intel平台下linux中ELF文件动态链接的加载、解析及实例分析(二): 函数解析与卸载