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






