一、Linux 命令的基本使用
01. 常用 Linux 命令的基本使用
序號 | 命令 | 對應英文 | 作用 |
---|---|---|---|
01 | ls | list | 查看當前文件夾下的內容 |
02 | pwd | print wrok directory | 查看當前所在文件夾 |
03 | cd [目錄名] | change directory | 切換文件夾 |
04 | touch [文件名] | touch | 如果文件不存在,新建文件 |
05 | mkdir [目錄名] | make directory | 創建目錄 |
06 | rm [文件名] | remove | 刪除指定的文件名 |
07 | clear | clear | 清屏 |
小技巧
-
ctrl + shift + =
放大終端窗口的字體顯示 -
ctrl + -
縮小終端窗口的字體顯示
02. 自動補全
-
在敲出
文件
/目錄
/命令
的前幾個字母之后,按下tab
鍵 -
如果輸入的沒有歧義,系統會自動補全
-
如果還存在其他
文件
/目錄
/命令
,再按一下tab
鍵,系統會提示可能存在的命令 -
小技巧
-
按 上下 光標鍵可以在曾經使用過的命令之間來回切換
-
如果想要退出選擇,並且不想執行當前選中的命令,可以按 ctrl + c
二、Linux 終端命令格式
01. 終端命令格式
command [-options] [parameter]
說明:
-
command:命令名,相應功能的英文單詞或單詞的縮寫
-
[-options]:選項,可用來對命令進行控制,也可以省略
-
parameter:傳給命令的參數,可以是 零個、一個 或者 多個
-
[] 代表可選
02. 查閱命令幫助信息
提示
-
現階段只需要 知道 通過以下兩種方式可以查詢命令的幫助信息
-
先學習常用命令及常用參數的使用即可,工作中如果遇到問題可以借助網絡搜索命令的中文資料
2.1 --help
command --help
說明:
-
顯示 command 命令的幫助信息
2.2 man
man command
說明:
-
查閱 command 命令的使用手冊
-
man 是 manual 的縮寫,是 Linux 提供的一個 手冊,包含了絕大部分的命令、函數的詳細使用說明
使用 man 時的操作鍵:
操作鍵 | 功能 |
---|---|
空格鍵 | 顯示手冊頁的下一屏 |
Enter 鍵 | 一次滾動手冊頁的一行 |
b | 回滾一屏 |
f | 前滾一屏 |
q | 退出 |
/word | 搜索 word 字符串 |
三、Linux基本命令
1> 查看文件信息:ls
ls是英文單詞list的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似於DOS下的dir命令。
Linux文件或者目錄名稱最長可以有265個字符,“.”代表當前目錄,“..”代表上一級目錄,以“.”開頭的文件為隱藏文件,需要用 -a 參數才能顯示。
ls常用參數:
參數 | 含義 |
---|---|
-a | 顯示指定目錄下所有子目錄與文件,包括隱藏文件 |
-l | 以列表方式顯示文件的詳細信息 |
-h | 配合 -l 以人性化的方式顯示文件大小 |
與DOS下的文件操作類似,在Unix/Linux系統中,也同樣允許使用特殊字符來同時引用多個文件名,這些特殊字符被稱為通配符。
通配符 | 含義 |
---|---|
* | 文件代表文件名中所有字符 |
ls te* | 查找以te開頭的文件 |
ls *html | 查找結尾為html的文件 |
? | 代表文件名中任意一個字符 |
ls ?.c | 只找第一個字符任意,后綴為.c的文件 |
ls a.? | 只找只有3個字符,前2字符為a.,最后一個字符任意的文件 |
[] | [”和“]”將字符組括起來,表示可以匹配字符組中的任意一個。“-”用於表示字符范圍。 |
[abc] | 匹配a、b、c中的任意一個 |
[a-f] | 匹配從a到f范圍內的的任意一個字符 |
ls [a-f]* | 找到從a到f范圍內的的任意一個字符開頭的文件 |
ls a-f | 查找文件名為a-f的文件,當“-”處於方括號之外失去通配符的作用 |
\ | 如果要使通配符作為普通字符使用,可以在其前面加上轉義字符。“?”和“*”處於方括號內時不用使用轉義字符就失去通配符的作用。 |
ls \*a | 查找文件名為*a的文件 |
2> 清屏:clear
clear作用為清除終端上的顯示(類似於DOS的cls清屏功能),也可使用快捷鍵:Ctrl + l ( “l” 為字母 )。
3> 切換工作目錄: cd
在使用Unix/Linux的時候,經常需要更換工作目錄。cd命令可以幫助用戶切換工作目錄。Linux所有的目錄和文件名大小寫敏感
cd后面可跟絕對路徑,也可以跟相對路徑。如果省略目錄,則默認切換到當前用戶的主目錄。
命令 | 含義 |
---|---|
cd | 切換到當前用戶的主目錄(/home/用戶目錄),用戶登陸的時候,默認的目錄就是用戶的主目錄。 |
cd ~ | 切換到當前用戶的主目錄(/home/用戶目錄) |
cd . | 切換到當前目錄 |
cd .. | 切換到上級目錄 |
cd - | 可進入上次所在的目錄 |
注意:
-
如果路徑是從根路徑開始的,則路徑的前面需要加上 “ / ”,如 “ /mnt ”,通常進入某個目錄里的文件夾,前面不用加 “ / ”。
4> 顯示當前路徑:pwd
使用pwd命令可以顯示當前的工作目錄,該命令很簡單,直接輸入pwd即可,后面不帶參數。
5> 創建目錄:mkdir
通過mkdir命令可以創建一個新的目錄。參數-p可遞歸創建目錄。
需要注意的是新建目錄的名稱不能與當前目錄中已有的目錄或文件同名,並且目錄創建者必須對當前目錄具有寫權限。
6> 刪除文件:rm
可通過rm刪除文件或目錄。使用rm命令要小心,因為文件刪除后不能恢復。為了防止文件誤刪,可以在rm后使用-i參數以逐個確認要刪除的文件。
常用參數及含義如下表所示:
參數 | 含義 |
---|---|
-i | 以進行交互式方式執行 |
-f | 強制刪除,忽略不存在的文件,無需提示 |
-r | 遞歸地刪除目錄下的內容,刪除文件夾時必須加此參數 |
7> 拷貝:cp
cp命令的功能是將給出的文件或目錄復制到另一個文件或目錄中,相當於DOS下的copy命令。
常用選項說明:
選項 | 含義 |
---|---|
-a | 該選項通常在復制目錄時使用,它保留鏈接、文件屬性,並遞歸地復制目錄,簡單而言,保持文件原有屬性。 |
-f | 已經存在的目標文件而不提示 |
-i | 交互式復制,在覆蓋目標文件之前將給出提示要求用戶確認 |
-r | 若給出的源文件是目錄文件,則cp將遞歸復制該目錄下的所有子目錄和文件,目標文件必須為一個目錄名。 |
-v | 顯示拷貝進度 |
8> mv:移動、重命名
用戶可以使用mv命令來移動文件或目錄,也可以給文件或目錄重命名。
常用選項說明:
選項 | 含義 |
---|---|
-f | 禁止交互式操作,如有覆蓋也不會給出提示 |
-i | 確認交互方式操作,如果mv操作將導致對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以避免誤覆蓋文件 |
-v | 顯示移動進度 |
9> 創建文件: touch
用戶可以通過touch來創建一個空的文件,demo如下:
touch hello.txt
說明:
- 則會在當前路徑下創建名字為hello.txt的空文件
- Linux系統中沒有嚴格的后綴(格式),所以創建文件時可以命名為任意的文件名
10. 輸出重定向命令:>
Linux允許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文件中。
如:ls > test.txt ( test.txt 如果不存在,則創建,存在則覆蓋其內容 )
注意: >輸出重定向會覆蓋原來的內容,>>輸出重定向則會追加到文件的尾部。
11. 分屏顯示:more
查看內容時,在信息過長無法在一屏上顯示時,會出現快速滾屏,使得用戶無法看清文件的內容,此時可以使用more命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助。
12. 管道:|
管道:一個命令的輸出可以通過管道做為另一個命令的輸入。
管道我們可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這里“ | ”的左右分為兩端,左端塞東西(寫),右端取東西(讀)。
13. 建立鏈接文件:ln
Linux鏈接文件類似於Windows下的快捷方式。
鏈接文件分為軟鏈接和硬鏈接。
軟鏈接:軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效。
硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。
使用格式:
ln 源文件 鏈接文件
ln -s 源文件 鏈接文件
如果沒有-s選項代表建立一個硬鏈接文件,兩個文件占用相同大小的硬盤空間,即使刪除了源文件,鏈接文件還是存在,所以-s選項是更常見的形式。
注意:如果軟鏈接文件和源文件不在同一個目錄,源文件要使用絕對路徑,不能使用相對路徑。
14. 查看或者合並文件內容:cat
15. 文本搜索:grep
Linux系統中grep命令是一種強大的文本搜索工具,grep允許對文本文件進行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式為:
grep [-選項] ‘搜索內容串’文件名
在grep命令中輸入字符串參數時,最好引號或雙引號括起來。
例如:
grep 'a' 1.txt
常用選項說明:
選項 | 含義 |
---|---|
-v | 顯示不包含匹配文本的所有行(相當於求反) |
-n | 顯示匹配行及行號 |
-i | 忽略大小寫 |
grep搜索內容串可以是正則表達式。
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。
grep常用正則表達式:
參數 | 含義 |
---|---|
^a | 行首,搜尋以 m 開頭的行;grep -n '^a' 1.txt |
ke$ | 行尾,搜尋以 ke 結束的行;grep -n 'ke$' 1.txt |
[Ss]igna[Ll] | 匹配 [] 里中一系列字符中的一個;搜尋匹配單詞signal、signaL、Signal、SignaL的行;grep -n '[Ss]igna[Ll]' 1.txt |
. | (點)匹配一個非換行符的字符;匹配 e 和 e 之間有任意一個字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;grep -n 'e.e' 1.txt |
16. 查找文件:find
find命令功能非常強大,通常用來在特定的目錄下搜索符合條件的文件,也可以用來搜索特定用戶屬主的文件。
常用用法:
命令 | 含義 |
---|---|
find ./ -name test.sh | 查找當前目錄下所有名為test.sh的文件 |
find ./ -name '*.sh' | 查找當前目錄下所有后綴為.sh的文件 |
find ./ -name "[A-Z]*" | 查找當前目錄下所有以大寫字母開頭的文件 |
find /tmp -size 2M | 查找在/tmp 目錄下等於2M的文件 |
find /tmp -size +2M | 查找在/tmp 目錄下大於2M的文件 |
find /tmp -size -2M | 查找在/tmp 目錄下小於2M的文件 |
find ./ -size +4k -size -5M | 查找當前目錄下大於4k,小於5M的文件 |
find ./ -perm 777 | 查找當前目錄下權限為 777 的文件或目錄 |
17. 歸檔管理:tar
計算機中的數據經常需要備份,tar是Unix/Linux中最常用的備份工具,此命令可以把一系列文件歸檔到一個大文件中,也可以把檔案文件解開以恢復數據。
tar使用格式 tar [參數] 打包文件名 文件
tar命令很特殊,其參數前面可以使用“-”,也可以不使用。
常用參數:
參數 | 含義 |
---|---|
-c | 生成檔案文件,創建打包文件 |
-v | 列出歸檔解檔的詳細過程,顯示進度 |
-f | 指定檔案文件名稱,f后面一定是.tar文件,所以必須放選項最后 |
-t | 列出檔案中包含的文件 |
-x | 解開檔案文件 |
注意:除了f需要放在參數的最后,其它參數的順序任意。
18. 文件壓縮解壓:gzip
tar與gzip命令結合使用實現文件打包、壓縮。 tar只負責打包文件,但不壓縮,用gzip壓縮tar打包后的文件,其擴展名一般用xxxx.tar.gz。
gzip使用格式如下:
gzip [選項] 被壓縮文件
常用選項:
選項 | 含義 |
---|---|
-d | 解壓 |
-r | 壓縮所有子目錄 |
tar這個命令並沒有壓縮的功能,它只是一個打包的命令,但是在tar命令中增加一個選項(-z)可以調用gzip實現了一個壓縮的功能,實行一個先打包后壓縮的過程。
壓縮用法:tar cvzf 壓縮包包名 文件1 文件2 ...
-z :指定壓縮包的格式為:file.tar.gz
解壓用法: tar zxvf 壓縮包包名
-z:指定壓縮包的格式為:file.tar.gz
解壓到指定目錄:-C (大寫字母“C”)
19. 文件壓縮解壓:bzip2
tar與bzip2命令結合使用實現文件打包、壓縮(用法和gzip一樣)。
tar只負責打包文件,但不壓縮,用bzip2壓縮tar打包后的文件,其擴展名一般用xxxx.tar.gz2。
在tar命令中增加一個選項(-j)可以調用bzip2實現了一個壓縮的功能,實行一個先打包后壓縮的過程。
壓縮用法:tar -jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)
20. 文件壓縮解壓:zip、unzip
通過zip壓縮文件的目標文件不需要指定擴展名,默認擴展名為zip。
壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件
解壓文件:unzip -d 解壓后目錄文件 壓縮文件
21. 查看命令位置:which
22. 修改文件權限:chmod
chmod 修改文件權限有兩種使用格式:字母法與數字法。
字母法:chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ] | 含義 |
---|---|
u | user 表示該文件的所有者 |
g | group 表示與該文件的所有者屬於同一組( group )者,即用戶組 |
o | other 表示其他以外的人 |
a | all 表示這三者皆是 |
[ +-= ] | 含義 |
---|---|
+ | 增加權限 |
- | 撤銷權限 |
= | 設定權限 |
rwx | 含義 |
---|---|
r | read 表示可讀取,對於一個目錄,如果沒有r權限,那么就意味着不能通過ls查看這個目錄的內容。 |
w | write 表示可寫入,對於一個目錄,如果沒有w權限,那么就意味着不能在目錄下創建新的文件。 |
x | excute 表示可執行,對於一個目錄,如果沒有x權限,那么就意味着不能通過cd進入這個目錄。 |
如果需要同時進行設定擁有者、同組者以及其他人的權限,參考如下:
數字法:“rwx” 這些權限也可以用數字來代替
字母 | 說明 |
---|---|
r | 讀取權限,數字代號為 "4" |
w | 寫入權限,數字代號為 "2" |
x | 執行權限,數字代號為 "1" |
- | 不具任何權限,數字代號為 "0" |
如執行:chmod u=rwx,g=rx,o=r filename 就等同於:chmod u=7,g=5,o=4 filename
chmod 751 file:
- 文件所有者:讀、寫、執行權限
- 同組用戶:讀、執行的權限
- 其它用戶:執行的權限
注意:如果想遞歸所有目錄加上相同權限,需要加上參數“ -R ”。 如:chmod 777 test/ -R 遞歸 test 目錄下所有文件加 777 權限
23. 設置用戶密碼:passwd
在Unix/Linux中,超級用戶可以使用passwd命令為普通用戶設置或修改用戶密碼。用戶也可以直接使用該命令來修改自己的密碼,而無需在命令后面使用用戶名。
24. 退出登錄賬戶: exit
-
如果是圖形界面,退出當前終端;
-
如果是使用ssh遠程登錄,退出登陸賬戶;
-
如果是切換后的登陸用戶,退出則返回上一個登陸賬號。
25. 查看登錄用戶:who
who命令用於查看當前所有登錄系統的用戶信息。
常用選項:
選項 | 含義 |
---|---|
-q或--count | 只顯示用戶的登錄賬號和登錄用戶的數量 |
-u或--heading | 顯示列標題 |
26. 關機重啟:reboot、shutdown、init
命令 | 含義 |
---|---|
reboot | 重新啟動操作系統 |
shutdown –r now | 重新啟動操作系統,shutdown會給別的用戶提示 |
shutdown -h now | 立刻關機,其中now相當於時間為0的狀態 |
shutdown -h 20:25 | 系統在今天的20:25 會關機 |
shutdown -h +10 | 系統再過十分鍾后自動關機 |
Ubuntu軟件操作的相關命令
sudo apt-get update 更新源
sudo apt-get install package 安裝包
sudo apt-get remove package 刪除包
sudo apt-cache search package 搜索軟件包
sudo apt-cache show package 獲取包的相關信息,如說明、大小、版本等
sudo apt-get install package --reinstall 重新安裝包
sudo apt-get -f install 修復安裝
sudo apt-get remove package --purge 刪除包,包括配置文件等
sudo apt-get build-dep package 安裝相關的編譯環境
sudo apt-get upgrade 更新已安裝的包
sudo apt-get dist-upgrade 升級系統
sudo apt-cache depends package 了解使用該包依賴那些包
sudo apt-cache rdepends package 查看該包被哪些包依賴
sudo apt-get source package 下載該包的源代碼
sudo apt-get clean && sudo apt-get autoclean 清理無用的包
sudo apt-get check 檢查是否有損壞的依賴
編輯器vim
vi簡介
vi是“Visual interface”的簡稱,它在Linux上的地位就仿佛Edit程序在DOS上一樣。它可以執行輸出、刪除、查找、替換、塊操作等眾多文本操作,而且用戶可以根據自己的需要對其進行定制。Vi不是一個排版程序,它不象Word或WPS那樣可以對字體、格式、段落等其他屬性進行編排,它只是一個文本編輯程序。 vi沒有菜單,只有命令,且命令繁多。
Vi有三種基本工作模式:
+ 命令模式
+ 文本輸入模式
+ 末行模式。
vim模式
命令行模式
任何時候,不管用戶處於何種模式,只要按一下ESC鍵,即可使Vi進入命令模式;我們在shell環境(提示符為$)下輸入啟動Vi命令,進入編輯器時,也是處於該模式下。在該模式下,用戶可以輸入各種合法的Vi命令,用於管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之后完成相應的動作。但需注意的是,所輸入的命令並不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會響鈴報警。
文本輸入模式
在命令模式下輸入插入命令i、附加命令a 、打開命令o、修改命令c、取代命令r或替換命令s都可以進入文本輸入模式。在該模式下,用戶輸入的任何字符都被Vi當做文件內容保存起來,並將其顯示在屏幕上。在文本輸入過程中,若想回到命令模式下,按鍵ESC即可。
末行模式
末行模式也稱ex轉義模式。在命令模式下,用戶按“:”鍵即可進入末行模式下,此時Vi會在顯示窗口的最后一行(通常也是屏幕的最后一行)顯示一個“:”作為末行模式的提示符,等待用戶輸入命令。多數文件管理命令都是在此模式下執行的(如把編輯緩沖區的內容寫到文件中等)。末行命令執行完后,Vi自動回到命令模式。例如:
:sp newfile
則分出一個窗口編輯newfile文件。如果要從命令模式轉換到編輯模式,可以鍵入命令a或者i;如果需要從文本模式返回,則按Esc鍵即可。在命令模式下輸入“:”即可切換到末行模式,然后輸入命令。
vim基礎操作
vim是從 vi 發展出來的一個文本編輯器 。代碼補完、編譯及錯誤跳轉等方便編程的功能特別豐富
進入插入模式:
i: 插入光標前一個字符
I: 插入行首
a: 插入光標后一個字符
A: 插入行未
o: 向下新開一行,插入行首
O: 向上新開一行,插入行首
進入命令模式:
ESC:從插入模式或末行模式進入命令模式
移動光標:
h: 左移
j: 下移
k: 上移
l: 右移
M: 光標移動到中間行
L: 光標移動到屏幕最后一行行首
G: 移動到指定行,行號 -G
w: 向后一次移動一個字
b: 向前一次移動一個字
{: 按段移動,上移
}: 按段移動,下移
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
gg: 光標移動文件開頭
G: 光標移動到文件末尾
刪除命令:
x: 刪除光標后一個字符,相當於 Del
X: 刪除光標前一個字符,相當於 Backspace
dd: 刪除光標所在行,n dd 刪除指定的行數 D: 刪除光標后本行所有內容,包含光標所在字符
d0: 刪除光標前本行所有內容,不包含光標所在字符
dw: 刪除光標開始位置的字,包含光標所在字符
撤銷命令:
u: 一步一步撤銷
Ctr-r: 反撤銷
重復命令:
.: 重復上一次操作的命令
文本行移動:
>>: 文本行右移
<<: 文本行左移
復制粘貼:
yy: 復制當前行,n yy 復制 n 行
p: 在光標所在位置向下新開辟一行,粘貼
可視模式:
v: 按字符移動,選中文本
V: 按行移動,選中文本可視模式可以配合 d, y, >>, << 實現對文本塊的刪除,復制,左右移動
替換操作:
r: 替換當前字符
R: 替換當前行光標后的字符
查找命令:
/: str查找
n: 下一個
N:上一個
替換命令:
把abc全部替換成123
末行模式下,將當前文件中的所有abc替換成123
:%s/abc/123/g
末行模式下,將第一行至第10行之間的abc替換成123
:1, 10s/abc/123/g
vim里執行 shell 下命令:
末行模式里輸入!,后面跟命令