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