嵌入式day11

shell簡介

英文單詞shell可直譯爲“貝殼”。“貝殼”是動物作爲外在保護的一種工具。Linux中的shell就是Linux內核的一個外層保護工具,並負責完成用戶與內核之間的交互。

命令是用戶向系統內核發出控制請求,與之交互的文本流。

shell是一個命令行解釋器,將用戶命令解析爲操作系統所能理解的指令,實現用戶與操作系統的交互。

當需要重複執行若干命令,可以將這些命令集合起來,加入一定的控制語句,編輯成爲shell腳本文件,交給shell批量執行。

選擇shell

目前流行的shell主要有幾種:

  • Bourne Shell(簡稱sh)

  • C Shell(簡稱csh)

  • Korn Shell(簡稱ksh)

  • Bourne Again Shell:能夠提供環境變量以配置用戶shell環境,支持歷史記錄,內置算術功能,支持通配符表達式,將常用命令內置簡化。

shell命令格式

username@hostname:direction$

username:用戶名,顯示當前登錄用戶的賬戶名;

hostname:主機名,顯示登錄主機名;

direction:目錄名,顯示當前所處的路徑,當在根目錄下顯示"/",當前在用戶主目錄下顯示爲“~”;

一條命令的三要素之間用空格隔開;

若將多個命令在一行書寫,用分號(;)將命令隔開;

如果一條命令不能在一行書寫完,在行尾使用反斜槓(\)標明該條命令結束;

使用Tab鍵補全命令

查詢命令歷史

history [numberline]

顯然history只能記錄有限條的歷史命令,默認保留500條命令

Bash Shell 將歷史命令容量保存在環境變量HISTSIZE中。

echo $HISTSIZE顯示歷史命令容量

HISTSIZE=number修改歷史命令容量

通配符

當需要命令處理一組文件,用戶不必一一輸入文件名,可以使用shell通配符。

通配符 含義 實例
* 匹配任意長度的字符串 1*.txt代表12.txt,1344.txt等
匹配一個長度的字符 1?.txt代表12.txt ,13.txt等
[…] 匹配其中指定的一個字符 1[ort].txt代表1o.txt,1r.txt,1t.txt
[-] 匹配指定的一個字符範圍 1[a-z].txt代表1a.txt,1b.txt到1z.txt
[^…] 除了其中指定的字符,均可匹配 1[^otr].txt除了1r.txt,1o.txt,1t.txt外

管道

管道可以把一系列命令連接起來,意味着第一個命令的輸出將作爲第二個命令的輸入,通過管道傳遞給第二個命令,第二個命令的輸出又將作爲第三個命令的輸入,以此類推。就像通過使用“|”符連成一個管道。

輸入/輸出重定向

輸入/輸出重定向是改變shell命令或程序的標準輸入/輸出目標,重新定向到新的目標。

linux中默認的標準輸入定義爲鍵盤,標準輸出定義爲終端窗口。

用戶可以爲當前操作改變輸入或輸出,迫使某個特定命令的輸入或輸出來源爲外部文件。

重定向符 含義
>file 將file文件重定向爲輸出源,新建模式
>>file 將file文件重定向爲輸出源,追加模式
<file 將file文件重定向爲輸入源
2>/&> 將由命令產生的錯誤信息輸入到文件中

命令置換

命令置換是將一個命令的輸出作爲另一個命令的參數

command1 `command2`

其中,命令2的輸出將作爲命令1的參數。

echo

echo命令用於在標準輸出———顯示器上顯示一段文字,一般起到提示作用。echo命令的一般語法格式:echo [-n] information

選項-n表示輸出文字後不換行。提示信息字符串可以加引號,也可以不加。

/etc/passwd文件

/etc/passwd文件是系統能夠識別的用戶清單。當用戶登錄時,系統查詢這個文件,確定用戶的 UID並驗證用戶口令

/etc/group文件

包含了UNIX組的名稱和每個組中成員列表

每一行代表一個組,包含4個字段;

adduser配置文件

/etc/adduser.conf

pstree

將所有行程以樹狀圖顯示,樹狀圖將會以pid(如果有指定)或是以init這個基本進程爲根,如果有指定使用者id,則樹狀圖會只顯示該使用者所擁有的進程。

文件系統類型

磁盤文件類型:指本地主機中實際可以訪問到的文件系統

網絡文件系統:是可以遠程訪問的文件系統

專有/虛擬文件系統:不駐留在磁盤上的文件系統

目前Ext4是Linux系統廣泛使用的一種文件格式。在Ext3基礎上,對有效性保護、數據完整性、數據訪問速度、向下兼容性等方面做了改進。

最大特點是日誌文件系統:可將整個磁盤的寫入動作完整地記錄在磁盤的某個區域上,以便在必要時回溯追蹤。

SCSI與IDE設備命名

sata硬盤的設備名稱是“/dev/sda”

IDE硬盤的設備名稱是“/dev/hda”

如果很在意系統的高性能和穩定性,應該使用SCSI硬盤

Linux分區的命名方式

字母和數字相結合

前兩個字母表示設備類型

  • hd 代表IDE硬盤

  • sd 代表SCSI或SATA硬盤

第三個字母說明具體的設備

a表示第一個硬盤

b表示第二個硬盤

交換分區

將內存中的內容寫入硬盤或從硬盤中讀出,稱爲內存交換

交換分區最小必須等於計算機的內存

可以創建多於一個的交換分區

儘量把交換分區放在硬盤分區的起始位置

鏈接文件

硬鏈接:是利用Linux中爲每個文件分配的物理編號————inode建立鏈接。因此,硬鏈接不能跨越文件系統

軟鏈接:是利用文件的路徑名建立鏈接。通常建立軟鏈接使用絕對路徑而不是相對路徑,以最大限度增加可移植性。

需要注意的是,如果是修改硬鏈接的目標文件名,鏈接依然有效;如果修改軟鏈接的目標文件名,則鏈接將斷開;對於一個已存在的鏈接文件執行移動或刪除操作,有可能導致鏈接的斷開。假如刪除目標文件後,重新創建一個同名文件,軟鏈接將恢復,硬鏈接不再有效,因爲文件的inode已經改變。

配置IP地址

配置IP地址的方法有兩種:

  • 配置靜態IP:在主機進入網絡之前,事先爲主機設置固定的IP地址;

  • 配置動態IP:選擇DHCP網絡服務,在主機進入網絡之後,動態隨機獲取IP地址。

動態IP地址獲取

sudo dhclient

動態IP的獲取過程

  • 客戶端尋找DHCP服務器

  • 服務器提供可分配的IP地址

  • 客戶端接受IP地址租借

  • 服務器確認租借IP

網絡重啓

sudo /etc/init.d/networking restart

IP地址存放地點

interfaces配置文件:/etc/network/interfaces

DNS客戶端配置文件

resolv.conf配置文件:/etc/resolv.conf中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章