热门标签 | 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"' 


推荐阅读
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 本文详细介绍了 Linux 系统中用户、组和文件权限的设置方法,包括基本权限(读、写、执行)、特殊权限(SUID、SGID、Sticky Bit)以及相关配置文件的使用。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • 本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文详细探讨了Java命令行参数的概念、使用方法及在实际编程中的应用,包括如何通过命令行传递参数给Java程序,以及如何在Java程序中解析这些参数。 ... [详细]
  • 本文详细介绍了Linux内核中misc设备驱动框架的实现原理及应用方法,包括misc设备的基本概念、驱动框架的初始化过程、数据结构分析以及设备的注册与注销流程。 ... [详细]
  • 深入理解动态链接库及其应用
    本文将探讨动态链接库的基本概念,包括Windows下的动态链接库(DLL)和Linux下的共享库(Shared Library),并详细介绍如何在Linux环境中创建和使用这些库。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • 随着技术社区的发展,越来越多的技术爱好者选择通过撰写博客来分享自己的学习经验和项目进展。本文将介绍一个具体案例,即将一套原本运行于Windows平台的代码成功移植到Linux(Redhat)环境下的过程与挑战。 ... [详细]
  • 本文介绍如何在Linux系统中卸载预装的OpenJDK,安装指定版本的JDK 1.8,并配置防火墙以确保系统安全性和软件兼容性。 ... [详细]
  • 当您的笔记本电脑出现无法正常关机的情况时,可以通过多种方法进行排查和修复,包括检查声音文件、减少启动程序、调整电源管理设置等。 ... [详细]
  • 本文探讨了Java编程中MVC模式的优势与局限,以及如何利用Java开发一款基于鸟瞰视角的赛车游戏。 ... [详细]
  • 尽管PHP是一种强大且灵活的Web开发语言,但开发者在使用过程中常会陷入一些典型的陷阱。本文旨在列出PHP开发中最为常见的10种错误,并提供相应的预防建议。 ... [详细]
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社区 版权所有