欢迎来到天天文库
浏览记录
ID:40231723
大小:763.00 KB
页数:114页
时间:2019-07-27
《第4章 Linux shell程序设计 (8学时)75800》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章Linuxshell程序设计主要内容shell的主要特点、类型、建立和执行的方式变量的分类、定义形式及引用规则各种控制语句的格式、功能及流程算术运算的使用函数的构成及使用规则内置命令4.1shell概述4.1.2shell程序示例【例4.1】由三条简单命令组成的shell程序(文件名为ex1)。$catex1datepwdcd..还有带有控制结构的shell程序,如if、for语句注意:PPT中凡是红色代码部分表示输入的命令,绿色代码表示输出的结果4.1.3shell脚本的建立和执行shell脚本的建立:利用编辑器录入和编辑,如vi通常用户不能直接
2、执行由文本编辑器建立的shell脚本,因为直接编辑生成的脚本文件没有“执行”权限,执行shell脚本的三种方式:(1)输入定向到shell脚本:用输入重定向方式让shell从给定文件中读入命令行,并进行相应处理;$bash<脚本名(红旗版本Linux系统的默认shell是bash)例如:$bash3、可以处理多种情况,可以用来进行程序调试;(3)将shell脚本的权限设置为可执行,然后在提示符下直接执行它。要用chmod命令将其设置为有“执行”权限$chmoda+xex2$PATH=$PATH:.$ex2说明:第二行将当前工作目录(以“.”表示)添加到命令搜索路径中;该脚本所在的目录应被包含在命令搜索路径(PATH)中;其中$PATH表示引用变量的值;“:”是在PATH变量中,不同路径之间的分隔符;【例4.1】4.2命令历史4.2.1显示历史命令bash提供了命令历史的功能,即:系统为每个用户维护一个命令历史文件,其默认目录是“~/.bash_his4、tory”;其中“~”表示注册用户的主目录;作用便于调用、修改和快捷执行命令,把全部或部分先前命令作为新命令,予以快捷执行。语法格式是:history[option][arg…]常用的选项有:-a在历史文件中添加“新”历史命令行。-n从历史文件中读取尚未读入的历史命令行,添加到当前历史清单中。-r读取历史文件的内容,并把它作为当前的历史命令。-w把当前的历史写到历史文件中,覆盖原有内容。-c删除历史清单中所有的项。如果不带任何参数,则history命令会显示历史命令的清单如果history后给出一个正整数(如50),就只显示历史表中的最后50行命令如果h5、istory后给出一个文件名,就把它作为历史文件名4.2.2执行历史命令执行历史命令是命令替换之一,它以字符“!”开头、后随1个或多个字符,用来定义用户所需的某种类型的历史命令,例:P87基本的事件指定字格式格式意义!!重复上一条命令,也就是“!-1”!n重新执行第n条历史命令!-n重新执行倒数第n条历史命令。!-1就等于!!!string重新执行以字符串string开头的最近的历史命令行。!?string?重新执行最近的、包含字符串string的那条历史命令!#到现在为止所输入的整个命令行$date一6月2621:35:18CST2006$pwd/ho6、me/mengqc$lsdesktopex1ex3exam15myfilem1$catm1echohello!$history1date2pwd3ls4catm15history$!2pwd/home/mengqc$!ccatm1echohello!$!?w?pwd/home/mengqc【例4.2】0-1.22’4.2.3用环境变量配置历史命令环境在默认方式下,bash使用用户主目录下面的文件“.bash_history”来保存命令历史注:以圆点“.”开头的文件名是隐含文件,默认方式下,使用ls命令不能把它们显示出来。用户可以通过重新为环境变量赋值,改7、变存放历史命令的文件$HISTFILE="/home/mengqc/.myhistory"还可以重新设定能够保留的命令个数$HISTSIZE=6004.4别名4.4.1定义别名一般语法格式为:alias[name[=value]]…如果没有指定参数,将在标准输出(屏幕)上显示别名清单定义别名时,往往用单引号将它代表的内容括起来,从而防止shell对其中的内容产生歧义,如:空格和特殊字符。优点:可以简化输入,方便用户,减少出错率例:$aliasalias..=‘cd..’aliascp=‘cp-i’注意:等号两边不能有空格例:$aliasll=‘ls-l’8、$my=/home/mengqc(定义变量并赋值)$ll$my引用变量值要用单引
3、可以处理多种情况,可以用来进行程序调试;(3)将shell脚本的权限设置为可执行,然后在提示符下直接执行它。要用chmod命令将其设置为有“执行”权限$chmoda+xex2$PATH=$PATH:.$ex2说明:第二行将当前工作目录(以“.”表示)添加到命令搜索路径中;该脚本所在的目录应被包含在命令搜索路径(PATH)中;其中$PATH表示引用变量的值;“:”是在PATH变量中,不同路径之间的分隔符;【例4.1】4.2命令历史4.2.1显示历史命令bash提供了命令历史的功能,即:系统为每个用户维护一个命令历史文件,其默认目录是“~/.bash_his
4、tory”;其中“~”表示注册用户的主目录;作用便于调用、修改和快捷执行命令,把全部或部分先前命令作为新命令,予以快捷执行。语法格式是:history[option][arg…]常用的选项有:-a在历史文件中添加“新”历史命令行。-n从历史文件中读取尚未读入的历史命令行,添加到当前历史清单中。-r读取历史文件的内容,并把它作为当前的历史命令。-w把当前的历史写到历史文件中,覆盖原有内容。-c删除历史清单中所有的项。如果不带任何参数,则history命令会显示历史命令的清单如果history后给出一个正整数(如50),就只显示历史表中的最后50行命令如果h
5、istory后给出一个文件名,就把它作为历史文件名4.2.2执行历史命令执行历史命令是命令替换之一,它以字符“!”开头、后随1个或多个字符,用来定义用户所需的某种类型的历史命令,例:P87基本的事件指定字格式格式意义!!重复上一条命令,也就是“!-1”!n重新执行第n条历史命令!-n重新执行倒数第n条历史命令。!-1就等于!!!string重新执行以字符串string开头的最近的历史命令行。!?string?重新执行最近的、包含字符串string的那条历史命令!#到现在为止所输入的整个命令行$date一6月2621:35:18CST2006$pwd/ho
6、me/mengqc$lsdesktopex1ex3exam15myfilem1$catm1echohello!$history1date2pwd3ls4catm15history$!2pwd/home/mengqc$!ccatm1echohello!$!?w?pwd/home/mengqc【例4.2】0-1.22’4.2.3用环境变量配置历史命令环境在默认方式下,bash使用用户主目录下面的文件“.bash_history”来保存命令历史注:以圆点“.”开头的文件名是隐含文件,默认方式下,使用ls命令不能把它们显示出来。用户可以通过重新为环境变量赋值,改
7、变存放历史命令的文件$HISTFILE="/home/mengqc/.myhistory"还可以重新设定能够保留的命令个数$HISTSIZE=6004.4别名4.4.1定义别名一般语法格式为:alias[name[=value]]…如果没有指定参数,将在标准输出(屏幕)上显示别名清单定义别名时,往往用单引号将它代表的内容括起来,从而防止shell对其中的内容产生歧义,如:空格和特殊字符。优点:可以简化输入,方便用户,减少出错率例:$aliasalias..=‘cd..’aliascp=‘cp-i’注意:等号两边不能有空格例:$aliasll=‘ls-l’
8、$my=/home/mengqc(定义变量并赋值)$ll$my引用变量值要用单引
此文档下载收益归作者所有