1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,*,Linux,操作系统,Linux,Shell,介绍,主要内容和学习要求,知道什么是,shell,和一些常见的,shell,掌握,bash,的基本功能,shell,是系统的用户界面,它提供了用户和,Linux,(,内核)之间进行交互操作的一种接口。用户在命令行中输入的每个命令都由,shell,先解释,然后传给,Linux,内核去执行。,如果把,Linux,内核想象成一个球体的中心,,shell,就是围绕内核的外层,从,shell,向,Linux,操作系统传递命令时,内核就会做出相应的反应。,Shell,简介,bash,与,Bourne s
2、hell,完全向后兼容,并且在,Bourne shell,的基础上增加和增强了很多特性。,bash,也包含了很多,csh,和,ksh,里的优点。,bash,有很灵活和强大的编程接口,同时又有很友好的用户界面。,bash,是现在大多数,Linux,系统的缺省,shell,常用的,Shell,(,续,),当用户打开一个,(,虚拟,),终端时,可以看到一个,shell,提示符,标识了命令行的开始。用户可以在提示符后面输入任何命令及参数,例:,ls,l/home/,jypan/linux,/,注意:命令行中选项先于参数输入,command,选项,参数,命令行,Bash,的功能,如果一个命令太长,无法在
3、一行中显示,可以使用反斜杠,来续行,在多个命令行上输入一个命令或多个命令。例如:,ls,-F;cp-i,mydata,newdata,大多数,shell,在达到命令行行尾时都会自动断开长命令,在一个命令行中可以输入多个命令,用分号将各个命令隔开。例如:,ls,-F;cp-i,mydata,newdata,命令行特征,bash,提供许多功能用来帮助用户节省输入命令的时间,其中最常用的一种方法就是使用,通配符,。,通配符就是一些,特殊的字符,,可以用来在引用,文件名,时简化命令的书写。用户在使用时可以用通配符来指定一种模式,即所谓的“,模式串,”,(,pattern,),,然后,shell,将把那
4、些与这种模式能够,匹配,的文件作为输入文件。,在,bash,中可以使用三种通配符:,*,、,?,、,。,通配符,通 配 符,*,匹配,任意长度,的字符串(包括零个字符),?,匹配任何,单个字符,创建一个字符表列,方括号中的字符用来,匹配,或,不匹配,单个字符,。如:,xyz,匹配,x、y,或,z,,但不能匹配,xx,xy,或者其它任意组合。,无论列表中有多少个字符,它,只匹配一个字符,。,abcde,可以简写为,a-e。,另外,用,感叹号,作为列表的第一个字符可以起到,反意作用,,如:,!,xyz,表示匹配,x、y、z,以外的任意一个字符。,通配符的含义,通配符,“,*,”,的常用方法就是查找
5、具有相同扩展名的文件,ls,*.,tar.gz,通配符,“,*,”,有时可以将几百的命令缩短成一个命令。假设当前目录下有许多文件,现在要删除扩展名为“,.,old,”,的文件,如果有几百个这样的文件,逐个删除显然很麻烦,这时可以使用通配符:,rm,*.old,通配符,举例,问号通配符,“,?,”,必须匹配一个且只能匹配一个字符,通常用来查找比,*,更为精确的匹配。,ls,*.?,方括号,通配符使用括号内的字符作为被匹配的字符,且只能匹配其中的,一个字符,。如列出以,a、b、c,开头,且以,.,dat,为扩展名的所有文件:,ls,abc,*.,dat,可以在方括号中使用,连字符,-,来指定一个范
6、围,如列出以字母开头,数字结尾的所有文件,:,ls,a-,zA,-Z*0-9,方括号通配符,举例,内部变量:,由系统提供,用户不能修改。,用户变量:,由用户建立和修改,在,shell,脚本编写中会经常用到。,环境变量:,这些变量决定了用户工作的环境,它们不需要用户去定义,可以直接在,shell,中使用,其中某些变量用户可以修改。,shell,变量大致可以分为三类:,内部变量,、,用户变量,和,环境变量,。,Shell,变量,变量名,含义,HOME,用户主目录,LOGNAME,登录名,USER,用户名,与登录名相同,PWD,当前目录/工作目录名,MAIL,用户的邮箱路径名,HOSTNAME,计算
7、机的主机名,INPUTRC,默认的键盘映像,SHELL,用户所使用的,shell,的路径名,LANG,默认语言,HISTSIZE,history,所能记住的命令的最多个数,PATH,shell,查找用户输入命令的路径,(,目录列表,),PS1、PS2,shell,一级、二级命令提示符,常见的,Shell,变量,PATH,变量,是最重要的环境变量之一。当用户在命令行中输入命令时,,shell,就会根据该变量定义的路径(目录)和顺序,查找并执行该命令。如果没有正确设置,PATH,变量,则必须输入完整的路径名来运行某个命令。,用户可以根据需要修改环境变量 如:,HISTSIZE,PATH,PS1,P
8、S2,等,在,Linux,下输入命令的两种方式:,直接在命令行中输入命令:,根据,PATH,查找该命令,输入完整的路径名,Shell,变量,查询当前,shell,中的环境变量:,env,env,查询某个变量的值:,echo,echo,$,变量名,Shell,变量查询,bash,配置文件:,bash,配置文件,bash,配置文件,/,etc/profile,/.bash_profile,/.,bash_login,/.profile,/,etc/profile,bash,配置文件,读取,/,etc/profile,文件后,,bash,将在用户主目录中按顺序查找以下文件,并执行第一个找到的文件:,Linux,系统中的全局,bash,启动脚本,任何用户登录系统时,/,etc/profile,都会被执行。通常用来设置标准,bash,环境,但修改该文件,需,root,权限,。,/.bash_profile,/.,bash_login,/.profile,在这些文件中,用户可以定义自己的环境变量,而且能够覆盖在,/,etc/profile,中定义的设置。,