1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章shell

电子商务 网络操作系统基础 第7章 shell基础及程序设计 本章任务 了解shell基础知识 熟悉shell功能特点 掌握环境变量设置 掌握shell脚本语言 7.1 shell概述 7.1.1 shell的基本概念 概念: shell是命令语言、命令解释程序及程序设计语言的统称,作为Linux系统的外壳,为用户提供了使用操作系统的接口。 关键点: 不仅是命令和命令解释程序,更是一种高级编辑语言。 是Linux系统中的一个重要组成部分,是用户和系统交互的界面。 shell的位置: 有一些命令(如cd)是包含在shell内部的,还有一些命令(如cp)是在文件系统单独目录下的独立程序 shell首先检查命令是否是内部命令,如果不是再检查是否是单独程序。如果是其中一种,则该内部命令或程序就被传递给系统内核;若都不是,则返回一条错误信息 用户登录后,将会选择一个shell作为交互进程 cat /etc/passwd shell下可以继续调用shell 7.1.2 shell的特点和类型 1.shell的特点 组合新命令很简单 提供了文件名扩展字符 可直接使用shell的内置命令 允许灵活地使用数据流 结构化的程序模块 提供了在后台()执行命令 提供了可配置的环境 提供了高级命令语言 2.常用shell类型(填空、选择) Bourne shell(简称sh) Bourne Shell是ATT Bell实验室的 Steven Bourne为ATT的Unix开发的,它是Unix的默认shell,也是其他shell的开发基础。sh在编程方面相当优秀,但在交互方面是其弱点。 C—shell(简称csh) C Shell是加州伯克利大学的Bill Joy为BSD Unix开发的,它的语法与C语言很相似,并且提供了用户交互功能。 Korn shell(简称ksh) Korn Shell是ATT Bell实验室的David Korn开发的,集合和sh和csh的优点,并与sh向下完全兼容。 Bourne Again shell(简称bash) Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个shell,它是Linux系统中一个默认的shell。 继承了csh和ksh的优点,并与sh兼容。 附:bash中的一些小技巧 历史命令查找 ↑↓ 命令和文件名补全 Tab 别名设置 alias 查询指令类型 type 通配符 ? * 枚举字符[ ] 转义符 \ 练习: 说说下面字符串的含义: *log* [ab-dm] [ab-dm]? /root/??? 7.1.2 shell脚本的建立和执行 shell脚本(shell script): shell程序可以存放在文件中,这种被shell解释执行的命令文件称为shell脚本。 1.建立shell脚本 建立shell脚本的步骤同建立普通文本文件的方式相同,利用vi编辑器进行程序录入和编辑加工。 如: $ vi ex1 2.执行shell脚本的方式(看例子) (1)以脚本名作为参数。其一般形式是: $ bash 脚本名 [参数] 如: $ bash ex2/home/mengqc/zhangsan 或:$ · 脚本名 [参数]--以目前shell执行一个shell (2)将shell脚本的权限设置为可执行,然后在提示符下直接执行它。 $ chmod a+x ex2 --设置为所有用户都有执行权限 $ PATH=$PATH:? --将其目录添加到命令搜索路径 $ ex2 --执行ex2 或 $ ?/ex2 --未将目录添加到命令搜索路径的执行方法 3.shell程序示例 【例7.1】 由四条简单命令组成的shell程序(文件名为exam1)。 【例7.2】 带有控制结构的shell程序(文件名为exam2)。 #!/bin/bash # If no arguments, then listing the current directory. # Otherwise, listing each subdirectory. if test $# = 0 then ls . else for i

您可能关注的文档

文档评论(0)

didala + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档