1. 程式人生 > >linux 檔案操作與目錄操作

linux 檔案操作與目錄操作

檔案操作

使用命令

  • 命令格式:

    命令 [選項] [引數]

    [] 表示可選的

  • 示例:

    ls -a /etc

常識命令

  • ls:檢視指定目錄的內容,不指定目錄時檢視當前工作目錄

    選項說明
    -a顯示所有檔案,包括隱藏檔案
    -l列表顯示,詳細資訊
    -h人性化的顯示大小,如:K/M/G

    -l選項顯示的結果:型別及許可權 | 引用數 | 使用者 | 使用者組 | 大小 | 月 | 日| 年/時間 | 名稱

    檔案型別:(-l顯示結果中的第一部分的第一列)

    符號型別
    -普通檔案
    d目錄檔案
    l連結檔案
    c字元裝置檔案
    b塊裝置檔案
    s套接字檔案
    p管道檔案
  • cd:切換工作目錄

    符號說明
    .當前目錄
    ..上一級目錄
    ~當前使用者的家目錄
    -表示上次切換之前的目錄
    /表示根目錄
    1. 使用cd時,不指定目標地址,會切換到家目錄

    2. 凡是以/開頭的目錄都是絕對目錄

    3. 凡是以.或..開頭的目錄都是相當目錄

  • pwd:檢視當前工作目錄

  • alias:給命令起別名

    • l、la、ll等

檢視檔案

  • 相關命令

    命令說明
    cat從上到下,顯示檔案全部內容
    tac從下到上,顯示檔案全部內容
    head檢視開頭指定行數的內容,不指定時預設10行,如:head -20 filename
    tail檢視檔案末尾指定行數的內容,不指定時預設10行,如:tail -5 filename
    nl功能與cat相同,但是多顯示了行號
    wc統計顯示,內容:行數 單詞數 字元數 檔名
    more一點一點檢視內容
    less一點一點檢視內容
  • more/less使用說明

    • 顯示一屏就停止

    • q退出檢視

    • enter下翻一行

    • 空格下翻一屏

    • more檢視完畢會自動退出,less不會

    • less可以使用上下按鈕上下翻看,more不可以

    • 經常結合管道使用:ls /etc | more

檔案及目錄

  • 相關命令

    命令說明
    touch新建檔案,可以是多個
    rm刪除檔案或目錄(刪除目錄時要傳遞'-r'選項)
    cp拷貝檔案或目錄(拷貝目錄是要傳遞'-r'選項)
    mv移動檔案或目錄
    mkdir建立目錄,可以是多個
    rmdir刪除空目錄
  • 選項說明

    • -r:刪除或拷貝目錄時需要新增,表示遞迴操作

    • -f:表示強制操作,沒有提示資訊

    • *:表示模糊匹配,如:rm *.py,表示刪除所有的py檔案

    • -p:建立目錄時若需要建立中間目錄,可以新增此選項

使用者及使用者組

  • 相關命令

    命令說明
    whoami檢視當前登入的使用者名稱
    useradd新建使用者,-d指定家目錄,-m不存在,-s指定shell
    userdel刪除使用者,-r會刪除使用者家目錄
    passwd設定指定使用者的密碼,沒有指定使用者時設定時當前使用者的密碼
    su -切換使用者,一定要加上'-',否則只會切換家目錄,但是環境沒有切換,不指定使用者時預設切換到root使用者(記得先給root使用者設定密碼)
    sudo以指定使用者(root)身份執行命令
    visudo專門用於編輯/etc/sudoers檔案的命令,需要將指定使用者新增進去才可以使用sudo命令,如:test ALL=(ALL:ALL) ALL;使用sudo update-alternatives --config editor可以修改系統預設編輯器(nano)
    groupadd新建使用者組
    groupdel刪除使用者組
    gpasswd向指定組新增/刪除指定的使用者,如:gpasswd -a/-d user group
    groups檢視指定使用者的組資訊
    chsh修改指定使用者的shell解析器,如:sudo chsh test -s /usr/sbin/nologin (禁止登陸)
    chown修改檔案所屬使用者[及使用者組],如: sudo chown test[:test] 1.py,遞迴操作需要加'-R'選項
    chgrp修改檔案所屬使用者組,如:sudo chgrp test 1.py
  • 涉及檔案

    • /etc/passwd:系統中的使用者資訊

    • /etc/group:系統中的使用者組資訊

    • /etc/shadow:系統中的使用者密碼資訊

  • 相關名詞

    • uid:使用者唯一標識

    • gid:使用者組唯一標識

