Linux 文件管理常用基本命令

馬哥教育網絡班21期+第二周練習

目錄管理

  • ls (list):列出目錄及內容

    ls [OPTION]... [FILE]...
        -l:長格式顯示文件的詳細屬性信息
            -rwxr-xr-x.  1 root root 1273 Jul 10 19:45 anaconda-ks.cfg
            第1段:文件屬性段
                左起第一位:文件類型
                    -:普通文件 (file)
                    d:目錄文件 (directory)
                    b:塊設備文件 (block)
                    c:字符設備文件 (character)
                    l:符號鏈接文件 (symbolic link file)
                    p:命名管道文件 (pipe)
                    s:套接字文件 (socket)
                后面9位:文件權限,稱為mode,每3位一組,每一組:rwx(讀,寫,執行)
                    r:讀,Read
                    w:寫,Write
                    x:執行,Excute
                .:表示文件有隱藏屬性
                    lsattr命令可以查看
            第2段:
                數字1:文件被硬鏈接的次數
            第3段:
                第一個root:owner,屬主,文件擁有者
            第4段:
                第二個root:group,屬組,文件所屬的組
            第5段:
                1273:size,文件大小,默認單位:字節
            第6段:
                Jul 10 19:45:timestamp,時間戳,文件最近一次被修改的時間
                    訪問:access
                    修改:modify
                    改變:change,metadata,元數據
            第7段:
                anaconda-ks.cfg:文件名
        -h,--human-readable:做單位換算,以容易理解的格式顯示文件大小,與 -l 一起使用
        -a,--all:顯示所有文件,包括以 .開頭的隱藏文件
            . :表示當前目錄
            ..:表示父目錄
        -A,--almost-all:顯示不包含 . 和 .. 以外的所有文件
        -d,--directory:顯示目錄自身屬性,通常與 -l 一起使用
        -i,--inode:index node,顯示文件的索引節點號
        -r,--reverse:逆序顯示
        -R,--recursive:遞歸顯示,顯示子目錄中的內容
    
    示例:
        列出當前目錄下所有文件和目錄的詳細信息,并轉換顯示大小(含隱藏文件)
            ls -alhR
  • cd:change directory,切換當前工作目錄

    cd [dirName]
        cd 或 cd ~:進入當前用戶的主目錄
        cd ~USERNAME:進入指定用戶的主目錄
        cd -:在當前目錄和前一次所在目錄之間切換
  • pwd:查看當前工作目錄

    pwd [OPTION]...
        -L:顯示當前工作目錄連接路徑,默認 pwd 同 pwd -L
        -P:顯示當前工作目錄的物理路徑
  • mkdir:創建空目錄

    mkdir [OPTION]... DIRECTORY...
        -p:遞歸創建目錄,創建目錄時先創建父目錄
        -v:顯示創建過程信息
    
    示例:
        創建目錄 /mnt/test/x/m,y
            mkdir -pv /mnt/test/x/m /mnt/test/y
            mkdir -pv /mnt/test/{x/m,y}
    
        /tmp下創建目錄 a_b,a_c,d_b,d_c
            mkdir -pv /tmp/{a,d}_{b,c}
    
        /tmp下創建以下樹形結構目錄:
        mylinux/
            ├── bin
            ├── boot
            │   └── grub
            ├── dev
            ├── etc
            │   ├── rc.d
            │   │   └── init.d
            │   └── sysconfig
            │       └── network-scripts
            ├── lib
            │   └── modules
            ├── lib64
            ├── proc
            ├── sbin
            ├── sys
            ├── tmp
            ├── usr
            │   └── local
            │       ├── bin
            │       └── sbin
            └── var
                ├── lock
                ├── log
                └── run
            mkdir -p /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
  • tree:查看目錄樹

    tree [OPTION...] [DIRECTORY...]
        -a:顯示所有文件及目錄
        -d:只顯示目錄
        -f:顯示完整路徑
        -L level:顯示指定層級目錄樹
        -P pattern:只顯示指定 pattern 匹配的路徑
  • rmdir:刪除空目錄

    rmdir [OPTION]... DIRECTORY...
        -p:刪除子空目錄后父目錄為空時一并刪除
        -v:顯示刪除過程信息

