<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Linux:常用指令

      全部:Linux常用命令 - SegmentFault 思否

      wget 與 curl 命令詳解 - SegmentFault 思否

      十萬字Linux命令大全cat詳細教程(一)_川川菜鳥的博客-CSDN博客

      規則與技巧

      • ctrl+k //剪切(刪除)光標處到行尾的所有字符
      • ctrl+u //剪切光標處到行首的所有字符
      • ctrl+y //粘貼
      • ctrl+r 指令:自動匹配歷史指令(不停按ctrl+r可以不停往上找歷史指令)
      • 刪除整行 HOME + CTRL K
      • 如果指令太長一行寫不完,可以用\+ENTER實現換行繼續輸入
      • 指令+pageup:上一次輸入的這個指令
      • 交互式系統退出:q
      • 上下翻頁:SHIFT + pageup
      • 如果需要用root權限來執行,需要在執行的命令前加sudo
      • 指令內容輸出到文件,ls -a > test(追加)
      • 桌面端截圖快捷鍵:CTRL+ALT+A
      • which 指令A:指令A的路徑
      • whereis 指令A:所有跟A沾邊的指令的路徑
      • 字符串拼接:$str1"str2"
      • Linux下,文件中的換行符為/nWindows中,文件中的換行符為/r/n。所以某些文件從Windows中變到Linux中后,要用sed -i將/r消除:
      sed -i 's/\r$//g' 具體文件
      

        

      常用

      變量

      var=1234
      echo $var

       

      查看版本

      1. uname -a
      2. cat /etc/issue
      3. cat /etc/os-release

      容量

      1. 幾核CPU:cat /proc/cpuinfo
      2. 內存:free、cat /proc/meminfo

      系統自身

      1. hostname:主機名
      2. hostname -i:主機IP

      文件系統

      1. mount:文件掛載情況,掛載路徑的文件系統屬性
      2. df:顯示磁盤使用情況,同時也能顯示掛載情況

      用戶、權限

      • 查看當前用戶:whoami

      • 切換為root:su -

      • 從root切換為其他用戶:su - 用戶名

      • 退出當前用戶:exit

      • 添加用戶:useradd 用戶名 -p 密碼

      • 刪除用戶:userdel 用戶名

      • 查看全部用戶:cat /etc/passwd 或 compgen -u

      • 修改當前用戶對于某個目錄/文件的權限:chmod 777 目錄/文件

      • 創建目錄并修改權限:mkdir -m 711 目錄

      • 遞歸創建目錄:mkdir -p 目錄

      • 一次修改多個文件、目錄的權限:
        find /usr/local/lib/python3.7 -type f|xargs -I {} chmod 644 '{}'
        find /usr/local/lib/python3.7 -type d|xargs -I {} chmod 755 '{}'
      • 用戶屬性修改:usermod

      • 修改文件、目錄的所屬用戶、組:chown

        chown [-R] 所有者:組名 文件或目錄
      • 修改目錄、文件的權限-讀寫可執行:chmod

        chmod [-R] 數字權限 文件或目錄
        chmod [-ugoa] [+-=][rwx] 文件或目錄
        
        #將.bashrc的所有權限都設定為啟用
        chmod 777 .bashrc

         

      文件/目錄

      • 一次移動多個文件:mv 源1 源2 目的目錄(最后一個一定是目錄)

      • 一次創建多個文件名順序排列的文件:mkdir dir{1..10},創建文件名為dir1-dir10的文件

      • 以樹形結構顯示某個目錄下的所有文件組織結構:tree 路徑
      • 以樹形結構顯示某個目錄下的所有目錄結構:tree -d 目錄
      • 創建文件:
        • touch 文件名
        • echo 內容 >> 文件
        • vim或vi
      • 遠程文件傳輸:scp

      文件內容顯示

      • 前/后十行:head/tail -n 10

      • grep前/后十行:grep -C 10
        grep 關鍵字 選項
        
        選項:
            -A n    列出匹配行及其后n行
            -B n    列出匹配行及其前n行
            -C n    列出匹配行及其前后n行

         

      • 輸出文件行數:wc -l a.txt | awk '{print $1}'

      屏幕、界面、系統本身

      • 清屏:clear或ctrl +L

      • 關機poweroff 重啟reboot

      • 上下翻頁:SHIFT + PAGEUP/PAGEDOWN

      • 安裝:yum -y install 命令 (yum -y install vim*)

      • ctrl+k //剪切(刪除)光標處到行尾的所有字符

      • ctrl+u //剪切光標處到行首的所有字符

      • ctrl+y //粘貼

      • 刪除整行 HOME + CTRL K

      路徑

      • cd、pwd
      • ls
      • ln -s A B:建立鏈接,之后訪問B等同于訪問A
      • which 指令A:指令A的路徑
      • whereis 指令A:所有跟A沾邊的指令的路徑

      網絡

      • 測試網絡連接:ping www.baidu.com 測試

      • 查看所有網絡連接信息:netstat -a

      • 網絡連通性:curl -v url

      • 顯示所有網卡信息:ifconfig -v、ip a

      • 查看網卡是千兆還是萬兆:ethtool 網卡名(網卡名通過ifconfig獲得)

      • 域名解析:dig URL、nslookup URL

      壓縮

      • 解壓縮:tar -zxvf xxx.tar.gz -C 指定路徑

      0、匯總

      0)特殊符號

      符號

      說明

      用法

      ; 多條命令順序執行,命令間不互相干擾 命令1 ; 命令2
      |

      ①正則表達式中表示

      ②用于命令間,表示用前邊命令的輸出作為后邊命令的輸入

      ①ab(c|d)

      ②命令1 | 命令2

       &

      ①把命令放在后臺執行

      ②標準輸出和標準錯誤輸出,具體見輸入輸出重定向一節

      ①java -jar xxx.jar &

       &&  前邊指令執行成功才執行后邊指令  
      ||   前邊指令執行失敗才執行后邊指令  

      ①注釋

      ② $#命令行參數個數

      ③${#變量}變量(字符串)長度

      ④${#數組[@]}數組長度

       
      $

      變量

      ①$a:變量的值

      命令行

      $0:當前腳本程序名稱

      $1-$n:第n個命令行參數

      $*:所有命令行參數,整體輸出

      $@:所有命令行參數,分別輸出

      $#:命令行所有參數的個數

      進程

      $?:最后一次執行狀態

      $$:當前進程的進程號pid

      $!:后臺運行的最后一個進程的進程號

      awk

      $0:某一行的全部字段數據

      $1-$n:某一行的第n個字段數據

       
      ~

      字符串是否包含某個子串

      awk '$2 ~ /Sc/'

      第二字段中是否包含"Sc"字符

      {}

      正則:表示范圍

      循環:指定循環范圍

      匿名函數

      命令:{}中的命令,是在當前shell執行

       

       

      1)指令

      指令

      說明

      屏幕

      clear 清屏
      echo

      輸出內容到屏幕(詳見Shell基礎 - ShineLe - 博客園

       exit

      注銷 

      文件、文件夾本身

      絕對路徑:以"/"開頭

      相對路徑:以.或..開頭

      mkdir、rmdir、rm 創建目錄、刪除空目錄 、刪除目錄(可以不空)
      touch/rm 創建/刪除文件 
      cd 跳轉到目錄
      ls

      羅列

      Linux:ls指令 
      grep 文本搜索(類似于CTRL+F)并輸出,可使用正則表達式 
      vim 編輯文件(vim指令見vim:用法
      cat 查看文件(與vim的區別在于cat無法編輯) 
      pwd 顯示當前目錄 
      cp 復制 
      mv 移動、重命名
      basename 獲取路徑中的最后文件名
      dirname 獲取路徑中的最后目錄名
      創建文件 touch、echo 內容 >> 文件

      查找、搜尋

      which 查找某個指令(可執行文件)的詳細路徑
      whereis  從特定目錄中查找 
      locate/updatedb 從數據庫中查找、更新數據庫 
       find 查找(從文件類型、所有者、時間、權限……查找) 

      文件屬性

      file 觀察文件類型

      文件內容

      cat 從首行開始顯示內容
      tac 從尾行開始顯示
      nl 顯示時輸出行號
      more 一頁一頁顯示,只能往后翻頁
      less 與more類似,可以往前翻頁
      head 顯示前幾行
      tail 顯示尾幾行
      od 以二進制方式顯示

      權限

      chmod 改變權限 
       chgrp 改變群組 
      chown  改變所有者 
       umask 默認權限 

        用戶

      whoami

      當前用戶

      su 

      su 用戶名:切換為某個用戶

      su -:切換為root 

      sudo 指令

      給當前用戶root權限執行該命令

      exit   退出切換的用戶
      useradd/userdel 用戶名 添加/刪除用戶
      compgen -u 查看全部用戶

      useradd

      userdel

      添加/刪除用戶

      usermod

      修改用戶屬性

       PATH

       echo $PATH 顯示所有PATH
      PATH="${PATH}:路徑"  加入新PATH 

      文件系統  

      df 列出文件系統的整體磁盤使用量 
      du 評估文件系統的磁盤使用量(用于推估目錄所占容量)

      進程管理  

       systemctl

      進程管理

      進程管理,較老

      Linux:systemctl指令 - ShineLe - 博客園 

      service
      ps

      進程狀態,相當于windows任務管理器

      Linux:ps指令 審核中

      網絡

       ip

      IP與網關

       Linux:IP指令 - ShineLe - 博客園

      route

      路由與網關

      Linux:網絡指令(route)

      dig

      nslookup

      域名解析

       Linux:IP與域名解析——nslookup與dig的功能和區別

      安裝下載

      wget 

      從web下載文件

      Linux:wget指令 

      壓縮  解壓縮

       tar 壓縮 解壓縮
         

       2)路徑

      路徑

      說明

      相對路徑 進入某個相對路徑
      絕對路徑 進入絕對路徑下的某個文件夾
      . 當前目錄
      .. 返回上一級
      ~或空 回到home目錄
      - 在上一個目錄和本目錄來回切換
      ~user 回到user這個用戶的home目錄(非根目錄,根目錄是/
      / 回到根目錄

      家目錄是~,根目錄是/

      3)重定向

      ①標準輸入輸出

      設備設備名文件描述符類型
      鍵盤 /dev/stdin 0 標準輸入
      顯示器 /dev/stdout 1 標準輸出
      顯示器 /dev/stderr 2 標準錯誤輸出

      ②輸入重定向

      • 輸入重定向:不使用標準輸入端口(也就是①中所說的鍵盤)輸入文件,而是使用指定的文件作為標準輸入設備
      • 修改:使用"<"符來修改標準輸入設備
      類型符號(語法)功能
      標準輸入 命令<文件1 命令把文件1的內容作為標準輸入設備
      標識符限定輸入 命令<<標識符 命令把標準輸入中讀入內容,直到遇到“標識符”分解符為止
      輸入輸出重定向(同時使用) 命令< 文件1 >文件2 命令把文件1的內容作為標準輸入,把文件2作為標準輸出。

      ③輸出重定向

      • 輸出重定向:把輸出信息寫入到文件中,而非控制臺(顯示屏)如果沒有重定向,那么默認的輸出設備是控制臺

      類型

      指令

      效果

      標準輸出重定向 命令 > 文件 覆蓋,把命令的正確輸出內容輸出到指定的文件
      命令 >> 文件 追加,把命令的正確輸出內容輸出到指定的文件
      標準錯誤輸出重定向 命令 2> 文件 覆蓋,把命令的錯誤輸出內容輸出到指定的文件
      命令 2>> 文件 追加,把命令的錯誤輸出內容輸出到指定的文件
      正確輸出和錯誤輸出同時保存 命令 > 文件 2>&1 覆蓋,把正確輸出和錯誤輸出都保存到同一個文件
      命令 >> 文件 2>&1 追加,把正確輸出和錯誤輸出都保存到同一個文件
      命令 &> 文件 覆蓋,把正確輸出和錯誤輸出都保存到同一個文件
      命令 &>> 文件 追加,把正確輸出和錯誤輸出都保存到同一個文件
      命令 >> 文件1 2>>文件2 追加,正確輸出追加到文件1中,錯誤輸出追加到文件2
      • /dev/null:如果要執行某個命令,但不要在屏幕上顯示結果,可以將輸出重定向到/dev/null

      用法

      復制代碼
      command > file  將輸出重定向到 file。
      command < file  將輸入重定向到 file。
      command >> file 將輸出以追加的方式重定向到 file。
      n > file    將文件描述符為 n 的文件重定向到 file。
      n >> file   將文件描述符為 n 的文件以追加的方式重定向到 file。
      n >& m  將輸出文件 m 和 n 合并。
      n <& m  將輸入文件 m 和 n 合并。
      << tag  將開始標記 tag 和結束標記 tag 之間的內容作為輸入。
      復制代碼

      例子

      echo "hello world" > test7.sh

      4)通配符

      *:0或多個字符;

      例子 說明
      ls *.txt 查找所有txt文件
      ls 1*.txt 以1開頭的txt文件

      ?:1個字符

      其實和正則表達式通配符完全相同,所以就不再多說了

      1、終端

      --help:幫助手冊

      如果要查看某個指令的參數選擇,比如rm,有了兩種方式

      rm --help
      
      man rm #更全 退出時按Q

      tab:自動補全指令(有多個匹配項時,可以按兩次tab顯示全部匹配項,Windows也適用)

      HOME或ctrl+a //光標迅速回到行首 == HOME

      END或ctrl+e //光標迅速回到行尾

      ctrl+insert //復制命令行內容(mac系統不能使用)

      shift+insert //粘貼命令行內容(mac系統不能使用)

      ctrl+k //剪切(刪除)光標處到行尾的所有字符

      ctrl+u //剪切(刪除)光標處到行首的所有字符

      ctrl+w //剪切(刪除)光標前的一個字符

      ctrl+y //粘貼

      ctrl+c //中斷終端正在執行的任務并開啟一個新的一行

      ctrl+d //退出當前shell命令行,如果是切換過來的用戶,則執行這個命令回退到原用戶

      ctrl+r //搜索命令行使用過的歷史命令記錄

      ctrl+g //從ctrl+r的搜索歷史命令模式中退出

      ctrl+l //清楚屏幕所有的內容,并開啟一個新的一行

      ctrl+s //鎖定終端,使之任何人無法輸入

      ctrl+q //解鎖ctrl+s的鎖定狀態

      ctrl+z //暫停在終端運行的任務,使用"fg"命令可以使暫停恢復

      !! //執行上一條命令

      !pw //這是一個例子,是執行以pw開頭的命令,這里的pw可以換成任何已經執行過的字符

      !pw:p //這是一個例子,是僅打印以pw開頭的命令,但不執行,最后的那個“p”是命令固定字符

      !num //執行歷史命令列表的第num條命令,num代指任何數字(前提是歷史命令里必須存在)

      !$ //代指上一條命令的最后一個參數,該命令常用于shell腳本中

      esc+. //注意那個".“ 意思是獲取上一條命令的(以空格為分隔符)最后的部分

      esc+b //移動到當前單詞的開頭

      esc+f //移動到當前單詞的結尾

      2、目錄與文件

      1)pwd(Print Working Directory):當前目錄的路徑

      用法:pwd [-P]

      參數

      只有一個-P,如果當前目錄是連接檔,那么加-P后,會顯示正確的完整路徑

      2)Linux:ls指令 

      3)cd:訪問目錄

      用法:cd [絕對路徑/相對路徑]

      參數

      參數

      說明

      相對路徑 進入某個相對路徑
      絕對路徑 進入絕對路徑下的某個文件夾
      .. 返回上一級
      ~ 回到根目錄
      - 在上一個目錄和本目錄來回切換
      ~user 回到user這個用戶的根目錄

      注意

      連接符是/而不是\,這點和Windows剛好相反

       

      3、文件內容

      1)cat(concatenate):查看文件內容

      用法:cat [-AbEnTv] 路徑

      選項

      選項

      說明

      A 相當于-vET,可以列出一些特輸出字符,而非空白
      b 顯示行號,僅針對非空白行,跳過空白行
      E 將結尾的斷行符$顯示出來
      n 顯示行號,包括空白行
      T 將[TAB]以^I的方式顯示出來
      v 列出一些看不出來的特殊字符

      2)tac:反向顯示

      用法:同cat

      和cat相反,從末行到首行顯示

      3)nl:添加行號顯示

      用法:nl [-bnw] 路徑

      選項

      選項

      說明

      b

      指定行號顯示的方式:

      • -b a:空行也列出行號,等于cat -n
      • -b t:空行不列出行號(默認)
      n

      行號顯示的位置:

      • -n ln:行號在屏幕左側顯示;
      • -n rn:行號在字段右側顯示,不加0
      • -n rz:行號在字段右側顯示,加0
      w 設置行號字段共有多少位(默認6位,不足補0,即-n rz)

      例子

      ①常規顯示(不顯示空白行行號)

      [root@study ~]# nl /etc/issue
      1 \S
      2 Kernel \r on an \m

      顯示空白行行號

      [root@study ~]# nl -b a /etc/issue
      1 \S
      2 Kernel \r on an \m
      3

      ②行號補0

      [root@study ~]# nl -b a -n rz /etc/issue
      000001 \S
      000002 Kernel \r on an \m
      000003

      ③設置行號有幾位

      [root@study ~]# nl -b a -n rz -w 3 /etc/issue
      001 \S
      002 Kernel \r on an \m
      003

      4)more:一頁一頁翻頁顯示

      cat、tac、nl是全部顯示,如果文件較大則顯示不了前邊的數據。

      用法:more 路徑

      按鍵

      按鍵

      說明

      空格、b 向下翻頁、向上翻頁
      Enter 向下翻一行
      /word 查找word
      :f 顯示出文件名及當前行數
      q 退出

      5)less:一頁一頁翻頁顯示

      比more更靈活,可以往回翻頁

      用法:less 路徑

      按鍵

      這里的按鍵就是vim命令模式下的按鍵

      按鍵

      說明

      空格  向下翻頁
      pagedown/pageup 向下/上翻頁 
      /word 向下查找word 
      ?word 向上查找word 
      n  重復上一次查找結果,并向下移動至下一個查找到的word字符首
      N  重復上一次查找結果,并向上移動至下一個查找到的word字符首
      使用/word + n/N可以實現不停地向上/向下定位到某個想要字符處
      g 移動至文檔首行
      G  移動至文檔尾行
      q 退出less 

      6)head/tail:取首/尾若干行(默認10行)

      用法:

      • head/tail [-n number] 路徑:取首/尾若干行(默認10行)

      • tail -f 路徑:持續輸出(如果某個文件有持續寫入時)

      例子

      ①常規使用

      # 默認顯示前面十行
      [root@study ~]# head /etc/man_db.conf
      
      #顯示前 20 行
      [root@study ~]# head -n 20 /etc/man_db.conf

      ②head -n 負號:不顯示后n行

      tail -n 正號:不顯示前n行

      #不顯示后100行
      [root@study ~]# head -n -100 /etc/man_db.conf
      #不顯示前100行
      [root@study ~]# tail -n +100 /etc/man_db.conf

      ③tail -f:持續打印

      ④顯示中間若干行 head -n 數字 | tail -n 數字

      #取11~20行
      head -n 20 /etc/man_db.conf | tail -n 10

      7)od:非文本文件(數據文件data file或者二進制文件binary file)

      用法:od [-t TYPE] 路徑

      選項

      TYPE(n代表每個數字占用的字符)

      輸出為哪種類型

      a 默認字符
      c ASCII字符
      d[n] 十進制
      f[n] 浮點數
      o[n] 八進制
      x[n] 十六進制

      例子

      ①常規使用

      #將/usr/bin/passwd 的內容使用ASCII 方式來展現
      [root@study ~]# od -t c /usr/bin/passwd

      ②多選項,對照顯示

      #將/etc/issue 這個文件的內容以8 進位列出儲存值與ASCII 的對照表
      [root@study ~]# od -t oCc /etc/issue
      0000000 134 123 012 113 145 162 156 145 154 040 134 162 040 157 156 040
            \  S   \n  K   e   r   n   e   l   \   r   o   n
      0000020 141 156 040 134 155 012 012
      a n \ m \n \n
      0000027

      4、權限

      • r-4
      • w-2
      • x-1

      新文件的默認權限為(默認無執行權限):(-rw-rw-rw-) - umask 

      新目錄的默認權限為:(drwxrwxrwx) - umask

      文件權限

      • r:讀取
      • w:編輯、改變其中內容(而非文件本身屬性)
      • x:被系統執行

      Linux系統下,文件可否執行不由擴展名.exe、.bat等決定,而由是否具有權限X決定

      一般來說,文件權限有w或x一般要有前置權限r。

      目錄權限

      • r:讀取目錄結構列表(該目錄下的文件名數據)的權限,可以通過ls將該目錄的內容列表顯示
      • w:異動目錄結構列表的權限(以下操作均是對該目錄下的文件和目錄開展的):
        • 建立新文件及目錄;
        • 刪除文件及目錄;
        • 更名;
        • 移動。
      • x:并非可執行該目錄的意思,而是是否可以通過cd進入該目錄,使其成為工作目錄

      目錄的三個權限互相獨立,就算沒r權限也可以有wx,只是沒r就無法用tab進行文件名補全了

      • 在架設網站給人瀏覽目錄時,應至少給予r、x權限,因為不給x就無法到該目錄下讀取文件
      • 某個文件時,就要具備這個文件所在目錄的x權限;
      • 創建文件時,應至少具有它所在目錄的wx權限

      權限與指令

      指令

      目錄權限

      (至少擁有的權限)

      文件權限

      (至少擁有的權限)

      cd 目錄

      x  

      cp

      源目錄:x

      目標目錄:x、w

      r
      ls 目錄   r  

       讀取文件

      cat、more、less

       r

       修改

      nano、vim

       x  r、w
      建立文件  w(必須)、x(有時不用)   
      cd目錄并執行某個指令  x  x

       

      說明

      文件目錄是按層次排列的,例如:/home/student/www/index.html,權限也是一層層識別的,如果沒有進入上層結構的權限(目錄x權限),那么對下層的各種操作就都沒有權限了。

       

      1)chgrp:修改群組

      用法:chgrp [-R] dirname/filename ...

      選項

      • -R 遞歸變更,持續變更目錄下的所有文件

      說明

      • 組名必須在/etc/group中存在(不存在會報錯invalid group

      2)chown:修改所有者

      用法

      • chown [-R] 所有者 文件或目錄

      • chown [-R] 所有者:組名 文件或目錄

      選項

      • -R 遞歸變更,持續變更目錄下的所有文件

      說明

      • 用戶必須在/etc/passwd中存在

      例子

      容器創建時,需要修改/applog所屬用戶:用戶組dcos:docker

      chown dcos:docker /applog

       

      3)chmod:修改權限

      用法:

      • chmod [-R] 數字權限 文件或目錄
      • chmod [-ugoa] [+-=][rwx] 文件或目錄

      選項

      • -R 遞歸變更同次目錄下的所有文件
      • xyz 權限代表的數字,每個角色都有一個數字,rwx=7,---=0
      • u:user/owner
      • g:group
      • o:other
      • a:all

      例子

      將.bashrc的所有權限都設定為啟用

      chmod 777 .bashrc

      ②將.bashrc的user權限設置為rwx,group和other權限設置為rx,即文件權限為rwxr-xr-x

      chmod u=rwx,go=rx .bashrc

      ③將.bashrc的權限設置為-rwxr-xr--

      chmod u=rwx,g=rx,o=r .bashrc

      ④如果只是去除權限而不修改其它權限

      chmod a-x .bashrc

      4)umask:建立文件或目錄時的默認權限

      用法

      ①查看

      • umask:數字形式

      • umask -S:符號形式

      ②修改

      • umask 3位數字權限

      例子

      ①正常用法

      [root@study ~]# umask
      0022 <==與一般權限有關的是后面三個數字!
      [root@study ~]# umask -S
      u=rwx,g=rx,o=rx

      數字權限中的第一個數字是特殊權限,后三個才是一般權限

      5、PATH

      查詢:echo $PATH

      修改:PATH="${PATH}:絕對路徑"

      說明

      • 只有位于PATH下的指令可以直接通過指令訪問,位于其他路徑下的指令只能通過路徑/指令的方式執行;
      • 如果要讓別的路徑下的指令(也是可執行文件名)也能直接通過指令的方式訪問,則要把該路徑加入PATH;
      • 為了安全起見,不建議把當前目錄.加入PATH。

      6、查找、搜尋

      1)which:(在PATH下)查找命令的絕對路徑

      用法:which [-a] 命令

      選項

      • a:將所有從PATH中找到的命令全部列出,而不止第一個;

      例子

      ①查找ifconfig

      [root@study ~]# which ifconfig
      /sbin/ifconfig

      ②which which

      [root@study ~]# which which
      alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
      /bin/alias
      /usr/bin/which
      # 竟然會有兩個 which ,其中一個是 alias 這玩意兒呢!那是啥?
      # 那就是所謂的『命令別名』,意思是輸入 which 會等于后面接的那串指令啦!

      ③能調用某個命令,但卻查找不到,例如history

      [root@study ~]# which history
      /usr/bin/which: no history in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:
      /usr/sbin:/usr/bin:/root/bin)

      這是因為history是bash內建的指令,而which找的是PATH下的所有目錄。對于這類指令就要用type指令

      2)whereis:從一些特定目錄中查找文件

      用法:whereis [-lbmsu] 路徑

      選項

      選項

      說明

      l 列出查找路徑
      b 只找binary文件
      m 只找在man路徑下的文件
      s 只找source源文件
      u 搜尋不在上述選項中的文件

      3)locate/updatedb:利用數據庫來搜尋文件名

      locate:依據/var/lib/mlocate 內的數據庫記載,找出用戶輸入的關鍵詞文件名;

      updatedb:根據/etc/updatedb.conf 的設定去搜尋系統硬盤內的文件名,并更新/var/lib/mlocate 內的數據庫文件。

      用法:locate [-iclSr] 指令

      選項

      選項

      說明

      i 忽略大小寫
      c 僅計算數量,不詳細輸出
      l 輸出幾行,5行就是-l 5
      S locate所用數據庫的信息
      r 后接正規表達式

      例子

      ①找出系統中與passwd相關的文檔,只列出5個

      [root@study ~]# locate -l 5 passwd
      /etc/passwd
      /etc/passwd-
      /etc/pam.d/passwd
      /etc/security/opasswd
      /usr/bin/gpasswd

      ②查詢所使用的數據庫信息

      [root@study ~]# locate -S
      Database /var/lib/mlocate/mlocate.db:
      8,086 directories # 總紀錄目錄數
      109,605 files # 總紀錄文件數
      5,190,295 bytes in file names
      2,349,150 bytes used to store database

      說明

      • 支持模糊查詢,指令名可以不打全
      • 數據庫有更新頻率,所以存在查詢舊版本的問題;
      • 輸入指令updatedb更新數據庫

      4)find:查找

      從各個方向(類型、時間、所有人……)查找

      用法:find 路徑 選項 動作

      選項與例子:

      • 時間:atime、ctime、mtime

        以 -mtime 說明,注意 +-號
        -mtime n :n 為數字,意義為在 n 天之前的『一天之內』被更動過內容的文件;<=1
        -mtime +n :列出在 n 天之前(不含 n 天本身)被更動過內容的文件檔名;>n
        -mtime -n :列出在 n 天之內(含 n 天本身)被更動過內容的文件檔名。<=n
        -newer filefile 為一個存在的文件,列出比 file 還要新的文件檔名

        例子

        #將過去系統上面 24 小時內有更動過內容 (mtime) 的文件列出
        [root@study ~]# find / -mtime 0
        # 那個 0 是重點!0 代表目前的時間,所以,從現在開始到 24 小時前,
        # 有變動過內容的文件都會被列出來!那如果是三天前的 24 小時內?
        # find / -mtime 3 有變動過的文件都被列出的意思!
        
        #尋找 /etc 底下的文件,如果文件日期比 /etc/passwd 新就列出
        [root@study ~]# find /etc -newer /etc/passwd
        # -newer 用在分辨兩個文件之間的新舊關系是很有用的!

      • 使用者或組名

        選項

        說明

        -uid n UID
        -gid n  GID
        -user name  用戶名
        -group name 組名
        -nouser  尋找不屬于該系統中任何人的文件
        -nogroup  尋找不屬于該系統中任何群組的文件

        當你自行安裝軟件時,很可能該軟件的屬性當中并沒有文件擁有者, 這是可能的!在這個時候,就可以使用 -nouser 與 -nogroup 搜尋。

        例子

        #搜尋 /home 底下屬于 dmtsai 的文件
        [root@study ~]# find /home -user dmtsai
        # 這個東西也很有用的~當我們要找出任何一個用戶在系統當中的所有文件時,
        # 就可以利用這個指令將屬于某個使用者的所有文件都找出來喔!
        #搜尋系統中不屬于任何人的文件
        [root@study ~]# find / -nouser
        # 透過這個指令,可以輕易的就找出那些不太正常的文件。如果有找到不屬于系統任何人的文件時,
        # 不要太緊張,那有時候是正常的~尤其是你曾經以原始碼自行編譯軟件時。
      • 文件權限

        選項

        說明

        -name filename 文件名為filename(可用通配符)
        -size [+-]SIZE 比SIZE大(+)或小(-),比50KB大--size +50K
        -type TYPE 文件類型:f b c d l s p
        -perm mode 權限剛好等于mode,mode為4位的權限數字
        -perm -mode 權限涵蓋mode
        -perm /mode 包含任一mode的權限

        例子

        范例五:找出檔名為 passwd 這個文件
        [root@study ~]# find / -name passwd
        范例五-1:找出文件名包含了 passwd 這個關鍵詞的文件
        [root@study ~]# find / -name "*passwd*"
        # 利用這個 -name 可以搜尋檔名啊!默認是完整文件名,如果想要找關鍵詞,
        # 可以使用類似 * 的任意字符來處理
        范例六:找出 /run 目錄下,文件類型為 Socket 的檔名有哪些?
        [root@study ~]# find /run -type s
        # 這個 -type 的屬性也很有幫助喔!尤其是要找出那些怪異的文件,
        # 例如 socket 與 FIFO 文件,可以用 find /run -type p 或 -type s 來找!
        范例七:搜尋文件當中含有 SGID 或 SUID 或 SBIT 的屬性
        [root@study ~]# find / -perm /7000
        # 所謂的 7000 就是 ---s--s--t ,那么只要含有 s 或 t 的就列出,所以當然要使用 /7000,
        # 使用 -7000 表示要同時含有 ---s--s--t 的所有三個權限。而只需要任意一個,就是 /7000

      動作

      • -exec 指令:使用別的指令處理搜尋到的結果
      • -print:默認,將結果打印
        例子
        #將上個范例找到的文件使用 ls -l 列出來
        [root@study ~]# find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} \;
        # 注意到,那個 -exec 后面的 ls -l 就是額外的指令,指令不支持命令別名,
        # 所以僅能使用 ls -l 不可以使用 ll


        對例子的說明

        • { }代表find找到的內容,上例中,find的結果會被放在{ }中;

        •  

          由于;在bash環境下有特殊意義,因此要用/轉義。 

      多條件并列查詢

      #多條件查詢
      #-a表示and -o表示or
      find /home -name '1*' -a -type f 

      說明

      • 與locate和whereis相比,find要查找硬盤,因此速度不如這二者;

      7、文件系統

      1)df:整體磁盤使用量

      用法:df [-ahikHTm] [路徑]

      選項

      選項

      說明

      以KB為單位列出系統內所有的文件系統(不包括特殊內存內的文件系統和swap)
      a 列出所有文件系統,包括系統持有的/proc等文件系統
      k 以KB為單位顯示
      m 以MB為單位顯示
      h 以較易閱讀的GB、MB、KB等格式自行顯示
      H 以M=1000K取代1024K的進位方式
      T 連同該partition的文件系統類型(如xfs)也顯示出來
      i 不用磁盤容量,而用inode的數量來顯示

      例子

      ①列出系統中的全部文件系統

      每列含義:

      • Filesystem:該文件系統在哪個partition
      • 1K-blocks:下邊的數字單位
      • Used:用掉的空間
      • Available:剩下的空間
      • Use%:磁盤使用率
      • Mounted on:磁盤掛載目錄

      ②將容量以易讀的容量格式顯示出來

      ③將系統內所有特殊文件格式及名稱都列出來

      [root@study ~]# df -aT
      Filesystem Type 1K-blocks Used Available Use% Mounted on
      rootfs rootfs 10475520 3409368 7066152 33% /
      proc proc 0 0 0 - /proc
      sysfs sysfs 0 0 0 - /sys
      devtmpfs devtmpfs 627700 0 627700 0% /dev
      securityfs securityfs 0 0 0 - /sys/kernel/security
      tmpfs tmpfs 637568 80 637488 1% /dev/shm
      devpts devpts 0 0 0 - /dev/pts
      tmpfs tmpfs 637568 24684 612884 4% /run
      tmpfs tmpfs 637568 0 637568 0% /sys/fs/cgroup
      .....(中間省略).....
      /dev/mapper/centos-root xfs 10475520 3409368 7066152 33% /
      selinuxfs selinuxfs 0 0 0 - /sys/fs/selinux
      .....(中間省略).....
      /dev/mapper/centos-home xfs 5232640 67720 5164920 2% /home
      /dev/vda2 xfs 1038336 133704 904632 13% /boot
      binfmt_misc binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
      # 系統里面其實還有很多特殊的文件系統存在的。那些比較特殊的文件系統幾乎
      # 都是在內存當中,例如 /proc 這個掛載點。因此,這些特殊的文件系統
      # 都不會占據磁盤空間喔!

      ④將/etc下的可用磁盤容量以易讀的容量格式顯示

      [root@study ~]# df -h /etc
      Filesystem Size Used Avail Use% Mounted on
      /dev/mapper/centos-root 10G 3.3G 6.8G 33% /
      #在 df 后面加上目錄或者是文件時, 
      # df會自動的分析該目錄或文件所在的 partition ,并將該 partition 的容量顯示出來,
      # 所以,您就可以知道某個目錄底下還有多少容量可以使用了!

      ⑤將各個partition中可用的inode數量列出

      #將目前各個 partition 當中可用的 inode 數量列出
      [root@study ~]# df -ih
      Filesystem Inodes IUsed IFree IUse% Mounted on
      /dev/mapper/centos-root 10M 108K 9.9M 2% /
      devtmpfs 154K 397 153K 1% /dev
      tmpfs 156K 5 156K 1% /dev/shm
      tmpfs 156K 497 156K 1% /run
      tmpfs 156K 13 156K 1% /sys/fs/cgroup
      # 這個范例則主要列出可用的 inode 剩余量與總容量。通常 inode 的數量剩余都比 block 還要多呢

      2)du:評估文件系統的磁盤使用量

      用法:du [-ahskm] 路徑

      選項

      選項

      說明

      統計當前目錄下的各目錄容量
      a 列出當前目錄下的所有的文件和目錄容量
      h 以人們較易讀的容量格式顯示
      s 列出總量,而不列出個別目錄占用容量
      S 不包括子目錄下的總計
      k 以KB作為容量單位
      m 以MB作為容量單位

      說明

      • 如果要知道該目錄占了多少容量的話,使用-s就可以了
      • 至于-S 這個選項部分,由于du 默認會將所有文件的大小均列出,假設在/etc使用du 時, 所有的文件大小,包括/etc下的次目錄容量也會被計算一次。然后最終的容量(/etc) 也會加總一次, 因此很多人會誤會du分析的結果不太對勁。所以啰,如果想要列出某目錄下的全部數據, 也可以加上 -S 的選項,減少次目錄的加總。

      例子

      ①列出當前目錄下的所有目錄容量

      [root@study ~]# du
      4 ./.cache/dconf <==每個目錄都會列出來
      4 ./.cache/abrt
      8 ./.cache
      ....(中間省略)....
      0 ./test4
      4 ./.ssh <==包括隱藏文件的目錄
      76 . <==這個目錄(.)所占用的總量
      # 直接輸入 du 沒有加任何選項時,則 du 會分析『目前所在目錄』
      # 的文件與目錄所占用的磁盤空間。但是,實際顯示時,僅會顯示目錄容量(不含文件),
      # 因此 . 目錄有很多文件沒有被列出來,所以全部的目錄相加不會等于 . 的容量喔!

      ②列出當前目錄下的所有目錄和文件容量

      [root@study ~]# du -a
      4 ./.bash_logout <==有文件的列表了
      4 ./.bash_profile
      4 ./.bashrc
      ....(中間省略)....
      4 ./.ssh/known_hosts
      4 ./.ssh
      76 .

      ③檢查根目錄下每個目錄占用的容量

      [root@study ~]# du -sm /*
      0 /bin
      99 /boot
      ....(中間省略)....
      du: cannot access ‘/proc/17772/task/17772/fd/4’: No such file or directory
      du: cannot access ‘/proc/17772/fdinfo/4’: No such file or directory
      0 /proc <==不會占用硬盤空間!
      1 /root
      25 /run
      ....(中間省略)....
      3126 /usr <==系統初期最大就是他了啦!
      117 /var
      # 這是個很常被使用的功能~利用通配符 * 來代表每個目錄,如果想要檢查某個目錄下,
      # 哪個次目錄占用最大的容量,可以用這個方法找出來。值得注意的是,如果剛剛安裝好 Linux 時,
      # 那么整個系統容量最大的應該是 /usr 。而 /proc 雖然有列出容量,但是那個容量是在內存中,
      # 不占磁盤空間。至于 /proc 里頭會列出一堆『No such file or directory』 的錯誤,
      # 別擔心!因為是內存內的程序,程序執行結束就會消失,因此會有些目錄找不到,是正確的!

       

       3)ln:建立鏈接

      原理:實體鏈接與符號鏈接

      用法:ln [-sf] 路徑1 路徑2(只能文件,不能是目錄)

      構建鏈接后,訪問路徑2,實際上是訪問路徑1

      選項

      • s:不加s,硬鏈接;加s,符號鏈接;

      • f:如果目標文件存在,就將目標文件移除后再建立;

      說明:

      • 把路徑2鏈接到路徑1,兩個文件除了名字不同外,別的信息都相同;

      • 鏈接后,兩個文件的第二個字段(表示鏈接數)都會+1;
      • 實體鏈接前后,磁盤空間與inode的數目都不變,只是在某個目錄下的block多寫入一個關聯數據;符號鏈接會改變容量與inode;
      • 不能鏈接目錄

      限制

      • 不能跨文件系統
      • 不能鏈接目錄

      例子:

      ①實體鏈接

      [root@study ~]# ll -i /etc/crontab
      34474855 -rw-r--r--. 1 root root 451 Jun 10 2014 /etc/crontab
      [root@study ~]# ln /etc/crontab . <==建立實體鏈接的指令
      [root@study ~]# ll -i /etc/crontab crontab
      34474855 -rw-r--r--. 2 root root 451 Jun 10 2014 crontab
      34474855 -rw-r--r--. 2 root root 451 Jun 10 2014 /etc/crontab

      ②符號鏈接/快捷方式

      [root@study ~]# ln -s /etc/crontab crontab2
      [root@study ~]# ll -i /etc/crontab /root/crontab2
      34474855 -rw-r--r--. 2 root root 451 Jun 10 2014 /etc/crontab
      53745909 lrwxrwxrwx. 1 root root 12 Jun 23 22:31 /root/crontab2 -> /etc/crontab
      • 兩個文件指向不同的inode,說明兩個文件獨立存在。
      • 連結檔的大小為12bytes,因為->右邊的檔名[/tec/crontab]共有12個英文,每個英文占用1B,因此文件大小就是12B

      4)lsblk:list block device列出系統上的所有磁盤列表

      用法:lsblk [-dfimpt] [device]

      選項:

      選項

      說明

      d 僅列出磁盤本身,不會列出該磁盤的分區數據
      f 同時列出該磁盤內的文件系統名稱(UUID)
      i 使用ASCII的線段輸出,不使用復雜編碼
      m 同時輸出該裝置在/dev下的權限數據
      p 列出該裝置的完整文件名
      t 列出該磁盤的詳細數據

      例子

      ①默認

      [root@study ~]# lsblk
      NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
      sr0 11:0 1 1024M 0 rom
      vda 252:0 0 40G 0 disk # 一整顆磁盤
      |-vda1 252:1 0 2M 0 part
      |-vda2 252:2 0 1G 0 part /boot
      `-vda3 252:3 0 30G 0 part
      |-centos-root 253:0 0 10G 0 lvm / # 在 vda3 內的其他文件系統
      |-centos-swap 253:1 0 1G 0 lvm [SWAP]
      `-centos-home 253:2 0 5G 0 lvm /home

      該系統有個sr0以及一個vda,vda之下又有三個分區,vda3之下還有因為LVM產生的文件系統。

      默認輸出:

      • NAME:裝置的文件名,會省略/dev 等前導目錄!
      • MAJ:MIN:主要:次要裝置代碼
      • RM:是否為可卸除裝置(removable device),如光盤、USB 磁盤等等
      • SIZE:容量
      • RO:是否為只讀裝置
      • TYPE:類別,如磁盤(disk)、分區槽(partition) 、只讀存儲器(rom) 等
      • MOUTPOINT:掛載點

      范例二:僅列出 /dev/vda 裝置內的所有數據的完整文件名
      [root@study ~]# lsblk -ip /dev/vda
      NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
      /dev/vda 252:0 0 40G 0 disk
      |-/dev/vda1 252:1 0 2M 0 part
      |-/dev/vda2 252:2 0 1G 0 part /boot
      `-/dev/vda3 252:3 0 30G 0 part
      |-/dev/mapper/centos-root 253:0 0 10G 0 lvm /
      |-/dev/mapper/centos-swap 253:1 0 1G 0 lvm [SWAP]
      `-/dev/mapper/centos-home 253:2 0 5G 0 lvm /home # 完整的檔名,由 / 開始寫

      5)blkid:列出裝置的UUID等參數

      用法:blkid

      說明:列出裝置的UUID(Universally Unique Identifier),它叫全局單一標識符,等同于lsblk -f。Linux會為系統中的所有裝置給予一個獨一無二的標識符,這個標識符可以用來作為掛載或者使用這個裝置。

       例子

      [root@study ~]# blkid
      /dev/vda2: UUID="94ac5f77-cb8a-495e-a65b-2ef7442b837c" TYPE="xfs"
      /dev/vda3: UUID="WStYq1-P93d-oShM-JNe3-KeDl-bBf6-RSmfae" TYPE="LVM2_member"
      /dev/sda1: UUID="35BC-6D6B" TYPE="vfat"
      /dev/mapper/centos-root: UUID="299bdc5b-de6d-486a-a0d2-375402aaab27" TYPE="xfs"
      /dev/mapper/centos-swap: UUID="905dc471-6c10-4108-b376-a802edbd862d" TYPE="swap"
      /dev/mapper/centos-home: UUID="29979bf1-4a28-48e0-be4a-66329bf727d9" TYPE="xfs"

      每一行都代表一個文件系統,主要列出裝置名稱、UUID名稱、文件系統類型(TYPE)

      6)parted:列出磁盤的分區表類型和分區信息

      用法:parted 裝置名 print

      例子

      [root@study ~]# parted /dev/vda print
      Model: Virtio Block Device (virtblk) # 磁盤的模塊名稱(廠商)
      Disk /dev/vda: 42.9GB # 磁盤的總容量
      Sector size (logical/physical): 512B/512B # 磁盤的每個邏輯/物理扇區容量
      Partition Table: gpt # 分區表的格式 (MBR/GPT)
      Disk Flags: pmbr_boot
      Number Start End Size File system Name Flags # 底下才是分區數據
      1 1049kB 3146kB 2097kB bios_grub
      2 3146kB 1077MB 1074MB xfs
      3 1077MB 33.3GB 32.2GB lvm

      7)磁盤分區:gdisk/fdisk

      說明

      • fdisk:MBR分區

      • gdisk:GPT分區

       

       

      posted @ 2021-04-01 21:52  ShineLe  閱讀(105)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 日本亚洲一级中文字幕| 成人免费ā片在线观看| 日韩精品一区二区三免费| 双鸭山市| 精品中文人妻中文字幕| 国产无码高清视频不卡| 亚洲精品人成网线在线| 亚洲乱码一二三四区| 国产精品午夜福利免费看| 日韩av熟女人妻一区二| 武川县| 国产精品高清中文字幕| 色噜噜狠狠成人综合| 看全色黄大黄大色免费久久| 熟女在线视频一区二区三区| caoporn免费视频公开| 人妻体内射精一区二区三四| 卓资县| 久久国产免费观看精品3| 精品少妇无码一区二区三批 | 给我免费观看片在线| 久久精品国产99亚洲精品| 无遮挡aaaaa大片免费看| 久久国产热这里只有精品| 日韩有码国产精品一区| 人妻少妇精品视频专区| 国产精品最新免费视频| 久久久久国产一级毛片高清版A| 亚洲国产精品高清久久久| 狠狠爱俺也去去就色| 日韩精品一区二区都可以| 精品视频不卡免费观看| 国产香蕉一区二区三区在线视频| 91密桃精品国产91久久| WWW丫丫国产成人精品| 亚洲老妇女亚洲老熟女久| 一本色道久久东京热| 国产精品午夜福利合集| 国产成人亚洲精品狼色在线| 国内少妇偷人精品免费| 亚洲成人av在线系列|