shell脚本教程详细讲解.ppt

上传人:sh****n 文档编号:7458153 上传时间:2020-03-21 格式:PPT 页数:80 大小:808KB
返回 下载 相关 举报
shell脚本教程详细讲解.ppt_第1页
第1页 / 共80页
shell脚本教程详细讲解.ppt_第2页
第2页 / 共80页
shell脚本教程详细讲解.ppt_第3页
第3页 / 共80页
点击查看更多>>
资源描述
CollegeofInformationScienceandEngineering ShandongAgriculturalUniversity SHELL脚本编程 2 shell脚本能提高用户操作和管理员进行系统管理的效率 一般步骤编辑器编写脚本程序shell做解释程序 非交互地执行脚本 两种执行方式 用sh命令执行脚本文件给脚本文件添加执行权限 用 命令执行 3 HELLOWORLD vihello sh按i进入插入模式输入echo helloworld 输入wq保存退出shhello sh或者chmod755hello sh hello sh 4 一 VI编辑器 VI的三种工作模式VI的启动VI的退出VI的文本编辑VI命令模式下的操作VI行命令模式下的操作 5 系统配置文件 shell脚本文件等都是文本文件 编辑它们都要使用文本编辑器 在Linux系统中有多种文本编辑器 其中既有字符界面如的VI EMACAS等 也有图形界面的如 附件 菜单下的 文本编辑器 gedit 等 用户可以根据自己的喜好选择使用 学习vi的方法 vi的命令太多且难以记忆 而实际上真正经常使用的命令并不是太多 只要掌握几个关键的并加以适当练习很快就上手使用vi 6 为什么选择VI 就使用的方便性而言 有比vi更好的编辑器 还要图形化的edit 为什么还要用vi 历史久远 功能强大 在有些情况下系统中能够找到的编辑器只有vi 用户一旦熟悉后 使用非常方便 系统管理员使用正则表达式可以极大地提高工作效率 而学习vi也是掌握正则表达式的有效途径 由于vi的版本不同 其命令格式 功能和用法会有一些差别 Shell中执行vi命令 RedHat系统实际上是执行vim 它是传统vi的增强版本 7 1 VI的三种工作模式 命令模式启动VI默认进入命令模式 此时界面不能编辑 只能接受命令 键入的命令看不到 文件的保存 退出 文本的删除 复制 搜索等操作输入模式编辑模式命令模式下用i sert a ppend o s等均可进入该模式 按esc返回命令模式行编辑模式实际上也是命令模式的一种 在命令模式下输入冒号进入一个命令行 可显示地输入命令 所以也有些书认为是两种工作模式 三种模式可自由切换 一般切换命令就是操作的英文单词的首字母 8 2 VI的启动 启动命令 vimy txt如果文件存在 则vi显示文件内容并等待用户的命令 如果指定的文件不存在 则vi将告知用户这是未命名的文件 并进入一个空白的界面 启动vi时都是默认处于命令模式 用户必须使用命令切换到文本输入模式才能进行输入编辑 或者可执行删除 复制等编辑命令 vi Rfile name 以只读方式打开文件 9 3 VI的退出 冒号进命令行模式下 q 不存档强制退出 w保存但不退出 w rite 后可加所要存档的文档名 wq存档后退出 命令模式下按zz 功能与 wq相同 x与 wq相同命令模式 ZZ ZQ保存 不保存退出 10 4 怎么编辑 必须从命令模式转入插入模式才能进行输入编辑 可用命令有 新增 append a 从光标所在位置后面开始新增资料A 从光标所在行最后面的地方开始新增资料 插入 insert i 从光标所在位置前面开始插入资料I 从光标所在行的第一个非空白字元前面开始插入资料 开始 open o 在光标所在行下新增一列并进入输入模式 O 在光标所在行上方新增一列并进入输入模式 冒号进入行命令模式 输入setnu可设置vi显示行号 11 5 命令模式下的操作 删除与修改 x 删除光标所在字符dw删除一个单词dd 删除光标所在的行s 删除光标所在字节 并进入输入模式 表示数字 x删除几个字符 如3x dw删除几个单词 如3dw表示删除三个单词 dd删除多个行 如3dd表示删除光标行及光标的下两行d 删除光标到行尾的内容 d光标键 左 删除光标前面的字符 右 删除光标所在的字符 上 将当前行与上一行删除 下 当前行与下一行删除 nd上下光标键 删除当前行之上 下的几行文本 包括当前行 u 恢复刚才被修改的文本U 恢复光标所在行的所有修改 重复上一次命令的操作 12 命令模式下的操作 文本复制 粘贴 复制命令 yyy 复制整行yw 复制光标所在的单词nyw 复制包括光标所在的n个单词nyy 复制包括当前行在内的n行粘贴命令P光标移动h j k lnG 移动到底n行行首 13 6 行命令模式下的操作 字符串的查找 替换 string搜索指定的字符串 按键n 继续进行搜索如果写的是斜杠 按n会从当前位置向后查找 如果写的是问号 按n键则从当前位置向前查找查找且替换 s SEARCH REPLACE把文档中所有SEARCH替换成REPLACE s SEARCH REPLACE g 号表示数字 表示从多少行到多少行 把SEARCH替换成REPLACE s SEARCH REPLACE g把当前光标所在行中的SEARCH单词 替换成REPLACE 并把所有SEARCH高亮显示 14 7 设置vi 全局的配置文件位于 etc vim vimrc 或者 etc vimrc 也可以拥有自己独立的配置文件 配置文件位 vimrc 如果没有该文件 也可以直接用如下命令创建并编辑比如 setnu 显示行号setruler 显示光标位置setundolevel 显示光标位置setsmartindent 智能缩进syntaxon 或synon 语法高亮 15 三种模式间的转换关系 16 案例练习 1 请在 tmp这个目录下建立一个名为vitest的目录 2 进入vitest这个目录当中 3 将 etc man config拷贝到本目录底下4 使用vi开启本目录下的man config这个档案 5 在vi中设定一下行号 6 移动到第58行 向右移动40个字符 请问您看到的双引号内是什么目录 7 移动到第一行 并且向下搜寻一下 bzip2 这个字符串 请问他在第几行 8 接着下来 我要将50到100行之间的man改为MAN 并且一个一个挑选是否需要修改 如何下达指令 9 修改完之后 突然反悔了 要全部复原 有哪些方法 10 我要复制51到60行这十行的内容 并且贴到最后一行之后 11 删除11到30行之间的20行 12 将这个文件另存成一个man test config的文件 13 到第29行 并且删除15个字符 14 储存后离开 17 1 mkdir tmp vitest2 cd tmp vitest3 cp etc man config 4 viman config5 setnu6 先按下58G再按下40 会看到 dir bin foo这个字样在双引号内 7 先执行1G或gg后 直接输入 bzip28 直接执行 50 100s man MAN gc即可9 1 简单的方法可以一直按u恢复到原始状态 2 使用不储存离开 q 之后 再重新读取一次该文件 10 51G然后再10yy之后按下G到最后一行 再p粘贴10行11 11G之后 再给他20dd即可删除20行了 12 wman test config13 29G之后 再给他15x即可删除15个字符 14 wq 18 二 SHELL变量与语法 Shell概述shell变量和符号shell控制流程语法shell中的输出重定向脚本实例 19 1 shell的基本元素 1 bin bash必须的 指出shell的类型 2 注释 3 变量 4 控制 一 Shell概述 一个shell脚本viclearup sh bin bash thisisclearcd var logcat dev null var log messages dev nullLinux中的无限大的垃圾回收站echo Logscleanedup 20 2 一般步骤 1 编辑文件 2 保存文件 3 将文件赋予可执行的权限 4 运行及排错 21 注意 一般以 sh为文件后缀 没有也能执行 常见的两种执行方式 文件名在当前目录下写明路径执行 要求文件必须有执行权限 如chmod755run sh run shsh文件名shrun sh文件开头指定一个或多个解释脚本程序的shell 如 bin bash如果指定 注意 bin不要漏了 否则用 方式执行会找不到路径 不指定的话一般默认以 bin sh执行shell脚本 22 3 Shell的一般结构shell类型函数主过程一般模板abc sh bin bashshell类型 asimpleshellscriptexample afunctionfuncitonsayhello 函数 echo EnterYourname readname读取来自键盘输入的变量echo Hello name echo programmestartshere 主过程sayhelloecho programmeends 23 1 注释符 除了 bin bash里的 特殊2 美元符 变量符 与反斜杠转义符相反 使其后的普通字符作为变量名 如 a表示变量a的值 变量字符长度超过1个时 用 括起来3 单引号被引起的字符全部做普通字符 即全部原样echo my SHELL 二 Shell中的特殊符号 24 4 双引号引号内的内容 除 转义符 倒引号 这三个保留特殊功能 其他字符均做普通字符 5 倒引号 数字1键旁边的那个键 引号内的字符串当做shell命令行解释执行 得到的结果取代整个倒引号括起来的部分 pwd 即pwd命令的执行结果 LOGNAME系统变量 25 练习一下 区别下面几句 echo myhomeis HOME echo myhomeis HOME echo myhomeis HOME echo myhomeis pwd echo myhomeis pwd 用于括起来shell命令 用于原样显示 26 6 反斜线反斜线是转义字符 它能把特殊字符变成普通字符 在某个字符前面利用反斜杠 能够阻止shell把后面的字符解释为特殊字符 例4 yuqun yuqun echo FilenameisN0 FilenameisN0 注意 在单引号括起来的字符串中 反斜线也成为普通字符 而失去转义字符功能 27 三 变量 shell变量可以保存如路径名 文件名或者一个数字本地变量局部变量只在创建它们的Shell中使用 可以在shell程序内任意使用和修改它们 环境变量可以在创建它们的Shell及其派生出来的任意子程序中使用 有些变量是用户创建的 其他的则是专用的 比如PATH HOME 是系统环境的一部分 不必去定义它们 可以在shell程序中使用它们 还能在shell中加以修改 内部变量由系统提供的 与环境变量不同 但用户不能修改它们 28 本地变量和环境变量的对比 29 1 本地变量 局部变量 用户变量 本地变量在用户现在的shell生命期的脚本中使用变量名 值注意 1 等号两边不可以有空格 2 取值包含空格 必须用双引号括起来 3 Shell变量可以用大小写字母 区分大小写 30 变量的声明和使用 1 变量是弱类型的 不用声明类型 2 变量声明及赋值格式变量 值 等号两边不能有空格 3 变量的引用 变量名 变量名 变量名为1个字符时建议使用方式一 多余一个字符时建议使用方式二举例 a abc 31 显示变量echo命令可以显示单个变量取值 变量名前加 echo Nameecho nameecho nameareecho name are 输出引用变量时加 比较好 32 清除变量unset变量名举例 echo name unsetname 注意 name前没有 显示本地所有变量set 33 设置只读变量 设置变量时 不想再改变其值 可以将之设为只读变量变量名 值readonly变量名 34 2 环境变量 环境变量用于所有用户进程 通常称为子进程 登陆进程称为父进程 通过pstree可以查看环境变量可以用于所有子程序 着包括编辑器 脚本和应用举例 via sh bin bash 检测环境变量echo 家目录是 HOME 环境变量可以在命令行中设置 但用户注销时这些值将丢失环境变量均为大写必须用export命令导出 35 设置环境变量variable name valueexportvariable name 环境变量名大写 显示环境变量env可以看到所有的环境变量echo 环境变量名 显示一个变量 清除环境变量unset环境变量名 36 HOME 代表使用者的家目录 cd 去到使用者的家目录或者利用cd就可以直接回到使用者家目录了 PS1 shell的主提示符SHELL 目前这个环境使用的SHELL是哪个程序 如果是bash的话 预设是 bin bashPWD 用户当前工作目录的路径 它指出用户目前在Linux文件系统中处在什么位置 它是由Linux自动设置的HISTSIZE 这个与 历史命令 有关 曾经下达过的指令可以被系统记录下来 而记录的 数目 则是由这个值来设定的 ENV 这个使用者所使用的个性化环境设置文件的读取文件 MAIL 当我们使用mail这个指令在收信时 系统会去读取的邮件信箱文件 mailbox PATH 就是执行文件搜寻的路径 目录与目录中间以冒号 分隔 由于文件的搜寻是依序由PATH的变量内的目录来查询 所以 目录的顺序也是重要的喔 LANG 语系文件 很多数据都会用到他 当出现编码错误的时候往往需要设置它 中文编码是zh CN UTF8 37 PATH示例 举例 配置java环境变量可使任何目录都能执行javac命令 1 需要配置Java环境变量JAVA HOME JDK存放的路径 CLASSPATH 字节码的位置 让JVM知道要运行的类的字节码放在哪 PATH 让OS找到javac等命令的存放的位置 2 在Linux下配置它们打开终端vi bash profile在配置文件中追加内容JAVA HOME JDK存放位置CLASSPATH 当前目录 PATH JAVA HOME BIN PATH 不覆盖原来的内容 追加 exportJAVA HOMECLASSPATHPATH保存 让配置起作用 source bash profile或者注销 38 让环境变量的修改在退出shell再次登录时仍有效 需要在相关配置文件中修改Bash的初始化文件有 etc profile bash profile bash login profile bashrc etc bashrc etc profile bash profile bashrc etc bashrc bash login profile 39 etc profile存放一些全局 共有 变量 不管哪个用户 登录时都会读取该文件 通常设置一些Shell变量PATH USER HOSTNAME和HISTSIZE等 bash profile 每个用户都可使用该文件输入专用于自己使用的shell信息 当用户登录时 该文件仅仅执行一次 默认情况下 他设置一些环境变量 执行用户的 bashrc文件 bashrc 该文件包含专用于你的bashshell的bash信息 当登录时以及每次打开新的shell时 该该文件被读取 etc bashrc 为每一个运行bashshell的用户执行此文件 当bashshell被打开时 该文件被读取 40 上述配置文件的作用1 登录Linux先启动系统配置文件 etc profile 并从 etc profile d目录的配置文件中搜集shell的设置 为系统的每个用户设置环境信息 2 用户配置文件 bash profile 每个用户专用于自己使用的shell信息 仅用户登录时执行一次 默认情况下 此文件通过脚本执行同目录下用户的 bashrc文件 3 bashrc文件包含专用于用户bashshell的bash信息 登录及每次打开新的shell时都会执行 里面又会调用 etc bashrc 41 设置用户自己的环境变量 在 home user bash profile中定义下句 会怎样 aliasla ls a grep 答 user下次再登陆 其shell会自动建立一个别名命令la 功能为查看当前目录下名字以 开头的文件 写在 bash profile中 需重新登录才能有效 除非运行source bash profile使其立即有效 写在 bashrc中 则打开新的终端中就有效区别 bash profile只在会话开始的时候读取一次 而bashrc则每次打开终端时都会读取按照传统 定义的变量如PATH放到 bash profile中 而像别名函数等放在 bashrc中 但是 bash profile先于 bashrc读取内容 也可全放入 bashrc中 习惯用各自的配置文件 编辑不需要root权限 42 3 内部变量内部变量是Linux所提供的一种特殊类型的变量 这类变量在程序中用来作出判断 在shell程序内这类变量的值是不能修改的 部分内部变量是 传送给shell程序的位置参数的数量 最后命令的完成码或者在shell程序内部执行的shell程序 返回值 0 shell程序的名称 调用shell程序时所传送的全部参数的单字符串 参数1 参数2 形式保存的参数 43 参数1 参数2 形式保存的参数 n第n个参数 本程序的PID 上一个命令的PID 44 使用shell预定义变量的脚本举例 45 4位置参数 1 位置参数及引用可以编写一个shell脚本 当从命令行或者从其他shell脚本中调用它的时候 这个脚本接收若干参数 这些选项是通过Linux作为位置参数 positionalparameter 提供给shell程序的 在shell脚本中应有变量 接收实参 这类变量的名称很特别 分别是1 2 3 这类变量称为位置变量 位置参数1存放在位置变量1中 位置参数2存放位置变量2中 在程序中可以使用 1 2 来访问 举例 46 2 用set命令为位置参数赋值在shell程序中可以利用set命令为位置参数赋值或重新赋值 一般格式 set 参数表 说明 该命令后面无参数时 将显示系统中的系统变量的值 如果有参数将分别给位置参数赋值 47 四 变量表达式 1 条件判断命令testtestn1 参数n2 或 参数表达式 真返回0 假返回1 1 整数 比较运算符见右表test1 lt4 判断1 4echo 结果为0 test语句的等价形式 1 lt4 可用中括号代替test 把表达式括起来实现判断注意表达式与中括号间有空格 lt小于 le小于等于 gt大于 ge大于等于 eq等于 ne不等于 48 eg1 若输入的参数x是正数 显示xnumberispositive 49 2 文件测试 f存在且是普通文件 d存在且是目录 s存在且字节数大于0 r存在且可读 w存在且可写 x存在且可执行如 test d mydoc 判断mydoc是否是目录 eg2 检测从命令行输入的文件是否存在 50 3 字符串测试tests字符串s非空tests1 s2字符串s1等于s2tests1 s2字符串s1不等于s2test zs字符串长 0 即为空串test n字符串长 04 其他参数 a逻辑与 o逻辑或 逻辑非 51 3 控制流程 shell运算符和C语言基本类似 也有分支 循环流程控制 简单举例后面例子涉及的命令seq命令 产生1 9的数字序列比如seq14expr命令 对表达式求值 直接求值命令 对被括起来的表达式求值 52 表达式求值 expr1 3 expr2 1 expr1 3使用 要加转义符 echo expr1 3 注意 表达式中 数字和运算符指教要有空格 出现在语句中要加反引号 53 1 分支结构 if分支if eq0 thenecho 输入了0个参数 elif lt1 thenecho 输入了多个参数 elseecho 输入了1个参数 fi casecase in0 echo 输入了0个参数 1 echo 输入了1个参数 echo 输入了多个参数 esac每个分支条件后必须以两个分号结尾 54 2 循环结构 for例子 输出100内10的倍数foriin seq19 doecho expr i 10 done或写echo expr i 10 乘号前加转义符 与数字间要有空格 55 read变量1 变量2 可以从键盘上读取多个变量的值 用户输入数据时 以空格或者Tab键作为分隔 如果输入的数据个数不够 则从左到右对应赋值 没有输入的变量为空 如果输入的数据个数超了 则从左到右对应赋值 最后一个变量被赋予剩余的所有数据 56 readabforiin seq a b doecho expr i 10 done输出a到b序列数各数的10倍数 57 while例子 求1到100的和i 1sum 0while i le100 dosum sum i i i 1 doneecho sum 直接求值命令 58 五命令结果重定向 1stdout标准输出2stderr标准错误输出重定向到文件file 终端上只能看到标准错误 命令 file错误重定向到文件file 终端上只能看到标准输出 命令2 file标准输出和标准错误都重定向到file 终端上看不到任何信息 命令 file2 1 等于 命令1 file2 1 59 屏蔽命令任何输出的 dev null2 1 cp etc my conf dev null2 1 dev null空设备此句命令的结果是 cp命令没有目标文件 应该输出错误 2 1表示错误重定向指向标准输出 dev null又使标准输出重定向到空 就是不要输出信息即 一个错误的命令执行 什么功能都不实现 且没有任何信息或错误提示输出 60 1 command file2 file2 command file2 1有什么区别 1 的写法 stdout和stderr都直接送到file中 会出现两个同抢占file的管道 file会被打开两次 stdout和stderr输出的信息会互相覆盖 2 的写法将stdout直接送向file stderr继承1的管道后 再被送往file 此时 file只被打开了一次 也只使用了一个管道FD1 它包括了stdout和stderr的内容 从IO效率上 前一条命令的效率要比后面一条的命令效率要低 所以在编写shell脚本的时候 常用command file2 1这样的写法 還可以 命令2 file 2命令 dev null 61 有趣的IORedirection catfile文件內容会被洗掉 catfile此处会没有内容stdout stderr的管道先准备好才会从stdin读内容 file会先清空file 然後才读进 file 但此时file已被清空 因此再重定位读进file的为空最后cat显示的file就成空了 62 六脚本实例 编写一个名为iffile程序 它执行时判断 bin目录下date文件是否存在 编写一个名为greet的问候程序 它执行时能根据系统当前的时间向用户输出问候信息 设从半夜到中午为早晨 中午到下午六点为下午 下午六点到半夜为晚上 编写一个名为ifuser的程序 它执行时带用户名作为命令行参数 判断该用户是否已经在系统中登录 并给出相关信息 编写一个名为menu的程序 实现简单的弹出式菜单功能 用户能根据显示的菜单项从键盘选择执行对应的命令 编写一个名为chname的程序 将当前目录下所有的 txt文件更名为 doc文件 编写一个名为chuser的程序 执行中每隔5分钟检查指定的用户是否登录系统 用户名从命令行输入 如果指定的用户已经登录 则显示相关信息 63 bin sh fname bin dateif test f fname thenecho exist fi说明 在shell程序中经常需要判断所处理的文件是否存在 本程序采用if语句的简单格式测试date文件 如果存在 则显示相关信息 否则退出if语句 判断 bin目录下date文件是否存在 64 bin sh hour date cut c10 11 iftest hour ge0 a hour le11 thenecho Goodmorning eliftest hour ge12 a hour le17 thenecho Goodafternoon elseecho Goodevening fi说明 第一个有效语句是将命令执行的结果赋给hour变量 所以用反向单引号 用cut命令从date命令的输出中切割出 小时 信息 这里 c10 11选项表示只切割10到11列 这个程序使用了if连用格式 也可以使用if完整格式的嵌套形式 根据系统当前的时间向用户输出问候信息 65 bin sh iftest ne1thenecho Incorrectnumberofarguments echo Usage ifuserusername elseuser 1ifwho grep q user thenecho 1 userisloggedon exit0elseecho 1 userisnotloggedon exit1fifi 判断用户是否已经在系统中登录 66 说明 1 由于who grep user不是表达式而是命令组合 所以不需要test语句测试 如果命令组合执行成功 即找到指定的用户名则返回码为0 否则为非0 2 在这个程序中使用了grep字符串搜索命令和 管道命令 3 用grep命令 q选项来禁止显示搜索到的信息 4 还使用了exit命令 以终止shell程序的执行 exit0表示程序终止后返回0值 而exit1表示程序终止后返回非0的值 67 简单的菜单功能 bin sh clearecho MENU echoecho 1 Findfilesmodifiedinlast24hours echo 2 Thefreediskspace echo 3 Spaceconsumedbythisuser echo 4 Exit echoecho n Select readchoicecase choicein1 find HOME mtime 1 print 2 df 3 du s HOME 4 exit echo Invalidoption esac 68 说明 1 本程序菜单的第一项是显示 home目录下 最近24小时内所有修改过的文件 命令中的 1参数是数字 1 表示一天 24小时 第二项是检查磁盘空间 第三项是显示 home目录下文件的大小 命令中的 s选项是为了仅显示总计 第四项是退出程序 2 为了使程序美观 用echo n实现输入的选择数字不换行 3 输入的数字不在1 4范围内时 显示无效的选项信息 69 bin sh forfilein txtdoleftname basename file txt mv file leftname docdone说明 1 在Linux系统中不支持mv txt doc这样的更名命令形式 如果需要将文件成批地更名最好编写一个shell脚本文件 2 在for语句的参数列表中使用了 通配符 3 在程序中用到basename命令 该命令从随后的文件名剥去指定的后缀 将当前目录下所有的 txt文件更名 70 bin sh iftest ne1thenecho Usage chuserusername elseuser 1 untilwho grep user dev nulldosleep300doneecho userhasloggedon fi说明 1 如果没有从命令行输入用户名 则测试 ne1为 真 显示用法提示信息 2 程序中until语句的expression 循环条件 是who grep user 命令执行的返回码 如果没有找到指定的用户名 返回码为非0 为 假 则用sleep命令暂停执行程序5分钟 找到后返回码为0 为 真 则终止循环并显示该用户已经登录的信息 3 采用重定向到 dev null空文件的目的是不显示查找到的用户其他信息 每隔5分钟检查指定的用户是否登录系统 71 实验8 1 关键代码提示1 checkusera cut d f1 etc passwd grep c 1 if a gt0 2 printnumber判断参数是否是数a echo 1 bc2 dev dull if a 1 1参数不是数bc计算器 进制转换命令 可自学 4个linux筛选数据常用工具cut grep awk sed 72 截取小数点前后的子串 变量名匹配模式 截掉匹配子串后剩余字符串是结果str1 a str2 a 从左向右 从右向左搜索最长匹配符号写两次 最短匹配写1次 MYVAR foodforthought jpg echo MYVAR fo rthought jpg echo MYVAR fo odforthought jpg MYFOO chickensoup tar gz echo MYFOO chickensoup echo MYFOO chickensoup tar 指定字符偏移和长度截出子串 EXCLAIM cowabunga echo EXCLAIM 0 3 cow 从第一个字符开始 截3个字符 echo EXCLAIM 3 7 abunga 从第四个字符开始 截7个字符 作业 练习本课件给出的例子 熟练vi编辑器 熟悉脚本语法 实验8 1 74 更多练习 练习vi编辑器的使用并熟练掌握它 简要说明shell的功能 常用的shell有哪些 查看系统PATH环境变量 了解可执行文件的路径信息如何实现用系统当前日期和时间作为第一级提示符 如何实现用alias命令将cp命令设置别名为copy 简要说明shell程序的结构 简要说明运行shell脚本程序的几种方法 如果你希望编写的脚本程序在任何一个目录下都能直接执行 输入程序名后回车 则应该如何处理 75 变量的赋值方式有几种 各用在哪些场合 写出几个与命令行参数有关的变量并简要说明如何在脚本中引用 以下shell脚本文件存在什么错误 echowhatmonthisthis read monthecho monthisasgoodamonthasany 编写一个shell程序 它输出一个1到10之间的平方和立方对照表 编写一个名为reverse的shell程序 将输入的若干个命令行参数以逆序输出 用其它循环语句编程实现本题的功能 76 编写一个shell脚本程序 它能根据输入的命令行参数采取不同的动作 如果是目录 则列出该目录中的文件 如果是可执行的文件 则用shell执行之 如果是可读的文件 则分屏显示其内容 编写一个求平方和求立方的函数 在shell程序中调用它实现第十四题的功能 编写一个弹出式菜单的shell程序并实现其简单的菜单功能 MENU 1 copy2 rename 3 remove4 find 5 exit 即用户按下数字1 则提示用户输入源和目的文件名后执行复制 输入数字2 则提示用户输入要更名的文件或目录名后执行更名操作 输入数字3和4分别执行删除和查找操作 输入数字5 则退出该菜单shell程序的执行 77 附 vi的常用命令 命令模式的常用命令 78 删除与修改 79 80 末行命令模式的常用命令
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!