來學一學LINUX系統中SHELL環境的搭建技巧
什麼是 SHELL環境?shell在會話中會儲存著大量資訊,而這些資訊就是shell環境。LINNX命令程式透過獲取SHELL環境中的資料(此處的資料通常稱為環境變數)來輸出本機相應的配置資料。
LINUX環境變數
Linux shell環境中儲存了兩種基本型別的資料:環境變數和shell變數。當然,除了變數,shell也儲存了一些可程式設計的資料,即別名和shell 函式。
如何檢視環境變數呢?
我們可以用bash命令set,或者使用printenv命令程式來檢視環境變數。
它們的區別是:set 命令不僅顯示shell資料,而且可以顯示環境變數列表,而printenv命令僅僅顯示環境變數列表。
鑑於環境變數列表比較長,我們可以將每個命令的輸出透過管道符傳遞給less 來輸出列表,例如:
//執行命令
[test@ ~]$ 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=
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下啟動終端會話時出現。
檔案 |
內容 |
/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環境的一些基礎知識及基本的操作技巧。在編寫這篇文章過程中我還參考了 這本書,基於紅帽8編寫,內容很貼近實踐,很有理論指導實踐價值的一本書籍。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2853194/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- (一)Linux環境的學習環境的搭建Linux
- Windows的Linux子系統搭建資料科學環境WindowsLinux資料科學
- Linux學習環境搭建Linux
- Linux系統環境搭建Linux
- Spark學習進度-Spark環境搭建&Spark shellSpark
- Linux作業系統的Shell環境中輸入中文(轉)Linux作業系統
- 學習N點虛擬主機系統環境搭建
- EAS系統環境的搭建
- 學習ASM技術(一)--環境搭建ASM
- ubuntu系統中java開發環境的搭建UbuntuJava開發環境
- Linux開發環境搭建——deepin系統的使用Linux開發環境
- Linux的shell環境Linux
- 關於學習ORACLE時linux環境搭建OracleLinux
- Flutter學習(一)——搭建開發環境(Windows)Flutter開發環境Windows
- FFmpeg開發筆記(一)搭建Linux系統的開發環境筆記Linux開發環境
- Linux中bash shell環境變數Linux變數
- Windows搭建Superset環境學習Windows
- 『忘了再學』Shell基礎 — 13、環境變數(一)變數
- 學Python用什麼系統環境好?推薦Linux系統!PythonLinux
- Windows系統中搭建python開發環境WindowsPython開發環境
- linux系統資料庫開發環境搭建Linux資料庫開發環境
- JAVA學習系列之一-搭建開發環境Java開發環境
- shell全域性(系統)環境變數變數
- 學習筆記:MQTT環境搭建筆記MQQT
- 學習Linux系統的態度及技巧Linux
- RedHat/CentOs系統搭建lnmp環境RedhatCentOSLNMP
- Dockerfile 與 Compose 環境搭建學習筆記(一)Docker筆記
- 用Kotlin-koans學Kotlin【一】 環境搭建Kotlin
- 使用window10系統搭建完善的Linux開發環境Linux開發環境
- 定製AIX作業系統的shell環境(轉)AI作業系統
- 【機器學習】深度學習開發環境搭建機器學習深度學習開發環境
- Flutter學習指南:開發環境搭建Flutter開發環境
- Android環境搭建學習筆記Android筆記
- Kubernetes學習---環境搭建篇
- OpenGL 學習 01 Mac 搭建 OpenGL 環境Mac
- Ubuntu 18.04 深度學習環境搭建Ubuntu深度學習
- React學習筆記1:環境搭建React筆記
- 學習centos之快速搭建LNMP環境CentOSLNMP