热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux基本功八:输入输出重定向及管道

1、什么是过滤器管道使用竖线(|)将两个命令隔开,竖线左边命令的输出就会作为竖线右边命令的输入。连续使用竖线表示第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,
1、什么是过滤器
   管道使用竖线(|)将两个命令隔开,竖线左边命令的输出就会作为竖线右边命令的输入。连续使用竖线表示第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
    能够接受数据,过滤(处理或筛选)后再输出的工具,称为过滤器。
 linux的工具/命令分为三大类:
 a、过滤器  cat ls  输入输出重定向就是针对过滤器来说的。
 b、编辑器
 c、交互式的工具  system-config-network-tui

2、什么是标准输入输出
 (1)输出重定向
  ls > /tmp/aa
  ls /ttt 2> /tmp/aa  对于aa文件先清空文件,再输入到该文件;
  创建文件:
  > file   如果file在,则清空该文件;如果不在,则创建该文件;把正确的文件重定向过去;
  2>   清空文件;把错误的文件重定向过去;
  &> 把正确和错误的都重定向过去
  > 2>&1将错误的,正确的都重定向到某个文件;
  >>  追加
  > a 
  cat >a   输入某个文件;
 (2)创建某个文件四种方法:
   >
   touch  file
   vim file
   gedit 
  find / -nmae shrek >tmp/findfile 2>&1  将正确的错误的消息都重定向到/tmp/findfile文件里。
find / -name shrek &> /tmp/findfile 将正确的错误的消息都重定向到/tmp/findfile文件里。
echo aaa > file 将aaa写入文件
 (3)输入重定向:
cat   tr "a-z" "A-Z"   cat <  cat <  cat > a.txt <  <<让系统将一次键盘的全部输入,先送入虚拟的‘当前文档’,再一次性输入追加到文档尾部

  (4)怎样统计文件夹里有多少个文件:
  ls /etc | wc -l
  看有多少个文件夹 d - l b c p s 
  ls /etc/ -l | grep '^d' | wc -l
  看有多少个软连接,并把结果放入bb文件中:
  ls /etc/ -l | grep '^1' | tee bb | wc -l
ls /etc/ -l | grep '^1' | tee /dev/pts/2 | wc -l
  统计/dev下有多少个文件 
  ls /dev | wc -l
  显示所有文件大小,并按从大到小排列
  du -a | sort -n -r 
  -n 按数字排序
  -r 反向排序
3、怎样改变标准输出
4、输出的种类
5、改变输入
6、管道
   有时候,我们可以把两个命令连起来使用,一个命令的输出作为另一个命令的输入,这就叫做管道。为了建立管道,需要在两个命令之间使用竖线(|)连接。 管道是Linux进程之间一种重要的通信机制;除了管道,还有共享内存、消息队列、信号、套接字(socket) 等进程通信机制。
 cat > a.txt <
 #!/bin/bash
cat > a.txt < this is test!
EEE
小游戏:加密文档:
 文字加密命令:
tr '"a-m""n-z""A-M""N-Z"' '"A-M""N-Z""n-z""a-m"' 
 运行结果:I love you!
                    V YBIR LBH
 tr '"a-m""n-z""A-M""N-Z"' '"A-M""N-Z""n-z""a-m"'  tr '"a-m""n-z""A-M""N-Z"' '"A-M""N-Z""n-z""a-m"' abc.txt
程序员的浪漫史,加密发送邮件: 
tr '"a-m""n-z""A-M""N-Z"' '"A-M""N-Z""n-z""a-m"' 


推荐阅读
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 整理于2020年10月下旬:总结过去,展望未来Itistoughtodayandtomorrowwillbetougher.butthedayaftertomorrowisbeau ... [详细]
  • 在Ubuntu 16.10 (x86) 上安装 WordPress 4.7.115
    本文介绍如何在Ubuntu 16.10 (x86) 系统上安装WordPress 4.7.115,包括下载、解压、配置等步骤,确保安装过程顺利进行。 ... [详细]
  • 构建个人多节点Linux环境(CodeSheep)
    本文介绍如何通过虚拟机搭建一个多节点的Linux环境,这对于学习、实验和项目部署都具有重要意义。文章详细讲解了网络IP设置、节点间通信等关键步骤。 ... [详细]
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • 本文介绍了编程语言的基本分类,包括机器语言、汇编语言和高级语言的特点及其优缺点。随后详细讲解了Python解释器的安装与配置方法,并探讨了Python变量的定义、使用及内存管理机制。 ... [详细]
  • vsftpd配置(虚拟用户、匿名用户登录)
    一、ftp服务搭建(一)概述1.ftp连接及传输模式(1)控制连接TCP21,用于发送FTP命令信息 ... [详细]
  • Linux笔记:JDK安装与环境变量配置
    本文详细介绍了在Linux系统中安装JDK并配置环境变量的步骤,帮助读者顺利完成Java开发环境的搭建。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • Vim 编辑器功能强大,但其默认的配色方案往往不尽如人意,尤其是注释颜色为蓝色时,对眼睛极为不友好。为了提升编程体验,自定义配色方案显得尤为重要。通过合理调整颜色,不仅可以减轻视觉疲劳,还能显著提高编码效率和兴趣。 ... [详细]
author-avatar
流浪的牛仔2011Ting_883
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有