UNIX:设置环境变量
如何在 UNIX 系统上设置环境变量?
UNIX 和所有类 UNIX 操作系统(如 OpenBSD、Linux、Redhat、CentOS、Debian)都允许您设置环境变量。当您在 UNIX 上登录时,您当前的 shell(登录 shell)会为您设置一个唯一的工作环境,该环境将一直保持到您注销为止。以下是 UNIX 操作系统下使用的环境变量的大多数命令示例:
- PATH — 显示 shell 搜索命令的目录列表。
- HOME – 用户存储文件的主目录。
- TERM – 设置 UNIX 使用的终端仿真器。
- PS1 – 在 Bourne shell 及其变体中显示 shell 提示符。
- MAIL – 用户邮箱的路径。
- TEMP – 进程可以存储临时文件的路径。
- JAVA_HOME – Sun(现在是 Oracle)JDK 路径。
- ORACLE_HOME – Oracle 数据库安装路径。
- TZ – 时区设置
- PWD—当前目录的路径。
- HISTFILE – 保存命令历史记录的文件的名称
- HISTFILESIZE -历史文件所包含的最大行数
- HOSTNAME-系统的主机名
- LD_LIBRARY_PATH - 它是一组以冒号分隔的目录,用于搜索库。
- USER—当前登录用户的姓名。
- DISPLAY -要连接的 X11 显示器的网络名称(如果可用)。
- SHELL—当前 shell。
- TERMCAP—用于执行各种终端功能的终端转义代码的数据库条目。
- OSTYPE——操作系统类型。
- MACHTYPE — 系统运行的 CPU 架构。
- EDITOR——用户首选的文本编辑器。
- PAGER——用户首选的文本寻呼机。
- MANPATH – 用于搜索手册页的目录列表,以冒号分隔。
显示环境变量
打开终端并输入以下命令,显示类 UNIX 操作系统下的所有环境变量及其值:
$ set
或
$ printenv
或
$ env
示例输出:
要显示搜索路径,请输入:
echo $PATH
要显示提示设置,请输入:
echo $PS1
再举几个例子:
echo $USER echo $PWD echo $MAIL echo $JAVA_PATH echo $DB2INSTANCE
更改或设置环境变量
您可以使用以下命令根据您的 shell 更改当前会话的环境变量。
对于 Korn shell (KSH)
语法如下:
var=value export var
要设置 JAVA_PATH,请输入:
JAVA_PATH=/opt/jdk/bin export JAVA_PATH
对于 Bourne shell(sh 和 bash)
语法如下:
export var=value
要设置 PATH,请输入:
export PATH=$PATH:/opt/bin:/usr/local/bin:$HOME/bin
对于 C shell(csh 或 tcsh)
语法如下:
setenv var value
将 EDITOR 设置为 vim,输入:
setenv EDITOR vim
示例:UNIX C Shell环境变量的启动配置文件
C shell 使用以下文件:
- /etc/csh.login – 如果 C shell 是您的登录 shell,则会执行此操作。
- $HOME/.cshrc和$HOME/.login – 每次启动 C Shell 时都会执行这些文件。~/.login 是 csh 登录脚本,由登录 Shell 读取,位于登录时 ~/.cshrc 之后。
上述 set 或 setenv 命令可以放在 ~/.cshrc 或 ~/.login 文件中。示例 $HOME/.cshrc 文件如下:
alias h history 25 alias j jobs -l alias la ls -a alias lf ls -FA alias ll ls -lA umask 22 set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin) setenv EDITOR vi setenv PAGER more setenv BLOCKSIZE K if ($?prompt) then # An interactive shell -- set some stuff up set filec set history = 100 set savehist = 100 set mail = (/var/mail/$USER) if ( $?tcsh ) then bindkey "^W" backward-delete-word bindkey -k up history-search-backward bindkey -k down history-search-forward endif endif # Traps CTRL-D's to avoid accidental system log off set ignoreeof # Set prompt set prompt = "[\!] %" # Sequentially keeps a buffer of your last events. set history=100 set savehist=100 # Stops C Shell from overwriting and destroying the information in an existing file. set noclobber
示例 ~/.login 文件如下:
# Show fortune :) if ( -x /usr/games/fortune ) /usr/games/fortune # Sets the system variable TERM to recognize the xterm setenv TERM xterm # This command sets the time zone variable setenv TZ IST # set PATH setenv PATH /opt/gnu/bin:/bin/posix:/bin:/usr/bin:/usr/local/bin:/etc:/users/vivek:. # set mail box set mail=/usr/mail/vivek # alias bye is easier to remember alias bye logout alias c clear # read mail as soon as I get into the systems mutt
示例:UNIX KSH Shell环境变量的启动配置文件
KSH shell 使用以下文件:
- /etc/profile – 此默认系统文件由 KSH 执行并设置默认环境变量。
- $HOME/.profile – 将您的定制内容放入此文件中。
ksh shell 的 $HOME/.profile 示例:
PATH=/opt/gnu/bin:/bin/posix:/usr/bin:/usr/lib:/bin:/users/v/vivek/bin MAIL=/usr/mail/vivek HOME=/users/vivek EDITOR=/opt/gnu/bin/vim START=~/.kshrc TERM=xterm # export it export ENV START EDITOR TERM PATH MAIL HOME stty sane susp ^Z # email notification if mail -e then echo "You have mail." fi # prompt PS1="$ " # Check system messages msgs -q # Allow terminal messages mesg y
推荐阅读:
有关更多详细信息,请参阅 ksh 和 csh shell 手册页。