Linux下Shell编程.ppt_第1页
Linux下Shell编程.ppt_第2页
Linux下Shell编程.ppt_第3页
Linux下Shell编程.ppt_第4页
Linux下Shell编程.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux下Shell编程简介 刘桂海 西安理工大学计算机科学与工程学院 陕西西安710048 2020 1 15 西安理工大学计算机科学与工程学院 内容安排 综述篇命令篇变量篇条件测试篇控制结构篇函数篇 2020 1 15 西安理工大学计算机科学与工程学院 综述篇 Shell是什么怎样写ShellCygwin简介Linux黑洞 2020 1 15 西安理工大学计算机科学与工程学院 综述篇 Shell是什么 壳 Shell 保护其内部的核 Kernel 2020 1 15 西安理工大学计算机科学与工程学院 综述篇 Shell是什么 Shell是一种具备特殊功能的程序 它是介于使用者和UNIX Linux操作系统之核心程序 kernel 间的一个接口 为了对用户屏蔽内核的复杂性 也为了保护内核以免用户误操作造成损害 在内核的周围建了一个外壳 shell 用户向shell提出请求 shell解释并将请求传给内核 使用较广的shell有标准的Bourneshell sh KornShell ksh Cshell csh BourneAgainShell bash 等 查看当前环境所用shell echo SHELLshell的另一个重要特性是它自身就是一个解释型的程序设计语言 shell程序设计语言支持绝大多数在高级语言中能见到的程序元素 如函数 变量 数组和程序控制结构 shell编程语言简单易学 任何在提示符中能键入的命令都能放到一个可执行的shell程序中 本质上 shell脚本是命令行命令简单的组合到一个文件里面 Shell基本上是一个命令解释器 类似于DOS下的 它接收用户命令 然后调用相应的应用程序 2020 1 15 西安理工大学计算机科学与工程学院 综述篇 怎样写Shell 利用vi编辑器编辑脚本 将脚本命名为脚本功能 shShell脚本不是复杂的程序 它是按行解释的 脚本第一行总是以 bin sh开头 它通知系统以下的Shell程序使用系统上的BourneShell来解释 第二行注释中写入脚本名 第三行注释开始写入脚本功能 习惯 以下行进入脚本正式编写编写完后给脚本添加执行权限 chmodu xScripName运行脚本 ScripName或 ScripName 简单脚本示例 viShowHello sh以下为脚本内容 bin sh ShowHello sh Toshowhellotosomebodyecho n EnterYourName readNAMEecho Hello NAME 保存 退出vi编辑器 为脚本添加可执行权限 chmodu xShowHello sh运行脚本 ShowHello sh 2020 1 15 西安理工大学计算机科学与工程学院 综述篇 cygwin简介 cygwin 在windows下开发linux程序 cygwin是一个在windows平台上运行的linux模拟环境 是cygnussolutions公司开发的自由软件 它把gcc gdb gas等开发工具进行了改进 使它们能够生成并解释win32的目标文件 开发者基于win32api写了一个unix系统库的模拟层 只要把这些工具的源代码和这个共享库 cygwindll 连接到一起 就可以使用unix主机上的交叉编译器来生成可以在windows平台上运行的工具集 软件下载 cygwin的官方网站 推荐下载 软件安装 在安装的过程中可选择默认安装路径 c cygwin安装完后要修改cygwin目录下的cygwin bat文件 在 echooff后面加上setCYGWIN titlentea 这是因为Cygwin的启动批处理文件需要启动Unix文件系统模拟 2020 1 15 西安理工大学计算机科学与工程学院 综述篇 Linux黑洞 dev null是一个虚设的设备 俗称 Linux黑洞 任何对 dev null的写入都会成功 但数据会消失得无影无踪 没有任何反馈 所以经常把不想在屏幕显示的信息全部送到 dev null中 在shell脚本中用得比较多 如 ls l dev null还可以用来清空文件的内容 cat dev null FileName 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 用户管理目录管理文件管理权限管理 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 用户管理 新建用户 useradd useraddUserName新建用户后 会在 home目录下建立一个以UserName命名的文件夹 用户每次登录时自动定位到该文件夹下 为用户添加密码 password passwdUserName删除用户 userdelete userdelUserName使用 p选项可以删除用户目录下的文件及与用户相关联的其他文件 新建组群 groupadd groupaddGroupName删除组群 groupdelete groupdelGroupName 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 用户管理 用户身份whoami查看登录用户who 选项 a显示所有用户的所有信息 H显示列标题查看用户的操作w某一时刻用户的行为用户间切换 substituteuser suUserName如 su或suroot切换为根用户suHaison切换为名为Haison的用户 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 目录管理 创建目录 makedirectory mkdirDirecName删除目录 removedirectory rmdirDirecName显示工作目录 printworkingdirectory pwd显示目录内容 list ls 选项 选项 a显示当前目录下的所有文件 包括以 开头的文件 l以长列表的形式显示文件列表 如 rw r r 1haisonhaison18Nov210 10haison c 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 目录管理 改变当前目录 changedirectory cd或cd 进入登录时的主目录cd 进入根目录cd 进入上一级目录cd home进入系统的home目录cdhome进入当前目录下的home目录目录重命名 move mvSourceDirecNameTargetDirecName目录拷贝 copy cpSourceDirecTargetDirec r拷贝目录下的文件 子目录及子目录下的文件 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 文件管理 新建文件 FileName或touchFileName或viFileName删除文件 removefile rm 选项 FileName选项 i系统提示是否真要删除该文件 f删除文件之前不提示任何确认信息 r递归删除目录下所有子目录的内容文件拷贝 copy cpSourceFileTargetFile文件链接 link ln sSourceFileTargetFile创建文件链接 用ls l查看 会看到TargetFile SourceFile 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 文件管理 显示文件内容moreFileName一次一屏的显示文件内容 空格或回车显示下一屏lessFileName一次一屏的显示文件内容 空格或回车显示下一屏catFileName一次全部显示文件的内容catfile1file2 file3将file1 file2的内容写到file3 覆盖file3原内容catfile1 file2将file1的内容追加到file2 file2原内容不变headFileName只显示文件的前10行head nFileName显示文件的前n行tailFileName只显示文件的后10行tail nFileName显示文件的后n行nlFileName以编号的形式一次全部显示文件的内容 忽略空格 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 文件管理 文件移动 重命名 move mvSourceFileTargetFile将一个或多个文件移动到另外一个目录下 或者将一个文件重命名为另一个文件 文件查找 find find 路径 选项 如 find name Linux print文件内容查找 grep 如 grep main haison c文件类型命令ls l以长列表形式显示文件的类型等 如 rw r r 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 权限管理 文件访问权限一个文件一经创建 就具有三种访问方式 一个文件由1个类型和9个权限位来描述 9个权限位分为3组 每组3个权限位 具体表示如下所示 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 权限管理 改变文件 目录的权限 changemode chmod u g o a 权限 FileName DirecName其中 增加指定的权限 去掉指定的权限 清除所选的权限并将其设置为制定的权限chmod允许使用八进制符号作为模式 改变权限 chmodPermissionCodeFileName DirecName其中 PermissionCode按如下方式计算 4 2 1 7 4 2 6 4 1 5 所以该文件 目录具有的权限为 765 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 权限管理 chmod命令示例假定haison c最初具有这样的权限rwxrwxrwx 连续操作如下 2020 1 15 西安理工大学计算机科学与工程学院 命令篇 权限管理 rw r r 1haisonhaison18Nov210 10haison c改变文件 目录的属主 changeowner chownOwnerFileName DirecName如 chownDavehaison c改变文件 目录的属组 changegroup chgrpGroupFileName DirecName如 chgrpDavehaison c改变文件 目录的属主和属组chownowner groupFileName DirecName如 chownDave Davehaison c 2020 1 15 西安理工大学计算机科学与工程学院 变量篇 变量可以定制用户本身的工作环境 使用变量可以保存有用信息 使系统获知用户相关设置 也用于保存暂时信息 变量一般都用大写字母表示使用echo命令可以显示单个变量的取值 要在变量名前面加 如 USER haison echo USER如果设置变量时 不想再改变其值 可以将其设置为只读 只要在变量名前加readonly使用set命令可以显示所有本地定义的shell变量使用unset变量名可以清除对变量的定义 2020 1 15 西安理工大学计算机科学与工程学院 变量篇 2020 1 15 西安理工大学计算机科学与工程学院 变量篇 示例 bin sh VarTest sh TotestthevariablesUSER haisonecho Hello USER theoutputofthisscriptareasfollows echo Thescriptnameis basename 0 echo Thefirstparamofthescriptis 1 echo Thesecondparamofthescriptis 2 echo Thetenthparamofthescriptis 10 echo Alltheparamsyouinputare echo Thenumberoftheparamsyouinputare echo TheprocessIDforthisscriptis echo Theexitstatusofthisscriptis 2020 1 15 西安理工大学计算机科学与工程学院 条件测试篇 文件状态测试 示例 shaison c 0表示成功 其他为失败 下同 逻辑操作符 a逻辑与 and 操作符两边均为真 结果为真 否则为假 o逻辑或 or 操作符两边一边为真 结果为真 否则为假 逻辑否 条件为假 结果为真 反之 示例 rhaison c a whai c 2020 1 15 西安理工大学计算机科学与工程学院 条件测试篇 字符串测试 示例 z SHELL 数值测试 示例 10 eq 12 2020 1 15 西安理工大学计算机科学与工程学院 控制结构篇 2020 1 15 西安理工大学计算机科学与工程学院 控制结构篇 if语句 格式1if 条件 then命令fi 格式2if 条件 then命令fi 或 格式3if 条件 then命令1else命令2fi 格式4if 条件1 then命令1elif 条件2 then命令2else命令3fi 示例 bin sh ifTest toshowthemethodofifecho e Enterthefirstinteger c readFIRSTecho n Enterthesecondinteger readSECONDif FIRST gt SECOND thenecho FIRSTisgreaterthan SECOND elif FIRST gt SECOND thenecho FIRSTislessthan SECOND elseecho FIRSTisequalto SECOND fi 2020 1 15 西安理工大学计算机科学与工程学院 控制结构篇 case语句 格式case值in模式1 命令1 命令n esac取值后面必须为单词in 每一个模式必须以右括号结束 取值可以为变量或常数 取值检测匹配的每一个模式 一旦模式匹配 其间所有命令开始执行直至 执行完匹配模式相应命令后不再继续其他模式 如果无一匹配模式 使用 号捕获该值 再接受其他输入 示例 bin sh caseTest totestthemethodofcaseUSER whoami case USERinroot echo Youcandoalltheoperations Dave echo Youcandosomeoperations echo Sorry youcannotdoanything esac 2020 1 15 西安理工大学计算机科学与工程学院 控制结构篇 for循环 格式for变量名in列表do命令done当变量值在列表里 for循环即执行一次所有命令 使用变量名访问列表中取值 嵌套循环可以将一个for循环嵌在另一个for循环里 示例 bin sh forTest totestthemethodofforCOUNTER 0forFILESin doCOUNTER expr COUNTER 1 doneecho Thereare COUNTERfilesin pwd 2020 1 15 西安理工大学计算机科学与工程学院 控制结构篇 until循环 格式until条件do命令doneuntil执行一系列命令 直至条件为真时停止 示例 bin sh untilTest totestthemothodofuntilIS ROOT who greproot until IS RO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论