Linux 常用命令總結(一)

来源:https://www.cnblogs.com/l-y-h/archive/2020/03/25/12563397.html
-Advertisement-
Play Games

一、基本概念 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

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 視頻教程(使用+實現原理):https://share.weiyun.com/57HKopT 建議直接看視頻 源碼地址:https://github.com/bxjg1987/abpGeneralModules 庫版本.net core 3.1 我的abp版本:abp5.3 .net core 3. ...
  • 常見數據類型 C 的類型一般分為 值類型 、 引用類型 兩大類型。 值類型的實例存放在棧中,引用類型會在棧中放置一個指針指向堆中的某一塊內容。 C 為我們內置了幾個數據類型供我們使用: |關鍵詞簡寫|對應的類全稱(點擊可以查看對應的API)|值範圍|說明| |: :|: |: |: | | bool ...
  • 一、C#基本認識 1.1.區分.net與C# .net:一般指.Net Framework框架,是Microsoft開發的一個平臺。 代碼庫 定義了基本的類型,也稱為通用類型系統(Common Type System,CTS) 包含.net公共語言運行庫(Common Language Runtim ...
  • 基本思路是把原來的WindowStyle設置為None,然後自己弄一個標題欄 一、xmal 二、後臺代碼(幾個事件) ...
  • 一、引言 MSMQ全稱MicroSoft Message Queue,微軟消息隊列,是在多個不同的應用之間實現相互通信的一種非同步傳輸模式,相互通信的應用可以分佈於同一臺機器上,也可以分佈於相連的網路空間中的任一位置。它的實現原理是:消息的發送者把自己想要發送的信息放入一個容器中(我們稱之為Messa ...
  • return (from merchantsInfo in base.GetIQueryable(x => x.IsLogicDelete == false && x.FID != fid) join userAccount in UserAccountDal.GetIQueryable(x => ...
  • gRPC由於需要用工具生成代碼實現,可開發性不是很高,在擴展這方面不是很友好 最近研究了下,進行了擴展,不需要額外的工具生成,直接使用預設Grpc.Tools生成的代理類即可 相關源碼在文章底部 客戶端目標: 能配置consul地址和服務名稱,在調用client時能正確請求到真實的服務地址 在調用方 ...
  • `ids4`授權服務中構建用戶身份信息通過身份容器載體`ClaimsPrincipal`載入(具體載入到哪裡?是怎麼攜帶到`Api資源`網關中的?下篇文章再來分享具體的原理和流程);再經過受保護的`Api資源`網關中通過`ClaimsPrincipal`身份容器載體獲得當前用戶的相關信息後就可以做一... ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...