《深入理解Shell》PPT课件.ppt_第1页
《深入理解Shell》PPT课件.ppt_第2页
《深入理解Shell》PPT课件.ppt_第3页
《深入理解Shell》PPT课件.ppt_第4页
《深入理解Shell》PPT课件.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

Version 1.0,第6章 深入理解Shell,2/27,本章提纲,什么是Shell 为什么要学习Shell Shell命令的通配符和特殊字符 输入输出重定向 管道 命令的历史记录 别名设定 自动补全 实训:Shell命令的高级用法,3/27,什么是Shell,只要有操作系统的地方就有Shell 通过Shell来实现用户和内核之间的沟通,从而使内核正确地控制硬件 早期DOS就是利用这个Shell来实现用户和内核之间交互的 控制计算机硬件工作是操作系统内核的任务,而控制内核为用户工作则是Shell的任务,4/27,什么是Shell,Shell,内核,硬件的关系如图所示:,5/27,为什么要学习Shell,变化小,一旦学会,受用终身 远程控制方面字符界面比GUI更节省网络带宽 编程功能可以大大提高系统管理的效率 对Linux内部的运行机制有更深入的了解,6/27,为什么要学习Shell,bash作为管理内核的Shell,其优点如下: 支持通配符和一些特殊字符 支持输入输出重定向 支持管道操作 命令的记忆与编辑功能 命令的别名设定功能 自动补全功能 强大的编程功能,7/27,Shell命令的通配符和特殊字符,利用通配符可以同时引用多个文件 常用的通配符有“*”和“?” “*”号表示可以匹配任意长度的任何字符 “?”号代表了任意一个字符 例如: ls *.png ls b? ls b? 注意:通配符“*”不能与“.”开头的文件名匹配,8/27,Shell命令的通配符和特殊字符,利用“ ”、“-”和“!”组成的字符组模式还可以扩展要匹配的文件范围 “ ” 规定在指定的字符范围任意一个字符都满足匹配 “-”规定在某一个区间范围内匹配 “!”规定在某一范围之外的匹配 例如: ls abcd ls abc* ls a-f* ls !abc*,9/27,Shell命令的通配符和特殊字符,常用的特殊字符,10/27,输入输出重定向,键盘称为标准输入设备,显示器称为标准输出设备 在Shell中,不使用系统的标准输入、输出设备而重新指定其输入输出的方法称为输入输出重定向 什么时候需要使用重定向? 当屏幕输出的信息很重要,而且需要将它保存的时候 后台执行的程序,不希望它干扰屏幕正常输出结果时 一些系统的例行性命令的执行结果,希望它可以保存下来时 错误信息和正确信息需要分别输出时 需要输入的数据通过文件的方式读入时,11/27,输入输出重定向,重定向符号有: 1 2 语法格式: 命令 重定向符号 设备或文件 根据不同的符号实现的效果可以分为 与输出相关的重定向 输出重定向 附加输出重定向 错误输出重定向 与输入相关的重定向 输入重定向,12/27,输入输出重定向,标准输出重定向(“”) 将命令执行的结果不在标准输出设备上显示,而是保存到某一文件或者通过某一设备进行输出的操作 例如:ls -al list 说明: 如果list文件本身不存在,则系统会自动建立它 如果list文件已存在,则系统会先将文件内容清空,然后再将数据写入。即将原有数据覆盖掉了。 可以通过vi test来浏览执行的结果信息,13/27,输入输出重定向,附加输出重定向(“”) 和标准输出重定向不同之处在于前者将输出的内容保存到文件的同时不覆盖文件原有的内容,而是追加到原有内容的后面 例如:ls -al list,14/27,输入输出重定向,错误输出重定向(“2”) 例如:find / -name newtxt 2 err.txt 说明:该命令将正确的结果信息显示在屏幕上,将错误的信息输出到err.txt文件中,15/27,输入输出重定向,错误输出重定向(“2”) 将正确的信息和错误的信息分别输出到不同的文件 find / -name newtxt 1right.txt 2err.txt 将正确的信息和错误的信息都输出到同一个文件中 find / -name newtxt 1result.txt 2&1 将显示的数据中正确的信息输出到某个文件,错误的信息丢弃 find / -name newtxt 1result.txt 2 /dev/null 说明:/dev/null可以视为垃圾设备,专么收集垃圾信息,导入到这里的数据将被清理并消,16/27,输入输出重定向,输入重定向(“”) 不是向文件中写入数据,而是通过重定向将原来要通过键盘(标准的输入设备)读入数据的方式改为从文件中读取数据 例如:想要向某个用户发送邮件信息 mail -s “test” root 其中,-s表示标题,root为收件人 该命令要求用户必须通过键盘在字符界面下来输入数据,显然非常麻烦。如果利用输入重定向,则可以将现成的文件信息发送过去 方法是: mail -s “test” root /root/.bashrc,17/27,管道,将多个命令前后连接起来形成一个管道流 管道命令执行流程图,18/27,管道,实现管道功能的符号为“|” 例如:要利用管道统计当前目录下所有文件和子目录的数目 ls -l | wc -l 注意:管道操作只能处理前一个命令执行的正确信息,即标准输出的内容,而对错误信息无法处理,19/27,命令的历史记录,bash可以记录一定数量已经执行过的命令 bash默认的记忆能力多达上千个命令(.bash_history ) 可以通过history命令来查看Shell命令的历史记录 语法格式为:history 数字 说明: 如果不使用数字,则将查看所有的Shell命令的历史记录 如果使用数字,则将查看最近执行过的指定个数的Shell命令 例如:查看最近执行过的5条Shell命令,20/27,命令的历史记录,执行某一条历史命令,可以使用“!”来实现 语法格式为:!序号 或者 ! 或者 !字符串X 例如:执行序号为159的历史命令 root localhost root# !159 例如:执行刚刚执行过的那条命令 root localhost root# ! 例如:执行最近一次以字符串X开头的命令,21/27,别名设定,所谓别名(alias),就是可以将某些比较长的命令操作按照Shell命令的格式用一些便于记忆的字符串所代替的自定义命令 别名的好处就是可以减少键盘的输入 可以通过alias命令来查看和设置别名 其语法格式为:alias 别名=标准Shell命令行,22/27,别名设定,查看别名 例如:root localhost root# alias (回车) 说明: Shell规定,当别名与标准命令名重名时,别名命令优先于标准命令名执行。如果想要执行标准命令名,则需要在该命令前加“”字符。如ls就是一个别名,若想要执行标准的ls,则需要输入“ls”命令,23/27,别名设定,设置别名 例如:想利用命令别名来替换ls al这个操作,可以使用如下方法 alias lm=ls al|more 注意: =号两边不能有空格 =号右边必须使用一对单引号将标准命令行括起来才有效 设置别名的有效期仅持续到用户退出当前登录这段时间,如果想要别名持续有效,必须将alias命令写入用户主目录下的.bashrc文件中 使用别名的好处,24/27,自动补全,指用户在输入命令或者文件名时不需要输入完整地命令或文件名,只需要输入前几个字母就可以由系统自动找出匹配的命令或文件名的功能。 实现自动补全的方法是输入命令或文件名的一部分,然后按Tab键(或按两次Tab键) 该功能根据补全的对象不同,又分为: 命令补全:rootlocalhost root#ca 文件名称补全,25/27,其他功能,强大的编程功能 类似于Dos中将一堆指令写在一起的所谓的“批处理”文件,利用Linux下的Shell scripts可以将需要频繁输入的连续指令写在一个文件中,甚至还可以利用Shell scripts编写一个小型的程序语言 其他功能和说明 复制与粘贴 复制:按住鼠标左键在需要复制的内容上拖动,使其反白显示 粘贴:在需要粘贴的位置按鼠标右键 变量与变量的设定 echo $变量名:输出变量的值,例如echo $PATH env:查看环境变量设定的内容,都是系统的预设变量 set:除了显示系统环境变量,还会显示用户自定义的变量,利用unset 变量名可以取消变量的设定 export 变量:可以将变量设置为全局的,不同文件之前可以重复使用该变量,26/27,小节,什么是Shell,为什么要学习Shell,它有哪些功能? Shell命令行可以使用哪些通配符,有何作用? 什么叫重定向,什么时候需要重定向?如何使用? 管道的原理和用法是什么? 什么命令可以查看Shell命令的历史记录 别名的好

温馨提示

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

评论

0/150

提交评论