分类: BSD
2008-04-20 22:37:08
命令解释程序 shell是与用户关系最密切的应用程序,用户主要通过shell使用系统。在每次登录系统之后,就启动了一个与用户交互的shell,这个shell将给出一个提示符等待用户输入,(sh为 “ $ ” ,csh为 “ % ” ,如果是使用root用户,登录提示符将是 “ # ” ),然后对用户的输入进行解释执行。
在 shell中,可以通过设置一些环境变量,来改变shell本身的行为。例如,当shell接收到用户的指令的时候,它需要在一定的路径中查找可执行的指令,这个路径就是由环境变量PATH来确定的。可以使用echo指令来查看环境变量的内容。
/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
在 sh下通过下面方法重新设置环境变量:
$ export PATH
这两个语句可以通过分号分割,放在同一行中。分号在 shell下有特殊的含义,它意味着之前和之后是两个语句,shell会顺序执行。
而在 csh中,需要使用setenv指令:
常用的环境变量:
EDITOR 设置用户常用的编辑器,很多程序查看这个变量来启动具体的编辑器,可以根据系统的情况更改 |
HOME 用户的主目录的名字,这个变量由login程序设置,一般不需要更改 |
DISPLAY X使用这个环境变量来标识具体的显示位置,格式为 “ 计算机名字: X服务器序号.显示屏序号 ” ,例如:xt1:0.0,它不需要在资源文件中进行定义 |
LANG 系统使用的语言,用于系统的本地化,缺省为 “ C ” ,具体的设置可以查看/usr/share/locale目录,那里定义了不同的语言,可以将其设置为zh_CN.EUC来使得一些软件使用中文字符。 |
MAIL 用户mail文件的位置,也不需要改动 |
PATH 使用冒号分隔的一系列路径,系统用它来查找具体可执行程序,因此这个变量非常重要,可以根据具体的情况改动其值。为了安全的原因,不要将当前目录作为执行程序的搜寻路径,尤其对于root用户。这样在当前目录下启动程序,需要加上路径,例如启动当前目录下的a.out程序,输入 “ ./a.out ” 。 |
MANPATH 使用冒号分隔的一系列路径,系统用它来查找具体命令的在线手册,设置方法与PATH相同。 |
PS1 sh风格的shell使用这个变量的值作为提示符,缺省值为 “ $ ” (root为 “ # ” )。更现代的sh就增强了提示符的灵活性,可以在提示符中加入当前目录、用户名、机器名,命令的序号等。 |
PS2 sh风格的shell使用这个变量的值作为后续提示符,提示命令还没有完全输入,缺省为 “ > “ |
TERM 终端的类型,对于需要全屏操作的程序,例如编辑器vi等程序,非常重要。有时要根据情况对设置进行调整。 |
TZ 时区设置,具体的时区信息位于/usr/share/zoneinfo目录下,需要设置为适合本地时区的标准值 |
当为了方便使用,而将环境变量设置正确之后,最好能将这些设置保存起来,下次登陆能自动设置这些环境变量,而不需要重新输入。为了达到这个目的,必须了解登陆过程的一些详细步骤。
用户登录时, sh将首先自动执行/etc/profile文件,为每个用户设置最基本的环境,而csh将使用/etc/csh.cshrc,csh.login和csh.logout作为系统级csh资源文件。执行了系统级别的登录文件之后,每个用户的shell就在该用户的主目录下寻找该用户个人的资源文件:sh使用.profile文件,csh使用.login和.cshrc文件。这些资源文件均使用相应的shell语言,/etc/profile和个人目录下的.profile使用sh风格的控制语言,/etc/cshrc和个人目录下的.login、.cshrc使用csh风格的控制语言。
系统管理员可以改动 /etc目录下的系统级资源文件,为用户提供一个最方便的使用环境。对于sh风格的用户,可以更改/etc/profile文件,对csh用户,应更改/etc/csh.cshrc文件。在这些文件中可以改动shell使用的环境变量,这样来改变shell的行为方式,或者执行一系列自动操作,完成一些用户登录时需要自动执行的任务。
用户可以根据自己使用的 shell类型,更改.profile或.login文件,达到环境的设置目的