Linux:设置环境变量

时间:2020-01-09 10:43:37  来源:igfitidea点击:

Bash shell在Linux下用于各种目的。
如何在Linux操作系统下自定义shell环境变量?
您可以使用Shell变量来存储数据,设置配置选项以及在Linux下自定义Shell环境。
默认shell程序是Linux下的Bash,可用于以下目的:

  • 配置shell的外观。
  • 根据您使用的终端来设置终端设置。
  • 设置搜索路径,例如JAVA_HOME和ORACLE_HOME。
  • 根据程序需要设置环境变量。
  • 登录或者注销时,运行要运行的命令。
  • 设置别名和/或者shell程序功能可自动执行任务以节省打字和时间。
  • 更改bash提示。
  • 设置shell选项。

您可以使用以下命令查看和配置环境。

显示当前环境

执行以下命令:

$ set

输出示例:

BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="2" [2]="25" [3]="1" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='3.2.25(1)-release'
COLORS=/etc/DIR_COLORS.xterm
COLUMNS=237
CVS_RSH=ssh
DIRSTACK=()
EUID=0
GROUPS=()
G_BROKEN_FILENAMES=1
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/root
HOSTNAME=server3.www.p.theitroad.local
HOSTTYPE=x86_64
IFS=$' \t\n'
INPUTRC=/etc/inputrc
LANG=en_US.UTF-8
LESSOPEN='|/usr/bin/lesspipe.sh %s'
LINES=64
LOGNAME=root
LS_COLORS='no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.btm=00;32:*.bat=00;32:*.sh=00;32:*.csh=00;32:*.tar=00;31:*.tgz=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.bz=00;31:*.tz=00;31:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35:*.png=00;35:*.tif=00;35:'
MACHTYPE=x86_64-redhat-linux-gnu
MAIL=/var/spool/mail/root
MAILCHECK=60
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PIPESTATUS=([0]="0")
PPID=35469
PROMPT_COMMAND='echo -ne "3]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "
$ echo "$HOME"
7"' PS1='[\u@\h \W]$ ' PS2='> ' PS4='+ ' PWD=/root SHELL=/bin/bash SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor SHLVL=1 SSH_CLIENT='10.1.3.116 44212 22' SSH_CONNECTION='10.1.3.116 44212 10.10.29.68 22' SSH_TTY=/dev/pts/0 TERM=xterm UID=0 USER=root _=set consoletype=pty tmpid=0 genpasswd () { local l=; [ "$l" == "" ] && l=16; tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs } xrpm () { [ "" != "" ] && ( rpm2cpio "" | cpio -idmv ) }

$PATH定义了命令的搜索路径。
它是一个用冒号分隔的目录列表,shell其中搜索命令。

$PS1定义提示设置。
有关更多信息,请参见所有常用的shell变量列表。
您可以使用printf或者echo命令显示变量的值:

$ printf "%s\n" $HOME

或者

/home/Hyman

输出示例:

export PATH=${PATH}:/home/Hyman/bin

在Linux上设置环境变量

您可以使用export命令修改每个环境或者系统变量。
设置PATH环境变量,使其包含使用perl和shell脚本安装bin目录的目录:

export PATH=${PATH}:${HOME}/bin

或者

export PATH=${PATH}:/usr/java/jdk1.5.0_07/bin

要将JAVA_HOME环境变量设置为安装J2SE SDK应用程序的目录,请执行:

export ANT_HOME=/path/to/ant/dir
export PATH=${PATH}:${ANT_HOME}/bin:${JAVA_HOME}/bin

您可以如下设置多个路径:

$ vi ~/.bash_proflle

如何使所有设置永久化?

使用控制台登录或者使用ssh远程登录时,将执行~/.bash_profile($HOME/.bash_profile)或者~/.prfile文件。
执行以下命令以编辑~/.bash_profile文件,执行:

export PATH=${PATH}:${HOME}/bin

追加$PATH设置,执行:

export DB2INSTANCE=prod_sales

保存并关闭文件。

设置IBM DB2实例名称

执行以下命令:

##代码##

关于/etc/profile文件的注释

/etc/profile包含Linux系统范围的环境和启动程序。
所有使用bash,ksh,sh shell的用户都使用它。
通常用于设置PATH变量,用户限制和其他用户设置。
它仅在登录shell程序上运行。
如果要进行大的更改或者特定于应用程序的更改,请使用/etc/profile.d/目录,如此处和此处所述。