1、重定向
程序 = 指令 + 数据
命令 变量
在程序中,数据如何输入? 又如何输出?
数据输出:键盘 -- 标准输入? 又如何输出?
--stdin
echo "123456"|passwd --stdin "username‘
例如: 功能添加用户 useradd.sh user.txt文本文档1000个用户
./useradd.sh a
./useradd.sh b
...
./useradd.sh < user.txt
while line ;do
循环体 $line
done < /etc/passwd
数据输出:显示器 -- 标准输出,但是并不是唯一输出方式
ls /etc/> a.txt
fd 文件标识符 0-9 --相当于给文件分类;
被定义的为 0 1 2
0 -- 标准输出
1 -- 标准输入
2 -- 错误输入输出 (标准错误)
常见重定向符号
1、标准输出
> 覆盖重定向
set-C (关闭覆盖重定向功能)
>| (强制重定向)
>> 追加重定向
不覆盖
2、标准输入
< tr 替换文件内容
tr set1 [set2] < file.txt
<< 将多行数据同时输入
cat >>a.txt<<EOF
>1
>2
>3
>EOF
3、错误输出
2 > 2>>
扩展:不需要输出内容,只需要输出状态;
ls /etc/ > /dev/null 2> /dev/null
if[$? -eq 0];then
循环体
fi
&> &>> == 2&>1
ls /etc/ $> /dec/null
2、管道 -tee
command1 | command2 | command3 |……
前一个命令的执行结果交给后一个命令来执行;
【linux思想:结合雄安功能实现大功能】
free -m |grep "Mem" |cut -d‘ ‘ -f19
free -m |grep "Mem" |awk ‘{print $3}‘
tee 一路输入, 两路输出
tee /tmp/tee.out //如果没有文件,会创建,默认如果文件存在有内容,会覆盖;
tail 查看文件尾部多少行(默认10行)
-n tail -n 5 /etc/passwd == 简写 tail -5 /etc/passwd
-f 实时查看文件更新内容
tail -f /var/log/message
head 查看文件头部多少行 (默认十行)
-n # 前#行, 简写 -#
取 10 - 20行 :head -20 /etc/passwd | tail -10
3、文本处理工具 - wc,cut,sort,uniq
虚无的 繁华里 有谁在等你吗
回头看 是孤独 留下的痕迹啊
原文:https://www.cnblogs.com/zwl123456/p/11337863.html