博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第七章:标准的输入/输出和管道
阅读量:7063 次
发布时间:2019-06-28

本文共 1790 字,大约阅读时间需要 5 分钟。


Linux提供三种IO
STDIN:standard INPUT 标准输入:默认键盘
STDOUT :standard OUTPUT 标准输出 :默认终端
STDERR::standard ERROR 错误输出:默认终端
 
重定向
> :正确输出重定向
2> :错误输出重定向
&> :所有结果重定向
>> :追加 (正确的追加)
2>> &>> :错误的追加、所有追加
 
&> /dev/null :丢弃全部结果(尽可能的把过程丢掉)
2>&1 :把错误的当正确输出
管道 | (错误的无法通过管道,但是可以通过2>&1 将错误的信息作为正确的输出)
command1|command2|command3......
 
less : ls -l /etc | less //将前面命令执行的结果作为分屏显示的输入
mail : echo "test email" | mail -s "test"
lpr : echo "test print" |lpr
echo "test print" | lpr -P printer_name
重定向不能重定向到文件里面,到文件里面就结束了,智能重定向到屏幕上才可以继续管道。
find /etc/ -name passwd 2>&1 >find.out |wc -l
 
合并输出()
(cal 2017,cal 2018) > cal.txt
 
tee 重定向多个结果
|tee file.txt |tee aa.txt | tee a.txt

 键盘作为标准的输入设备
输入重定向
<
cat < /etc/passwd :原本cat是捕捉标准输入源,现/etc/passwd文件的内容作为输入源。这个过程完成了一次输入重定向。

 

 输入重定向作用:
1、tr :转换功能
tr `A-Z` `a-z` < .bash_profile 将文件中的所有大写转换成小写
2、管道也使用了输入重定向
 
如何捕捉多行输入
<< :将多次输入的结果一次输出
mail -s "zhuti" user1@example.com << END
XXXXX
XXXXX
END //END 作为结束符
 
cat >> test <<END
****
****
****
END //结束符

for循环
for NAME in joe jane julie
do
  ADDRESS="$NAME@example.com"
  MESSAGE="Projects are due today!"
  echo $MESSAGE |mail -s Reminder $ADDRESS
done
 

作业
1、批量建用户  test1-20
2、给你一个用户列表,依照用户列表,批量新建用户。
3、给你一个用户列表,依照用户列表,批量新建用户,并且用户的密码 是123456
4、给你一个用户列表,依照用户列表,批量新建用户,并且用户的密码 是用户名
 
#!/bin/bash
#create new user
for NAME in $(cat /tmp/userlist)
  do
    useradd $NAME
    echo $NAME |passwd $NAME --stdin
    echo "USER:$NAME create successful"
  done

 
第二题
1、创建一个用户列表
2、依据用户列表来创建用户
3、并且在用户的家目录下创建一个文件 员工规则
4、所有用户的默认密码为redhat
5、创建完某个用户的时候,显示已经创建成功
6、修改员工规则的去啊年 拥有人和拥有组均为该员工
7、在脚本执行过程当中,不允许出现其他提示(/dev/null)
 
for  USER in $(cat userlist)
do  
    useradd  $USER
    echo  "user $USER  created"
    echo  redhat |passwd  $USER --stdin > /dev/null
    cat  >> /home/$USER/rule<<EOF
rule
EOF
    chown $USER:$USER /home/$USER/rule
done
 
 

转载于:https://www.cnblogs.com/ydfq/p/7011672.html

你可能感兴趣的文章
EXCHANGE 备忘
查看>>
教你深入系统的学习linux系统
查看>>
前台向后台隐藏传参数
查看>>
Oracle10g手工创建数据库
查看>>
JS下载文件
查看>>
Nginx 模块常用命令介绍
查看>>
thinkphp5.0框架swoole的使用
查看>>
继上一篇SQL练习题,给出答案
查看>>
慕课网-Java从零打造企业级电商项目实战_项目初始化_项目结构
查看>>
Esper学习笔记二:进程模型
查看>>
Linux环境PHP7.0安装
查看>>
Reactor 响应式编程
查看>>
Dubbo多注册中心和Zookeeper服务的迁移
查看>>
Linux网络相关、firewalld和netfilter
查看>>
linux基础(day30)
查看>>
四周第五次课(11月10日) 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩
查看>>
财务管理后台(前台页面)
查看>>
解决hash冲突的4种方法
查看>>
Kafka简介及安装配置
查看>>
Redis——HyperLogLog
查看>>