Bourne Shell编程指南:基础与实践

需积分: 18 1 下载量 92 浏览量 更新于2024-09-18 收藏 563KB PDF 举报
"Bourne Shell及shell编程" 本文是大连理工大学LINUX选修课的一份讲义,由作者何斌武编撰,详细介绍了Bourne Shell的基础知识和shell编程。该资料欢迎非商业性的分享,但要求保留版权声明。 Bourne Shell是UNIX系统中最早且广泛使用的命令解释器之一,由Stephen Bourne在Bell实验室开发。它提供了许多基础特性和实用功能,是后来许多其他shell(如bash)的基础。Bourne Shell的学习主要包括以下几个方面: 1. **Shell基础**:这是所有shell编程的起点,包括对shell的基本理解,如何启动和使用它。在终端中,shell通常通过提示符(如$)来表示,用户可以通过输入命令与系统交互。 2. **环境**:shell的环境设置对用户的工作环境有重大影响,如通过`/etc/passwd`文件和`/etc/profile`以及`$HOME/.profile`文件来定制用户的登录环境。`$HOME`变量表示用户的主目录。 3. **选项**:Bourne Shell提供了多种选项来改变其行为,例如: - `-n`用于检查脚本的语法,但不执行。 - `-x`开启命令行追踪,方便调试。 - `-i`启用交互模式,允许用户与shell直接交互。 - `-e`使得未定义变量的使用成为错误,有助于避免程序错误。 - `-s`从标准输入读取命令,等等。这些选项可以在启动shell时使用,但某些选项可能互斥,如 `-e` 和 `-i`。 4. **特殊字符**:在shell编程中,有一些特殊的字符,如`$`用于引用变量,`#`用于注释,`&`用于后台运行,`;`用于分隔命令等。 5. **Shell变量**:分为用户定义变量、环境变量和位置变量(shell参数)。环境变量对子进程可见,位置变量则包含命令行参数。 6. **Shell Script编程**:包括编写脚本、条件测试(用于决定是否执行某段代码)和循环及重复控制(如`for`、`while`循环)。编写shell脚本可以实现自动化任务和批处理操作。 7. **Shell定制**:用户可以通过修改`.bashrc`或`.bash_profile`等文件来定制shell的行为,比如设置别名、环境变量等。 8. **受限Shell (Restricted Shell)**:在安全考虑下,`sh -r`或`/bin/rsh`提供了一个受限的环境,限制了用户执行某些操作,如改变工作目录、修改PATH或进行输出重定向。 这份讲义对于想要学习Bourne Shell和shell编程的初学者来说是一份宝贵的资源,它详细阐述了shell的核心概念,并提供了实践示例,帮助读者深入理解和应用shell编程。