初学Linux之标准 I/O和管道

输入、输出重定向
 
> 若文件不存在,则创建,并将正确的输出填充,若文件已存在,则覆盖原内容
>> 若文件不存在,则创建,并将正确的输出内容填充,若文件已存在,则追加内容
 
1> 同 >
1>> 同 >>
 
2> 若文件不存在,则创建,并将错误的输出填充,若文件已存在,则覆盖原内容
2>> 若文件不存在,则创建,并将错误的输出内容填充,若文件已存在,则追加内容
 
find /etc/ -name "*.conf" 2> find.error > find.right
 
 
&> 若文件不存在,则创建,并将所有的输出填充,若文件已存在,则覆盖原内容
&>> 若文件不存在,则创建,并将所有的输出内容填充,若文件已存在,则追加内容
垃圾箱:/dev/null
 
| 只将正确结果传递给右边的命令用
 
2>&1 将错误结果转为正确结果 |& 将正确及错误都传递给右边命令用
1>&2 将正确结果转为错误结果
多行重定向
cat > /app/test.txt << EOF
hello
123
nihao
EOF
 
[root@instructor_v7(nanyibo) app]# enable |tee /app/456 |wc -l
61
 
实验:去掉windows文件中的^M
tr -d '\015' < win.txt > win1.txt
dos2unix win.txt
 
 
加颜色 颜色是31 到37
1 [root@feng bin]# echo -e "\033[31mred color\033[0m"
red color
红色
 
2 如果是个变量就可以用{}引起来
[root@feng bin]# color=32;echo -e "\033[${color}mred color\033[0
m" red color 绿色
3: 颜色随机
方法1 color=$[RANDOM%7+31];echo -e "\033[${color}mredcolor\033[0m"
方法2 color=`seq 31 37 |sort -R |head -1 `;echo -e "\033[${color}mred color\033[0m"
color=`seq 31 37 |sort -R |head -1 `;echo -e "\033[1;5;${color}mred color\033[0m"
 
 
4: echo f{1..10000} |xargs -n rm -f 删除参数过多的文件
 
三种i/o设备:
 
标准输入(STDIN)-0:默认通过键盘输入;
标准输出(STDOUT)-1:默认输出到终端窗口;
标准错误输出(STDERR)-2:默认输出到终端窗口;
 
i/o重定向:改变默认位置;
>:把标准输出重定向(覆盖)到文件(文件不存在则创建,文件存在则覆盖);
>>:把标准输出重定向(追加)到文件(在原有内容的基础上,追加内容);
 
2>&1:实现所有输出(即标准输出和标准错误输出)都重定向d到标准输出;
|:只能传递标准输出给右边的命令;
 
简写:|&
 
set -C:禁止重定向覆盖的功能;
解禁:set +C
或使用强制覆盖:>| file
 
例如,find /etc/ -name "*.conf" 2> find.error > find.right
错误和正确分别重定向;
 
例如,find /etc/ -name "*.conf" &> find.all
正确和错误都重定向;
 
/dev/null:是特殊设备;重定向到该文件下的内容,是不想保存(不重要,没用)的内容;
例如,passwd &> /dev/null
 
脚本中的用法:
echo "hello" |passwd --stdin maedu &> /dev/null
实现改密码;
 
tr
命令:把set1字符集转换为set2字符集
格式:tr set1 set2
选项:
-s:把重复的字符变为一个;
 
例如:
[root@magedu ~]# echo 111bbbccc|tr 1bc 2BC
222BBBCCC
[root@magedu ~]# echo 111bbbccc|tr a-z A-Z
111BBBCCC
 
从1+到100结果:
[root@magedu ~]# echo {1..100}|tr ' ' + |bc
5050
 
输入重定向:
<
输chu重定向:
>
例如:
tr a-z A-Z < .bashrc 把 .bashrc 这个文件
使用ctrl+d结束;
 
cat .bashrc |tr a-z A-Z
 
cat > test.txt < ~/.bashrc
 
脚本中常用法:
cat > test.txt << EOF
fdafd
fdafd
EOF
键盘输入后,最后输入EOF结束命令;
 
mail -s "yuehui" magedu <<EOF
fdafd
fdafd
EOF
 
管道符:|
非常重要,实际工作中比较常用;
 
例如:
ls | tr 'a-z' 'A-Z'
 
 
less命令:分页显示;不会自动退出;
more命令:分页显示;最后一页结束最后会退出;
b:向后翻;
f:向前翻;
/:默认从向上到下查询;
?:默认从向下到上查询;
 
例如:
ls /etc |less
posted @ 2018-07-14 10:09 好名字1995 阅读(...) 评论(...) 编辑 收藏