終端有兩種類型:字元終端(CLI,指令行界面,通過鍵盤下達指令來要求系統幫我們做事情)和圖形終端(GUI,圖形使用者界面,可通過滑鼠下達指令來要求系統幫我們做事情)。Termux是一個字元終端,我們在提示符$後輸入指令,然後按Enter鍵将指令交給系統執行。
目錄
一條指令通常由三個部分組成:指令,選項,參數。例如,對目前目錄遞歸清單的指令是:“ls -R . ”,其中“ls”是指令,“-R”是選項,“.”是參數,圖2-1給出了這條指令在我的手機上的執行結果。
圖2-1 對目前目錄遞歸清單
圖2-1中的指令省略了指令的參數“.”。清單指令ls沒有參數時,參數預設就是“.”。上面圖2-1對應下面圖2-2的檔案目錄結構。
圖2-2 檔案目錄結構
圖2-2中的“~”稱為家目錄或者使用者目錄。除了家目錄以外,還有另外三個需要知道的特殊目錄。“/”表示根目錄,所有的檔案和目錄都可以從根目錄沿着一條路徑到達。“.”表示目前目錄,當Termux啟動時,目前目錄就是家目錄。“..”表示雙親目錄,也就是目前目錄的上一級目錄。
路徑由一系列路徑分割符“/”分割的目錄構成。如果路徑以根目錄開始,稱之為絕對路徑。在我的手機上,家目錄的絕對路徑是
/data/data/com.termux/files/home
是以檔案hello.java的絕對路徑是
/data/data/com.termux/files/home/java/hello.java
也可以縮寫為
~/java/hello.java
注意在絕對路徑中第一個正斜杠是根目錄,後面的正斜杠是路徑分割符。如果路徑以目前目錄開始,稱之為相對路徑。如果家目錄是目前目錄,檔案hello.java的相對路徑是
./java/hello.java
省略開始的目前目錄時寫成
java/hello.java
如果目錄cpp是目前目錄,那麼檔案hello.java的相對路徑是
./../java/hello.java
同樣也可以省略開始的目前目錄寫成
../java/hello.java
練習題2.1 如果目前目錄是arm64,那麼檔案hello.java的絕對路徑和相對路徑是什麼?
1)清單
指令ls用于列出指定目錄下的檔案和目錄。
圖2-3 ls
第1條清單指令沒有參數,這時參數預設是“.”,列出了目前目錄也就是家目錄下的兩個目錄,Termux将目錄顯示為藍色的。第2條清單指令列出了java目錄下的三個檔案和一個目錄。第3條清單指令使用了通配符“*”要求列出java目錄下以“.java”結尾的所有檔案的檔案名。
通配符“*”表示0到任意多個字元構成的字元串。通配符“?”表示一個任意的字元。
練習題2.2 目前目錄是家目錄,列出java目錄下名字包含兩個字母a的檔案和目錄。
2) 顯示和設定目前目錄
指令pwd用于顯示目前目錄的絕對路徑名,指令cd用于設定目前目錄。
圖2-4 pwd, cd
一開始的時候,目前目錄是家目錄,我們用pwd和ls指令證明了這一點。然後我們用“cd java”将目前目錄設定為java目錄,pwd和ls指令證明了目前目錄的變化。接着我們進入oat目錄,用pwd和ls指令證明。在這個目錄下,我們用“ls ..”看到oat目錄的雙親目錄就是java目錄。緊接着我們用“cd ..”從oat目錄下回到了它的雙親目錄java下,pwd和ls指令證明了這一點。最後的三條命中的第一條将目前目錄設定為家目錄,另外兩條證明目前目錄成功改變成了家目錄。
練習題2.3 cd指令能不能不帶參數?如果能的話,作用是什麼?
3)目錄的建立、更名和删除
指令mkdir用于建立新目錄,指令mv用于目錄更名,指令rmdir用于删除一個空目錄。
圖2-5 mkdir, mv, rmdir
第1條指令“mkdir shell”建立了一個新的名為shell的目錄,緊接的ls指令證明了這一點。第3條指令“mkdir sql”建立了一個新的名為sql的目錄,ls指令證明sql目錄已經建立。第5條指令“mv sql test”将目錄sql的名字改成了test,也就是将sql目錄移動到test目錄,這樣sql目錄就沒有了,多出來一個test目錄。倒數第2條指令“rmdir test”删除了test目錄。
總結
本節介紹了4個特殊目錄(“/”,“~”,“.”,“..”)和目錄管理指令(ls; pwd, cd; mkdir, mv, rmdir)。
ls | list | 清單 |
pwd | print working directory | 顯示目前目錄 |
cd | change directory | 改變目前目錄 |
mkdir | make directory | 建立目錄 |
mv | move | 目錄更名 |
rmdir | remove directory | 删除目錄 |
教學視訊
請關注我的公衆号:您的關注讓我倍感榮幸。