超實用 Linux 常用命令

Shell 詳解

Shell 簡介


  • Linux精髓在于命令行操作
  • Shell是一種特殊的程序
  • 是內(nèi)核與用戶的一種接口
  • Shell命令解釋器
  • Shell一種解釋性的語言(內(nèi)部命令/外部命令)
    • 內(nèi)部命令:系統(tǒng)自帶的,隨系統(tǒng)內(nèi)核一起啟動(56)
    • 外部命令:一些額外的軟件或者程序
  • sh (Borurne Shell)
  • csh
  • ksh
  • BASH: 是rhel中默認的一種
  • shell命令規(guī)范
    • 命令字 [選項] [參數(shù)]
      • 選項
        • 作用:用于調(diào)節(jié)命令的具體功能
        • "-" 引導短格式選項(單個字符)ex: "-l"
        • "--" 引導長格式選項(多個字符) ex: "--color"
        • 多個短格式選項可以寫在一起
          • -a -l -z -x --> -alzx
      • 參數(shù)
        • 命令操作的對象
        • 有文件、目錄等
      • ex: ls -l /home

在Liunx當中嚴格區(qū)分大小寫
在Linux當中一切皆文本

常用命令


  • su [-] username 切換當前登陸
    • 有 - : 代表切換bash
    • 無 - : 代表不切換bash
  • exit:退出
  • 查看系統(tǒng)當前主機名
    • hostname
  • 修改主機名并生效
    • hostnamectl set-hostname yourhostname
  • 關機操作
    • poweroff
    • init 0
    • shutdown -h now
    • halt
  • 重啟命令
    • reboot
    • shutdown -r now # 現(xiàn)在重啟
    • shutdown -r now # 15分鐘后重啟
  • 查看當前系統(tǒng)時間
    • date
  • 查看日歷
    • cal
    • cal 年份 # 查看全年日歷
    • cal 月份 年份 # 查看某年某月的日歷
  • 查看系統(tǒng)當前IP地址
    • ifconfig
    • ip addr show (rhel7)
  • 測試網(wǎng)絡連通性
    • ping 127.0.0.1
    • ping 127.0.0.1 -c 4 # 限制ping包次數(shù)

BASH 常用快捷方式


  • 中斷當前操作
    • CTRL + c
  • 清屏
    • CTRL + l = clear
  • 換行
    • \
  • 光標跳到行首
    • CTRL + a
  • 光標跳到行尾
    • CTRL + e
  • 清空到光標所在位置的前面所有內(nèi)容
    • CTRL + u
  • 清空到光標所在位置的后面所有內(nèi)容
    • CTRL + k
  • 查看歷史命令 (默認保留1000行)
    • history
  • 調(diào)用歷史命令
    • !n (ex: !22)
  • 清空歷史命令
    • history -c
  • 字體放大
    • CTRL + SHIFT + +
  • 字體縮小
    • CTRL + -

Linux 目錄結構


  • boot:存放系統(tǒng)引導文件和內(nèi)核文件
  • bin:存放可執(zhí)行文件(二進制文件)(ls,cat,mkdir)
  • sbin:root用戶執(zhí)行命令
  • home:普通用戶的家目錄
  • root:root用戶的家目錄
  • dev:放置所有設備文件(外設 u盤、磁盤、光驅(qū))/dev/md* /dev/sd* /dev/hd*
  • etc: 放置所有配置文件(服務)
  • lib/lib64:動態(tài)鏈接庫文件(共享庫) 類似于 .dll
  • media:媒體庫文件
  • opt:文件安裝目錄,安裝軟件就在opt目錄下
  • mnt:掛載點目錄 mount * *
  • var: 存放一些需要改變數(shù)據(jù)的文件 日志,某些大文件的溢出區(qū)
  • proc:虛擬文件系統(tǒng)目錄,放的是內(nèi)存的一個映射
    • cat /proc/cpuinfo # 查看CPU運行狀態(tài)
    • cat /proc/meminfo # 參看內(nèi)存運行狀態(tài)
    • cat /proc/version # 查看系統(tǒng)版本
    • uname -m # 查看CPU架構
    • uname -r # 查看內(nèi)核版本
  • usr: 最大的目錄 只要用到的目錄或者文件都在這兒 /usr/sbin ?/usr/doclinux
  • tmp: 共享文件夾,臨時目錄
  • lost+found:平時為空,只有系統(tǒng)在非正常關機時才會有,保存意外掉電內(nèi)存數(shù)據(jù)

Linux中,如何獲得命令幫助

  • help (內(nèi)部命令) cd,kill 56條
- ex:help cd
  • --help (適用于大多數(shù)外部命令查找) ls
