正式班D12

2020.10.21星期三  正式班D12

一、目錄結構

  1. 系統目錄結構

    1. 目錄

     文件夾:存放的是具體有哪些文件
    
     文件:存放的就是具體的數據
    
    1. 需要記住的

      /dev/cdrom # 光碟設備,光碟里存放的內容都在這裡,以後用來為我們的作業系統補包

      /dev/null # 黑洞文件:把不想要顯示的內容丟入黑洞

      /etc/hostname # 主機名的配置文件

      /etc/sysconfig/network-scripts/ifcfg-eth0 # 網卡的配置文件

      /etc/resolv.conf # 指定遠程DNS地址

      /etc/hosts # 本機域名解析文件

      /home/ # 以普通用戶命名的文件夾 # 該普通用戶的家目錄

      /root # root的家目錄

      ~ # 代表當前用戶的家目錄

      掛載點
      ​/mnt
      /opt
      /tmp
      /media

      /proc/sys/net/ipv4/ # 與於網路參數優化相關的文件

      /var/log/ # 查看日誌

      tail -f /var/log/messages # 動態查看日誌

    2. 其他

      1. 系統相關目錄

        1. bin->usr/bin # 普通用戶使用的命令,如ls、date
        2. sbin->usr/sbin # 管理員使用的命令
      2. 啟動目錄

        1. boot # 存放的啟動相關的文件,例如kernel,grub(引導裝載程式)
      3. 系統目錄文件

        1. usr # 系統文件,相當於C:\Windows
        2. lib->usr/lib # 庫文件Glibc
        3. lib64->usr/lib64 # 庫文件Glibc
      4. 用戶家目錄

        1. home # 普通用戶家目錄
        2. root # root用戶的HOME
      5. 配置文件目錄

      etc # 配置文件,很重要,系統級服務配置文件都在這裡

        1. /etc/sysconfig/network-scripts/ifcfg-eth0  # 網路配置文件
        2. /etc/hostname  # 系統主機名配置文件
        3. /etc/resolv.conf  # DNS客戶端配置文件
        4. /etc/hosts  # 本地域名解析配置文件
      
      1. 設備目錄文件

      dev # 設備文件,如/dev/sda,/dev/sr0

        1. /dev/cdrom 和/dev/sr0  # 系統光碟鏡像設備
        2. /dev/null  # 黑洞設備
        3. /dev/random  # 生成隨機數的設備
        4. /dev/zero  # 源源不斷產生數據(類似取款機,隨時隨地取數據)
        5. /dev/pts/0  # 虛擬的*Bash Shell*終端,提供給遠程客戶使用(*0*代表第一個終端,*1*-->第二個終端)
        6. /dev/stderr  # 錯誤輸出
        7. /dev/stdin  # 標準輸入
        8. /dev/stdout  # 標準輸出
      
      1. 虛擬文件系統

      proc # 虛擬的文件系統,反應的是內核,進程資訊和實時狀態

      1. 可變的目錄與臨時目錄

      var # 存放變化文件,如資料庫、日誌、郵件

        1. /tmp  # 系統臨時目錄(類似垃圾桶),系統定時刪該目錄下長時間未訪問的文件
        2. /var  # 存放變化文件
        3. /var/lib/mysql  # mysql
        4. /var/ftp  # vsftbd
        5. /var/spool/mail  # mail
        6. /var/spool/cron  # cron
        7. /var/log 系統日誌文件存放目錄  # log
        8. /var/tmp  # 臨時文件(主要是程式產生的臨時文件)
      
      1. 設備(主要指存儲設備)掛載目錄

        1. media # 移動設備默認的掛載點
        2. mnt # 手工掛載設備的掛載點
        3. opt # 早期第三方廠商的軟體存放目錄
        4. tmp # root用戶的HOME
      2. 其他

        1. lost+found # 孤兒文件
        2. run # 存放程式運行後所產生的pid文件
        3. srv # 物理設備產生的一些文件
        4. sys # 硬體設備的驅動程式資訊
  2. 補充命令

    1. cd # 切換文件夾
    2. pwd # 查看當前所在的文件夾
    3. cat # 查看文件內容
    4. stat查看Linux的三種時間
      1. 訪問時間:atime,查看內容,用cat檢測
      2. 修改時間:mtime,修改內容
      3. 改變事件:ctime,修改內容、許可權等都會改變
  3. 路徑

    1. 絕對路徑

      路徑是從根開始的,即/作為前綴

      ​ Linux系統:/a/b/c/d/new.txt

      ​ Windows系統:C:\a\b\c\d\new.txt

    2. 相對路徑

      路徑不是從根開始的

      ​ Linux系統c/d/new.txt

      ​ Windows系統a\b\c\d\new.txt

