`
memorymyann
  • 浏览: 266341 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

shell 程序设计,管道和重定向

阅读更多

shell编程的缺点:1.移植性差 2.效率低。优点:简单,方便。他非常用来适合让我们完成一些自动的,重复性的,但要求效率不高,移植性不强的任务。比如每周定时对你的linux系统垃圾的清理任务就可以交给SHELL来完成。

 

谈到shell首先必然想到的是2个重要的东西,输入输出重定向和管道。

 

输入输出重定向:程序都有输入和输出(2者都没有,这个程序就没什么太大的意义),一般来说我们输入输出的目的地都是文件,有人提出疑问,我们最常用的输出如显示器就是个外部设备,不是一个文件。linux对文件的定义是:能够产生和销毁信息的东西。显示器能销毁信息,所以它是一个文件。我们常说0号是标准输入,1号是标准输出,2号是标准错误输出。其真正意义是在linux的内核中体现的,没一个进程都会有一个自己的文件列表,这是一个数组,这个数组中没一个元素代表一个文件,其中0,1,2这3个元素就是我们前面所说的对应的3个文件。重定向就是把信息重定向到另一个文件,所以>后面应该接的是linux意义上的文件。kill 100000 > out.txt 2>wrong.txt这个语句意思就是把这个命令执行后,首先把标准输出放到out.txt,然后错误输出放到 wrong.txt。

 

管道:底层实现在我linux里面谈到过是 pipe函数,在shell中是|符号,他意思是把前一个指令的输出参数作为后一个指令的输入参数,这些在 shell 编程中都是非常好用的东西。比如你想在屏幕上显示一个目录下所有文件,但这个目录下的文件非常多,你希望分页显示,那么你可以使用 ls -al | more质量。这里有个关键,more不是在ls -al执行完后再开始执行的,这2个进程是同时开始运行的。但我曾经在pipe函数里面介绍过,pipe会自动协调管道2端进程对管道资源的互斥共享,所以不要以为more是在 ls后开始运行,这种想法会导致你的一些错误。

 

分享到:
评论

相关推荐

    基于C语言实现一个shell 程序的基本功能项目源码+详细项目说明(含管道、重定向、后台执行等功能).zip

    基于C语言实现一个shell 程序的基本功能项目源码+详细项目说明(含管道、重定向、后台执行等功能).zip基于C语言实现一个shell 程序的基本功能项目源码+详细项目说明(含管道、重定向、后台执行等功能).zip基于C语言...

    北邮linux开发环境实验报告

    是北京邮电大学计算机科学与技术大三选修课,linux开发环境实验报告 Shell管道和重定向功能的实现 生成TCP活动状况报告

    Linux程序设计课程大作业,用C语言实现了一个shell程序的基本功能,还包括管道,重定向,后台执行等功能.zip

    Linux程序设计课程大作业,用C语言实现了一个shell程序的基本功能,还包括管道,重定向,后台执行等功能.zip项目资源具有较高的学习借鉴价值,也可直接拿来修改复现。可以在这些基础上学习借鉴进行修改和扩展,实现...

    C语言实现的一个shell程序的基本功能,还包括管道,重定向,后台执行等功能

    5.1(30分)使用任何一种程序设计语言实现一个shell 程序的基本功能。 shell 或者命令行解释器是操作系统中最基本的用户接口。写一个简单的shell 程序——myshell,它具有以下属性: (一) 这个shell 程序必须支持...

    Linux程序设计课程大作业,用C语言实现了一个shell程序的基本功能,还包括管道,重定向等功能+源代码+文档说明+实验报告

    该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载...

    shell解释器的程序设计代码

    实现shell的内部与外部命令 实现前台与后台的作业功能 实现管道与重定向的功能

    Linux程序设计中文第4版.part2

    第2章 shell程序设计  2.1 为什么使用shell编程  2.2 一点哲学  2.3 什么是shell  2.4 管道和重定向  2.4.1 重定向输出  2.4.2 重定向输入  2.4.3 管道  2.5 作为程序设计语言的shell  ...

    Linux程序设计中文第4版.part1

    第2章 shell程序设计  2.1 为什么使用shell编程  2.2 一点哲学  2.3 什么是shell  2.4 管道和重定向  2.4.1 重定向输出  2.4.2 重定向输入  2.4.3 管道  2.5 作为程序设计语言的shell  2.5.1 ...

    Linux程序设计中文第4版.part3

    第2章 shell程序设计  2.1 为什么使用shell编程  2.2 一点哲学  2.3 什么是shell  2.4 管道和重定向  2.4.1 重定向输出  2.4.2 重定向输入  2.4.3 管道  2.5 作为程序设计语言的shell  ...

    linux作业:编写shell程序

    应用UNIX的fork()等系统调用,编写一个c程序具有以下功能: a) 实现Shell的基本功能,包括有:打印提示符;接受和分析命令行(滤去无效的...’并处理之) d)应用 dup(), pipe()系统调用具有输入输出重定向以及管道功能

    C语言实现的一个shell程序源码以及PDF版报告

    ZJU 2020年短学期Linux程序设计课程大作业,用C语言实现了一个shell程序的基本功能,还包括管道,重定向,后台执行等功能

    模拟shell命令解释器操作系统课程设计报告

    模拟shell命令解释器操作系统课程设计报告 在Linux/Unix上用C语言开发一个下命令解释程序,...支持管道和输入输出重定向;支持前后台作业,提供作业控制功能,包括打印作业清单,改变作业的状态,以及控制作业的运行情况。

    自己编写的shell程序

    本程序为一个简易的shell程序,实现在myshell.c中。功能包括:(1)后台运行命令;(2)输入输出重定向;(3)执行管道命令;(4)执行多个命令等。 另附详细设计文档、用户手册、README等。

    shell程序实验详解

     使用管道和输入输出重定向。  支持前后台作业,提供作业控制功能,包括打印作业的清单,改变当前运行作业的前台/后台状态,以及控制作业的挂起、中止和继续运行。 除此之外,在这个实验中还须做到:  使用...

    linux实验——Shell编程.doc

    ● 掌握Shell环境变量、管道、输入输出重定向的使用方法。 ● 熟悉Shell程序设计。 练习Shell程序设计方法及Shell环境变量、管道、输入输出重定向的使用方法

    shell命令解释模拟(课设)

    要求在Linux/Unix上用C语言开发一个下命令解释...3、使用管道和输入输出重定向; 4、支持前后台作业,提供作业控制功能,包括打印作业的清单,改变当前运行作业的前/后台状态,以及控制作业的挂起、中止与继续运行;

    Linux程序设计 第4版.haozip01

    第2章 shell程序设计 15 2.1 为什么使用shell编程 15 2.2 一点哲学 16 2.3 什么是shell 16 2.4 管道和重定向 18 2.4.1 重定向输出 18 2.4.2 重定向输入 19 .2.4.3 管道 19 2.5 作为程序设计语言的shell 20 ...

    Linux程序设计 第4版.haozip02

    第2章 shell程序设计 15 2.1 为什么使用shell编程 15 2.2 一点哲学 16 2.3 什么是shell 16 2.4 管道和重定向 18 2.4.1 重定向输出 18 2.4.2 重定向输入 19 .2.4.3 管道 19 2.5 作为程序设计语言的shell 20 ...

    ZJU 2020年短学期Linux程序设计课程大作业,

    ZJU 2020年短学期Linux程序设计课程大作业,用C语言实现了一个shell程序的基本功能,还包括管道,重定向,后台执行等功能

    Shell命令解释系统设计

    Shell命令解释系统设计 编写一个Shell命令解释程序 问题A: 实现一个能处理前后台运行命令的shell 问题B: 实现一个带有管道功能的shell 问题C: 实现一个能处理I/O重定向的shell 问题D: 实现一个能在一行上处理多条...

Global site tag (gtag.js) - Google Analytics