如何管理你的 Linux 環境變數
在 Linux 系統上的用戶賬戶配置以多種方法簡化了系統的使用。你可以運行命令,而不需要知道它們的位置。你可以重新使用先前運行的命令,而不用發愁系統是如何追蹤到它們的。你可以查看你的電子郵件,查看手冊頁,並容易地回到你的家目錄,而不用管你在文件系統中身在何方。並且,當需要的時候,你可以調整你的賬戶設置,以便其更符合你喜歡的方式。
Linux 環境設置來自一系列的文件:一些是系統範圍(意味著它們影響所有用戶賬戶),一些是處於你的家目錄中的配置文件里。系統範圍的設置在你登錄時生效,而本地設置在其後生效,所以,你在你賬戶中作出的更改將覆蓋系統範圍設置。對於 bash 用戶,這些文件包含這些系統文件:
/etc/environment
/etc/bash.bashrc
/etc/profile
以及一些本地文件:
~/.bashrc
~/.profile # 如果有 ~/.bash_profile 或 ~/.bash_login 就不會讀此文件
~/.bash_profile
~/.bash_login
你可以修改本地存在的四個文件的任何一個,因為它們處於你的家目錄,並且它們是屬於你的。
查看你的 Linux 環境設置
為查看你的環境設置,使用 env
命令。你的輸出將可能與這相似:
$ env
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;
01_or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:
*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:
*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:
*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;
31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:
*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:
*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:
*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:
*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:
*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:
*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:
*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:
*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:
*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:
*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:
*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:
*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.spf=00;36:
SSH_CONNECTION=192.168.0.21 34975 192.168.0.11 22
LESSCLOSE=/usr/bin/lesspipe %s %s
LANG=en_US.UTF-8
OLDPWD=/home/shs
XDG_SESSION_ID=2253
USER=shs
PWD=/home/shs
HOME=/home/shs
SSH_CLIENT=192.168.0.21 34975 22
XDG_DATA_DIRS=/usr/local/share:/usr/share:/var/lib/snapd/desktop
SSH_TTY=/dev/pts/0
MAIL=/var/mail/shs
TERM=xterm
SHELL=/bin/bash
SHLVL=1
LOGNAME=shs
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
XDG_RUNTIME_DIR=/run/user/1000
PATH=/home/shs/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
LESSOPEN=| /usr/bin/lesspipe %s
_=/usr/bin/env
雖然你可能會看到大量的輸出,上面顯示的第一大部分用於在命令行上使用顏色標識各種文件類型。當你看到類似 *.tar=01;31:
這樣的東西,這告訴你 tar
文件將以紅色顯示在文件列表中,然而 *.jpg=01;35:
告訴你 jpg 文件將以紫色顯現出來。這些顏色旨在使它易於從一個文件列表中分辨出某些文件。你可以在《在 Linux 命令行中自定義你的顏色》處學習更多關於這些顏色的定義,和如何自定義它們。
當你更喜歡一種不加裝飾的顯示時,一種關閉顏色顯示的簡單方法是使用如下命令:
$ ls -l --color=never
這個命令可以簡單地轉換到一個別名:
$ alias ll2='ls -l --color=never'
你也可以使用 echo
命令來單獨地顯現某個設置。在這個命令中,我們顯示在歷史緩存區中將被記憶命令的數量:
$ echo $HISTSIZE
1000
如果你已經移動到某個位置,你在文件系統中的最後位置會被記在這裡:
PWD=/home/shs
OLDPWD=/tmp
作出更改
你可以使用一個像這樣的命令更改環境設置,但是,如果你希望保持這個設置,在你的 ~/.bashrc
文件中添加一行代碼,例如 HISTSIZE=1234
。
$ export HISTSIZE=1234
「export」 一個變數的本意是什麼
導出一個環境變數可使設置用於你的 shell 和可能的子 shell。默認情況下,用戶定義的變數是本地的,並不被導出到新的進程,例如,子 shell 和腳本。export
命令使得環境變數可用在子進程中發揮功用。
添加和移除變數
你可以很容易地在命令行和子 shell 上創建新的變數,並使它們可用。然而,當你登出並再次回來時這些變數將消失,除非你也將它們添加到 ~/.bashrc
或一個類似的文件中。
$ export MSG="Hello, World!"
如果你需要,你可以使用 unset
命令來消除一個變數:
$ unset MSG
如果變數是局部定義的,你可以通過載入你的啟動文件來簡單地將其設置回來。例如:
$ echo $MSG
Hello, World!
$ unset $MSG
$ echo $MSG
$ . ~/.bashrc
$ echo $MSG
Hello, World!
小結
用戶賬戶是用一組恰當的啟動文件設立的,創建了一個有用的用戶環境,而個人用戶和系統管理員都可以通過編輯他們的個人設置文件(對於用戶)或很多來自設置起源的文件(對於系統管理員)來更改默認設置。
via: https://www.networkworld.com/article/3385516/how-to-manage-your-linux-environment.html
作者:Sandra Henry-Stocker 選題:lujun9972 譯者:robsean 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive