什麼是shell
shell 就是一個程式,它接受從鍵盤輸入的指令, 然後把指令傳遞給作業系統去執行。幾乎所有的Linux發行版都提供一個名為bash的來自GNU項目的shell程式。
“bash”是“Bourne Again SHell”的首字母縮寫, 所指的是這樣一個事實,bash是最初Unix上由 SteveBourne寫成shell 程式 sh的增強版。
基本初體驗
Linux 裡 Ctrl-c 和Ctrl-v 不代表粘貼複制,其定義要早于window。
沿着文本拖動滑鼠,高亮的文字會被X視窗系統緩存到緩沖區,通過滑鼠中鍵可以快速粘貼。
cal 當月月曆
df 磁盤剩餘空間數量
free 空閑記憶體數量
exit 退出終端會話
Ctrl-Alt-F1~F6 切換虛拟終端,F7是傳回圖形桌面
三. 檔案系統中跳轉
pwd —— 列印目前工作目錄名
cd —— 更改目錄
ls —— 列出目錄内容
絕對路徑和相對路徑:
cd /usr/bin 是絕對路徑,始于根目錄 /
cd . 或者 cd .. 是相對路徑,始于目前工作目錄
. (點)指工作目錄, ..(點點)指工作目錄的父目錄
實際使用中,選輸入量最少的那個!
另外,幾乎所有情況下,可以省略 ./,會被隐含的輸入。
規則:
大小寫敏感
"."開頭的隐藏檔案,需要 ls -a
Linux 沒有檔案拓展名的概念,一切皆檔案
用下劃線代替需要空格的命名
四. 研究作業系統
ls 用來展示anglian目錄下所包含的檔案和子目錄清單
除了目前工作目錄外,可以制定要列出内容的目錄,并支援列出多個目錄
ls /usr
ls指令選項
選項
長選項
描述
-a
--all
列出所有檔案,甚至包括檔案名以圓點開頭的預設會被隐藏的隐藏檔案。
-d
--directory
通常,如果指定了目錄名,ls 指令會列出這個目錄中的内容,而不是目錄本身。把這個選項與 -l選項結合使用,可以看到所指定目錄的詳細資訊,而不是目錄中的内容。
-F
--classify
這個選項會在每個所列出的名字後面加上一個訓示符。例如,如果名字是 目錄名,則會加上一個'/'字元。
-h
--human-readable
當以長格式列出時,以人們可讀的格式,而不是以位元組數來顯示檔案的大小。
-l
以長格式顯示結果。
-r
--reverse
以相反的順序來顯示結果。通常,ls指令的輸出結果按照字母升序排列。
-S
指令輸出結果按照檔案大小來排序。
-t
按照修改時間來排序。
file filename 可用來列印檔案類型,一切皆檔案。
五. 操作檔案和目錄
cp
-a --archive 參數:複制檔案和目錄,以及它們的屬性,包括所有權和權限
-r --recursive 參數:遞歸地複制目錄及目錄中的内容,當複制目錄時,需要此參數(或者 -a)
cp -r dir1 dir2, 如果目錄dir2存在,則dir1和其内容copy到dir2裡;如果dir2不存在,則建立dir2,把dir1内容copy到dir2裡,然後dir2和dir1一樣。
mv 不存在 -a 和 -r 參數
mv dir1 dir2,如果目錄dir2存在,則移動目錄dir1和其内容到目錄dir2中;如果dir2不存在,則建立dir2,把dir1内容移動到dir2中,然後删除dir1目錄(其實就是類似重命名的操作)。
rm 不存在 -a 參數,但是有-r參數,同樣表示遞歸删除目錄和檔案。