一、基本概念 1、為什麼學習命令操作而不用界面操作? Linux 作為伺服器,使用圖形界面會占用更多的系統資源,且影響穩定性、安全性。而且一個伺服器連個顯示屏都沒有,圖形界面毫無作用,所以命令行操作是 Linux 的必備技能。 常用命令手冊: https://www.runoob.com/linux ...
一、基本概念
1、為什麼學習命令操作而不用界面操作?
Linux 作為伺服器,使用圖形界面會占用更多的系統資源,且影響穩定性、安全性。而且一個伺服器連個顯示屏都沒有,圖形界面毫無作用,所以命令行操作是 Linux 的必備技能。
常用命令手冊:
https://www.runoob.com/linux/linux-command-manual.html
2、命令格式
【格式:】 [root@localhost ~]# 命令 [選項] [參數] 註: [root@localhost ~]# 是登錄系統後看到的內容。 其中 []、@ 沒有特殊含義,作為分隔符號。 root 表示當前登錄的用戶,切換成普通用戶,會顯示普通用戶名。 localhost 表示當前主機名。 ~ 表示當前所在的目錄,初始登錄時顯示 ~,表示為家目錄(主目錄)。 root 用戶家目錄在 /root,普通用戶家目錄在 /home/用戶名。 # 表示當前登錄用戶為管理員,若為普通用戶,則顯示為 $。 命令 [選項] [參數] 其中 選項,為可選項,用於調整命令的功能。 參數,為可選項,用於調整命令的操作對象。
3、文件類型
Linux 內部一切皆文件,不同的類型的文件代表不同的意義。
【類型:】 - 表示常規文件,如 文本文件、壓縮文件、二進位文件。 d 表示目錄文件(directory) b 表示塊設備文件(block device),如硬碟 c 表示字元設備文件(character device),如鍵盤、滑鼠 s 表示套接字文件(socket),用於網路數字連接、通信 p 表示管道文件(pipe) l 表示鏈接文件(symbolic link),即快捷方式
4、幫助命令
用於查看命令的說明文檔。
【格式:】 man [命令] 彈出一個視窗,按 Q 退出 help [命令] 控制台顯示 【舉例:】 [root@localhost test]# help echo
二、文件目錄操作指令
1、pwd(顯示當前目錄的絕對路徑)
指的是 print work directory 的縮寫,即列印工作目錄。
用於輸出當前工作目錄的絕對路徑,以便於判斷當前所在目錄的位置。
【格式:】 pwd 【舉例:】 [root@localhost ~]# pwd
2、ls(顯示當前目錄下的文件、目錄)
指的是 list 的縮寫,即目錄、列表。
用於輸出當前工作目錄、或者指定目錄下的所有內容。
【格式:】 ls [選項] [目錄名] 註: 若目錄名不存在,則輸出當前工作目錄下的內容。若存在,則輸出指定目錄的內容。 常用選項: -a 用於顯示全部文件,包括以 . 開頭的隱藏文件。 -h 以一種易讀的方式顯示文件或者目錄的大小。K、M。 -l 以列表的形式列出目錄信息。ls -l 可以簡寫為 ll 【舉例:】 [root@localhost ~]# ls -alh
3、cd(切換目錄)
指的是 change directory 的縮寫,即切換目錄。
用於切換工作目錄。
【格式:】 cd [相對路徑 / 絕對路徑] 註: 特殊路徑符號: . 代表當前目錄 .. 代表當前目錄的上一級目錄 ~ 代表當前目錄的家目錄(主目錄) - 代表上一次操作所在的目錄 / 代表根目錄 【舉例:】 [root@localhost test]# cd /
4、mkdir(創建一個目錄)
指的是 make directories 的縮寫,即創建目錄。
用於創建一個目錄。
【格式:】 mkdir [選項] 目錄名 註: 常用選項: -p 用於遞歸創建所有的目錄。對於多級目錄且有些目錄不存在的情況,若不使用 p 選項,則需要自己一級級的創建目錄。 -m 用於自定義目錄的許可權。 【舉例:】 [root@localhost test]# mkdir -p a/b/c
5、rmdir(刪除一個空目錄)
指的是 remove empty directories 的縮寫,即刪除空目錄。
用於刪除空目錄,只有空目錄才能被刪除,不是空目錄,會出錯。
【格式:】 rmdir [選項] 目錄名 註: 常用選項: -p 遞歸刪除空目錄,從最下層目錄往上刪 【舉例:】 [root@localhost test]# rmdir -p a/b/c
6、rm(刪除文件、目錄)
指的是 remove 的縮寫,即刪除。
用於永久性刪除沒用的文件,慎用。刪除前最好進行一次備份。
【舉例:】 rm [選項] 文件或目錄 註: 常用選項: -f 強制刪除,不會提示刪除信息,直接刪除目錄或文件 -r 遞歸刪除,可用於刪除多級目錄 -i 顯示提示信息 【舉例:】 [root@localhost test]# rm -fr a/
7、touch(創建空文件)
用於創建空文件。
【格式:】 touch 文件名 touch 文件名1 文件名2 【舉例:】 [root@localhost test]# touch test.txt test2.txt
8、cp(拷貝文件或目錄)
指的是 copy 的縮寫,即拷貝。
用來複制文件、目錄。可以自定義文件名。
【格式:】 cp [選項] 源文件位置 目標文件位置 註: 常見選項: -r 用於遞歸複製目錄 【舉例:】 [root@localhost test]# cp test.sh d/test2.sh [root@localhost test]# cp -r d a/b/
9、mv(移動或重命名文件、目錄)
指的是 move 的縮寫,即移動。
用於移動或重命名目錄、文件。
【格式:】 mv 源文件位置 目標文件位置 【舉例:】 [root@localhost test]# mv test.sh test2.sh [root@localhost test]# mv test2.sh a/
10、ln(創建軟鏈接、即快捷方式)
用於給文件、目錄創建一個軟鏈接,即快捷方式,通過軟鏈接可以訪問源文件。
【格式:】 ln [選線] 源文件 目標文件 註: -s 用於建立軟鏈接文件,如果不存在,則會創建硬鏈接文件。軟鏈接用的較多。 -f 強制建立文件,若目標文件存在,則先刪除目標文件再創建鏈接文件。 【舉例:】 [root@localhost test]# ln -s a b [root@localhost test]# ln -s a.txt c
11、vim(打開文本編輯器)
用於對文本進行修改。
可以查看:https://www.cnblogs.com/l-y-h/p/11436870.html#_label1
12、history(查看歷史指令)
用於查看歷史指令,以及執行歷史指令。
【格式:】 history 查看所有的歷史指令 history 10 查看最近 10 條歷史指令 history -c 用於清空歷史指令 !歷史編號 用於執行歷史的某條指令 【舉例:】 [root@localhost test]# history 10 [root@localhost test]# !307 [root@localhost test]# history -c
13、<、<<、> 、>> (重定向、追加)
輸入重定向:指的是重新指定設備來代替鍵盤作為新的輸入設備。
輸出重定向:指的是重新指定設備來代替顯示屏作為新的輸出設備。
通常新的輸入設備指的是 文件、命令的執行結果。新的輸出設備指的是 文件。
【格式:】 命令 < 文件 輸入重定向,將文件作為命令的輸入設備 命令 << 分界符 輸入追加,當遇到分界符後,才會停止接受輸入 命令 > 文件 輸出重定向,將命令的正確的執行結果輸入到文件中,若文件已存在,會覆蓋 命令 >> 文件 輸出追加,將命令的正確的執行結果輸入到文件中,若文件已存在,則在原數據後追加數據。 命令 2> 文件 將命令執行的錯誤輸出輸入到文件中,若文件存在,則覆蓋 命令 2>> 文件 將命令執行的錯誤輸出輸入到文件中,若文件存在,則在原數據後追加。 命令 &>> 文件 將命令執行結果(綜合 >> 、 2>>)輸入到文件中,若文件存在,則追加數據。 【舉例:】 [root@localhost test]# cat << 0 > test.txt [root@localhost test]# cd d >> test.txt [root@localhost test]# cd d 2>> test.txt [root@localhost test]# cd f &>> test.txt
14、echo(顯示內容到控制台)
用於輸出內容到控制台。
【格式:】 echo [選項] [輸出內容] 註: 選項: -e 用於啟用轉義字元 【舉例:】 [root@localhost test]# echo -e "hello \t world"
15、cat(連接文件並顯示內容)
指的是 concatenate 的縮寫,即連接。
常用於顯示文本內容。會一次性顯示出所有內容,不適合查看大文件,影響效率。
【格式:】 cat [選項] 文件名1 [文件名2 ...] 可以連接多個文件,並顯示 cat 文件名 | more 可以用於查看大文件 註: 選項: -n 顯示行號 【舉例:】 [root@localhost test]# cat test.txt [root@localhost test]# cat -n test.txt test2.txt
16、more(分屏顯示文件內容)
通常用於分屏查看大文件。
會打開一個交互頁面,並顯示百分比。
【格式:】 more 文件名 【常用交互命令:】 Q 退出交互頁面 回車鍵 顯示下一行 空格鍵 顯示下一頁 B 向上翻頁 F 向下翻頁 【舉例:】 [root@localhost test]# man more > test.txt [root@localhost test]# more test.txt
17、less(分屏查看文件內容)
與 more 類似,但比 more 更高級。
區別:
(1)less 按需載入文件,不是一次性載入完畢,效率比 more 強。
(2)less 退出後,命令行上不會顯示文件,more 會顯示。
(3)less 可以通過上下鍵顯示上下內容,more 不行。
(4)閱讀到文件末尾。less 不會自動退出,more會自動退出。
【格式:】 less 文件名 【常用交互命令:】 Q 退出交互頁面 回車鍵 顯示下一行 空格鍵 顯示下一頁 B 向上翻頁 F 向下翻頁 g 回到文件首行 G 回到文件末尾 【舉例:】 [root@localhost test]# man less > test.txt [root@localhost test]# less test.txt
18、head、tail (顯示文件頭部、尾部的內容)
head 用於顯示指定文件頭部若幹行的文件內容。
tail 用於顯示指定文件尾部若幹行的文件內容。
【head 格式:】 head [選項] 文件名 註: 選項: -n 行數,預設顯示 10 行 -v 顯示文件名 【tail 格式:】 tail [選項] 文件名 註: 選項: -n 行數,預設顯示 10 行 【舉例:】 [root@localhost test]# head test.txt [root@localhost test]# tail -20 test.txt
三、壓縮、解壓目錄或文件
1、tar 命令
tar -cvf 用於文件打包(尾碼名為 .tar)。
tar -xvf 用於文件解包。
註:
打包與壓縮的區別:
打包是將文件和目錄當成一個集合,此集合占用空間為 文件目錄占用的空間和。
壓縮是通過某種演算法,將這個集合中的內容進行某種變化,最終集合占用的空間要小於 文件目錄占用的空間和。
【格式:】 tar [選項] 文件壓縮、解壓後的路徑 待壓縮、解壓的路徑 註: 選項: -z 使用 gzip 方式進行壓縮、解壓(尾碼名為 .gz) -j 使用 bzip2 方式進行壓縮、解壓 (尾碼名為 .bz2) -c 表示進行打包操作(尾碼名為 .tar) -x 表示進行解包操作 -v 表示顯示解壓、打包的過程 -f 表示指定解壓、壓縮的文件名 -C 表示指定解壓的目錄 常用組合: -zcvf 使用 gzip 方式進行打包並壓縮(尾碼名為 .tar.gz) -zxvf 使用 gunzip 方式進行解壓並解包 -jcvf 使用 bzip2 方式進行打包並壓縮(尾碼名為 .tar.bz2) -jxvf 使用 bunzip2 方式進行解壓並解包 【舉例:】 [root@localhost test]# tar -zcvf ./b/a.tar.gz a [root@localhost test]# tar ./b/a.tar.gz -C ./c/
2、zip、unzip 命令
zip 用於壓縮文件或目錄(尾碼名為 .zip)。
unzip 用於解壓。
【zip 格式:】 zip [選項] 文件壓縮後的路徑 待壓縮的路徑 註: 選項: -r 表示遞歸壓縮目錄 -m 表示文件壓縮完後,刪除源文件 -v 表示顯示壓縮的過程 【unzip 格式:】 unzip [選項] 壓縮包名 註: 選項: -d 可以指定解壓的目錄 【舉例:】 [root@localhost test]# zip -rv b.zip a [root@localhost test]# unzip -d ./f b.zip
3、gzip、gunzip 命令
gzip 只用於壓縮文件,不會壓縮目錄。(尾碼名為 .gz)
gunzip 用於解壓文件。
【gzip 格式:】 gzip [選項] 壓縮的路徑 註: 選項: -c 將壓縮文件輸出到標準輸出中,保留源文件。 -r 壓縮目錄下的文件。 -d 解壓文件 【gunzip 格式:】 gunzip [選項] 壓縮的文件 註: 選項: -r 遞歸解壓目錄中的文件,等價於 gzip -rd 【舉例:】 [root@localhost test]# gzip -r a [root@localhost a]# gunzip -r ../a [root@localhost a]# gzip -c a.txt > a.txt.gz [root@localhost a]# gzip -d a.txt.gz
4、bzip2、bunzip2 命令
bzip2 只用於壓縮文件,不用於壓縮目錄。(尾碼名為 .bz2)
bunzip2 用於解壓文件。
註:
bzip2 與 gzip的區別:
gzip 可以使用 -r 選項遞歸壓縮目錄內的文件。bzip2 沒有這個選項,即 bzip2 不能壓縮目錄相關的內容。
【bzip2 格式:】 bzip2 [選項] 源文件 註: 選項: -k 壓縮文件,並保留源文件 -d 解壓文件 -v 顯示壓縮文件的過程 -f 若解壓後文件存在時,可以強制解壓替換 【bunzip2 格式:】 bunzip2 [選項] 壓縮的文件 註: 選項: -k 解壓文件,保留源文件 -v 顯示解壓文件的過程 【舉例:】 [root@localhost a]# bzip2 -kv a.txt [root@localhost a]# bzip2 -d a.txt.bz2 [root@localhost a]# bzip2 -v a.txt [root@localhost a]# bunzip2 -v a.txt.bz2
四、時間日期類指令
1、date(顯示當前日期)
用於顯示當前日期,以及設置日期。
【格式:】 date 顯示預設格式的日期 date "+%Y - %m - %d %H : %M : %S" 自定義顯示格式(+ 不可省) date -s "2020-3-23 15:10:00" 設置時間 【舉例:】 [root@localhost test]# date -s "2020-3-23 15:10:00" [root@localhost test]# date "+%Y - %m - %d %H : %M : %S"
2、cal(顯示日曆)
用於顯示日曆。
【格式:】
cal 查看當前月的日曆
cal 年份 查看某年的日曆
五、搜索查找類
1、find(查找文件、目錄)
用於查找文件、目錄。
【查找文件格式:】 find [路徑] [選項] [表達式] 註: 路徑 指的是 被查找的路徑,包含子目錄,預設為當前目錄(.) 表達式 指的是 被查找文件匹配的格式 選項: -name 根據文件名查找 -iname 根據文件名查找,並忽略大小寫 -mtime 顯示過去 n 天前被修改的文件 -atime 顯示過去 n 天被讀取過的文件 -maxdepth 最多查找 n 層目錄 -not 用於查找不滿足條件的文件,可以使用 ! 替換 -o 等價於 OR 操作符 -type 可以根據 文件類型進行查找,比如-type f、-type d -perm 用於根據文件許可權進行查找,比如 -perm 774 -size 用於根據 文件大小查找,(+ 表示大於,- 表示小於),比如 -size +50M -empty 用於查找空文件、空目錄 【刪除找到的文件:】 find . -type -f -name "a.txt" -exec rm -i {} \; 刪除找到的文件,顯示提示信息。 ; 不可少 find . -type -d -name "a.txt" -exec rm -fr {} \; 強制遞歸刪除目錄 【舉例:】 [root@localhost test]# find /root/test -type f -name "*.txt" -o -type d -name "b" [root@localhost test]# find . -maxdepth 3 -type d -mtime +1
2、locate(查找文件)
用於快速定位文件路徑。根據事先建立好的資料庫進行查詢(/var/lib/mlocate/mlocate.db)。
為了保證數據準確性,每次查詢前,需要手動 執行以下 updatedb。
【格式:】 locate 文件名 【舉例:】 [root@localhost test]# touch b.txt [root@localhost test]# updatedb [root@localhost test]# locate b.txt
3、grep(過濾查找)
對於查找的內容,可以根據自己的需求過濾,最終得到想要的結果。常與 管道符 | 連用。
管道符(|):命令A | 命令B, 表示將前一個命令 A 的結果傳遞給下一個命令 B 執行。
【格式:】 grep [選項] 查找內容(可以是正則表達式) 源文件 註: 選項: -i 忽略大小寫 -n 顯示行號 -v 查找不匹配的內容 【舉例:】 [root@localhost test]# grep -in java test.txt [root@localhost test]# grep -vn va$ test.txt