linux入门基础——linux多命令协作:管道及重定向

linux多命令协作:管道及重定向

不要重复发明轮子

开源文化的核心理念之一就是不要重复发明轮子,很多的开源软件都是现有软件、代码、功能的重新组合,就好像通过零件装配机器一样,源代码的开发和共享让这成为了可能,同时也大大的提供了效率和生产力。

管道和重定向

在linux系统中,大多数命令都很简单,很少出现复杂功能的命令,每个命令往往只实现一个或者多个很简单的功能,可以通过将不同功能的命令组合在一起使用,以达到完成某个复杂功能的目的。组合命令的技术是管道和重定向。

linux中,几乎所有命令的返回数据都是纯文本的(因为命令都是运行在CLI下),而纯文本形式的数据又是绝大多数命令的输入格式,这就让多命令协作成为可能。

linux的命令为我们提供了管道和重定向机制,多命令协作就是通过管道和重定向完成的

管道和重定向

命令shell的数据流有以下定义:

名称              说明        编号    默认

STDIN         标准输入    0        键盘

STDOUT    标准输出    1        终端

STDERR    标准错误    2        终端

命令通过STDIN接收参数或数据,通过STDOUT输出结果或通过STDERR输出错误

管道和重定向

通过管道和重定向我们可以控制CLI的数据流

分类        关键字          定义                                                            例子

重定向    >        将标准输出重定向到文件(覆盖)              echo "linux" > outfile

ls > outfile

>>        将标准输出重定向到文件(追加)             echo "hello" >> outfile

date >> outfile

2>        将STDERR重定向到文件                           ls nothere 2> errout

2>&1    将STDERR与STDOUT相结合                  ls nothere 2>&1 allerrout

<        重定向STDIN                                                 grep liu < /etc/passwd

管道       |            将一个命令的STDOUT作为另一个          ls -l | grep google

命令的STDIN(这样可以完成多                          cat * | grep hello

命令的协作)                                                        (查找所有文档中包含hello的行)

管道和重定向

管道通常用来组合不同的命令,以实现一个复杂的功能。

重定向通常用来保存某命令的输出信息或者错误信息,可以用来记录执行结果或者保存错误信息到一个指定文件。

时间: 2024-12-23 22:36:14

linux入门基础——linux多命令协作:管道及重定向的相关文章

linux入门基础——linux软件管理RPM

因为linux入门基础是基于CentOS讲解的,讲的是CentOS上的软件包管理.ubuntu的软件包管理有这些:ubuntu软件包管理,包管理指南,ubuntu软件包管理. linux软件管理:RPM软件包管理 源代码形式 绝大多数开源软件都是直接以源代码形式发布 源代码一般会被打包成tar.gz的归档压缩文件 程序源代码需要手动编译成二进制形式之后才能够运行使用 源代码基本编译流程: 1 ./configure   检查编译环境.相关库文件以及配置参数并生成makefile 2 make  

Linux入门基础之grep命令详解及正则表达式

grep命令是linux下经常使用的命令之一,能根据用户指定的模式(pattern)对文本进行过滤,显示出匹配到的行.其命令格式为: grep [OPTIONS] PATTERN [FILE] 例如:我们要查找网卡0中配置的IP地址(该文件路径: /etc/sysconfig/network-scripts/ifcfg-eth0)---grep 'IPADDR' /etc/sysconfig/network-scripts/ifcfg-eth0 (注:alias grep='grep --col

linux入门基础——linux用户基础

linux用户基础 用户,组 当我们使用linux时,需要以一个用户的身份登入,一个进程也需要以一个用户的身份运行,用户限制使用者或者进程可以使用,不可以使用哪些资源. 用户的实质就是用来限制的. 组用来方便管理组织管理用户. 每个用户都拥有一个UserID,操作系统实际使用的是用户ID,而非用户名 每个用户属于一个主组,属于一个或者多个附属组 每个组拥有一个GroupID 每个进程以一个用户身份运行,并受该用户可访问的资源限制 每个可登陆用户拥有一个指定的shell. 用户 用户ID为32位,

linux入门基础——linux扩展权限

linux扩展权限 linux的默认权限和特殊权限 创建一个文件:touch filename1 查看新文件的默认权限:ls -l filename1 -rw-rw-r-- 1 liu liu 0  6月  7 09:33 file1 创建一个文件夹:mkdir filename2 查看新文件夹的默认权限L:ls -ld filename2 drwxrwxr-x 2 liu liu 4096  6月  7 09:34 file2 发现默认情况下文件夹比文件多了一个执行x权限,否则无法查看文件夹,

linux入门基础——linux命令行文本处理工具

linux命令行文本处理工具 文件浏览 cat        查看文件内容 more    以翻页形式查看文件内容(只能向下翻页) less    以翻页形式查看文件内容(可上下翻页) head    查看文件的开始10行(或指定行数) tail    查看文件的结束10行(或指定行数) 基于关键字搜索 命令grep用以基于关键字搜索文本 -i        在搜索的时忽略大小写 -n        显示结果所在行数 -v        输出不带关键字的行 -Ax        在输出的时候包含

linux入门基础——linux权限机制

linux权限机制 权限 权限是操作系统用来限制对资源访问的机制,权限一般分为读.写.执行.系统中每个文件都拥有特定的权限.所属用户以及所属组,通过这样的机制来限制哪些用户.哪些组可以对特定文件进行什么样的操作. 每个进程都以某个用户的身份运行,所以进程的权限与用户的权限一样,用户的权限越大,该进程拥有的权限越大. 文件权限 linux中,每个文件拥有三种权限: 权限        对文件的影响        对目录的影响 r读取    可读取文件内容    可列出目录的内容 w写入    可修

linux入门基础——linux软件管理基础:YUM

YUM软件管理 YUM(yellowdog Updater,modified)是一个RPM的前端程序,主要的目的是设计用来自动解决RPM的依赖关系问题.其特点如下: 自动解决依赖关系 可以对RPM进行分组,并基于组进行安装操作 引入仓库概念,支持多个仓库 配置简单 YUM引入了仓库的概念,仓库用来存放所有现有的rpm软件包,当使用rpm安装一个rpm软件时,如果存在依赖关系,会自动在仓库中查找依赖软件并安装 仓库可以是本地的,也可以通过http.ftp或者NFS形式使用集中的.统一的网络仓库.

linux入门基础——linux网络配置

linux网络配置 以太网连接 在linux中,以太网接口被命名为:eth0.eth1等,0.1代表网卡编号 通过lspci命令可以查看网卡硬件信息(如果是usb网卡,则需要使用lsusb命令) 命令ifconfig用来查看接口信息 ifconfig -a    查看所有接口 ifconfig 接口名字eth0    查看特定接口的信息 命令ifup.ifdown用来启用.禁用一个接口 ifup eth0 ifdown eth0 配置网络信息 使用setup命令可以配置网络信息 网络相关配置文件

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024