linux(第七讲)_第1页
linux(第七讲)_第2页
linux(第七讲)_第3页
linux(第七讲)_第4页
linux(第七讲)_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、第七讲第七讲 shell简介简介 知识点知识点 Shell在操作系统中的地位在操作系统中的地位 Shell的基本功能的基本功能 Bash的突出优点的突出优点shell shell是内核是内核kernel的的“壳壳” ,是用来将机器,是用来将机器语言和人类语言相互转化而存在的软件层次语言和人类语言相互转化而存在的软件层次 由于由于kernel指令具有复杂性、高技术性、关键指令具有复杂性、高技术性、关键性等特点,性等特点,shell也用来屏蔽内核的复杂性以也用来屏蔽内核的复杂性以及防止用户误操作对系统内核造成不良影响及防止用户误操作对系统内核造成不良影响 是命令语言、命令解释程序及程序设计语言是命

2、令语言、命令解释程序及程序设计语言的统称的统称 它的作用是控制内核为用户工作它的作用是控制内核为用户工作shell 广义上讲,广义上讲,linux的的shell包括包括KDE、Gnome等等桌面程序;狭义而言,桌面程序;狭义而言,shell并不包括这些桌面并不包括这些桌面操作环境操作环境 在在Unix和类和类Unix操作系统世界中,有三种独立操作系统世界中,有三种独立开发的开发的shell十分流行,它们分别是十分流行,它们分别是Bourne shell、Korn shell和和C shell 在在linux中,默认的中,默认的shell为为Bash,即,即Bourne again shell。

3、它是。它是GNU计划中一个重要的工具计划中一个重要的工具软件,也是目前软件,也是目前GNU操作系统中的标准操作系统中的标准shell shell cat /etc/shells /bin/sh(最初的(最初的shell版本,目前已经被版本,目前已经被bash取取代)代) /bin/bash(linux的默认的默认shell) /bin/ksh(Korn shell,与,与bash兼容)兼容) /bin/csh(已经被(已经被tcsh取代)取代) /bin/tcsh(整合了(整合了C shell,提供更多的功能),提供更多的功能)shell 不同不同shell的本质都是为了给用户提供一个在的本质

