当前位置: 首页 > news >正文

Linux重定向符、管道符讲解

目录

重定向 将命令与文件进行互动

输出重定向

输入重定向

管道符 将命令与命令互动起来


重定向 将命令与文件进行互动

重定向分类

一般情况下,Linux命令运行时都会打开一下三个文件

标准输入文件:stdin文件,文件描述符为0,Linux默认从stdin读取数据

标准输出文件:stdout文件,文件描述符为1,Linux默认向stdout写入标准信息

错误输出文件:stderr文件,文件描述符为2,Linux默认向stder中写入错误信息

输出重定向

输出重定向   将命令的输出结果写入到文件中(屏幕上就不显示输出结果了)

标准输出重定向:将本来要写入到标准文件stdout的数据转到我们指定的文件中

错误输出重定向:将本来要写入到错误文件stdout的数据转到我们指定的文件中 

  >     清空写入    将命令的标准输出结果写入到某个文件中(此文件的原始数据清空)

  >>    追加写入    将命令的标准输出结果写入到某个文件中(保留此文件的原始数据)

  2>    错误清空写入 将命令的报错结果写入到文件中(原始文件清空)

  2>>   错误追加写入 将命令的报错结果写入到文件中(保留原始文件数据)

  &>    不区分输出结果时错误的还是标准的,全部清空写入

  &>>   全部追加写入

 

错误重定向输出的作用

当我们在跑脚本时,这个脚本要安装多个安装包,通过将错误信息写入到文件中,就可以了解到哪些安装包在安装时出现了错误

输入重定向

输入重定向  将文件里面的内容作为命令的输入执行命令(用到的概率较小)

本来的命令需要从标准输入文件stdin中获取,现在转化为从文件中获取

命令 <  文件          将文件作为命令的标准输入

命令 << 分界符        从键盘中读入数据作为命令的标准输入,直到遇到分界符才停止

命令 < 文件1 > 文件2 将文件1作为命令的输入,然后将命令的执行结果写入到文件2

例子

wc -l < 文件名  直接将文件中的内容导入到命令

与wc -l 文件名相比,wc -l读取了文件名,wc -l < 没有读取文件名,直接读取了文件内容

<表示是文件直接把文件内容交给命令

 

cat << EOF >> 文件名   可以持续的往文件中写入内容,直到输入了EOF

注意:如果命令没有输入,则输入重定向对此命令是没有意义的


管道符 将命令与命令互动起来

管道符(|)可以将前面命令的输入结果传递给后面的命令进行二次处理

命令A | 命令B            将命令A的输出结果给到命令B执行

命令A | 命令B | 命令C   将命令A的输出结果给到命令B执行,执行结果再给到命令C执行

例子

grep /bin/bash /etc/passwd | wc -l        查看多少用户能够正常登录服务器

grep /bin/bash /etc/passwd | cut -d : -f 1  能够正常登录服务器的用户有哪些

 如果用户的登录终端是 /bin/bash,则说明这个用户能够正常使用这个账户登录服务器

 如果用户的登录终端是/sbin/nologin ,则说明这个用户不能够正常登录登录到服务器(只能管理某些服务)

echo redhat | passwd 用户名 将echo输出的结果作为linuxprobe的用户的密码

   并不是所有的命令都支持接收标输入的(passwd需要结合参数才可以接收标准输入)

   passswd  --stdin  通过接收标准输入的形式接收密码

echo redhat | passwd --stdin 用户名

 

管道符和重定向结合

cat abc.txt | tr [a-z] [A-Z] > 123.txt 

将abc文件中的小写字母替换为大写字母,并将修改后的内容写入到123文件中

 

http://www.lryc.cn/news/4252.html

相关文章:

  • 【C++】多态
  • 分布式项目-品牌管理(5、6)
  • 自定义ESLint规则开发与使用
  • 【JavaScript】35_包装类与垃圾回收机制
  • 【CS224W】(task3)NetworkX工具包实践
  • ansible的模块详解
  • 《Terraform 101 从入门到实践》 Functions函数
  • 使用kubeadm快速部署一个K8s集群
  • 初探富文本之CRDT协同算法
  • Dubbo和Zookeeper集成分布式系统快速入门
  • 大数据工具Maxwell的使用
  • freesurfer如何将组模板投影到个体空间——如投影 Schaefer2018 到个体空间
  • Matlab傅里叶谱方法求解二维波动方程
  • 【深度学习】卷积神经网络
  • 【C++】六个默认成员函数——取地址重载,const成员函数
  • Win11浏览器无法上网,秒杀网上99.9%教程—亲测完胜
  • Vulkan Graphics pipeline Dynamic State(图形管线之动态状态)
  • CSP-《I‘m stuck!》-感悟
  • [实践篇]13.19 Qnx进程管理slm学习笔记(二)
  • (免费分享)基于 SpringBoot 的高校宿舍管理系统带论文
  • 运筹系列78:cbc使用介绍
  • RocketMQ底层源码解析——事务消息的实现
  • 学习802.11之MAC帧格式(一篇就够!)
  • 使用阿里云IoT Studio建立物模型可视化界面
  • HBase 复习 ---- chapter07
  • 跟我一起写Makefile--个人总结
  • 设计模式之为什么要学好设计模式
  • 大数据时代的小数据神器 - asqlcell
  • 【呕心沥血】整理全栈自动化测试技术(三):如何编写技术方案
  • 67. 二进制求和