Linuxの環境変数


Linuxの日常の操作の中で、私达はいつも环境の変数の问题に関连して、この中にいくつか混同しやすくて忘れやすい知识の点があって、今日简単にこれらの変数の意味と设置の方式を総括します.
1、ホームディレクトリなどの環境変数を表示する
# echo $HOME
/root

2.exportコマンドを使用して、新しい環境変数helloを設定します.
  export HELLO="Hello!"
  echo $HELLO
  Hello!

3.envコマンドを使用して、すべての環境変数を表示します.
# env
HOSTNAME=master1
TERM=linux
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=172.16.0.27 51028 22
SSH_TTY=/dev/pts/0
USER=root
...

4.setコマンドを使用して、現在ローカルに定義されているすべてのShell変数を表示します.これには、現在のユーザーの環境構成情報が含まれています.
# set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
HISTSIZE=1000
HOME=/root
HOSTNAME=master1
HOSTTYPE=x86_64
ID=0
IFS=$' \t
' LANG=en_US.UTF-8 PS1='[\u@\h \W]\$ '     

5.unsetコマンドを使用して環境変数をクリアします.値が指定されていない場合、変数値はNULLに設定されます.例は次のとおりです.
  $ export TEST="Test..."  #        TEST
  $ unset TEST    #      TEST

6.readonlyコマンドを使用して読み取り専用変数を設定する
readonlyコマンドを使用すると、変数は変更またはクリアできません.削除する必要がある場合は、構成を削除してshellを再起動します.例は次のとおりです.
  $ export TEST="Test..."   #        TEST
  $ readonly TEST    #     TEST    
  $ unset TEST    #           
  -bash: unset: TEST: cannot unset: readonly variable

$TEST="New"#この変数も変更できないことがわかります
  -bash: TEST: readonly variable
グローバル環境変数の設定は/etc/profileファイルにあります
新しい環境変数を追加する必要がある場合は、下位行を追加できます.
  export PATH=$PATH:/path1:/path2:/pahtN

  -----------------------------------------------------------------------------------------------------------------------
Linuxの変数の種類
Linux変数は、変数の生存周期によって分類されます.
  • 永続:構成ファイルを変更する必要があります.変数は永続的に有効です.
  • 一時的:exportコマンドを使用して宣言すれば、変数はshellを閉じると失効します.

  • 変数を設定する3つの方法
    /etc/profileファイルに変数を追加し、すべてのユーザーに有効にします(永続的)
    VIでファイル/etc/profileファイルに変数を追加すると、Linuxの下のすべてのユーザーに有効になり、「永続的」になります.
    たとえば、/etc/profileファイルを編集し、CLASSSPATH変数を追加します.
      # vi/etc/profile
      export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
    注意:ファイルを変更してすぐに有効にするには、#source/etc/profileを実行します.そうしないと、次回このユーザーに再入力するときにのみ有効になります.
    ユーザーディレクトリの下にある.bashrcファイルに変数を追加【単一ユーザに対して有効化(永続的)】
    VIでユーザーディレクトリの下にある.bashrcファイルに変数を追加すると、変更量は現在のユーザーにのみ有効であり、「永続的」になります.
    例えば、guokユーザディレクトリ(/home/guok)の下にある.bashrc
      $ vi/home/guok/.bashrc
    次のように追加します.
      export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
    注意:ファイルを変更してすぐに有効にするには$source/home/guok/.bash_profileされていない場合は、次回このユーザーを再入力するときにのみ有効です.
    .bashrcと.bash_プロファイルの違い.bash_profile  is executed for login shells, while  .bashrc  is executed for interactive non-login shells.
    When you login (type username and password) via console, either sitting at the machine, or remotely via ssh:  .bash_profile  is executed to configure your shell before the initial command prompt.
    But, if you’ve already logged into your machine and open a new terminal window (xterm) then  .bashrc  is executed before the window command prompt.  .bashrc  is also run when you start a new bash instance by typing  /bin/bash  in a terminal.
    .bash_profileは最も重要なプロファイルであり、ユーザーがシステムにログインするたびに読み込まれ、中のすべてのコマンドがbashによって実行されます.
    .bash_logoutはshellを終了すると読み込まれます.だから、このファイルにクリーンアップ作業のコマンドを入れることができます.
    /etcディレクトリのbashrcとprofileはシステムレベル(グローバル)のプロファイルであり、ユーザーホームディレクトリの下で見つからない.bash_profileと.bashrcの場合、この2つのファイルが読み込まれます..bash_historyはbash shellの履歴ファイルで、bash shellに入力したすべてのコマンドが記録されています.  
    一般的な環境変数
    PATHはshellがどのディレクトリにコマンドまたはプログラムを探すかを決定する
    HOME現在のユーザーホーム
    HISTSIZE履歴数
    LOGNAME現在のユーザーのログイン名
    ホスト名
    SHELL現在のユーザShellタイプ
    LANGUGE言語に関連する環境変数.多言語でこの環境変数を修正できる
    MAIL現在のユーザのメール格納ディレクトリ
    PS 1基本プロンプト、rootユーザーに対しては#、一般ユーザーに対しては$、ホスト名表示形式を設定可能