shell_2

1、重定向
 程序 =指令 +数据
            命令    变量
 在程序中,数据如何输入?又如何输出?
 数据输入:键盘 -- 标准输入,但其并不是唯一的输入方式;
  --stdin
  echo "123456" | passwf --srdin "username"
  例如:功能添加用户 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 增加覆盖重定向功能
  set -C 关闭覆盖重定向功能
  >| 强制重定向
  >>  追加重定向
   不覆盖
  2、标准输入
  <  a<b #把b的内容交给a输入
  <  tr  替换文件内容
   tr set1 [set2] < file.txt
  << 将多行数据同时输出
  用法: cat >>a.txt<<EOF
   >1
   >2
   >3
   >EOF #结束语
  3、错误输出
  2>  2>>
  扩展:不需要输出内容,只需要输出状态;
   ls /etc/ > /dev/null
   if [ $? -eq 0 ];then
    循环体
  
   fi
  ls 阿斯顿  >/dev/null 2>/dev/null  
  /dev/null(黑洞文件) 来什么吃什么(删除)
  /dev/zero 吹泡泡
  &> &>> == 2&>1
   ls /etc/ &> /dec/null
  2>>
  

2、管道 -tee
 command1 | command2 | command3 | ... ...
 前一个命令的执行结果交给后一个命令来执行;
  【Linux思想:结合小功能实现大思想】
 free -m | grep "^Mem" | cut -d' '  -f19
  free -m | grep "^Mem" | awk '{print $3}'
 find  【范围】  -name
 tee 一路输入,两路输出
  tee /tmp/tee.out
  如果没有文件,会创建,默认如果文件存在有内容,会覆盖;
 练习:
 将/etc/passwd文件
  head -5 /etc/passwd | tr [a-z] [A-Z] > /tmp/passwd.out
  tr 替换
  cut 剪切 cut -d' '  -f19
    
3、文本处理工具 - wc,cut,sort, uniq

转载于:https://www.cnblogs.com/wangzhehui/p/11345526.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值