Shell脚本教程:掌握命令、重定向与变量

需积分: 3 1 下载量 180 浏览量 更新于2024-09-13 收藏 57KB DOC 举报
"Shell命令脚本教程" Shell脚本是一种强大的工具,用于自动化Linux和Unix系统中的任务。这个教程涵盖了Shell脚本的核心概念,包括重定向、管道、变量以及标准输入输出。 首先,Shell有多种类型,如Bsh、Csh、Ksh、Bash和Zsh。Bash是最常用的一种,也是大多数Linux发行版的默认Shell。你可以通过`/etc/shells`文件了解系统的Shell程序路径。要切换Shell环境,可以直接运行你想要使用的Shell程序,然后使用`Exit`退出或按`Ctrl+D`。如果要永久改变用户的登录Shell,可以使用`usermod -s /bin/bash tomcat`命令。 Shell提供了一些方便的功能。例如,你可以使用键盘上的上箭头调用历史命令。通过在命令前加上`!`和部分命令的开头字符,如`!user`,可以执行最近一次以该字符开头的命令。`history`命令则能显示历史命令记录,通过`!`加序号(如`!80`)可以执行特定历史记录中的命令。可以在`/etc/profile`或`~/.bash_profile`文件中设置历史命令记录的条数,比如`HISTSIZE=200`。 Shell还支持重定向,这涉及到标准输入(STDIN,编号0)、标准输出(STDOUT,编号1)和标准错误(STDERR,编号2)。输出重定向可以用`>`或`>>`实现,前者覆盖,后者追加。例如,`ls > list.txt`会把当前目录的内容写入到list.txt文件,而`id >> list.txt`则会把当前用户的ID追加到该文件。输入重定向用`<`表示,如`passwd --stdin tomcat < pass.txt`,它会从pass.txt文件读取密码来设置用户tomcat的密码。 标准错误的重定向通常用`2>`完成,如`ls -my 2> error.log`会把错误信息发送到error.log文件。管道`|`允许你连接命令,使得一个命令的输出成为另一个命令的输入。 Shell变量是脚本编程的关键。变量分为自定义变量、环境变量、预定义变量和位置变量。自定义变量仅在当前Shell环境中有效,通过`变量名=变量值`设定,用`echo $变量名`查看。双引号允许引用其他变量,单引号会屏蔽特殊符号,反引号则用来获取命令的输出结果。`read`命令可以从终端读取输入,`-p`选项可设置提示信息。`export`用于设置全局变量,可供子Shell或其他进程使用;而`unset`则用于清除自定义变量。 这个教程的7课内容还包括了更多的细节,如条件判断、循环结构、函数等,这些都是编写复杂Shell脚本不可或缺的部分。学习和掌握这些知识点,将使你在Linux系统管理和自动化任务中更加得心应手。