Linux終端
介紹Linux終端留凭、命令行以及執(zhí)行系統(tǒng)命令也榄。對于新手巡莹,需要熟悉Linux終端,因為終端是與Linux系統(tǒng)交互的標準方式甜紫。一旦你掌握了這些命令基礎降宅,通過命令去與系統(tǒng)交互將會變得非常簡單。
開始之前需要準備一臺Linux服務器囚霸,課程使用的Windows10自帶WSL下的Ubuntu 20.4腰根。你也可以自行采購運營商的服務器,如果你是學生拓型,可以以學生優(yōu)惠價申請騰訊云额嘿、華為云和阿里云的基礎配置服務器,非常劃算可以自行前往了解劣挫。
終端仿真器
終端仿真器是系統(tǒng)應用程序册养,可以讓你在可視化圖形界面環(huán)境中使用。大多數都是基于終端仿真器開始學習Linux的压固,對于大多數Linux系統(tǒng)工作者而言球拦,終端工具也是必須掌握的交互工具。
推薦幾款終端工具:
Mac: iTerms2
Win: PuTTY帐我、Windows Power Shell(win10自帶終端工具)
Linux: Terminal坎炼、KDE Konsole、XTerm
初學者可以根據自己的學習環(huán)境選擇拦键,這些終端工具都有自己的功能特色谣光,需要自行培養(yǎng)使用習慣。
Shell(腳本語言)
在Linux中芬为,Shell
是解釋用戶命令和腳本文件的命令行接口規(guī)范萄金,告訴操作系統(tǒng)用戶的真實行為,操作系統(tǒng)具體需要完成的任務媚朦。目前B Shell
和C Shell
都有著廣泛應用氧敢,關于解釋命令的方式,每種Sehll
都有自己的功能集合和復雜性莲镣,但是都具有輸入輸出重定向福稳、變量以及條件測試等功能。
大多數Linux系統(tǒng)默認采用的Bourne-Again shell瑞侮,通常指的是bash
的圆,包括Ubuntu鼓拧、CentOS、RedHat越妈。
命令提示符
當你登錄到Linux服務器季俩,終端上將會輸出一些歡迎信息,包括系統(tǒng)版本梅掠、當前時間日期等信息酌住。然后就會出現一行命令行提示符,等待用戶的命令的輸入阎抒,此時你可以輸入合法的命令給系統(tǒng)酪我。
Ubuntu的命令行提示符:
lance@ubuntuserver0:~$
拆解如下:
- lance: 當前用戶
- ubuntuserver0: 服務器主機名
- ~: 當前目錄,在
bash
中~
指定為當前用戶的主目錄且叁,在此案例中即/home/lance
執(zhí)行命令
在命令行提示符處通過指定可執(zhí)行文件的名稱發(fā)出命令都哭,命令可以是二進制程序或者腳本。正常情況下Linux系統(tǒng)安裝了很多的系統(tǒng)命令和使用的系統(tǒng)附帶程序逞带,比如瀏覽文件系統(tǒng)欺矫、安裝軟件包以及配置系統(tǒng)等。
正在運行的命令的實例成為進程展氓,當你輸入命令之后必須等待系統(tǒng)的執(zhí)行返回才能再次回到命令行提示符穆趴,才可以再次向系統(tǒng)發(fā)起其他命令。
需要注意Linux系統(tǒng)是區(qū)分大小寫的遇汞,包括你在命令行中輸入文件或者目錄名未妹、命令、參數和選項勺疼,如果你的輸入指令不能正常執(zhí)行教寂,需要注意檢查輸入是否有誤捏鱼。
執(zhí)行命令不帶參數和選項
執(zhí)行命令执庐,不帶任何參數和選項,簡單輸入指令是能夠有返回的导梆。這取決于你輸入的命令是否有默認行為轨淌,否則會有正確的命令使用規(guī)范提示輸出。
比如你執(zhí)行cd
命令看尼,會切換目錄到用戶主目錄递鹉;ls
命令則會默認打印當前所在目錄的文件和子目錄。輸入ip
命令則會輸出命令使用規(guī)范說明藏斩。
執(zhí)行命令指定參數
一些命令接受參數和選項躏结,輸入的參數會影響命令的行為。比如你執(zhí)行cd /usr/local
狰域,系統(tǒng)將會切換至/usr/local
目錄媳拴。
cd /usr/local
執(zhí)行命令指定選項
大多數命令接受選項輸入黄橘,在應用程序中通常被稱為標記或者切換開關,這些選項會引導命令的執(zhí)行行為屈溉。通常選項需要附帶在命令之后塞关,由一些命令內置字符來指定其輸入,比如使用-
或者--
來引導選項值的輸入子巾,然后有命令執(zhí)行文件進行解析帆赢。
使用ls --help
來查看ls
命令選項說明:
-
-l
: 指定輸出更長的信息清單,包括文件或者文件夾的所屬用戶以及權限线梗,文件大小和修改時間 -
-a
: 打印指定目錄下所有的文件和文件夾椰于,包括系統(tǒng)隱藏文件和文件夾,比如以.
開頭的隱藏文件和文件夾
執(zhí)行命令指定參數和選項
大多數情況仪搔,都是組合參與和選項來使用命令的廉羔。比如ls -la /home/lance
環(huán)境變量
環(huán)境變量是name-value形式定義的,用于改變命令和進程的執(zhí)行方式僻造。在首次登陸服務器或者啟動服務器時憋他,系統(tǒng)默認按照一定順序從一些配置文件中加載一個或者多個環(huán)境變量。
我們可以通過env
命令來查看系統(tǒng)為當前會話終端所設置的所有環(huán)境變量髓削。
env
查看會話環(huán)境變量
可以看到終端有許多的環(huán)境變量輸出:
> SHELL=/bin/bash
> WSL_DISTRO_NAME=Ubuntu
> WT_SESSION=9e898215-21c0-47a5-9a10-60df73299120
> NAME=DESKTOP-JLRIVPD
> PWD=/home/lance/lance
> LOGNAME=lance
> HOME=/home/lance
> LANG=C.UTF-8
查看指定環(huán)境變量
- 我們在終端查看我們想要知道的環(huán)境變量的值竹挡,可以通過執(zhí)行
echo ${var}
的形式查看。
echo $PATH
輸出:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/mnt/c/Windows/system32:/mnt/c/Windows:/mnt/c/Windows/System32/Wbem:/mnt/c/Windows/System32/WindowsPowerShell/v1.0/:/mnt/c/Windows/System32/OpenSSH/:/mnt/c/Program Files/Java/jdk-14.0.2/bin:/mnt/c/Program Files/Go/go1.15/bin:/mnt/c/Program Files/Git/cmd:/mnt/c/Users/Lance/AppData/Local/Microsoft/WindowsApps:/mnt/c/storage/apps/devloper/Microsoft VS Code/bin:/mnt/c/Users/Lance/go/bin:/snap/bin
- 也可以在命令行中使用環(huán)境變量立膛,這樣命令在執(zhí)行中會自動將指定環(huán)境變量替換成具體變量值揪罕,再傳輸指令給系統(tǒng)。
cd $HOME
- 但是需要注意宝泵,如果你在命令行或者腳本中使用一個未定義設置的環(huán)境變量好啰,正常情況會被空字符串替代。
設置環(huán)境變量
在知道如何使用或者查看環(huán)境變量之后儿奶,需要進一步學習如何設置一個環(huán)境變量框往。
- 設置一個環(huán)境變量時,需要以環(huán)境變量的名稱開頭闯捎,用
=
將變量命令與變量值相連椰弊,傳輸給系統(tǒng)。如果變量已存在則覆蓋瓤鼻,否則為當前會話創(chuàng)建一個新的環(huán)境變量秉版。
TEST_VAR=LANCE_TEST
然后通過echo $TEST_VAR
命令來獲取查看設置變量的值,終端會輸出LANCE_TEST
茬祷。
- 通過
export
命令實現環(huán)境變量設置
bash
中包含export
命令清焕,用于導出變量,以便于子進程可以繼承該變量。簡而言之秸妥,就是允許你使用腳本引導當前會話中導出環(huán)境變量借卧。更多的信息可以通過一些Linux論壇或者書籍中進一步了解學習。
export
命令也可以引用已存在的環(huán)境變量筛峭。例如铐刘,我們在配置Java
或Go
開發(fā)環(huán)境時,需要設置開發(fā)環(huán)境變量至$PATH
影晓,此時可以通過export
命令來實現镰吵,將一個環(huán)境目錄追加至已存在的$PATH
環(huán)境變量之后。
export $PATH:/usr/local/go/bin
總結
學習完Linux終端的一些基礎知識之后挂签,需要自己嘗試去掌握更多的Linux命令以及使用疤祭。