BourneShell与Shell编程基础教程

需积分: 18 4 下载量 90 浏览量 更新于2024-07-28 收藏 563KB PDF 举报
"这篇文档是关于BourneShell和shell编程的教程,由大连理工大学的何斌武编写,强调了shell的基础、环境设置、选项、特殊字符、变量、脚本编程、条件测试、循环控制以及shell的定制。文档还提到了shell提示符、执行选项、受限shell(Restricted Shell)等概念,并提供了相关的UNIX命令使用建议。" 正文: BourneShell,通常简称为sh,是由Stephen Bourne在贝尔实验室开发的一种Unix shell。它是许多其他shell的基础,包括流行的Bash(Bourne-Again SHell)。BourneShell提供了丰富的命令解释和脚本编程功能,使得用户能够创建自动化任务和系统管理脚本。 **shell基础**: - **基本介绍**:shell作为用户与操作系统内核之间的接口,允许用户执行命令、编写脚本并控制操作系统。 - **环境**:shell的环境包含一系列的变量,如`$HOME`表示用户的主目录,`$PATH`指示可执行文件的搜索路径。 - **选项**:shell启动时可以接受各种选项,例如`-n`用于检查脚本的语法,`-x`开启命令行追踪,`-i`则表示交互式模式。 **特殊字符**: - 特殊字符如`$`, `#`, `&`, `;`, `|`, `<`, `>`等在shell中具有特定含义,例如`$`用于引用变量,`#`用于注释,`&`用于后台执行,`|`用于管道连接命令。 **shell变量**: - **用户定义变量**:用户可以自由定义变量,如`myvar=value`。 - **环境变量**:对所有子进程可见的变量,如`PATH`,可以通过`export`命令使变量变为环境变量。 - **位置变量(shell参数)**:`$0`表示脚本本身的名字,`$1`, `$2`, ... 代表脚本接收的参数。 **shell脚本编程**: - 脚本可以包含一系列命令和控制结构,如条件测试(`if`语句)、循环(`for`, `while`)以及函数定义。 - 条件测试允许基于不同条件执行不同的命令或代码块,例如`[ expression ]`或`[[ expression ]]`。 - 循环结构用于重复执行一组命令,`for`循环常用于遍历列表,`while`循环则根据条件持续执行。 **shell定制**: - 用户可以通过修改`~/.bashrc`或`~/.bash_profile`文件来定制shell的行为,比如设置别名、自定义函数、环境变量等。 - 受限制的shell(`sh -r`或`/bin/rsh`)限制了一些功能,比如禁止改变当前目录、修改PATH或进行重定向,以增加安全性。 此外,文档还提醒读者,shell的选项可以组合使用,但某些选项可能相互冲突,比如`-e`(错误终止)和`-i`(交互模式)。理解并熟练运用这些概念对于任何Linux或Unix用户来说都是至关重要的,尤其是系统管理员和脚本编写者,他们可以利用shell的强大功能实现自动化任务,提高工作效率。