檔案許可權

  • 說明:在linux下,所有的檔案都涉及許可權,分為三組:所有者、所屬組、其他

  • 許可權:所有檔案的許可權可以分為:可讀(r)、可寫(w)、可執行(x),'-'表示沒有改許可權

  • 原理:ls -l的結果,三位一組,分為三組,剛好對應:所有者、所屬組、其他

  • 修改許可權:chmod,格式:chmod [身份] [操作] [許可權] 檔案

    選項說明
    身份
    u所有者(user)
    g所屬組(group)
    o其他(other)
    操作
    +新增
    -去掉
    =設定
    許可權
    r可讀
    可寫
    可執行

    sudo chmod o+w 1.py,給其他使用者新增可寫的許可權

  • 本質:使用一組(3位)八進位制的資料來表示許可權,如:0755,展開如下:

    轉換為二進位制:0755 => 111 101 101
    對應三組身份:     所有者 所屬組 其他
    每一組的許可權:都包括 可讀、可寫、可執行
    示例解析:所有者可讀可寫可執行,所屬組可讀可執行,其他可讀可執行
  • 簡化操作:sudo chmod 0755 1.py

    若要進行遞迴操作,則需要新增'-R'操作

  • umask

    作用:用來限定新建檔案的預設許可權,許可權與該值相反
    命令:umask [value],檢視或設定掩碼
    分析:
        掩碼:0002 => 000 000 010
        新建目錄:    111 111 101
        新建檔案:    110 110 100

檔案搜尋

  • find

    • 作用:用於任意檔案的搜尋,功能非常強大

    • 格式:find [目錄] 條件選項

    • 選項:

      -name:指定名字    sudo find / -name passwd
      -maxdepth:指定最大層級深度      sudo find / -maxdepth 2 -name passwd
      -type:指定型別(d/l/s/p/c/b)
      -size:指定大小,單位:k/m/g,+表示大於,-表示小於,如:find -size +5k,查詢大於5k的檔案
      -mtime/-atime/-ctime:指定修改/訪問/建立時間,單位是天,+表示幾天前,-表示幾天內
      -mmin/-amin/-cmin:功能同上,單位是分
      -user:指定使用者
      -group:指定使用者組
  • whereis

    • 作用:顯示命令的詳細資訊,如:whereis ls,結果如下:

      ls: /bin/ls /usr/share/man/man1/ls.1.gz
      命令名  命令位置  幫助文件
  • grep

    • 作用:正則表示式搜尋(檔案內容)

    • 選項:

      -i:忽略大小寫
      -n:顯示行號
    • 示例:

      grep -n /bin/bash /etc/passwd       查詢/etc/passwd檔案中包含/bin/bash的行,並顯示行號
      grep -i abc 2.py                    在2.py中查詢包含abc的行,不考慮大小寫
      ls /bin | grep '^m'                 檢視/bin下以'm'開頭的命令

連結檔案

  • 命令:ln

  • 作用:建立一個檔案或目錄的連結

  • 格式:ln [-s] 原檔案 新檔案

  • 檢視:ls -l結果集中的第一列就是檔案型別,為'l'的就是連結檔案

  • 軟連結與硬連結

    硬連結:使用ln時不加-s選項建立的連結,相當於一個檔案多起了一個名字而已,極少用到
        1.不能給目錄建立
        2.不能跨檔案系統
    軟連結:使用ln是新增-s選項建立的連結,相當於windows中的快捷方式,比較常用
        1.可以給目錄建立
        2.可以跨檔案系統