超實用 Linux 常用命令

Shell 詳解

Shell 簡介


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

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

常用命令


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

BASH 常用快捷方式


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

Linux 目錄結構


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

Linux中,如何獲得命令幫助

  • help (內部命令) cd,kill 56條
    - ex:help cd
  • –help (適用於大多數外部命令查找) 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 顯示詳情信息,變換了統計單位
	- --color 以顏色區分不同類型的文件
	- ll == ls -l
  • mkdir: 創建一個新目錄
    • 格式: mkdir [選項-p] [路徑] 目錄名
    • -p: 遞歸創建多級目錄
    • mkdir -p b/c/e/f/g
  • rmdir: 刪除一個空目錄
    • -p: 遞歸刪除

文件操作命令


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

    在Linux中,不以後綴區分文件

  • echo: 打印某個東西
    • 重定向寫
      • 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 別名; 爲使用頻率較高的命令設置簡短的調用名稱

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

    • 設置別名
      alias 別名=“實際執行的命令”

        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 …
什麼都不跟,代表切換到當前用戶家目錄 當前目錄 代表切換到上級目錄

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

文件內容操作命令


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

  • cat: 文件內容查看,顯示出文件的全部內容

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

    • 格式: 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: 統計文件內容的,默認情況下統計結果爲: 行數 詞數 字節數

    • 格式: wc [選項] filename

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

      • -w: 統計字數 一個字被定義爲由空白,跳格(製表符),換行以這些爲分割字符串

      • -l: 行數

      • -c: 字節數

      • -m: 字符數 -m -c不能一起使用

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

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

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

    • 選項:

      • -c: 顯示匹配行的數量

      • -i: 查找時不區分大小寫

      • -v: 反轉查找

          [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格式壓縮率高

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章