一、基本概念
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 行
-f 顯示末尾的資料,并不管監控檔案的變化,若檔案有變化,則顯示變化的內容, 【舉例:】 [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

4、which(查找命令所在的絕對路徑)
用于查找命令所在位置的絕對路徑,從 $PATH 中查找,
【格式:】 which 命令 【舉例:】 [root@localhost bin]# which pwd

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/120941.html
標籤:Linux