文件管理

  • 文件命名規則

    1、長度不能超過255個字節
    2、不能使用 / 做文件名
    3、嚴格區分大小寫
  • stat:顯示文件或文件狀態

    stat [OPTION]... FILE...
        -f:顯示文件系統狀態
        -t:以簡要信息顯示文件狀態值
    
    三個時間戳:
        atime,access time:訪問時間,讀取文件內容
        mtime,modify time:修改時間,改變文件內容(數據)
        ctime,change time:改變時間,元數據發生改變
  • touch:改變文件的時間戳,文件不存在創建文件

    touch [OPTION]... FILE...
        -a:只改變訪問時間(atime)
        -c,--no-create:只改變文件時間戳,不創建文件
        -m:只改變修改時間(mtime)
        -t STAMP:指定時間改變時間戳
            [[CC]YY]MMDDhhmm[.ss]
    
    示例:
        在/tmp目錄下創建以file開頭,后跟當前日期和時間的文件,文件名格式如:file-1970-01-01-00-00-00
            touch file-$(date +%F-%H-%M-%S) 
        或
            touch file-`date +%F-%H-%M-%S`
    
        修改file開頭的文件的時間戳,指定時間為 1970-01-01 00:00:00
            touch -t 197001010000.00 file*
  • file:檢測文件類型

    file [OPTION] FILE...
        -b:只列出文件類型,不顯示文件名
        -f<FILENAME>:指定文件,其中有一個或多個文件名,依序列出文件名及檢測文件類型
  • cp:copy,復制文件或目錄

    cp [OPTION]... SOURCE DESCRIPTION
    cp [OPTION]... SOURCE... DIRECTORY
    cp [OPTION]... -t DIRECTORY SOURCE...
        -a,--archive:歸檔復制,保留所有文件權限
        -p:保留源文件屬主、屬組、時間戳
        -f,--force:忽略交互提示,強制復制
        -i,--interactive:復制前交互提示
        -r,-R,--recursive:遞歸復制目錄
        -l,--link:只硬鏈接文件不復制
        -s,--symbolic-link:只符號鏈接文件不復制
        -L,--dereference:源為鏈接文件時,不復制文件鏈接屬性
        -P,--no-dereference:源為鏈接文件時,復制文件鏈接屬性
    
    示例:
        歸檔/etc/rc.d/init.d 到/tmp 目錄下,歸檔名為init.d.bak
            cp -a /etc/rc.d/init.d /tmp/init.d.bak
    
        復制/etc/inittab 到/tmp目錄下,重命名為 inittab.bak,保留原有屬性
            cp -p /etc/inittab /tmp/inittab.bak
    
        復制/tmp下a_b、a_c、d_b、d_c 到/tmp/bak 目錄下
            cp -r /tmp/{a,d}_{b,c} /tmp/bak
    
        復制/etc/rc.local 到/tmp目錄下,保留文件鏈接屬性
            cp -P /etc/rc.local /tmp/rc.local
    
        復制/etc目錄下passwd、inittab、rc.d/rc.local 到/tmp/bak目錄下,并使用 -t選項
            cp -t /tmp/bak /etc/{passwd,inittab,rc.d/rc.local}
  • install:復制文件并設定權限

    install [OPTION]... SOURCE... DIRECTORY
    install [OPTION]... -t DIRECTORY SOURCE...
    install [OPTION]... -d DIRECTORY...
        -d:創建目錄
        -t:先指定目標目錄,再指定源文件信息
        -g:設定文件屬組
        -o:設定文件屬主
        -m:設定文件擁有權限
    
    示例:
        創建目錄 /tmp/x/y/z 和 /tmp/x/m/n
            install -d /tmp/x/{y/z,m/n}
    
        復制 /tmp/passwd 到 /tmp/x 目錄下,并指定文件屬主、屬組為 apache,文件權限為 700
            install -g apache -o apache -m 700 /tmp/passwd /tmp/x
  • rm:刪除文件或目錄

    rm [OPTION]... FILE...
        -f,--force:忽略交互提示,強制刪除
        -i:刪除前交互提示
        -r,-R,--recursive:遞歸刪除目錄
  • mv:move,移動文件或目錄

    mv [OPTION]... SOURCE DESCRIPTION
    mv [OPTION]... SOURCE... DIRECTORY
    mv [OPTION]... -t DIRECTORY SOURCE...
        -f,--force:覆蓋前不提示,強制覆蓋
        -i,--interactive:覆蓋前提示
        -t:先指定目標目錄,再指定源文件信息
    
    示例:
        移動/tmp/bak目錄下passwd、inittab、rc.local文件到 /tmp目錄下,并覆蓋/tmp/rc.local
            mv -f /tmp/bak/{passwd,inittab,rc.local} /tmp/

