1. 程式人生 > 實用技巧 >CentOS6.8(及7)的檔案系統(2)

CentOS6.8(及7)的檔案系統(2)

CentOS6.8(及7)的檔案系統


  • centos7的目錄結構如下圖所示

wKiom1eaEGzymuVWAAEjtQ8sOp8925.jpg-wh_50

  • 檔案命名除了斜槓和空格,所有字元都有效,但特殊字元不推薦使用

  • linux的檔案型別

    -:普通檔案

    d: 目錄檔案

    b: 塊裝置

    c: 字元裝置

    l: 符號連結檔案

    p: 管道檔案pipe

    s: 套接字檔案socket

wKiom1ebTWHhy_C4AACVrA9FwmU804.jpg

  • stat 檢視檔案狀態(包括元資料)

  • echo $[$RANDOM%80] 隨機顯示一個80以內的數

  • rm /root/-h -f 用絕對路徑的方式刪除-h檔案

  • echo "- - -" > /sys/class/scsi_host/host2/scan 發現新新增的硬碟

  • /dev/sdb 塊裝置

  • 在檔案中寫入資料:

    dd if=讀取路徑 of=輸出路徑 bs=1M count=塊數

  • hexdump -C f3.txt 讀取二進位制程式碼

    -v 全顯示(包括空格的程式碼)

    -c 轉換過後的程式碼(如換行符顯示為\n)

    (windows的回車鍵比linux多一個控制符od)

  • hexedit f3.txt 編輯二進位制程式碼

    安裝hexedit:

    rpm -i /run/media/root/CentOS\ 7\ x86_64/Packages/hexedit-1.2.13-5.el7.x86_64.rpm

  • 相對路徑不一定是相對於當前路徑

    絕對路徑(以/開始) 比如 /etc/sysconfig/network

    相對路徑(不以/開始) 比如 sysconfig]# ./network 和sysconfig]# network

    . 表示當前路徑 ..表示當前路徑的上一級路徑

    sysconfig]# ../issue

  • cd 絕對路徑或相對路徑

    cd - 到以前的工作目錄

    cd=cd~ 切到主目錄

    cd ..到上一級目錄

    cd~wang 切換到wang的工作目錄

  • 提高遠端連線的速度:

    vim /etc/ssh/sshd_config

    將UseDNS yes改為no

  • 列出當前目錄的內容或指定目錄 :ls [options] [files_or_dirs]
    ls -a 包含隱藏檔案
    ls -l 顯示額外的資訊
    ls -R 目錄遞迴通過
    ls -ld 目錄和符號連結資訊
    ls -l 檔案分行顯示
    ls –S 按從大到小排序
    ls –u 配合-t選項,顯示並按atime從新到舊排序

    ls -r 逆序顯示

    ls –U 不排序按目錄存放順序顯示
    ll f[a-c]* 顯示a到c之間的字母開頭的檔案,順序為aAbBc

    ll f[[:lower]]* 顯示所有小寫字母開頭的檔案

    ll --block-size=MB 功能同 ll -h (檔案大小按照MB顯示)

  • 檔案萬用字元

    * 匹配零個或多個字元

    ? 匹配任何單個字元
    ~ 當前使用者家目錄

    ~username 使用者家目錄

    ~+ 當前工作目錄

    ~- 前一個工作目錄

    [0-9] 匹配一個數字範圍

    [a-z]:大寫和小寫字母

    [wxc] 匹配列表中的任何的一個字元
    [^wxc] 匹配列表中的所有字元以外的字元
    [:digit:]:任意數字,相當於0-9

    [:lower:]:任意小寫字母

    [:upper:]: 任意大寫字母

    [:alpha:]: 任意大小寫字母

    [:alnum:]:任意數字或字母

    [:space:]:空格

    [:punct:]:標點符號

  • touch可以生成檔案,也可以重新整理時間

    -c: 如果檔案不存在,則不予建立

    -a: 僅改變 atime

    -m: 僅改變 mtime

    -t:STAMP

  • 三個時間戳(可用stat檢視)

    atime 讀取檔案時內容(cat)時 atime變化(centos6和7中得滿足如下一種條件才改變:1距離上次改變已經一天以上,2atime比mtime早)

    mtime 修改檔案內容(資料)時 mtime改變

    ctime 修改檔案元資料(檔名等)時 ctime改變

  • 複製檔案和目錄cp

    cp [OPTION]... [-T] SOURCE DEST

    cp [OPTION]... SOURCE... DIRECTORY

    -r, -R: 遞迴複製目錄及內部的所有內容;

    -a: 歸檔,相當於-dR --preserve=all

    -p: 等同--preserv=mode,ownership,timestamp

    -v: --verbose

    -f: --force

wKioL1ebVRSiClBCAAM54_esSlI997.jpg

  • 移動和重新命名檔案

    mv [OPTION]... [-T] SOURCE DEST

    mv [OPTION]... SOURCE... DIRECTORY
    -f 強制

  • 刪除

    rm [OPTION]... FILE...

    -f: 強制刪除

    -r: 遞迴

    --no-preserve-root

  • 目錄操作

    tree 顯示目錄樹

    -d: 只顯示目錄

    -L level:指定顯示的層級數目

    -P pattern: 只顯示由指定pattern匹配到的路徑

    mkdir 建立目錄

    -p: 存在於不報錯,且可自動建立所需的各目錄;

    -v: 顯示詳細資訊

    -m MODE: 建立目錄時直接指定許可權;
    rmdir 刪除空目錄


練習題

1、只顯示指定目錄的隱藏目錄和檔案

ls .[^.]*


2、只顯示指定目錄下的目錄(不顯示檔案)

ls -d /etc/*/

ls -d ./*/

tree -d


3、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的檔案或目錄

ls /var/l*[0-9]*[[:lower:]]


4、顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的檔案或目錄

ls /etc/[0-9]*[^0-9]

5、顯示/etc/目錄下以非字母開頭,後面跟了一個字母及其 它任意長度任意字元的檔案或目錄

ls /etc/[^[:alpha:]][[:alpha:]]*


6、顯示/etc目錄下所有以m開頭以非數字結尾的檔案或目錄
ls /etc/m*[^0-9]


7、顯示/etc目錄下,所有以.d結尾的檔案或目錄
ls /etc/*.d


8、顯示/etc目錄下,所有.conf結尾,且以m,n,r,p開頭的檔案或目錄

ls /etc/[mnrp]*.conf


9、使用別名命令,每日將/etc/目錄下所有檔案, 備份到/testdir/下獨立的新目錄下,並要求新目錄 格式為 backupYYYY-mm-dd ,備份過程可見

alias cp1='cp -rpv /etc/ /testdir/backup`date +%F`'

cp1回車


10、先建立/testdir/rootdir目錄,再複製/root所有 下檔案到該目錄內,並要求保留原有許可權

cp -rp /root/ /testdir/rootdir/


11、如何建立/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b

mkdir /testdir/dir1/{{x,y}{/a,/b},x,y}


12、如何建立/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a, /testdir/dir2/x/b

mkdir -pv /testdir/dir2/{x/{a,b},x,y}


13如何建立/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir3, /testdir/dir5/dir4

mkdir -pv /testdir/dir{3,4,5,5/dir{3,4}}


shipping version 提交版本

轉載於:https://blog.51cto.com/xiaomonkey/1831394