- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BASH 使 用 及 编 程
马玉军
南阳国际IT认证中心培训专用
本章要求:能编写简单的shell脚本程序完成工作,看懂并能修改系统已有程序。
前言
Linux/UNIX 有各种shell提供给用户,它们是sh、bash、tcsh、pdksh、zsh、ash等。但是有几个标准的shell可在几乎所有的linux版本上使用(系统支持的shell可以从/etc/shells文件得到)。本章中我们将学习到以下内容:
·什么是shell·Linux系统常用的shell·bash——Linux默认shell的使用·Bash shell编程初步·shell编程举例
本章主要介绍bash(Bourne Again Shell)的使用及其编程,Linux默认的shell他是bsh的增强版本(unix中经常使用)。
什么是shell
shell是Linux/UNIX系统的核心和用户相互交流的一个程序。Shell的作用是对各种命令翻译并传递给内核(kernel)执行。shell有它自己内置的shell命令——内部命令(单独的命令文件成为外部命令,在dos中shell为也有其内部命令),shell和Linux核心的关系用下图表示:
shell对命令的翻译过程如下: 用户输入命令——shell程序(将命令翻译成机器码)——操作系统内核执行命令shell要检查命令是否为内部命令如果不是则按照搜索路径($PATH)查找,若找不到则提示:“command not found”信息。执行过程如下图:
Shell具有很强的编程能力,类似于MS-DOS中的批处理,但功能非常强大。它几乎具有其他高级语言的所有特性,如循环、函数、变量等。
Linux系统常用的shell
在linux/UNIX系统中有多种命令解释器——shell。最基本的有三种:B shell(sh),C shell(csh)和 Korn shell(ksh),有各自的优缺点:
Bourne shell是由Steve Bourn编写的,它是最初的UNIX shell,具有很强的编程能力,几乎所有的UNIX系统中都有Bourne shell,但它在人机交互方面不及其它几种shell。Bourne shell为 /bin/sh程序。C shell是由Bill Joy编写的,和c语言很相似,所以叫作C shell。它在人机交互方面强于 Bourne shell,支持在Bourne shell中所没有的许多特性,如对命令进行编辑、保留命令(history)和为命令起别名等。C shell 为/bin/csh程序。Korn shell是由Dave Korn编写的。它具有C shell 的所有特性,却使用Bourne shell的语法。Ksh在人机互换和编程方面功能都较强。Ksh为/bin/ksh程序。
bash(Bourne Again Shell)是Bourne shell的增强版本。Bash完全兼容Bourne shell,而且具有C shell和 Korn shell 的优点。Bash有很好的弹性、强有力的编程界面和人机交互功能。
Linux下系统默认的shell为bash,在/etc/shells中列出了系统已经安装的shell
下面详细讲述bash的使用
bash——Linux默认shell的使用
命令行补齐功能
输入命令的任何时刻,都可以按Tab键。bash将会试图补全此时键入的部分命令。如果不能补全,bash就会用声音提醒它需要更多的信息,这时再按Tab键则列出所有可能的选项。
使用通配符
Linux支持在查找文件和字符时使用通配符,bash支持三种通配符 1:“*”表示任意和所有的字符,可表示任何的字符序列。如:#cp * /tmp(将拷贝当前目录下的所有不是以“.”开头的文件到/tmp目录) 2:通配符“?”代表一个字符。如当前目录下有文件file1.doc、file2.doc、file1c.doc、file2s.doc和file2q.doc,执行如下命令将拷贝file1.doc file2.doc文件到/tmp目录 # cp file?.doc /tmp因为“?”只代表一个字符,可以用ls *.???来产生一个扩展名为三个字符的文件列表。 3:通配符[…],如用户想选择文件file1.doc,file2.doc和file3.doc,但不选file4.doc,可用file[123]作为文件的通配符。还可以在[ ]中括入一个字符范围来代表一个字符。假设有名为redflag.1,redflag.2 ,redflag.3和redflag.4的四个文件,把前三个文件移动到/tmp下,可用:# mv redflag.[1-3]? /tmp
??
您可能关注的文档
最近下载
- NB/T 47055-2017 锅炉涂装和包装通用技术条件 国家行业规范.pdf VIP
- 固体废物热值测定实验.doc VIP
- 成都市树德实验中学初一新生分班(摸底)数学模拟考试(含答案).docx VIP
- 成都电子科技大学实验中学语文新初一均衡分班试卷含答案.doc VIP
- 成都电子科技大学实验中学新初一分班语文试卷含答案.doc VIP
- 成都电子科技大学实验中学新初一分班语文试卷.doc VIP
- 成都电子科技大学实验中学新初一均衡分班语文试卷.doc VIP
- 成都电子科技大学实验中学新初一分班数学试卷含答案.doc
- 14J936变形缝建筑构造.pptx VIP
- ZrO2-III 液晶显示氧化锆氧量分析仪说明书.pdf VIP
文档评论(0)