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语言...
本书《UNIX和shell程序设计权威教程》深入浅出地介绍了这两个主题,为读者提供了全面而详细的学习资源。 UNIX系统是一种多用户、多任务的操作系统,它的设计哲学强调简洁和模块化,使得它成为开发高效软件的平台。...
《UNIX和Shell程序设计权威教程》是一本深入探讨UNIX操作系统及其Shell编程的宝贵资源。这本书旨在帮助读者理解和掌握UNIX系统的基础以及如何利用Shell脚本来自动化日常任务,提升工作效率。UNIX是一种强大的多用户...
- **重定向和管道**:是Shell编程中的核心特性。 - **重定向**:可以改变命令的标准输入、输出和错误输出。例如,`>`用于覆盖输出,`2>`用于覆盖错误输出,`>>`用于追加输出。例如: ```bash ls -l > lsoutput....
在本实验报告中,我们将深入探讨“北邮Linux开发环境”的相关知识,特别是Shell管道(Pipe)和重定向(Redirection)功能的实现,以及如何利用这些工具生成TCP活动状况报告。这一实验属于北京邮电大学计算机科学与...
Linux程序设计课程大作业,用C语言实现了一个shell程序的基本功能,还包括管道,重定向,后台执行等功能.zip项目资源具有较高的学习借鉴价值,也可直接拿来修改复现。可以在这些基础上学习借鉴进行修改和扩展,实现...
随着对`case`和`if`语句的熟练运用,你还可以学习更多高级主题,如函数定义、循环结构(`for`和`while`)、变量赋值与操作、重定向和管道等。熟悉这些后,你将能够编写出功能强大、自动化程度高的Shell脚本,提升...
本书《Unix和Shell程序设计权威教程》深入浅出地介绍了这两个主题,为学习者提供了丰富的知识资源。 Unix操作系统是最早由Ken Thompson、Dennis Ritchie等人在贝尔实验室开发的一种多用户、多任务的操作系统。它以...
5.1(30分)使用任何一种程序设计语言实现一个shell 程序的基本功能。 shell 或者命令行解释器是操作系统中最基本的用户接口。写一个简单的shell 程序——myshell,它具有以下属性: (一) 这个shell 程序必须支持...
本资料包“shell程序设计范例”显然是为了操作系统课程设计而准备的,包含了一些示例程序,帮助学习者掌握shell编程的基础和技巧。 首先,我们要理解什么是Shell脚本。Shell脚本是一系列命令的集合,这些命令可以一...
本教程将深入探讨如何进行基于Linux的简单Shell程序设计,让我们一起探索这个主题。 一、Shell脚本基础 1. 文件开头:在编写Shell脚本时,我们通常会在文件开头添加一行`#!/bin/bash`,告诉系统使用Bash shell来...
1. **管道与重定向**:通过实验实例理解这两个概念,将它们应用于Shell程序中,实现数据流的传递和输出重定向。 2. **变量与特殊符号**:学习使用变量存储信息,以及特殊符号如通配符、重定向符号等在Shell脚本中的...
【Shell程序设计1】章节主要涉及的是Shell编程的基础知识,包括Shell的作用、基本功能、分类以及执行流程。Shell是用户与操作系统交互的重要接口,它是一个命令解释器,负责解析用户的输入,执行相应的命令,并处理I...
该程序不仅需要实现Shell的基础交互功能,还要支持后台进程管理、多行命令处理以及输入输出重定向和管道功能。 #### 二、核心功能实现 ##### 1. Shell基本功能 - **打印提示符**:每当程序启动或用户执行完一条...
**Shell程序设计** Shell是Linux操作系统中的一个命令解释器,它是用户与系统交互的主要界面。在Linux环境中,Shell不仅用于执行命令,还可以编写脚本,实现自动化任务处理。本实验旨在帮助学生深入理解和掌握Shell...
该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载...
《Unix和Shell程序设计权威教程》是一本深入探讨Unix操作系统及其Shell编程的宝贵资源。这本书旨在帮助读者理解和掌握Unix环境下的高效工作方式,以及利用Shell脚本自动化日常任务。Unix系统以其稳定、强大和可扩展...
Shell不仅是一个命令执行环境,还是一个强大的编程语言,允许用户编写脚本程序,这就是所谓的Shell程序设计。本章节将深入探讨Shell的基本概念以及如何进行控制结构的设计。 首先,我们需要理解什么是Shell。在...
除此之外,Shell编程还涉及变量、条件语句、循环结构、函数定义、重定向和管道等多种复杂概念。学习Shell编程不仅可以提高系统管理效率,也是自动化任务和脚本编写的重要技能。通过深入理解和实践,可以灵活运用...