BASH使用及编程.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 ??

文档评论(0)

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

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

1亿VIP精品文档

相关文档