什么是linux SHELL環(huán)境?shell在會話中會保存著大量信息,而這些信息就是shell環(huán)境。LINNX命令程序通過獲取SHELL環(huán)境中的數(shù)據(jù)(此處的數(shù)據(jù)通常稱為環(huán)境變量)來輸出本機(jī)相應(yīng)的配置數(shù)據(jù)。
LINUX環(huán)境變量
Linux shell環(huán)境中存儲了兩種基本類型的數(shù)據(jù):環(huán)境變量和shell變量。當(dāng)然,除了變量,shell也存儲了一些可編程的數(shù)據(jù),即別名和shell 函數(shù)。
如何查看環(huán)境變量呢?
我們可以用bash命令set,或者使用printenv命令程序來查看環(huán)境變量。
它們的區(qū)別是:set 命令不僅顯示shell數(shù)據(jù),而且可以顯示環(huán)境變量列表,而printenv命令僅僅顯示環(huán)境變量列表。
鑒于環(huán)境變量列表比較長,我們可以將每個命令的輸出通過管道符傳遞給less 來輸出列表,例如:
//執(zhí)行命令
[test@linuxprobe ~]$ printenv | less
//輸出內(nèi)容:環(huán)境變量及其數(shù)值的列表
KDE_MULTIHEAD=false
SSH_AGENT_PID=6666
HOSTNAME= linuxprobe
GPG_AGENT_INFO=/tmp/gpg-PdOt7g/S.gpg-agent:6689:1
SHELL=/bin/bash
TERM=xterm
XDG_MENU_PREFIX=kde-
HISTSIZE=1000
XDG_SESSION_COOKIE=6d7b05c65846c3eaf3101b0046bd2b00-1208521990.996705
-1177056199
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/me/.gtkrc-2.0:/home/me/.kde/sh
are/config/gtkrc-2.0
GTK_RC_FILES=/etc/gtk/gtkrc:/home/me/.gtkrc:/home/me/.kde/share/confi
g/gtkrc
GS_LIB=/home/me/.fonts
WINDOWID=29360136
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
KDE_FULL_SESSION=true
USER=test
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:
//printenv 命令也可輸出特定變量- USER的數(shù)值:
[test@linuxprobe ~]$ printenv USER
test
變量
內(nèi)容
DISPLAY
如果你正在運(yùn)行圖形界面環(huán)境,那么這個變量就是你顯示器的名字。通常,它是”:0”,意思是由X 產(chǎn)生的第一個顯示器。
EDITOR
文本編輯器的名字
SHELL
shell 程序的名字
HOME
用戶家目錄
LANG
定義了字符集以及語言編碼方式
OLD_PWD
先前的工作目錄
PAGER
頁輸出程序的名字。這經(jīng)常設(shè)置為/usr/bin/less
PATH
由冒號分開的目錄列表,當(dāng)你輸入可執(zhí)行程序名后,會搜索這個目錄列表。
PS1
Prompt String 1. 這個定義了你的shell 提示符的內(nèi)容。隨后我們可以看到,這個變量內(nèi)容可以全面地定制
PWD
當(dāng)前工作目錄
TERM
終端類型名。類Unix 的系統(tǒng)支持許多終端協(xié)議;這個變量設(shè)置你的終端仿真器所用的協(xié)議。
TZ
指定你所在的時區(qū)。大多數(shù)類Unix 的系統(tǒng)按照協(xié)調(diào)時間時(UTC) 來維護(hù)計算機(jī)內(nèi)部的時鐘,然后應(yīng)用一個由這個變量指定的偏差來顯示本地時間。
USER
你的用戶名
建立LINUX shell 環(huán)境
每當(dāng)我們登錄系統(tǒng)后,bash 程序就會自動啟動,且會讀取一系列配置腳本,這些配置腳本被稱為啟動文件。這些啟動文件定義了可供所有用戶共享的默認(rèn)shell 環(huán)境。
那么位于家目錄中的啟動文件,定義了用戶個人的shell 環(huán)境。
確切的啟動順序取決于shell 會話類型模式。有兩種shell 會話類型模式:一個是登錄shell 會話模式,另一個是非登錄shell 會話模式。
登錄shell 會話模式中會提示用戶輸入用戶名和密碼;非登錄shell 會話模式通常在GUI下啟動終端會話時出現(xiàn)。
登錄shell 會話模式下啟動文件內(nèi)容:
文件
內(nèi)容
/etc/profile
針對所有用戶的全局配置腳本
˜/.bash_profile
用戶個人的啟動文件。可用來修改全局配置腳本中的設(shè)置
˜/.bash_login
如果文件˜/.bash_profile 沒有找到,bash 會嘗試讀取這個腳本
˜/.profile
如果文件˜/.bash_profile 或文件˜/.bash_login 都沒有找到,bash 會試圖讀取這個文件。
非登錄shell 會話模式下啟動文件內(nèi)容:
文件
內(nèi)容
/etc/bash.bashrc
針對所有用戶的全局配置文件
˜/.bashrc
用戶個人的啟動文件。可用來修改全局配置腳本中的設(shè)置
修改linux shell環(huán)境
依據(jù)通常的操作思路,通過添加目錄到PATH 變量或定義新的環(huán)境變量,再把這些更改存放至.bash_profile 文件中;那么對于其它的更改呢,需要存放至.bashrc 文件中。
除了系統(tǒng)管理員具將系統(tǒng)中的所有用戶修改默認(rèn)設(shè)置的權(quán)限外,其他用戶只能限定對個人家目錄下的文件進(jìn)行修改。
我們通過使用一個叫做文本編輯器的程序來編輯(或讀、寫)shell 的啟動文件以及其它配置文件。文本編輯器是一個類似于文字處理器的程序,允許使用移動光標(biāo)在屏幕上編輯。但不同之處在于文本編輯器不僅支持純文本,而且常包含為便于寫程序而設(shè)計的特性。由此可見,文本編輯器是開發(fā)人員用來寫代碼,以及系統(tǒng)管理員用來管理控制系統(tǒng)的配置文件的重要工具之一。
文本編輯器通常分為兩種基本類型:圖形化的和非圖形化的(基于文本)編輯器。
一些典型的圖形化編輯器有GNOME 和KDE。GNOME編輯器自帶了gedit 的編輯器,它通常在GNOME 菜單中稱為“文本編輯器”。KDE自帶了三種編輯器,分別是kedit,kwrite,kate。
那么基于文本的編輯器有nano、vi 和emacs。
nano 編輯器是一個簡單易用的編輯器。vi 編輯器(目前已被vim (“Vi IMproved” 的簡寫)替代)是類Unix 操作系統(tǒng)的傳統(tǒng)編輯器。emacs 編輯器屬于龐大的、多用途的,可做任何操作的編程環(huán)境。
無論哪種類型的文本編輯器都可以在命令行中輸入編輯器的名字及想要編輯的文件名,執(zhí)行文本編輯操作。在這篇文章中,我們學(xué)到了用文本編輯器來編輯配置文件的基本技巧。
這篇文章主要討論了linux SHELL環(huán)境的一些基礎(chǔ)知識及基本的操作技巧。在編寫這篇文章過程中我還參考了《Linux就該這么學(xué)(第2版)》這本書,基于紅帽8編寫,內(nèi)容很貼近實(shí)踐,很有理論指導(dǎo)實(shí)踐價值的一本書籍。