网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 操作系统-> Unix系列-> Unix的环境变量

Unix的环境变量
作者:佚名 来源:InterNet 加入时间:2005-2-15
相关文章
  • Tru64 unix--Trucluster 安装手册
  • Tru64 UNIX系统磁盘备份与恢复
  • UNIX系统远程存取操作
  • SCO UnixWare 7下磁带机的安装与备份
  • SCO UNIX的注册警告信息
  • SCO UNIX操作系统序列号冲突
  • UNIX下format和tar易用性的一种改进方法
  • UnixWare 7 root口令遗失的解决方法
  • 在SCO UNIX系统中使用光驱
  • UNIX系统安全
  • 相关书籍:
  • tcpip详解卷三:tcp事务协议,http,nntp和unix域协议
  • Unix傻瓜书
  • SCO UNIX入门
  • 莱昂氏UNIX源代码分析
  • Unix操作手册英文版 
  • UNIX系统安全工具
  • SCO UNIX实用教程
  • 一、SHELL 的START FILES 

    不管你的login shell是那一种shell,每一个shell都有它自己的start files,我们设定理想环境时所需使用的指令与设定的变量,都可以写在这些start files中,在login时先後加以执行,这些start files的名称分别是: 

    SHELL START FILES 

    sh /etc/profile 
    $HOME/.profile 
    bash /etc/profile 
    $HOME/.profile(or $HOME/.bashrc) 
    csh None 
    $HOME/.cshrc & $HOME/.login 
    tcsh None 
    $HOME/.cshrc(or $HOME/.tcshrc) 
    & $HOME/.login 

    如果这些文件都存在,那麽它们的执行顺序将是: 
    1. sh系列 /etc/profile --> $HOME/.profile 
    2. csh系列 $HOME/.cshrc --> $HOME/.login 

    在这些start files中,/etc下的profile是系统管理者为大家设定的,一般用户无法做任何更动,如果对系统管理者的设定觉得不够或不符需要,则可在个人帐号下的.profile、.cshrc、.login增加或修正,尤其是对csh及tcsh的用户而言,因为在/etc下并没有start files,所以也不会有系统管理者设定好的环境可以使用,用户就必须自行设定所需要的所有的变量与指令,否则常会有寸步难行的感觉,最常见的如许多指令都因找不到而不能用(因为没有设path)、键无法使用 (因键的作用没有定义)...等。 

    二、常见的需求与常用的指令 

    当我们在UNIX环境中工作,常会为了使自己使用时更方便而产生某些需求,这些常见的需求及其设定方式如: 

    1. 希望键能有作用 

    在$HOME/.profile或$HOME/.cshrc中加上 
    stty erase "^H" 

    2. 希望在UNIX环境中能使用中文 

    在$HOME/.profile(sh系列)中加上 
    stty -istrip cs8 
    LC_CTYPE=ISO_8859_1 
    export LC_CTYPE 
    在$HOME/.cshrc(csh系列)中加上 
    stty -istrip cs8 
    setenv LC_CTYPE iso_8859_1 

    3. 希望能有像DOS系统中DOSKEY的功能 
    只要是使用bash及tcsh即具备此项功能。 

    4. 希望能使用工作站上的汉书编辑器(he) 

    在$HOME/.profile(sh系列)中加上 
    LANG=big5 
    export LANG 
    在$HOME/.cshrc(csh系列)中加上 
    setenv LANG big5 

    5. 希望提示符号能随着路径更动而改变 

    在sh及csh中并无法做到这个功能,而在bash及tcsh中的设定则分别是: 
    bash:在$HOME/.profile中加上 
    PS1='`PWD`> ' 
    或 PS1="w> " 
    tcsh:在$HOME/.cshrc中加上 
    set prompt='%~> ' 

    除了上面所提到针对特殊需要所做的设定之外,在做环境设定时常用到的指令还有: 

    1. stty 
    设定对输入(input)的定义与如何做输出,这个指令的叁数极为众多,我们可用 

    stty -a 
    看到所有的叁数及其设定,在这些叁数中,常用的有: 

    istrip (-istrip) 
    将所有的输入截取成7 bits的资料,然而中文的资料都是8 bits的,所以当需要使用中文时,请加上'-istrip'这个叁数,以避免输入的资料被破坏。 

    cs7 cs8 
    设定每一字元的资料都是7 bits或8 bits的资料, 因此在需要使用中文时,通常会有如下的设定: 
    stty -istrip cs8 
    iuclc (-iuclc) 
    将标准输入的大写字母视为小写(或取消)。 

    olcuc (-olcuc) 
    将小写的字母以大写型态输出(或取消)。 

    echo (-echo) 
    将所有的输入由标准输出处输出(或取消输出,即在萤幕上看不到自己的输入)。 

    stty除了这些叁数外,还可以用来定义某一个键的特定功能,如: 
    stty erase "^H" 
    stty kill "^U" 

    2. mesg y (mesg n) 
    若在工作时不希望被talk等讯息所打扰,可下'mesg n' 指令,以避免外来迅息中断正要进行的工作('mesg y'则是恢复与外界的沟通)。 

    3. umask [nnn] 
    设定新增文件或目录的属性(mode),新文件或新目录的mode为系统管理者以create所设定的属性减去nnn,如系统管理者所设定的文件权利状态是777,而用户又自行设定了umask 022 则这个用户在他个人帐号下的每一个新产生的文件的权利状态都将会是755(777-022)。 

    4. Function 与 Alias 
    对於一连串或某一指令,我们可以用function的方式(在sh、ksh、bash中)或alias指令(在csh、tcsh、ksh、bash 中),用一简短字串来代替这一个或一连串的指令,function的用法如: 

    vi(){ 
    mesg n 
    /usr/ucb/vi $* 
    mesg y 


    其中,'vi'是function的名称,{}之间是'vi'这个function所包含的指令内容,而要注意的是:function的名称不能与shell的内键指令(builtin)名称相同,否则这个function即无法成立。 

    同样的功能,alias指令的用法如: 

    alias vi 'mesg n; /usr/ucb/vi !*; mesg y' 

    其中vi即是''中所包含字串的别名,别名与各shell的builtin名称可以一样(alias本身也是一个内键指令)。 

    若我们在某一shell中同时建立一名称相同的function与alias(如在bash中),则alias的执行次序优先於function的执行。 

    三、常用变量设定 

    在UNIX环境中的变量可分为两类,一是环境变量(Enviroment Variable)、一是shell变量(Shell Variable),二者之间的不同处在於:环境变量不会因为shell间的更替而失去这个变量的作用,如PATH是一个环境变量,因此,即使您在设定好PATH之後再执行另一个shell(如原来是用sh、而後在sh环境中再执行csh),PATH这个环境变量仍能继续作用,而shell变量(如csh的cwd)则是只有在特定的shell下才有作用,一执行其他shell就失去作用。 

    在sh及csh二系列各有其不同的设定变量的方式,为: 

    1. Bourne Shell系列 
    [VAR]=[STRING or NUMBER] 
    export [VAR] 

    如果当我们离开shell、进入另一个程式(如tin)之後,仍需要使用这个变量,则除了设定这个变量的值外,还需要以'export'指令加以宣告,如设定萤幕型态的变量TERM就需以'export'来宣告。 

    2. C Shell系列 
    set [var] = [STRING or NUMBER] 
    setenv [var] [STRING or NUMBER] 

    其中'set'是单纯设定变量值,'setenv'则除了设定变量值外,还包含了类似sh中'export'的功能。 

    而无论是Bourne Shell或C Shell,它们都有一些基本的、共同的常用变量,如: 

    1. PATH 

    设定可执行文件的寻找路径,若现行目录也要包含在寻找的路径中,则需在设定路径时给予一'.',表示现行目录亦包含在寻找的路径中,如: 

    PATH=.:/bin:/usr/local/bin:/usr/ucb 
    或 
    set path=(. /bin /usr/local/bin /usr/ucb) 

    2. EDITOR 

    设定想要使用的编辑器,如 
    EDITOR=/usr/ucb/vi 
    或 
    setenv EDITOR /usr/ucb/vi 

    3. HOME 

    设定个人帐号home directory的所在位置,通常在login时即叁考/etc/passwd而给予一设定值,因此除非用户有某些特殊需求,通常不会重新设定。 

    4. SHELL 

    同样是在login时即会叁考/etc/passwd的内容而自动设定,用户即使重新设定这个变量的内容,对帐号的使用也不会有任何影响。 

    5. 提示符号的设定 

    在sh 中: 
    PS1="[STRING]" 
    PS2="[STRING]" 
    在csh中: set prompt="[STRING]" 

    当然以上所列的只是使用得较为广泛的变量,若您觉得这些不够用,可用man sh、man csh、man tcsh、man bash指令查阅各shell的说明,在其中您将可看到各个shell所包含的变量及各变量的用法。 

    若不清楚某一变量的设定内容,可用'echo $[VAR]'来观察变量的内容,如: 

    echo $PATH 
    四、SHELL 环境的异动 
    前面所提到start files中的设定将在用户login时执行,但当我们要在线上直接改变所使用的shell(如直接执行'csh''exec csh',此时不会执行start files)或是要改变设定的内容,在编修了start files或script files之後,可利用下列指令将环境更新,而不必重新login: 

    . [script file] (在sh 系列的shell中) 
    source [script files] (在csh系列的shell中) 

    直接执行一个script file与用'.''source'指令执行各有其不同的效果,我们可建立一内容为 cd / (或cd [DIR]) 的script file来观察它们之间的差异: 

    script file的执行环境是一内定或自定的subshell(可在script file的第一行用类似'#!/bin/csh'指令加以设定),所以它的直接执行并无法真正将shell环境的工作目录切换到/,而script file一结束,subshell即不存在、'cd /'指令的效果也告消失;而用'.''source'执行则是真正将shell的工作环境下的工作目录更换到/,不会因为script file的结束而使文件中指令的效果消失。


    [文章录入员:nancy]

    相关文章
  • Tru64 unix--Trucluster 安装手册
  • Tru64 UNIX系统磁盘备份与恢复
  • UNIX系统远程存取操作
  • SCO UnixWare 7下磁带机的安装与备份
  • SCO UNIX的注册警告信息
  • SCO UNIX操作系统序列号冲突
  • UNIX下format和tar易用性的一种改进方法
  • UnixWare 7 root口令遗失的解决方法
  • 在SCO UNIX系统中使用光驱
  • UNIX系统安全
  • 相关书籍:
  • tcpip详解卷三:tcp事务协议,http,nntp和unix域协议
  • Unix傻瓜书
  • SCO UNIX入门
  • 莱昂氏UNIX源代码分析
  • Unix操作手册英文版 
  • UNIX系统安全工具
  • SCO UNIX实用教程
  • 本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    Unix系列
    Win9X/ME
    Win2000
    Win2003/2008
    Unix系列
    Linux系列
    WindowsXP
    WinVista/WIN7
    注册表
    其它
    电脑教程阅读排行
    ·cpio命令详细用法
    ·UNIX系统远程存取操作
    ·UNIX系统操作命令
    ·FreeBSD安装指南
    ·FTP命令使用精萃
    ·AIX常用命令
    ·用crontab命令完成SCO ...
    ·网络文件系统(NFS)使用指南
    ·shell script 浅讲
    ·Unix下 Pro*c 编译命令