二、文件管理

  1. 命令

    1. pwd # 查看當前所在的目錄

    2. cd # 切換目錄

      1. cd - # 返回上次目錄
      2. cd # 直接回家,等同於cd ~
      3. cd . # 保持當前目錄不變
      4. cd .. # 切換到當前目錄的上一級目錄
    3. ls # 瀏覽

      1. ls # 默認瀏覽當前目錄
      2. ls -l 目錄 # 瀏覽目錄下的子目錄及子文件名的詳細資訊
      3. ls -al 目錄 # 瀏覽的結果包含隱藏文件
      4. ls -dl 目錄 # 查看目錄
    4. tree # 查看目錄樹(需先安裝tree命令,執行yum install tree -y)

      1. tree -a 目錄 # 顯示所有文件,包括隱藏文件
      2. tree -d 目錄 # 只顯示子目錄
      3. tree -L 1 目錄 # -L:遍歷目錄的最大層數,後面跟大於0的整數
      4. tree -F 目錄 # -F:在條目後加上文件類型的指示符號,如目錄後會加上左斜杠/
      5. 其他
        1. -C # 在文件和目錄清單上加上色彩,便於區分各種類型
        2. -D # 列出文件或目錄的更改時間
        3. -f # 在每個文件或目錄前,顯示完整的相對路徑名稱
        4. -g # 列出文件或目錄所屬組的名稱,沒有對應名稱則顯示群組識別碼
        5. -I # 不顯示符合範本樣式的文件或目錄名稱
        6. -P # 只顯示符合範本樣式的文件或目錄名稱
        7. -l # 遇到性質為符號連接的目錄,直接列出該鏈接所指向的原始目錄
        8. -s # 列出文件或目錄大小
        9. -t # 用文件或目錄的更改時間排序
        10. -u # 列出文件或目錄的擁有者名稱,沒有對應名稱則顯示用戶識別碼
  2. 增刪改查(創建、複製、移動、刪除)

    1. 創建

      1. 創建文件(touch創建的是文本文件,後綴只是區分)

        1. 創建單個文件

          1. touch file1.txt # 無則創建,有則更新時間(相對路徑)
          2. touch /root/a.txt # 無則創建,有則更新時間(絕對路徑)
        2. 創建多個文件

          1. 用空格分開

            touch a.txt b.txt c.txt

          2. 用{}

            touch {d,e,f}.txt

            touch {1..3}.txt # 1.txt 2.txt 3.txt

            touch {1..2}{a..b}.txt # 1a.txt 1b.txt 2a.txt 2b.txt

      2. 創建文件夾(mkdir)

        1. 用空格分開

          mkdir /root/a /root/b

        2. 用{}

          mkdir /root/{a,b,c}

          mkdir -p a/b/c/d # 遞歸創建(a目錄不存在)

    2. 刪除

      rm -rf # r:刪目錄,f:強制刪除

      *rm -rf ** # 刪除當前目錄下所有內容

      rm -rf /* # 刪根

      rm -rf -i # i:交互

      rm -rf -v # v:提示過程

    3. 複製

      1. 複製文件

        cp 源文件 目標文件

      2. 複製文件夾

        cp -r

      3. 將某文件夾下所有文件複製到新文件夾

        cp -r /boot/ /test/* # 將boot目錄下所有文件複製到/test/目錄下

      4. 複製的同時保留原資訊

        cp -a /home/jack/a.txt /mnt/b.txt

      5. 目標文件夾(有寫、執行許可權)中有同名文件(無寫許可權)

        cp -f /test/a.txt /test1/a.txt

        (實際步驟:先執行rm -rf /test/a.txt再執行cp /text/a.txt /text1/)

    4. 移動(相當於剪切)

      1. mv

        1. mv 源地址 目標地址
        2. 示例
          1. mv file2 /home/dir3 # 將file2移動到/home/dir3里
          2. mv file4 file5 # 將file4重命名為file5(當前位置的移動就是重命名)
      2. rm

        1. 示例

          cd /home

          rm -rf dir1 # 刪除/home/dir1

        2. 常用搭配

          -r # 遞歸

          -f # force強制

          -v # 詳細過程

  3. 查看文件內容(cat)

    1. 常用搭配

      1. -n # 顯示行號
      2. -A # 包括控制字元(換行符),例如Linux中的$、Windows中的^M$
    2. 拓展

      1. dos2unix 文件 # 將Windows格式的文件轉換成Unix格式
      2. unix2dos 文件 # 將Unix的文件轉換成Windows格式
    3. less more head tail

      1. head /etc/passwd # 查看passwd文件的前十行(默認十行)

      2. head -2 /etc/passwd # 查看passwd文件的前兩行

      3. tail /etc/passwd # 查看passwd文件的最後十行(默認十行)

      4. tail -2 /etc/passwd # 查看passwd文件的最後兩行

      5. more /etc/passwd # 每次在螢幕上顯示一屏(一頁)內容,且在底部出現"-More-(n%)"的資訊

        (n%是指顯示文件內容的百分比)按空格下一頁,b上一頁;more +40 a.txt表示從第40行開始查看

      6. less /etc/passwd # 螢幕上顯示一屏(一頁)內容,向下鍵一次翻一行

      7. logger yangsheng # 手動產生日誌資訊

      8. tail -4 a.txt | head -2 # 查看a.txt的倒數第三和第四行

      9. tail -f /var/log/messages # 動態查看文件的尾部

    4. grep

      針對文件內容進行過濾

      xxx | greb yyy

Tags: