在Linux上常用的終端機指令(shell)整理
我初次接觸Linux時就是使用Ubuntu,有豐富的圖形化界面,不過要上網、看檔案、打文件其實都已經綽綽有餘了。但難免還是會有需要打開終端機輸入指令的時候,初時還真令人手忙腳亂,經過一段時間的適應後,發現文字界面的操作其實挺容易的,而且有時候會比圖形界面來的方便。接下來整理一些基本常用的指令,讓進入終端機後不至於會手忙腳亂。
以下只要是指令,該行都是以「$」來開頭,這個符號叫做shell prompt,就是打開終端機後所出現在畫面上的這個符號,我們所有的指令都是輸入在這個符號之後,這個符號是終端機自己產生的,不需要手動打。只要這個符號出現,我們就可以開始輸入指令。
首先家目錄可用「~」替代,所以回到家目錄可用
$ cd ~
進入家目錄下的Desktop目錄,這個用法稱為絕對路徑的用法,在「$」前方所顯示的即是目前的目錄位置
$ cd ~/Desktop
若當時的路徑停留在加目錄下,可使用相對路徑方式
$ cd ./Desktop
若要再回道上一層目錄,則可以使用「..」的方式
$ cd ..
舉一個範例,若我們想要到根目錄下的var目錄,就可以使用
$ cd /var
若接的想再到var下的tmp目錄,就可以使用相對路徑
$ cd ./tmp
或絕對路徑
$ cd /var/tmp
$ ls
顯示詳細內容
$ ls -l
$ mkdir <目錄名稱>
例如要在加目錄下新家一個叫做「blog」的目錄
$ cd ~
$ mkdir blog
$ pwd
$ chmod <權限設定> <檔案名稱>
這裡部細述權限問題,只提供作簡單的方式,就是全部打開...
範例:假設有檔案名稱為file3
$ chmod 777 file3
$ ps
想要看到電腦上所有使用者的程序
$ ps -aux
$ ps -aux | grep <關鍵字>
假設目前電腦中程序很多,夾雜著一個boa server,此時就可以用這個方式把他找出來,取得他的執行代碼
$ ps -aux | grep boa
強制關閉
$ kill -9 <程序代號(PID)>
假設利用ps指令找到有一個程序在執行,代碼為3434
此時就可以利用kill指令把他關閉
$ kill 3434
如果關不起來,就使用-9
$ kill -9 3434
如果是權限問題,就加上sudo
$ sudo kill 3434
$ history
按鍵盤的上下鍵,也可以找到之前輸入過的指令,省的再打一次。
$ free
以MB單位顯示
$ free -m
$ df
以MB單位顯示
$ df -m
在原有指令上加上「sudo」可以用最高權限執行,例如
$ sudo mkdir blog
$ sudo shutdown -h 0
$ sudo shutdown -r 0
編輯檔案:
$ vim <檔案名稱>
若沒有裝vim可以透過apt-get快速安裝
$ sudo apt-get install vim
$ sudo su
$ rm <檔案名稱>
假設目前在家目錄下,有一個檔案叫作file3,要把他複製一個到~/Desktop目錄
$ cp file3 ~/Desktop
假設在目錄下有個執行檔叫做「file3」
$ ./file3
$ man <想搜尋的內容>
如果遇上想要查詢的指令有很多頁面,可以在搜尋時加上編號
$ man <編號> <想搜尋的內容>
雖然有時候man會有很多頁面,但編號其實是不是每個都有的,想知道哪些編號是有man可以查詢的,可以使用-f或者-k來查詢。
$ man -f <想搜尋的內容>
假設要查詢socket這個內容,可以直接輸入
$ man socket
但是這時就會發現socket其實可能不只1個內容,就可以來查詢到底有哪些可查詢
$ man -f socket
或 $ man -k socket
這時候如果要進入socket(7)就可以指定編號進入
$ man 7 socket
這裡列出常用的內容,還有更多內容無法全部列出,未來碰到再找出來就行了。
以下只要是指令,該行都是以「$」來開頭,這個符號叫做shell prompt,就是打開終端機後所出現在畫面上的這個符號,我們所有的指令都是輸入在這個符號之後,這個符號是終端機自己產生的,不需要手動打。只要這個符號出現,我們就可以開始輸入指令。
(1) 更改路徑 --- cd
要進行檔案瀏覽,就要能夠穿梭在各個路徑、資料夾之中,所以需要變更目錄指令「cd」首先家目錄可用「~」替代,所以回到家目錄可用
$ cd ~
進入家目錄下的Desktop目錄,這個用法稱為絕對路徑的用法,在「$」前方所顯示的即是目前的目錄位置
$ cd ~/Desktop
若當時的路徑停留在加目錄下,可使用相對路徑方式
$ cd ./Desktop
若要再回道上一層目錄,則可以使用「..」的方式
$ cd ..
舉一個範例,若我們想要到根目錄下的var目錄,就可以使用
$ cd /var
若接的想再到var下的tmp目錄,就可以使用相對路徑
$ cd ./tmp
或絕對路徑
$ cd /var/tmp
(2) 顯示目錄下檔案 --- ls
想知道目錄下有哪些檔案,顯示目錄下檔案「ls」。$ ls
顯示詳細內容
$ ls -l
(3) 新增目錄 --- mkdir
可在目前下新加一個目錄$ mkdir <目錄名稱>
例如要在加目錄下新家一個叫做「blog」的目錄
$ cd ~
$ mkdir blog
(4) 我在哪裡? ---pwd
輸入後會顯示目前所在目錄位置$ pwd
(5)改變檔案權限 --- chmod
利用ls指令可以看到目前檔案的權限狀況,前面那個rwx(讀取-寫入-執行)的部份。通常常見檔案開不起來,就是因為權限不足。$ chmod <權限設定> <檔案名稱>
這裡部細述權限問題,只提供作簡單的方式,就是全部打開...
範例:假設有檔案名稱為file3
$ chmod 777 file3
(6)程序觀看 --- ps
查看目前的程序$ ps
想要看到電腦上所有使用者的程序
$ ps -aux
(7)電腦中的搜尋特定程序
配合grep指令進行搜尋$ ps -aux | grep <關鍵字>
假設目前電腦中程序很多,夾雜著一個boa server,此時就可以用這個方式把他找出來,取得他的執行代碼
$ ps -aux | grep boa
(8) 關閉程序 --- kill
$ kill <程序代號(PID)>強制關閉
$ kill -9 <程序代號(PID)>
假設利用ps指令找到有一個程序在執行,代碼為3434
此時就可以利用kill指令把他關閉
$ kill 3434
如果關不起來,就使用-9
$ kill -9 3434
如果是權限問題,就加上sudo
$ sudo kill 3434
(9) 中斷目前執行中的程式 「ctrl + c」鍵
如果在執行程式的過程中如然想要停止,但是「$」符號又沒有出現,就可以利用 「ctrl + c」鍵來強至關閉,通常在自己寫的無窮迴圈程式裡還滿常用到的。(10)同時輸入兩個指令 --- 「&」符號
在輸入完指令後加上「&」就會再打下一個指令,如果要同時執行好幾支程式,也可以用這個方式。(11)輸入過的指令 --- history
輸入這個指令可以看到之前打過得所有指令$ history
按鍵盤的上下鍵,也可以找到之前輸入過的指令,省的再打一次。
(12)查看記憶體狀態
直接使用$ free
以MB單位顯示
$ free -m
(13)查看硬碟空間
直接使用$ df
以MB單位顯示
$ df -m
(14) 以root身份執行指令
常見無法執行的檔案都是因為權限不足在原有指令上加上「sudo」可以用最高權限執行,例如
$ sudo mkdir blog
(15)關機
用打字的有時候比按圖形化界面方便$ sudo shutdown -h 0
$ sudo shutdown -r 0
(16) 使用vim編輯檔案
這部份只是稍微提一下,vim是純文字界面的文字編輯器,用這個編輯的話,就不需要而外開圖形化的gedit,可省下一個滑鼠的功夫。但vim的學習可能需要下一點功夫,很建議學習。編輯檔案:
$ vim <檔案名稱>
若沒有裝vim可以透過apt-get快速安裝
$ sudo apt-get install vim
(17) 切換為root身份
切換之後即使不加root也會是最高權限執行了,要離開可用「exit」指令。而切換之後的shell prompt會變成「#」$ sudo su
(18) 刪除 --- rm
刪除目錄下指定的檔案。$ rm <檔案名稱>
(19) 複製--- cp
$ cp <檔案路徑> <目標目錄>假設目前在家目錄下,有一個檔案叫作file3,要把他複製一個到~/Desktop目錄
$ cp file3 ~/Desktop
(20) 搬動 --- mv
$ mv <檔案路徑> <目標目錄>(21) 執行執行檔
直接輸入檔案的路徑或絕對路徑。假設在目錄下有個執行檔叫做「file3」
$ ./file3
(22) 查詢使用手冊 --- man
可以用來查詢指令的詳細用法。$ man <想搜尋的內容>
如果遇上想要查詢的指令有很多頁面,可以在搜尋時加上編號
$ man <編號> <想搜尋的內容>
雖然有時候man會有很多頁面,但編號其實是不是每個都有的,想知道哪些編號是有man可以查詢的,可以使用-f或者-k來查詢。
$ man -f <想搜尋的內容>
假設要查詢socket這個內容,可以直接輸入
$ man socket
但是這時就會發現socket其實可能不只1個內容,就可以來查詢到底有哪些可查詢
$ man -f socket
或 $ man -k socket
這時候如果要進入socket(7)就可以指定編號進入
$ man 7 socket
這裡列出常用的內容,還有更多內容無法全部列出,未來碰到再找出來就行了。