- ls --help
  • 使用man手冊進行命令查看(man:命令閱讀手冊)
    • “男人沒有什么搞不定的”
    • man 命令字
    • 上下鍵滾動文本
    • Page down & Page Up 上下翻頁
    • 空格也支持翻頁,回車鍵走一行
    • 輸入 / ,可以查找
  • info 也可進行命令幫助查找(使用與man接近)
  • pinfo 命令字 以瀏覽器的形式查看詳細的GUN信息
  • /usr/share/doc # 所有已安裝軟件的說明文件
    • firefox file:///usr/share/doc

Linux 常用命令

目錄操作命名


  • cd命令: 切換工作目錄
    • cd [目錄位置]
    • 絕對路徑: cd /home/ruochen
    • 相對路徑:
      • cd . 切換到當前目錄
      • cd .. 返回到上一級目錄
      • cd - 返回上一次所在的工作路徑
      • cd ../../ 返回到上一級目錄的上一級目錄
      • cd ~ 返回到用戶的家目錄
  • pwd: 查看當前所在的工作目錄
  • ls: 列出當前目錄下的文件或者目錄

在Liunx中,以.開頭的文件是隱藏文件

- 格式: ls [選項] [目錄或文件名]
- 選項:
    - -l 以長格式顯示
    - -a 顯示所有文件目錄信息,包括隱藏文件
    - -d 顯示目錄本身的屬性
    - -h 顯示詳情信息,變換了統(tǒng)計單位
    - --color 以顏色區(qū)分不同類型的文件
    - ll == ls -l
  • mkdir: 創(chuàng)建一個新目錄
    • 格式: mkdir [選項-p] [路徑] 目錄名
    • -p: 遞歸創(chuàng)建多級目錄
    • mkdir -p b/c/e/f/g
  • rmdir: 刪除一個空目錄
    • -p: 遞歸刪除

文件操作命令


  • touch,cp,mv,rm,find
  • touch: 創(chuàng)建一個空文件,更新文件時間標記
    • 格式: touch filename

    在Linux中,不以后綴區(qū)分文件

  • echo: 打印某個東西
    • 重定向?qū)?
      • echo "hello world" > a.txt
  • cp: 復制文件或者目錄
    • 格式: cp [選項] 源文件/目錄 目標文件/目錄
    • -r: 遞歸復制整個目錄樹
    • cp /root/aa/a.txt /root/bb
    • cp ../aa/a.txt .
  • rm: 刪除文件或目錄

rm -rf * 從刪庫到跑路

- 格式: rm [選項] 文件或者目錄
- -r: 遞歸刪除整個目錄樹
- -f: 強制刪除不給任何提示
  • mv:移動文件或者目錄

    • 格式: mv [選項] 源文件/目錄 目標文件/目錄
      • mv text/b.txt text-2/
    • 注: 若移動目標位置與原位置相同(當前下操作),則此操作相當于重命名
      • mv text text-1
  • find: 用于查找文件或者目錄

    • 格式: find [查找范圍] [查找條件]
    • 查找條件
      • -name: 按文件名查找

         [root@localhost ~]# find / -name initial-setup-ks.cfg
         /root/initial-setup-ks.cfg
         [root@localhost ~]# find / -name initial-*
         /root/initial-setup-ks.cfg
         [root@localhost ~]# find / -name initial-*-*
         /root/initial-setup-ks.cfg
         [root@localhost ~]# 
        
      • -type: 按文件類型查找

        • f: 普通文件

        • d: 目錄

        • b: 塊設備文件

        • c: 字符設備文件

           [root@localhost ~]# find / -name text -type d
          
      • -user: 按文件屬主查找(這個文件是誰的)

         [root@localhost ~]# find / -user ruochen -name initial-setup-ks.cfg -type f
         [root@localhost ~]# find / -user ruochen -type f -name ruochen.initial-setup-ks.cfg 
        
      • -size: 按文件大小進行查找

         [root@localhost ~]# find /var/ -size +10k -type f
         [root@localhost ~]# find /var/ -size -1k -type f
         [root@localhost ~]# find /var/ -size +10k -size -11k -type f
        
      • -a: 邏輯與

      • -o: 邏輯或

         [root@localhost ~]# find / -name anaconda-ks.cfg -o -name initial-setup-ks.cfg 
         /root/anaconda-ks.cfg
         /root/initial-setup-ks.cfg
        
      • !: 邏輯非

         [root@localhost ~]# find / ! -name temp -type f
        
  • alias 別名; 為使用頻率較高的命令設置簡短的調(diào)用名稱

    • 查看當前用戶所有別名
      alias [別名]

    • 設置別名
      alias 別名="實際執(zhí)行的命令"

        grep -c 'boot' initial-setup-ks.cfg 
        7
        [root@localhost ~]# alias aa="grep -c 'boot' initial-setup-ks.cfg "
        [root@localhost ~]# alias aa
        alias aa='grep -c '\''boot'\'' initial-setup-ks.cfg '
        [root@localhost ~]# aa
        7
      
    • 取消別名: unalias [別名/-a]

      • -a: 取消所有別名

          [root@localhost ~]# unalias aa
        
    • 讓別名永久生效

      • 將別名設置在~/.bashrc文件中
      • vim .bashrc

