分类: LINUX
2010-06-25 14:25:06
一、介绍如何设定 Bash Shell
1、我们可以通过以下几种方式来设定bash shell:
· 使用自义定变数的方式(也就是Local变数);
· 使用Aliases(别名)或functions(函数);
· 使用set指令来设定;
2、还可以使用environment variables(环境变数)来设定bash shell里面其它的指令或者是应用程式。
二、介绍Variables(变数)
1、变数是有一带有值的符号:
· 可以通过变数来设定shell或是其它的程式;
· 变数会储存在记忆体(内存)中而不会存成一个档案;
· 在Linux环境下有两种类型的变数:自定变数 和 环境变数;
· 自定变数只能在目前工作的环境中使用;
· 环境变数可以在全部的工作环境中使用;
2、可以使用以下两个指令来查看系统中有哪些变数:
· set 这个指令可以查看系统中所有的变数(包含自定变数和环境变数);
· env 这个指令只可以查看系统中的环境变数;
如下图所示:
三、介绍如何使用自义定变数来设定shell
1、Shell scripts里面的资料与shell环境的设定都会被放在变数里面,所以必须要通过建立变数或修改变数的值来设定Shell。
2、通常使用英文的大写字母来表示这是一个变数。
3、建立变数的方式如下:
在提示字元后输入变数名称、再输入等号、再输入变数的值
例: [root@localhost ~]#FAV_COLOR=blue FAV_COLOR是变数名称、=表示赋值符号、blue表示变数的值
[root@localhost ~]#set | more 可以查看到FAV_COLOR这个变数及这个变数的值,表明变数已成功建立
4、如果要传回变数的值,必须要在变数名称前面加上一个$的符号
例:[root@localhost ~]#echo $FAV_COLOR 传回这个变数的值,并显示在屏幕上
blue 就会在下面返回这个变数所带的值
四、介绍一些常见的自义定变数(Local Variables)
1、HISTFILESIZE 这个变数所带的值定义了在 history file 中最多可以记录多少笔指令;系统会记录用户曾输入过的每一个指令,并且会把这些指令储存在 history file 里面。
2、COLUMNS 这个变数定义了terminal视窗的宽度。这个值很少改动
3、LINES 这个变数定义了terminal视窗的高度。这个值很少改动
五、介绍PS1这个自定变数
1、PS1 这个变数可以用来设定提示字元前面的提示;也就是 [root@localhost ~]# 这串提示。
2、可以用以下这些值来修改提示字元前面的提示:
· \d 表示今天的日期
· \h 显示主机的名称
· \t 显示目前的时间
· \u 显示目前的用户名
· \w 显示当前工作目录
· \! 显示目前输入的指令是历史记录中的编号
· \$ 会使用$来当做对每个一用户的提示字元,但仍然会使用#来当做root的提示字元
· \l 显示目前是在哪一个tty里面操作
实例,如下图所示:
六、介绍Aliases(别名)
1、alias这个指令可以用来设定其它指令的捷径;
例: alias lf=’ls –laF’ 这样以后再输入 lf 时,就等于是输入了 ls –laF
2、如果只输入 alias 则会列出系统里面所有的别名;
3、如果在alias后面加上一个已经设定好的别名;
例: alias lf 就显示 alias lf =’ls –laF’
4、删除一个别名
例: unalias lf 删除 lf 这个别名
七、介绍除了变数外还有哪些方法可以用来设定SHELL
1、set指令 除了变数之外,还可以使用set指令来设定shell里面的元件,在第二小节提出使用这个set指令可以列出所有变数及其所带的值。这个指令除了可以用来显示变数之外,还可以设定shell里面的属性。
2、例:set –o noclobber 这个设定表示在使用 > 或 >& 的符号来把指令的传回值输出到已存在的档案时,保护这个档案不会被覆盖掉。
例:set –o vi 这个设定表示使用vi来当做预设的文字编辑器
示例如下图:
八、介绍将变数升级为环境变数
1、当建立一个变数时,这个变数只会在目前所在的shell环境里面生效;
2、只有环境变数才会在这台主机下的所有shell环境里面生效;
3、如果希望设定的变数在所有的shell环境里面生效的话,就必须将这个变数升级为环境变数,指令如下:
export 变数名称 升级已经存在的变数
export 新变数名称=变数值 建立新变数同时,并升级成环境变数
将自定义的变数升级为环境变数后,可以切换到另一个用户,执行 set | more 来查看是否在别的用户的shell环境中有刚升级的那个变数,如果存在,表示升级成功
4、删除一个变数:
unset 变数名称
九、介绍一些常见的环境变数
1、HOME 这个环境变数所带的值会指向目前的使用者家目录所在的路径;
2、LANG 这个变数所带的值定义了应用程式要用哪种语言的界面还显示;例如:LANG=en_US.UTF-8 说明使用美式英文;
3、PWD 这个变数所带的值指向了目前使用者工作目录所在的路径;
十、介绍TERM这个环境变数
1、TERM 这个环境变数所带的值定义了终端机的类型;
如果使用图形界面: TERM=xterm
2、reset 这个指令可以重新设定屏幕画面,当屏幕上显示的画面出现乱码时可以使用这个指令来重设屏幕画面
十一、介绍PATH这个环境变数
1、PATH 这个环境变数所带的值是系统的预设路径,例如当我们在提示字元后面输入某个指令而未指定这个指令的路径时,系统就会到PAHT所指向的路径里面去找这个指令。这个变数所带的值是会指向许多路径,所有路径使用冒号分隔开;
2、which 这个指令可以显示某个指令所在的位置;
十二、介绍在文字模式下有哪些方式可以让shell把指令执行的更有效率
在Shell当中有许多转意的元件以及使用的技巧可以搭配指令来使用,让指令可以执行的更有效率,而这些元件以及技巧大至可分为以下九种类型:
1、连接符号 这些符号可以把原本必须要分成两行来写的指令连接成一行来写,例如:’ ” | & ; ()
2、复程式和别名
3、大括号{} 在大括号里面的值是命令区块的组合,语法为:在大括号中填入两个适当的值并已逗号分隔;
4、~ ~表示使用者的家目录
5、参数与变数
6、使用多个连接符号来连接多行指令
7、万用字元 例:* ? [ ]
8、输入导向与输出导向 例:> >> < << 2> 2>>
9、这个指令本身就是一个可执行的档案
十三、介绍Shell Startup Scripts
1、Scripts是由许多指令所汇总而成的脚本,而Startup Scripts指的就是当使用者登陆时会自动执行的Scripts。
2、Scripts的作用包含以下四点:
· 可以在Scripts里面建立自定变数,或是执行set这个指令来设定Shell。
· 可以在Scripts里面建立环境变数,来设定其他的应用程式。
· 可以在Scripts里面启用aliase(别名)
· 可以在Scripts里面定义好开机的时候要自动执行哪些应用程式
十四、介绍Login Shells
1、Login Shell 就是由使用者登陆的动作所触发而起用的Shell;
2、non-login shell 则是由其它的方式所启用的shell;例如:使用 su user1 来切换切换使用者时,所启用的shell就是non-lign shell
3、login shell 与 non-login shell 会执行不同的Startup Scripts
十五、介绍当用户登陆时会执行哪些scripts
1、Login shells 在启动的时候会依次执行以下scripts
· /etc/profile
/etc/profile.d
· ~/.bash_profile
~/.bashrc
/etc/bashrc
在以上的所有档案中,最上面加入 (例:echo /etc/profile 其它的几个文件也加入相应的完整路径名称) 这一行代码,在切换用户登陆时,就可以看到显示出了上面加入的那一行代码,就可以看到,都执行了哪些scripts档和执行的顺序。
2、non-login shells
· ~/.bashrc
/etc/bashrc
/etc/profile.d
十六、介绍 /etc/profile 这个startup scripts
1、当使用者登陆之后,第一个会执行的是/etc/profile这个startup scripts;
2、只有当login shell启动的时候,才会执行这个startup scripts;
3、non-login shell 则不会执行这个startup scripts;
4、/etc/profile这个startup scripts 里面定义了 PATH(预设路径) 、USER(目录登陆的使用者名称)、LOGNAME(由哪一个使用者帐号登陆的)、MAIL(就是放置使用者mail的预设路径)、HOSTNAME(这台主机的名称)、HISTSIZE(可以记录多少笔指令的历史记录)、INPUTRC(一些shell载入的资料档设定处等等这些个变数);
十七、介绍/etc/profile.d 这个startup script
1、profile.d这个子目录里面存放了一些应用程所需要用到的startup scripts;
2、这些scripts 会被执行是因为在/etc/profile里面设定了一个for循环,来呼叫profile.d这个子目录里面的scripts;
3、而这些scripts用来建立一些变数以及初始化的程序。
十八、介绍 ~/.bash_profile 和 ~/.bashrc 这两个scripts
1、这两个scripts主要是用来存放每个用户自己的设定;
2、其中包含了每个用户自定的变数以及别名;
3、如果希望在登陆的时候执行某些会把传回值输出到屏幕上的指令,那么应该把这些指令写入到 .bash_profile 档里面去,而不要会把这些传回值输出到屏幕上的指令写入到 .bashrc 这个scripts
十九、介绍~/.bash_logout这个script
1、这个scripts被放在每个用户的家目录里面;
2、当使用者登出的时候,就会执行这个script;
3、这个script的作用在于当使用者登出的时候,自动执行某些程式;
4、例如:
自动备份使用者曾经变更过的档案、删暂存档、或在屏幕上显示使用者登出的日期和时间等。