文本處理

  • cat:連接并顯示文本文件內容

    cat [OPTION]... FILE...
        -E,--show-ends:顯示行結束符
        -n,--number:顯示行號
    
    示例:
        查看/tmp/passwd文件內容,并輸出行號及行結束符
            cat -nE /tmp/passwd
    
        將/tmp/passwd、/tmp/inittab合并為 test文件
            cat /tmp/passwd /tmp/inittab > /tmp/test
  • tac:逆序顯示文件內容

  • more:分頁顯示,默認向下翻頁

    more [options] FILE [...]
        -d:顯示翻頁及退出提示
        -number:指定每頁顯示的行數
        +/:查找文件第一個出現指定字符串的行,并從該行前兩行開始顯示
        +number:從指定行號開始顯示
  • less:分頁顯示,向下或向上翻頁

    less [options] File...
        -e:文件顯示到最后時,自動退出
        -N:顯示行號
    
    鍵盤操作:
        h   查看幫助信息
        q,Q 退出命令
        b   向下一頁
        d   向下半頁
        u   向上半頁
        y   向上一行
        PgUp    向上一頁
        PgDn    向下一頁
        Space   向下一頁
        Enter   向下一行
  • head:查看文件前N行

    head [OPTION]... [FILE]...
        -n:指定顯示多少行,不指定時默認顯示 10行
  • tail:查看文件后N行

    tail [OPTION]... [FILE]...
        -f:查看文件尾部,不退出,等待顯示后續追加至此文件的新內容
        -n:指定顯示多少行,不指定時默認顯示 10行
  • cut:分段截取內容

    cut [OPTION]... [FILE]...
        -d:指定字段分隔符,默認是空格
        -f:指定顯示的字段
            -f 1:顯示第一字段
            -f 1,5:顯示第一和第五字段
            -f 1-3:顯示第一到第三字段
    
    示例:
        以冒號為分隔符,顯示/etc/passwd文件中用戶及使用shell
            cut -d":" -f1,7 /etc/passwd
  • sort:文本排序

    sort [OPTION]... [FILE]...
        -f,--ignore-case:忽略字符大小寫
        -n,--numeric-sort:以數值大小排序
        -r,--reverse:降序排序
        -t:指定字段分隔符
        -k:以指定字段進行排序
        -u,--unique:排序后去重
    
    示例:
        以第三個字段對/etc/passwd文件進行排序
            sort -t":" -k3 -n /etc/passwd
  • uniq:查找相鄰重復行

    uniq [OPTION]... [FILE]...
        -c,--count:顯示重復行出現的次數
        -d,--repeated:僅顯示重復行
        -D:顯示所有重復的行
        -u,--unique:僅顯示不重復的行
    
    示例:
        顯示當前系統中所有用戶使用的shell
            cut -d":" -f7 /etc/passwd | sort | uniq
  • wc:文本統計

    wc [OPTION]... [FILE]...
        -c,--bytes:統計文件包含多少字節
        -m,--chars:統計文件包含多少字符
        -l,--lines:統計文件包含多少行
        -w,--words:統計文件包含多少單詞
        -L,--max-line-length:統計最長的一行包含多少字符
    
    示例:
        統計/etc目錄下以大小寫P 開頭的文件個數
            ls /etc/[pP]* | wc -l
  • tr:轉換或刪除字符

    tr [OPTION]... SET1 [SET2]
        -d:刪除字符集中出現的所有字符
    
    示例:
        /tmp/passwd文件中所有字符替換為大寫
            tr 'a-z' 'A-Z' < /tmp/passwd

bash特性

  • bash特性

    1、命令歷史、命令補全
    2、管道、重定向
    3、命令別名
    4、命令行編輯
    5、命令行展開
    6、文件名通配
    7、變量
    8、編程
  • 命令執行狀態

    echo $?:查看返回值
        0表示成功
        非0表示失敗
  • 命令行編輯

    光標跳轉
        Ctrl+a:跳到命令行首
        Ctrl+e:跳到命令行尾
        Ctrl+u:刪除光標至命令行首的內容
        Ctrl+k:刪除光標至命令行尾的內容
        Ctrl+l:清屏
  • 命令歷史

    history:查看命令歷史
        -c:清空命令歷史
        -d OFFSET [n]:刪除指定位置命令
        -w:保存命令至歷史文件(.bash_history)
    
    命令歷史使用技巧:
        !n:執行命令歷史中的第 n 條命令
        !-n:執行命令歷史中倒數第 n 條命令
        !!:執行上一條命令
        !string:執行命令歷史中最近一條匹配 string 開頭的命令
        !$:引用前一個命令的最后一個參數
            !$ 同 {Esc,.} 或 {Alt+.}
    
    命令補全:搜索PATH環境變量所指定的每個路徑下以給出的字符串開頭的可執行文件,如果有多個,使用兩次Tab可以顯示列表,否則直接補全
    
    路徑補全:搜索給出的起始路徑下的每個文件名,并試圖補全
  • 變量

    環境變量
    PATH:命令搜索路徑
    HISTSIZE:命令歷史緩沖區大小(默認為 1000)
  • 命令別名

    定義別名
        alias CMDALIAS='COMMAND [options] [arguments]'
        Shell中定義的別名的有效范圍僅限當前Shell進程
    
    取消別名
        unalias CMDALIAS
  • 命令引用

    命令替換:$(COMMAND) 或 `COMMAND`
    
    支持的引號
        (反引號)``:命令替換
        (雙引號)"":弱引用,可以實現變量替換
        (單引號)'':強引用,不進行變量替換
  • 文件名通配

    通配符號
        *:任意長度的任意字符
        ?:任意單個字符
        []:匹配指定范圍內的任意單個字符
            [abc],[a-z],[A-Z],[0-9],[a-zA-z],[0-9a-zA-Z]
            [:space:]:空白字符
            [:punct:]:標點符號
            [:lower:]:小寫字母
            [:upper:]:大寫字母
            [:alpha:]:大小寫字母
            [:digit:]:數字
            [:alnum:]:數字和大小寫字母
        [^]:匹配指定范圍外的任意單個字符

