linux 命令集锦
1?linux系統目錄結構
ls /
linux根目錄樹狀結構
| bin | linux經常使用的命令 |
| boot | 啟動linux時使用的一些核心文件(包括一些連接文件&鏡像文件) |
| dev | linux的外部設備 |
| home | 用戶主目錄 |
| lib | 庫,系統中基本的動態鏈接共享庫,作用類似于xindows中的dll。 幾乎所有的應用程序都需要用到這些庫 |
| lost+found | 一般情況下, 該目錄為空,當系統非法關機后,里面就存放了一些文件 |
| media | linux 系統會自動識別一些設備,例如U盤、光驅等等,當識別后,Linux 會把識別的設備掛載到這個目錄下。 |
2 linux文件基本屬性
使用ll 或者 ls-l命令,可以顯示一個文件的屬性&文件所屬的用戶&組
第一個字符表示文件的屬性
| d | 目錄 |
| - | 文件 |
| l | 連接文檔 |
接下來的字符中,三個為一組,且均為rwx的參數組合(如果沒有權限,那么出現-)從前到后分別是用戶自己、用戶所在的組,以及其他用戶的權限
| r | 可讀 |
| w | 可寫 |
| x | 可執行 |
2.2 更改文件屬性的命令
2.2.1 chgrp
更改文件屬組 (change group)
chgrp [-R] 屬組名 文件名? (-R表示遞歸)
2.2.2?chown
更改文件屬主,也可以同時更改文件屬組(change owner)
chown [–R] 屬主名 文件名
chown [-R] 屬主名:屬組名 文件名
2.2.3?chmod
更改文件的9個屬性(change mode)
第一種方法:用數字進行設置 每三位一組,有這個權限就設置為1,沒有這個人權限設置為0,三位三位的二進制轉化成十進制的數
第二種方法:符號類型改變文件權限
chmod u=rwx,g=rx,o=r? test1??? // 修改 test1 權限(用戶本身可讀可寫可執行、同組用戶可讀可執行、其他用戶可讀)
chmod? a-x test1? ?// 修改 test1 權限 (所有的權限都除去可執行)
3?linux文件與目錄管理
3.1 絕對路徑與相對路徑
- 絕對路徑:
路徑的寫法,由根目錄?/?寫起,例如: /usr/share/doc 這個目錄。 - 相對路徑:
路徑的寫法,不是由?/?寫起,例如由 /usr/share/doc 要到 /usr/share/man 底下時,可以寫成:?cd ../man?這就是相對路徑的寫法。
3.2?處理目錄的常用命令
3.2.1?ls
列出目錄
3.2.1.1 -a :全部的文件,連同隱藏文件( 開頭為 . 的文件) 一起列出來(常用)
3.2.1.2 -d :僅列出目錄本身,而不是列出目錄內的文件數據(常用)
3.2.1.3 -l :長數據串列出,包含文件的屬性與權限等等數據;(常用) 【加-h會更方便理解】
3.2.2 cd
切換目錄
cd - 進入剛才的目錄
3.2.3 pwd?
顯示目前所在目錄
3.2.4 mkdir
創建新目錄
3.2.4.1?-m :配置文件的權限。直接配置,不需要考慮默認權限
3.2.4.2? -p :幫助你直接將所需要的目錄(包含上一級目錄)遞歸創建起來!
3.2.5 rmdir
刪除空的目錄
- -p :連同上一級『空的』目錄也一起刪除
rmdir 僅能刪除空的目錄,我們可以使用 rm 命令來刪除非空目錄。
3.2.6?cp
復制
-r 遞歸
可以單獨選定幾個文件, cp 會默認最后一個選項是要復制去的文件夾. 比如下面把?file1copy?和?file2?復制去?folder1/
3.2.7?rm
移除文件 or 文件目錄
選項與參數:
- -f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;
- -i :互動模式,在刪除前會詢問使用者是否動作
- -r :遞歸刪除
3.2.8?mv
移動文件 or 移動文件目錄 or 文件重命名
選項與參數:
- -f :就是 force 的意思,忽略不存在的文件,不會出現警告信息;
- -i :互動模式,在刪除前會詢問使用者是否動作
3.2.8 touch
新建文件
3.3 文件內容查看
3.3.1 cat
從第一行開始顯示文件內容
3.3.1.1?-A :相當于 -vET 的整合選項,可列出一些特殊字符而不是空白而已;
3.3.1.2?-b、-n :列出行號(區別是前者中間的空格不算行號里面,后者中間的空格也算行號)
3.3.1.3?-E :將結尾的斷行字節 $ 顯示出來;
3.3.1.4?-T :將 [tab] 按鍵以 ^I 顯示出來;
3.3.1.5?-v :列出一些看不出來的特殊字符
3.3.2 tac
cat倒著寫,所以也是倒著讀
3.3.3 more
一頁一頁翻動
在 more 這個程序的運行過程中,你有幾個按鍵可以按的:
- 空白鍵 (space):代表向下翻一頁;
- Enter???????? :代表向下翻『一行』;
- /字串???????? :代表在這個顯示的內容當中,向下搜尋『字串』這個關鍵字;
- :f??????????? :立刻顯示出檔名以及目前顯示的行數;
- q???????????? :代表立刻離開 more ,不再顯示該文件內容。
- b 或 [ctrl]-b :代表往回翻頁,不過這動作只對文件有用,對管線pipeline無用。
3.3.4 less
比more更強大的一頁一頁翻動
less運行時可以輸入的命令有:
- 空白鍵????:向下翻動一頁;
- [pagedown]:向下翻動一頁;
- [pageup]??:向上翻動一頁;
- /字串?????:向下搜尋『字串』的功能;
- ?字串?????:向上搜尋『字串』的功能;
- n???????? :重復前一個搜尋 (與 / 或 ? 有關)
- N???????? :反向的重復前一個搜尋 (與 / 或 ? 有關)
- q???????? :離開 less 這個程序;
3.3.5?head
顯示文件前面幾行
默認的情況中,顯示前面 10 行
head [-n number] 文件
3.3.6?tail
顯示文件后面幾行
默認的情況中,顯示最后面?10 行
tail [-n number] 文件
3.3.7 nl
?顯示行號
選項與參數:
- -b :指定行號指定的方式,主要有兩種:
-b a :表示不論是否為空行,也同樣列出行號(類似 cat -n);
-b t :如果有空行,空的那一行不要列出行號(默認值); - -n :列出行號表示的方法,主要有三種:
-n ln :行號在熒幕的最左方顯示;
- -n rn :行號在自己欄位的最右方顯示,且不加 0 ;
- -n rz :行號在自己欄位的最右方顯示,且加 0 ;
3.4??內容重定向
3.5 查看磁盤空間
3.5.1? df
df 以磁盤分區為單位查看文件系統,可以獲取硬盤被占用了多少空間,目前還剩下多少空間等信息。
Filesystem:文件系統
Size: 分區大小
Used: 已使用容量
Avail: 還可以使用的容量
Use%: 已用百分比
Mounted on: 掛載點
選項與參數:
- -a :列出所有的文件系統,包括系統特有的 /proc 等文件系統;
- -k :以 KBytes 的容量顯示各文件系統;
- -m :以 MBytes 的容量顯示各文件系統;
- -h :以人們較易閱讀的 GBytes, MBytes, KBytes 等格式自行顯示;
- -H :以 M=1000K 取代 M=1024K 的進位方式;
- -T :顯示文件系統類型, 連同該 partition 的 filesystem 名稱 (例如 ext3) 也列出;
- -i :不用硬盤容量,而以 inode 的數量來顯示(這里因為是windows系統,所以沒有顯示)
3.5.2 du
du 的英文原義為 disk usage,含義為顯示磁盤空間的使用情況,用于查看當前目錄的總大小。
如果是文件夾的話,會先列出文件夾第一層目錄下每個文件的大小,然后是這個文件夾的總大小(如果要是文件夾的所有信息的話 du -a
-h:以K,M,G為單位,提高信息的可讀性。
-s:列出總量而已,而不列出每個各別的目錄占用容量;
-k :以 KBytes 列出容量顯示;
-m :以 MBytes 列出容量顯示;
4 vim
Vim是從 vi 發展出來的一個文本編輯器。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用。
簡單的來說, vi 是老式的字處理器,不過功能已經很齊全了,但是還是有可以進步的地方。 vim 則可以說是程序開發者的一項很好用的工具。
4.1 vim的模式
vim一共三種模式,分別是命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)。?
4.1.1 命令模式 command mode
? ? ? ?用戶剛剛啟動vim的時候,進入的命令模式
? ? ? ?此狀態下敲擊鍵盤動作會被Vim識別為命令,而非輸入字符。比如我們此時按下i,并不會輸入一個字符,i被當作了一個命令。
? ? ? ?命令模式常用命令
| i | 切換到輸入模式,以輸入字符 |
| x | 刪除當前光標所在處的字符 |
| : | 切換到底線命令模式 |
| 數字+上/下/左/右 | 上下左右移動數字格 |
| ctrl+d | 屏幕向下移動半頁 |
| ctrl+u | 屏幕向上移動半頁 |
| 數字+空格 | 向后面移動數字個空格的字符距離 |
| 數字+enter | 向下移動n行 |
| 0? | 移動到這一行的最前面 |
| $ | 移動到這一行的最后面 |
| H(大寫) | 移動到這個屏幕最上方一行的第一個字符 |
| M(大寫) | 移動到這個屏幕中央的一行的第一個字符 |
| L(大寫) | 移動到這個屏幕最下方一行的第一個字符 |
| G(大寫) | 移動到這個文檔的最后一行 |
| 數字+G | 移動到這個文檔的第數字行 |
| gg | 移動到這個文檔的第一行 |
| /word | 向光標之下尋找一個名稱為“word”的字符串 |
| ?word | 向光標之上尋找一個名稱為“word”的字符串 |
| n | 這個 n 是英文按鍵。代表重復前一個搜尋的動作。 舉例來說, 如果剛剛我們執行 /vbird 去向下搜尋 vbird 這個字符串,則按下 n 后,會向下繼續搜尋下一個名稱為 vbird 的字符串。如果是執行 ?vbird 的話,那么按下 n 則會向上繼續搜尋名稱為 vbird 的字符串! |
| N | 這個 N 是英文按鍵。與 n 剛好相反,為『反向』進行前一個搜尋動作。 例如 /vbird 后,按下 N 則表示『向上』搜尋 vbird 。 |
4.1.2? 輸入模式 insert mode
? ? ? ? ? 輸入模式常用命令
| 字符 | 輸入字符 |
| enter | 換行 |
| 退格鍵 | 刪除前一個字符 |
| del | 刪除后一個字符 |
| 方向鍵 | 上下左右 |
| home/end | 移動光標到行首/行尾 |
| page up/page down | 上下翻頁 |
| insert | 切換為輸入/替換模式 |
以上的這些和一般的word是一樣的
| esc | 退出輸入模式,切換為命令模式 |
4.1.3 底線命令模式 last line mode
? ? ? ? ? 底線命令模式常用命令
| :q | 退出程序 |
| :w | 保存文件 |
| :wq | 儲存后離開 |
| :w [filename] | 將編輯的數據存儲為另一個檔案 |
| : n1,n2 w[filename] | 將n1~n2行的內容存儲為filename |
| esc | 退出底線命令模式,進入命令模式 |
| :q! | 強制離開,不存儲檔案 |
4.2 vim 三種模式的切換(總結)
4.3?一般模式(命令模式)可用的光標移動、復制粘貼、搜索替換
4.3.1 移動光標
| h 或 向左箭頭鍵(←) | 光標向左移動一個字符 |
| j 或 向下箭頭鍵(↓) | 光標向下移動一個字符 |
| k 或 向上箭頭鍵(↑) | 光標向上移動一個字符 |
| l 或 向右箭頭鍵(→) | 光標向右移動一個字符 |
| 如果你將右手放在鍵盤上的話,你會發現 hjkl 是排列在一起的,因此可以使用這四個按鈕來移動光標。 如果想要進行多次移動的話,例如向下移動 30 行,可以使用 "30j" 或 "30↓" 的組合按鍵, 亦即加上想要進行的次數(數字)后,按下動作即可! | |
| [Ctrl] + [f] | 屏幕『向下』移動一頁,相當于 [Page Down]按鍵 (常用) |
| [Ctrl] + [b] | 屏幕『向上』移動一頁,相當于 [Page Up] 按鍵 (常用) |
| [Ctrl] + [d] | 屏幕『向下』移動半頁 |
| [Ctrl] + [u] | 屏幕『向上』移動半頁 |
| + | 光標移動到非空格符的下一行 |
| - | 光標移動到非空格符的上一行 |
| n<space> | 那個 n 表示『數字』,例如 20 。按下數字后再按空格鍵,光標會向右移動這一行的 n 個字符。例如 20<space> 則光標會向后面移動 20 個字符距離。 |
| 0 或功能鍵[Home] | 這是數字『 0 』:移動到這一行的最前面字符處 (常用) |
| $ 或功能鍵[End] | 移動到這一行的最后面字符處(常用) |
| H | 光標移動到這個屏幕的最上方那一行的第一個字符 |
| M | 光標移動到這個屏幕的中央那一行的第一個字符 |
| L | 光標移動到這個屏幕的最下方那一行的第一個字符 |
| G | 移動到這個文檔的最后一行(常用) |
| nG | n 為數字。移動到這個文檔的第 n 行。例如 20G 則會移動到這個檔案的第 20 行(可配合 :set nu) |
| gg | 移動到這個檔案的第一行,相當于 1G? (常用) |
| n<Enter> | n 為數字。光標向下移動 n 行(常用) |
4.3.2 搜索替換
| /word | 向光標之下尋找一個名稱為 word 的字符串。例如要在檔案內搜尋 vbird 這個字符串,就輸入 /vbird 即可! (常用) |
| ?word | 向光標之上尋找一個字符串名稱為 word 的字符串。 |
| n | 這個 n 是英文按鍵。代表重復前一個搜尋的動作。舉例來說, 如果剛剛我們執行 /vbird 去向下搜尋 vbird 這個字符串,則按下 n 后,會向下繼續搜尋下一個名稱為 vbird 的字符串。如果是執行 ?vbird 的話,那么按下 n 則會向上繼續搜尋名稱為 vbird 的字符串! |
| N | 這個 N 是英文按鍵。與 n 剛好相反,為『反向』進行前一個搜尋動作。 例如 /vbird 后,按下 N 則表示『向上』搜尋 vbird 。 |
| 使用 /word 配合 n 及 N 是非常有幫助的!可以讓你重復的找到一些你搜尋的關鍵詞! | |
| :n1,n2s/word1/word2/g | n1 與 n2 為數字。在第 n1 與 n2 行之間尋找 word1 這個字符串,并將該字符串取代為 word2 舉例來說,在 100 到 200 行之間搜尋 vbird 并取代為 VBIRD 則: |
| :1,$s/word1/word2/g? 或?:%s/word1/word2/g | 從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2 (常用) |
| :1,$s/word1/word2/gc? 或?:%s/word1/word2/gc | 從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2 。且在取代前顯示提示字符給用戶確認 (confirm) 是否需要取代(常用) |
4.3.3 刪除
| x, X | 在一行字當中,x 為向后刪除一個字符 (相當于 [del] 按鍵), X 為向前刪除一個字符(相當于 [backspace] 退格鍵) (常用) |
| nx | n 為數字,連續向后刪除 n 個字符。舉例來說,我要連續刪除 10 個字符, 那么命令就為『10x』。 |
| dd | 刪除游標所在的那一整行(常用) |
| ndd | n 為數字。刪除光標所在的向下 n 行,例如 20dd 則是刪除下面的 20 行 (常用) |
| d1G | 刪除光標所在到第一行的所有數據 |
| dG | 刪除光標所在到最后一行的所有數據 |
| d$ | 刪除游標所在處,到該行的最后一個字符 |
| d0 | 那個是數字的 0 ,刪除游標所在處,到該行的最前面一個字符 |
4.3.4 復制粘貼
| yy | 復制游標所在的那一行(常用) |
| nyy | n 為數字。復制光標所在的向下 n 行,例如 20yy 則是復制 20 行(常用) |
| y1G | 復制游標所在行到第一行的所有數據 |
| yG | 復制游標所在行到最后一行的所有數據 |
| y0 | 復制光標所在的那個字符到該行行首的所有數據 |
| y$ | 復制光標所在的那個字符到該行行尾的所有數據 |
| p, P | p 為將已復制的數據在光標下一行貼上,P 則為貼在游標上一行。 舉例來說,我目前光標在第 20 行,且已經復制了 10 行數據。則按下 p 后, 那 10 行數據會貼在原本的 20 行之后,亦即由 21 行開始貼。 但如果是按下 P 呢? 那么原本的第 20 行會被推到變成 30 行。 (常用) |
| J | 將光標所在行與下一行的數據結合成同一行 |
4.3.5 復原和撤銷
| u | 復原前一個動作。(常用) |
| [Ctrl]+r | 重做上一個動作。(常用) |
| 這個 u 與 [Ctrl]+r 是很常用的指令。一個是復原,另一個則是重做一次~? | |
| . | 這就是小數點。 意思是重復前一個動作的意思。 如果你想要重復刪除、重復貼上等等動作,按下小數點『.』就好了! (常用) |
4.4 一般模式(命令模式)切換到編輯模式(輸入模式)的可用的按鈕說明
| i, I | 進入輸入模式(Insert mode): I 為『在目前所在行的第一個非空格符處開始輸入』。 (常用) |
| a, A | 進入輸入模式(Insert mode): A 為『從光標所在行的最后一個字符處開始輸入』。(常用) |
| o, O | 進入輸入模式(Insert mode): o 為在目前光標所在的下一行處輸入新的一行; O 為在目前光標所在的上一行處輸入新的一。!(常用) |
| r, R | 進入取代模式(Replace mode): R會一直取代光標所在的文字,直到按下 ESC 為止;(常用) |
| 上面這些按鍵中,在 vi 畫面的左下角處會出現『--INSERT--』或『--REPLACE--』的字樣。? | |
| [Esc] | 退出編輯模式,回到一般模式中(常用) |
4.5?一般模式(命令模式)切換到指令行模式(底線命令模式)的可用的按鈕說明
| w | 將編輯的數據寫入硬盤檔案中(常用) |
| :w! | 若文件屬性為『只讀』時,強制寫入該檔案。不過,到底能不能寫入, 還是取決于對該檔案的權限 |
| :q | 離開 vi (常用) |
| :q! | 若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。 |
| :wq | 儲存后離開,若為 :wq! 則為強制儲存后離開 (常用) |
| ZZ | 大寫的 Z 。如果修改過,保存當前文件,然后退出!效果等同于wq(保存并退出) |
| ZQ | 不保存,強制退出。效果等同于?:q!。 |
| :w [filename] | 將編輯的數據儲存成另一個檔案(類似另存新檔) |
| :r [filename] | 在編輯的數據中,讀入另一個檔案的數據。亦即將 『filename』 這個檔案內容加到游標所在行后面 |
| :n1,n2 w [filename] | 將 n1 到 n2 行的內容儲存成 filename 這個檔案。 |
| :! command | 暫時離開 vi 到指令行模式下執行 command 的顯示結果!例如 『:! ls /home』即可在 vi 當中察看 /home 底下以 ls 輸出的檔案信息! |
4.5.1??vim 環境的變更
| :set nu | 顯示行號,設定之后,會在每一行的前綴顯示該行的行號 |
| :set nonu | 與 set nu 相反,為取消行號 |
5? 進程類
5.1?查看程序xxx是否在執行
ps -ef|grep xxx
5.2 終止進程
kill -9 PID
-9表示強迫進程立即停止
5.2.1 批量終止進程
我現在運行了一堆 cmaes_p_delta,用’ps -ef|grep cmaes_p_delta',命令行上顯示如下(其實不止。。。我失誤了建了四百多個,電腦直接要崩了233):
ps -efww|grep cmaes_p_delta|cut -c 9-15|xargs kill -9用上面這一行可以去除所有cmaes_p_delta產生的進程
—>“ps -efww”是查看所有進程的命令。這時檢索出的進程將作為下一條命令“grep“的輸入。
—>“cut -c 9-15”是截取輸入行的第9個字符到第15個字符,而這正好是進程號PID。
—>“xargs kill -9”中的xargs命令是用來把前面命令的輸出結果(PID)作為“kill -9”命令的參數,并執行該命令。
—>?“kill -9”會強行殺掉指定進程,這樣就成功清除了同名進程。
5.2.2?kill指定用戶所有的進程
以用戶tom為例,有三種方式
pkill -u tom killall -u tom pgrep -u tom|xargs kill -96 后臺運行
& 放在命令后面表示設置此進程為后臺進程。
默認情況下,進程是前臺進程,這時此進程(命令執行相當于本質是開啟一個進程)就把Shell給占據了,我們無法進行其他操作。
對于那些沒有交互的進程,很多時候,我們希望將其在后臺啟動,可以在啟動參數的時候加一個'&'實現這個目的。
7 壓縮解壓縮文檔
7.1 壓縮成tar.gz形式
tar -zcvf a.tar.gz b #將文件b壓縮成a.tar.gz的形式7.2 解壓縮tar.gz
tar zxvf a.tar.gz7.3? 壓縮成tar.bz2格式的壓縮包
tar -jcvf a.tar.bz2 b #把b打包成a.tar.bz2的格式7.4 解壓tar.bz2格式
tar jxvf a.tar.bz27.5 壓縮成zip格式
zip -q -r a.zip b7.6 解壓zip格式
unzip a.zip8 GPU相關指令
8.1 查看顯卡信息
lspci | grep -i vga lspci | grep -i nvidia?前面的序號(如’b3:00.0') 是顯卡的代號
8.2 查看指定顯卡的信息
lspci -v -s 15:00.0?8.3 查看nvidia顯卡信息及使用情況
nvidia-smi| Fan | 顯示風扇轉速,數值在0到100%之間,是計算機的期望轉速,如果計算機不是通過風扇冷卻或者風扇壞了,顯示出來就是N/A; |
| Temp | 顯卡內部的溫度,單位是攝氏度 |
| Perf | 表征性能狀態,從P0到P12,P0表示最大性能,P12表示狀態最小性能 |
| Pwr | 能耗表示 |
| Bus-Id | 涉及GPU總線的相關信息 |
| Disp.A | 是Display Active的意思,表示GPU的顯示是否初始化 |
| Memory Usage | 顯存的使用率 |
| Volatile GPU-Util | 浮動的GPU利用率 |
| Compute M | 計算模式 |
?顯示每塊GPU上每個進程所使用的顯存情況
總結
以上是生活随笔為你收集整理的linux 命令集锦的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文巾解题 21. 合并两个有序链表
- 下一篇: 文巾解题 11. 盛最多水的容器