《Linux 标准学习教程》课件第14讲 shell交互功能和变量

上传人:考试不挂****2941... 文档编号:243016162 上传时间:2024-09-13 格式:PPT 页数:29 大小:1.27MB
返回 下载 相关 举报
《Linux 标准学习教程》课件第14讲 shell交互功能和变量_第1页
第1页 / 共29页
《Linux 标准学习教程》课件第14讲 shell交互功能和变量_第2页
第2页 / 共29页
《Linux 标准学习教程》课件第14讲 shell交互功能和变量_第3页
第3页 / 共29页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,14,讲,shell,交互功能和变量,主要内容,一,.,简介,二,. Shell,的启动和建立,三,. shell,命令行形式,四,. Shell,环境,五,. shell,变量,六,. Shell,的内部命令,第,14,讲,shell,交互功能和变量,一,.,简介,shell,是,UNIX,系统中最重要的程序之一,它具有两大功能,:,命令解释器,解释执行所有的用户命令,程序设计语言,具有高级语言的所有功能,shell,有两种主要语法类型:,Bourne shell,和,C shell,,,彼此不兼容。,Bourne shell,家族:,sh ksh bash psh zsh,;,C shell,家族:,csh tcsh,。,其中,bash,和,zsh,在不同程度上支持,csh,的语法,Bash,特点,Bash,是大多数,Linux,系统的默认,Shell,。,Bash,有以下的优点:,1,)补全命令,。在,Bash,命令提示符下输入命令或程序名时,若没有输全命令或程序名,按“,Tab,”,键,,Bash,将自动补全命令或程序名。,2,)通配符,。在,Bash,下可以使用通配符“,*,”和“?”。“,*,”可以替代多个字符,而“?”则替代一个字符。,3,)历史命令,。,Bash,能自动跟踪用户每次输入的命令,并把输入的命令保存在历史列表缓冲区中。,4,)别名。,在,Bash,下,可用,alias,和,unalias,命令给命令或可执行程序起别名和删除别名,这样就可以用自己习惯的方式输入命令。,5,)输入,/,输出重定向,。输入重定向用于改变命令的输入,输出重定向用于改变命令的输出,例:输入重定向。,$ wcdir.out,上面命令将,ls,命令的输出保存为文件,dir.out,。,$ ls dir1.out,6,)管道。,管道用于将一系列的命令连接起来,也就是把前面命令的输出作为后面命令的输入。管道的命令是“,|”,。管道的功能和用法与,DOS/Windows,系统的完全相同。,例:,$ cat dir.out|grep test |wc l,7,)提示符。,Bash,有两级提示符。第一级提示符就是登录,Shell,时见到的,默认为 “,$”,。可以通过重新给,PS1,变量赋值来改变第一级提示符。当,Bash,需要进一步提示以便补全命令时,它会显示第二级提示符。第二级提示符默认为“,”,,可以通过重新给,PS2,变量赋值来改变第二级提示符。一些特殊意义的字符也可以加入提示符赋值中。,一般设为,PS1=,uh W,$ ,意思是:用户名,主机名 当前目录。,8,)作业控制。,作业控制是指在一个作业执行过程中,控制执行的状态。可以挂起一个正在执行的进程,并在以后恢复执行该进程。,Ctrl+z,,,bg,,,fg,等,装入,UNIX,硬件检测,安装,rootfs,建立,0,号进程,产生新进程,swap,对换进程,1,号进程,init,执行,/etc/inittab,初始化各端口,getty,getty,用户注册,正确吗,建立,shell,进程,二,. Shell,的启动和建立,子,父,boot,.,N,Y,B,A,等待命令输入,分析命令,退出命令,产生子进程,后台进程,等待子进程,执行命令,A,B,Y,N,子进程,父进程,唤醒父进程,N,Y,三,. shell,命令行形式,1.,单条命令,: $ cat file1,最常用命令形式,2.,多条命令,:,$ pwd; who; date,提高键盘命令输入效率,3.,复合命令,: $ ps e | grep student2,$ (ls ; cat file3 ; pwd) run_log,方便灵活,运行效率高,4.,后台命令,: $ ls lR file_list,&,多进程并发,充分利用系统资源,四,. Shell,环境,每一个,shell,都有一个用户可设置修改的独立的运行环境,使这个,shell,按照特定的方式来运行。,shell,的环境由一组,环境变量,确定,系统的基本,环境变量放在,/etc/profile,中,用户环境变量放在用,户主目录下的,.profile,文件中,用户,shell,启动时,先,执行,/etc/profile,再执行用户的,.bash_profile,。,环境变量可在,shell,运行时动态修改。,.bash_history:,记录用户以前输入的命令,.bash_profile,:用户登录要执行的命令,.bash_logout,:用户退出要执行的命令,.bashrc,:每次打开新才,shell,要执行的命令,常用的,shell,环境参数,(,变量,),及实例,:,HOME=/usr/computer/student6,用户主目录,注册时的初始目录,PATH,=/bin:/usr/bin:$HOME/bin:./,键盘,命令,的搜索路径,SHELL=/bin/sh,当前运行的,shell,名称,TERM=vt100,当前所用的终端类型,PS1=$,shell,的主提示符,IFS=,域分隔符,通常为空白符,用来分隔命令行各个域,set,命令可以查看当前定义的环境变量,五,. shell,变量,shell,实际上是基于字符串的程序设计语言,但也有变量。,shell,变量能够而且只能存储正文字符串,即它只有一种类型的变量即串变量。但从赋值的形式上看,则可以分成,四种类型的变量或变量形式,。变量的名字必须以字母或下划线开头,可以包括字母、数字和下划线。,1,、用户自定义变量,用户自定义变量语法格式:,name=string,,赋值号,“,=,”,两边不允许有空白符。,例:,nodehost=beijing.UUCP,path=/bin:/usr/bin:/etc/bin,count=10,允许多个赋值操作,按从右到左的顺序进行。,例:,A=,B B=abc C=OK,echo,A,B,C,abc abc OK,当引用一个未设置的变量时,,其隐含值为空,。,例:,echo ,mail is path of mailbox,is path of mailbox,如果用双引号,“”,将值括起来,则括起来的字符串允许出现空格、制表符和换行符等特殊字符,,而且允许有变量替换。,例,1,:,MAIL=/var/mail/fk,var=,MAIL is path of mailbox,echo,var,/var/mail/fk is path of mailbox,例,2,:,str=This is,n a book,echo,str,This is,a book,如果用单引号,将值括起来,则括起来的字符串允许出现空格、制表符和换行符的特殊字符,,但不允许有变量替换。,例,3,:,BOOK=English book,MSG=,BOOK,echo,MSG,BOOK,例,4,:,msg= Today is Sunday,echo,msg,Today is Sunday,引用变量的值时,可以用花括号,将变量名称括起来,使变量名称与它的后续字符分隔开,,如果紧跟在变量名称后面的字符是字母、数字或下划线时,必须要使用花括号,。,例,5,:,str=This is a string,echo ,strent test of variables,This is a stringent test of variables,echo ,strent test of variables,test of variables,可将变量设置为只读形式,,格式为,,readonly,变量名,1,变量名,2,例,6,:,ux=UNIX.SUN,readonly ux,ux=UNIX.SCO,ux: is read only,查看只读形式的变量,格式为,readonly,例,7,:,readonly,readonly ux,2,、位置变量,位置变量顾名思义是与,变量所在位置有关,的变量,这是一种特殊的变量。当一个,shell,过程被调用时,,shell,隐含地为它建立一系列的位置变量。这种位置变量是系统预定义好的,可以直接引用。如命令行的,shell,过程名本身被指定为位置变量,0,,第一个命令参数为,1,,,,第九个命令参数为,9,。,例:,ls / /bin /etc /usr/bin /dev,0,1,2,3,4,5,3,、 环境变量,shell,执行环境由一系列环境变量组成,这些变量是由,shell,维护和管理的。所有这些变量都可被用户重新设置,变量名由大写字母或数字组成。,CDPATH,执行,cd,命令时使用的搜索路径;,HOME,用户的,home,目录;,PATH,寻找命令或可执行文件的搜索路径;,PS1,主命令提示符,默认为,“,”,;,PS2,从命令提示符,默认为,“,”,;,TERM,使用的终端类型。,4,、预定义变量,常用系统变量,:,$0,当前,shell,程序的名字,$1 $9,命令行上的第一到第九个参数,$#,命令行上的参数个数,$*,命令行上的所有参数,$,分别用双引号引用命令行上的所有参数,$,当前进程的进程标识号,(PID),$?,上一条命令的退出状态,$!,最后一个后台进程的进程标识号,系统变量只能引用不能修改,!,例,1,:,$ echo aa bb cc dd $,aa bb cc dd 2391,$ cat file1 file2 file3 2 errlog,$ echo $?,1 (,非,0,表示命令运行失败,错误信息在,errlog,文件中,),$ echo,(,空行,即,echo,输出串尾隐含的换行符,),$ echo This is a test.,(,单词间多个空格,),This is a test.,$ echo “This is a test.”,(,用引号包括时结果如何,?),例,2,:显示所有参数及其总数。, 先将下面源代码用,vi,编辑器存为,afile,文件,#!/bin/bash,echo All argument list : $ ,/,存储所有命令行输入的参数,echo The total number of argument is : $#,/,程序中命令行参数的个数,#end,/,“,#,”,为注释符号,,“,#!,”,为特殊的注释符号,它告诉操作系统使用其后面的程序来解释这个文件,。,存盘后执行,chmod a+x afile,$ ./afile red hat linux /,输入三个参数,All argument list : red hat linux,/,显示参数,The total number of argument is : 3,/,显示参数的个数,六,. Shell,的内部命令,eval,cd,改变当前工作目录,pwd,显示当前工作目录,read,读标准输入,赋给后面的变量,readonly,time,显示当前,shell,运行命令所花费的时间,echo,export,说明,:,shell,的内部命令包含在,shell,命令内部,不是一,条单独的操作系统命令,因此无法在文件系统中查,找到,.,变量输出命令,export,shell,变量定义后或修改值后,如果未经,export,命令输出,则只在当前的,shell,中起作用,对其各个子,shell,不产生任何影响,.,经过,export,命令输出的变量对当前,shell,的各,个子,shell,、以及子,shell,的子,shell,起作用。例如:,$ PATH=$PATH:./ ; export PATH,说明,:,1. export,后面的变量名前不加,$,符号,2.,经,export,输出给子,shell,的变量如果在子,shell,中被修改,则只影响子,shell,不影响父,shell;,如果,在子,shell,中被输出,则只影响子,shell,的子,shell,3. export,命令常用在,.profile,文件中,echo,命令的使用,echo,命令的基本功能就是在标准输出上显示后面的字符串,或变量的值。,当字符串中带空白符,或其它控制字符时,用引号将其括起来。,例如:,$ echo 12345,12345,$ echo “department computer”,department computer,$ echo “My home directory is: $HOME”,My home directory is: /usr/teacher/david,$ echo e “Input your choice (y/n) bbc”,Input your choice (y/n) _ ,echo,特殊字符串引用的例外,引用双引号、单引号和转意符都不能消除对,echo,命令有特殊功能的控制字串的特殊含义。这些控制字串是:,b,退格,c,显示后不换行,f,在终端上屏幕的开始处显示,n,换行,r,回车,t,制表符,v,垂直制表符, 反斜杠,删除环境变量设置,unset,$unset NAME,(如果,NAME,为一个环境变量),设置环境变量的文件,使用,Bash Shell,时,有以下几个文件和用户的作业环境有关:,1,),/etc/profile,2,),/etc/bashrc,3,),/etc/inputrc,4,),$HOME/.bash_profile,5,),$HOME/.bashrc,6,),$HOME/.inputrc,7,),$HOME/.bash_login,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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