cd cd. cd..
針對目錄來說 . 當前位置/目錄 pwd
針對文件來講 . 在Linux中代表隱藏文件

cd cd. cd ..
什么都不跟,代表切換到當前用戶家目錄 當前目錄 代表切換到上級目錄

~ 代表用戶家目錄
- 上次所操作的目錄

文件內(nèi)容操作命令


  • cat,less,head,tail,grep,wc

  • cat: 文件內(nèi)容查看,顯示出文件的全部內(nèi)容

    • 格式: cat filename
  • less(more): 全屏方式分頁顯示文件內(nèi)容

    • 格式: less/more filename
    • 按回車Enter逐行滾動
    • 按空格鍵向下翻頁
    • 按b鍵向上翻頁
    • 按q鍵退出
    • more用法與less一致,只是多了一個百分比顯示
  • head(頭部): 顯示文件頭部若干行,默認10行

    • 格式: head [選項] filename

        [root@localhost ~]# head -n 5 initial-setup-ks.cfg 
      
  • tail(尾部): 顯示文件尾部若干行,默認10行

    • 格式: tail [選項] filename

        [root@localhost ~]# tail -n 5 initial-setup-ks.cfg 
      
  • wc: 統(tǒng)計文件內(nèi)容的,默認情況下統(tǒng)計結果為: 行數(shù) 詞數(shù) 字節(jié)數(shù)

    • 格式: wc [選項] filename

        [root@localhost ~]# wc initial-setup-ks.cfg 
      
    • 選項:

      • -w: 統(tǒng)計字數(shù) 一個字被定義為由空白,跳格(制表符),換行以這些為分割字符串

      • -l: 行數(shù)

      • -c: 字節(jié)數(shù)

      • -m: 字符數(shù) -m -c不能一起使用

      • -L: 打印最長行的長度

          [root@localhost ~]# wc -l -c -w -L initial-setup-ks.cfg 
        
  • grep: 在文件中查找并顯示包含指定字符串的行

    • 格式: grep [選項] 查找條件 目標文件

    • 選項:

      • -c: 顯示匹配行的數(shù)量

      • -i: 查找時不區(qū)分大小寫

      • -v: 反轉(zhuǎn)查找

          [root@localhost ~]# grep -c 'boot' initial-setup-ks.cfg 
          7
          [root@localhost ~]# grep -c -v 'boot' initial-setup-ks.cfg
          42
          [root@localhost ~]# grep -i 'agent' initial-setup-ks.cfg 
        
    • 查找條件設置:

      1. 查找條件用引號引起來

      2. "^...": 表示以... 開頭

      3. "...$": 表示以... 結尾

      4. "^$": 匹配空行

         [root@localhost ~]# grep -c '^$' anaconda-ks.cfg 
         [root@localhost ~]# grep -cv '^$' anaconda-ks.cfg 
         [root@localhost ~]# grep -c '^#' anaconda-ks.cfg 
         12
         [root@localhost ~]# grep -c 'ation$' anaconda-ks.cfg 
         5
        

歸檔及壓縮命令


  • tar: 壓縮與解壓縮 制作歸檔文件和釋放歸檔文件
    • 格式:
      • 制作歸檔文件
        tar [選項] [目錄]/歸檔文件名 原文件/目錄
      • 釋放歸檔文件
        tar [選項] 歸檔文件 [-C 目標文件]
    • 命令:
      • 壓縮:
        • tar -czvf [存放路徑]歸檔文件名.tar.gz 原文件/目錄
        • tar -cjvf [存放路徑]歸檔文件名.tar.bz2 原文件/目錄
        • -c 壓縮
        • -z 壓縮為.gz 格式
        • vf 顯示詳情信息
        • -j 壓縮為.bz2格式
      • 解壓縮:
        • tar -xzvf [存放路徑]歸檔文件名.tar.gz [-C 解壓目錄]
        • tar -xjvf [存放路徑]歸檔文件名.tar.bz2 [-C 解壓目錄]
        • -x 解壓
                tar -czvf text.tar.gz text
                tar -cjvf text.tar.bz2 text
                tar -czvf /root/var.tar.gz /var/
                tar -cjvf /root/var.tar.bz2 /var/
                tar -czvf a.tar.gz text-1 text-2
            
                [root@localhost ~]# tar -xzvf text.tar.gz 
                [root@localhost ~]# tar -xjvf text.tar.bz2 
                [root@localhost ~]# tar -xjvf text.tar.bz2 -C test

.gz格式
.bz2格式
.bz2格式壓縮率比.gz格式壓縮率高

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容