4、都是为了给用户提供一个在linux下操作的便捷而安全的界面。为了达到这下操作的便捷而安全的界面。为了达到这个目标,每个个目标,每个shell都提供了基本的功能,它们都提供了基本的功能,它们包括:包括: 文件名置换文件名置换 变量维护变量维护 环境控制环境控制 shell编程编程 命令行解释功能命令行解释功能 启动指定程序启动指定程序 输入输出重定向输入输出重定向 管道连接管道连接shell 命令行解释命令行解释用户登录用户登录linux后启动一个交互式后启动一个交互式shell。当用。当用户在户在shell提示符(提示符( #、$或者)后输入一或者)后输入一行如下格式的指令后,行如下格式的指令

5、后,shell就会试着解释它就会试着解释它 command -option filenameshell 命令行解释命令行解释 eg: rootlocalhost swh# ls -l file1 主机名为主机名为localhost的机器上当前用户为的机器上当前用户为root,当前目录为当前目录为swh,ls是指令文件,是指令文件,-l是选项,是选项,file1是指定查看的文件名。这些显示结果都是指定查看的文件名。这些显示结果都是是shell将机器语言和人类语言互译的结果将机器语言和人类语言互译的结果shell 命令行解释命令行解释eg:echo $paraA $paraB $paraC $pa

6、raA $paraB $paraC 人类语言:要求显示六个变量的值,空格人类语言:要求显示六个变量的值,空格用来分隔不同的变量名用来分隔不同的变量名 机器语言:显示六个变量的值,变量名是机器语言:显示六个变量的值,变量名是不同的不同的01字符串,其值也是字符串,其值也是01字符串字符串shell 命令行解释命令行解释eg:echo “$paraA $paraB $paraC” $paraA $paraB $paraC 人类语言:先打印双引号中的带空格的字人类语言:先打印双引号中的带空格的字符串,再显示三个不同变量的值符串,再显示三个不同变量的值 机器语言:看到双引号后直接打印,直到机器语言:看

7、到双引号后直接打印,直到引号结束,接着显示三个变量的值,变量名引号结束,接着显示三个变量的值,变量名是不同的是不同的01字符串,其值也是字符串,其值也是01字符串字符串shell 启动指定程序启动指定程序在完成命令行的解释后,在完成命令行的解释后,shell就指挥内核就指挥内核从从PATH环境变量指定的目录中搜索命令环境变量指定的目录中搜索命令行中指定的可执行文件行中指定的可执行文件所谓所谓shell启动指定程序,本质上仍然是由启动指定程序,本质上仍然是由内核来执行内核来执行shell 启动指定程序启动指定程序当当shell找到指定文件后,就启动一个子找到指定文件后,就启动一个子shell来运

8、行程序来运行程序子子shell由其父由其父shell启动,在不影响其父启动,在不影响其父shell的前提下建立和控制它自己的环境的前提下建立和控制它自己的环境 eg:一个子:一个子shell可以将其自己的工作目录可以将其自己的工作目录设置的与父设置的与父shell不同,当它运行结束并关闭不同,当它运行结束并关闭后,其父后,其父shell的工作目录仍保持不变的工作目录仍保持不变shell 输入输出重定向输入输出重定向输出重定向:将指定的输出信息发送到除屏输出重定向:将指定的输出信息发送到除屏幕外的其他地方去,例如一个指定的文件等幕外的其他地方去,例如一个指定的文件等输入重定向:指令所处理的数据并

9、非来自通输入重定向:指令所处理的数据并非来自通常位置(如键盘),而是来自指定的文件或常位置(如键盘),而是来自指定的文件或其他指令等处其他指令等处在执行程序前进行输入输出重定向的编译在执行程序前进行输入输出重定向的编译shell 管道连接管道连接输入输出重定向的特例,它是将前一个指令输入输出重定向的特例,它是将前一个指令的输出数据直接作为后一个指令的输入数据的输出数据直接作为后一个指令的输入数据管道也是在调用程序前建立的管道也是在调用程序前建立的 eg: who | wc -l wc是一个用来显示文件容量参数的指令,是一个用来显示文件容量参数的指令,shell将将who指令的输出结果作为指令的

10、输出结果作为wc指令的输入指令的输入数据,而不是将其显示在计算机的屏幕上数据,而不是将其显示在计算机的屏幕上shell 文件名置换文件名置换 使用较少的字符取代多个字符使用较少的字符取代多个字符 eg:ls -al pass* 这里的星号是一个多字符的替代符号,可以取这里的星号是一个多字符的替代符号,可以取代一串字符代一串字符 在程序执行以前完成文件名替换在程序执行以前完成文件名替换 shell 变量维护变量维护 变量就是存储数据为将来所用的场所变量就是存储数据为将来所用的场所 用等号()可以给变量赋值用等号()可以给变量赋值 eg: $ LOOKUP=/home/swh $ echo $LO

11、OKUP /home/swh $ echo LOOKUP LOOKUP shell 变量维护变量维护 变量置换在调用程序前完成,替换时用变量值变量置换在调用程序前完成,替换时用变量值取代变量名取代变量名 eg: $ls -l $LOOKUP/hustle 在执行在执行ls指令前将指令前将LOOKUP变量置换为变量置换为/home/swh,即显示,即显示/home/swh/hustle文件的相文件的相关信息关信息shell 环境控制环境控制 从从shell的角度来看多用户问题:的角度来看多用户问题: 1、当用户登录系统时,一个、当用户登录系统时,一个login程序被启动程序被启动 2、调用一个子

12、、调用一个子shell对该用户的操作环境进行对该用户的操作环境进行设置,其中包括用户的设置,其中包括用户的home目录、使用的终目录、使用的终端类型以及用来搜索可执行文件的路径等端类型以及用来搜索可执行文件的路径等 3、上述配置信息被存储在环境变量中,通过、上述配置信息被存储在环境变量中,通过对这些配置文件的管理来实现环境控制对这些配置文件的管理来实现环境控制 shell 环境控制环境控制 eg: $ echo $TERM xterm $ TERM=ansi $ echo $TERM ansi shell Shell编程编程shell还可以被视为一种集成化开放环境。通还可以被视为一种集成化开放

13、环境。通过使用流程控制和条件判断来组合指令以及过使用流程控制和条件判断来组合指令以及对变量赋值,用户就拥有了一个有力的编程对变量赋值,用户就拥有了一个有力的编程工具工具使用使用shell作为开发环境有许多好处,例如使作为开发环境有许多好处,例如使重复的任务自动执行、写报告、回复邮件等重复的任务自动执行、写报告、回复邮件等等等学习学习shell的意义的意义 避免设定上的麻烦避免设定上的麻烦 保证快速的传输速度保证快速的传输速度 不易断线以及减少信息泄漏可能性不易断线以及减少信息泄漏可能性Bash 多数多数Linux版本的默认版本的默认shell 是是GNU计划中最重要的工具软件之一计划中最重要的

14、工具软件之一 优点优点 强大的命令记忆能力强大的命令记忆能力 指令与文件名补全功能指令与文件名补全功能 指令别名指令别名 前后台处理前后台处理 shell scripts的指令程序功能的指令程序功能Bash的优点的优点 命令记忆命令记忆使用使用cat /root/.bash_history可以查询本次登可以查询本次登录前曾经做过的指令录前曾经做过的指令本次登录以来的指令存储在内存中,注销系本次登录以来的指令存储在内存中,注销系统时才会回填到统时才会回填到.bash_history中中使用上下键就可以实现上次使用上下键就可以实现上次/下次指令间的下次指令间的切换切换用于监测是否有用户非法入侵或非

15、法操作用于监测是否有用户非法入侵或非法操作Bash的优点的优点 补全功能补全功能Bash可以自动补全文件名或者指令可以自动补全文件名或者指令 输入文件或指令的开始字符串,再点击输入文件或指令的开始字符串,再点击Tab键实现自动补全键实现自动补全一次一次Tab:自动补全:自动补全两次两次Tab:显示所有可用的以指定字符串开:显示所有可用的以指定字符串开头的文件或指令头的文件或指令Bash的优点的优点 指令别名指令别名指令的指令的“外号外号” 可以使用指令本身或者它的别名来调用指令可以使用指令本身或者它的别名来调用指令 eg1:$ alias alias vi=vim $ vi aa $ vim

16、aa eg2: $ alias cls=clearBash的优点的优点 前后台控制前后台控制使用后台控制可以将当前的工作放到后台执使用后台控制可以将当前的工作放到后台执行,也就是说执行过程或结果不再显示在屏行,也就是说执行过程或结果不再显示在屏幕上,而是在系统中默默的运行着幕上,而是在系统中默默的运行着将工作放在后台可以避免误操作中止进程,将工作放在后台可以避免误操作中止进程,当工作完成再将其调到前台查看结果当工作完成再将其调到前台查看结果便于用户在单用户环境中实现多任务同时处便于用户在单用户环境中实现多任务同时处理理 Bash的优点的优点 shell scripts的指令程序功能的指令程序功能 shell scripts与用户交互式的进行交流并检测与用户交互式的进行交流并检

温馨提示

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

评论

0/150

提交评论