上篇文章只要是講了linux一些基本概述。
我們這次開始打好命令列操作的基礎,以後再靠一些圖形化的操作來提公升我們的工作效率。
既然要學習linux作業系統,我們就要去學習它的命令,總所周知,linux的圖形介面是不穩定的,它的圖形介面只不過是乙個應用程式,所以很容易奔潰。所以我們應該學習圖形下面的一些機制,包括用命令列去實現一些東西,用shell去實現一些東西,包括去理解它的內部機制。
當然這些命令去死記硬背是不行的。
啟動虛擬機器,啟動ubuntu。
圖形介面 切換到 命令列 是按 ctrl+alter+ f2 或 f3 或 f4
命令列 切換回 圖形介面 ctrl+alter+ f7
1、第乙個命令:ls
列出檔案下的所有檔案,ls其實就是list的乙個縮寫
現在我們來分析一下這個命令是怎麼實現的,實現機制是什麼樣的?
從字面理解,shell是貝殼/外殼的意思。
比方說 a--》這個是作業系統的核心kernel,在kernel之上呢我們就會有使用者介面的定義,然後再往上我們有乙個外殼把它包裹起來,這個外殼裡有很多命令工具,我們通過這些命令工具和編寫我們自己的shell指令碼命令,有點類似於windows下面的批處理,通過這些來實現對下面的訪問。
所以ls的實現過程是這樣的:
(1)輸入了ls
(2)ls->去相應的目錄去找shell命令程式,那這個shell去**找呢,當然是在path裡找,那麼這個path在**設定呢?環境變數。
(3)找到了之後就要執行,執行是基於shell的一些基本庫,比如說在ubuntu裡面我們的shell採用的是bash
(4)最後就是訪問kernel核心
現在我們來看一下這個path是在**配置的,這樣我們才能知道ls命令在**。
我們看path之前呢,先看乙個新的命令
whereis ls
列印出來ls: /bin/ls /usr/share/man/man1/ls.1.gz
我們來查詢一下/bin/ls這個目錄
ls /bin/ls
列印出來 /bin/ls 顯示是綠色,說明它是個可執行檔案
那下面我們看一下環境變數是否真的指向 /bin/ls ,那麼環境變數在哪呢?我們想象一下我們之前說的那個資料夾是做配置的,好像是etc這個資料夾對不對。
我們進入etc資料夾看一下
cd etc
那麼環境變數是在 /etc/environment下,我們ls一下
ls /etc/environment
列印出來 /etc/environment , 我們得知是乙個一般檔案
我們用vi工具開啟該檔案
vi /etc/environment
我們可以看到確實有個path
path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin:/usr/games"
也就是說ls執行的時候就會去這些檔案下去找可執行檔案
通過bash對ls進行解析
2、linux是如何實現shell的
(1)bash
(2)coreutils
要了解這兩塊我們不得不去說一下gnu,去查一下gnu的翻譯
bash和coreutils是在gnu上開發的
gnu的官網:
裡面有對於gnu bash的介紹
我們可以通過bash -version檢視當前bash版本
怎麼辦bash移植到我們的系統裡面,不用命令怎麼手動移植,可以檢視幫助文件
一定要理解gun與linux的關係
shell命令,shell迴圈,shell引數
touch hello.sh 建立乙個檔案 vi hello.sh 編輯文字 bin bash 指定bash解析器,centos預設的是bash解析器 echo helloworld echo helloworld 這兩句話效果相同,不過為了符合規範用第二種 執行指令碼,首先賦予指令碼最大許可權 c...
shell命令 xxd命令
xxd是二進位制檢視命令,預設將2檔案顯示為16進製制字串表示形式。看例子 root ambari dir cat t 31 root ambari dir xxd t 0000000 3331 0a 31.root ambari dir xxd ps t 33310a root ambari di...
shell 科普 Shell命令用法
ver 1.0 2013 08 11 11 59 20 if then fiexample if f file then 如果file是個檔案 echo 是乙個檔案。fi if 結束 if f file then 如果file是個檔案 echo 是乙個檔案。else echo 不是乙個檔案。fi i...