練習

  1. 顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄

    ls /var/l*[0-9]*[a-z]
    ls /var/l*[[:digit:]]*[[:lower:]]
  2. 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄

    ls /etc/[0-9]*[^0-9]
    ls /etc/[[:digit:]]*[^[:digit:]]
  3. 顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄

    ls /etc/[^a-zA-Z][a-zA-Z]*
    ls /etc/[^[:alpha:]][[:alpha:]]*
  4. 復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中

    cp -r /etc/p*[^0-9] /tmp/mytest1
    cp -r /etc/p*[^[:digit:]]
  5. 復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中

    cp -r /etc/*.d /tmp/mytest2
  6. 復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中

    cp /etc/{l,m,n}*.conf /tmp/mytest3
    cp /etc/[lmn]*.conf /tmp/mytest3

原創文章,作者:N21-garyshan,如若轉載,請注明出處:http://www.www58058.com/24420

(0)
N21-garyshanN21-garyshan
上一篇 2016-07-17
下一篇 2016-07-17

相關推薦

  • Linux上命令使用格式及如何獲取幫助信息

    Linux系統上命令使用: 命令本身是一個可執行的程序文件,二進制格式的文件,有可能會調用共享庫文件,發起一條命令,請求內核將某一個二進制程序運行為一個進程。   命令的語法格式:   ~]#COMMAND(命令)   OPENTIONS(選項)   ARGUMENTS(參數) command 命令…

    Linux干貨 2016-10-30
  • Linux—文本處理(查看,統計,排序,抽取,合并,grep,基本正則表達式)

    Linux的文本管理有著眾多的文本命令工具,這些工具基本可以滿足不同的文本處理要求,很是靈活,掌握文本管理命令對系統的維護是必備基礎技能。 1.文本查看命令:     (1)cat        語法:        cat [OPTION]… […

    Linux干貨 2016-08-07
  • 文本編輯工具Sed

                    Stream EDitor, 行編輯器         sed是一種流編輯器,它一次處理一行內容。處理時,一次性的先把文件讀入內存中,并且開辟一塊內存空間,該內存空間稱為“模式空間”(pa…

    Linux干貨 2016-08-10
  • N26-第六周作業

    vim編輯器的使用 編輯模式:默認模式編輯模式–>輸入模式;i:insert,在光標所在處輸入;a:append,在光標所在處后方輸入o:在光標所在處下方打開的一個新行;光標處在行首;I:在光標所在行的行首輸入A:在光標所在處的行尾輸入;O:在光標所在處的上方打開一個新行; 輸入模式–>編輯模式ESC 編輯模式&#8211…

    Linux干貨 2017-03-13
  • 三步走進行IP大揭秘

    跟隨博主三步走進行IP大揭秘! 一、IP簡介 1.ip地址:可以分為合法ip地址(公網ip地址)和私有ip地址, 合法ip地址主要應用于internet上的主機訪問,而私有ip地址應用于局域網中計算機的相互通信。 2.ip地址的表示形式:分為二進制表示和點分十進制表示。 一般使用點分十進制表示,現在通常使用的ip地址長度均為32位,由四個八位域組成,可稱為八…

    2017-09-02
  • n28-第二周

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示 cp:copy files and directories 復制文件和目錄 -i:交互式復制 默認情況下是別名定義了alias cp=’cp -i’ -f:強制復制 #cp -f /etc/issue /tmp/first.txt -r:遞歸復制目錄 將/etc目錄遞歸復制到/tmp…

    Linux干貨 2017-12-10

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-19 17:57

    寫的很好,把一些常用的命令都列舉出來了,有的問題還用了多種方法解答,值得表揚

欧美性久久久久