linux命令

linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。

  linux上的文件管理類命令有:cat、tac、more、less、head、tail、cp、mv、rm、rmdir、mkdir等

   cat:文件文本查看工具

    cat[option]…[file]…

    -n:給顯示的文本行編號 

wKioL1fs4bmxTar6AAAVU29fvFQ425.png

    -E:顯示行結束符$.

    wKiom1fs42uTevzzAAAMMUmEFKQ309.png

   tac:文件文本查看工具(cat 的倒序)

    tac[option]…[file]…

     wKioL1fs44PTIkQ-AAAMPwWSR8I484.png

   more:可翻頁查看文件內容,一頁一頁的翻動

wKiom1fs45WTIUpxAACaFq3YuWw605.png

    注:如果more後面接的文件內容行數大於屏幕輸出的行數時,就會出現類似上圖,最後一行會顯示百分比,表示已經顯示了整個文件的百分多少,且最後一行還可以輸入命令。

    空格鍵:代表向下翻一頁

    Enter:代表向下滾動一行,當到文件的最後一頁時,自動退出more,回到命令行。

    /字符串:代表在這個顯示的內容當中,向下查詢"字符串"這個關鍵字

    :f   :立刻顯示出文件名以及目前顯示的行數

    q   :代表立刻離開more

    b   :往回翻頁

   less:可翻頁查看文件內容,一頁一頁的翻動,比more有彈性

    可輸入的命令:

    空格鍵:向下翻動一頁;

    [PageDown]:向下翻動一頁;

    [PageUp]:向上翻動一頁;

    /字符串 :向下查詢"字符串"的功能;

    ?字符串 :向上查詢"字符串"的功能;

    n   :重複前一個查詢;

    N   :反向重複前一個查詢;

    q   :離開less。

   head:取出文件中的前面N行

     head [OPTION]… [FILE]…

    -n # 或者 -#: 顯示幾行,默認顯示10行

    wKioL1fs463QWctVAAAPeOEEkRU891.png

   tail:取出文件中的最後N行

    tail[OPTION]…[FILE]…

    -n #或者- #:顯示幾行,默認顯示10行

    -f:持續檢測後面所接的文件名,要等到按下[ctrl]-c纔會結束檢測。

wKiom1fs48LgwqaWAAAOpNVtiE8184.png

wKioL1fs49mRU4shAABcqmLRxsk635.png

     此時需要按下[ctrl]-c纔會結束,後者會一直檢測該文件。

   cp:複製

    cp[OPTION]… [-T] SOURCE DEST

    cp[OPTION]… SOURCE… DIRECTORY

    -i:交互式複製,即覆蓋之前提醒用戶確認;

wKiom1fs4_Ow_gPQAAANi7n1AoM394.png

    此時按下Y,表示覆蓋,按下N,表示不覆蓋。

    -f:強制覆蓋目標文件;此時不會提示你是否覆蓋了,直接強制覆蓋;

    如:當前目錄下已經有一個passwd文件了,執行如下操作不會有任何提示

wKioL1fs5AajKbczAAANDcRpwqI621.png

    -r, -R:遞歸複製目錄;

    如:將/usr/share/man/下的man#文件複製到當前目錄

  wKiom1fs5BXxReNbAABLxmSSW1A907.png

    -d:複製符號鏈接文件本身,而非其指向的源文件;

    以此文件爲例,其位於/etc/下,(centos7.1)

wKioL1fs5DHBtCc7AAAPCgzoXgE439.png

wKiom1fs5DzwIkxwAAAsl1TyLak189.png

    -a:-dR –preserve=all, archive,用於實現歸檔;

–preserv=

      mode:權限

      ownership:屬主和屬組

      timestamps: 時間戳

      context:安全標籤

      xattr:擴展屬性

      links:符號鏈接

      all:上述所有屬性

   mv:和剪切一個意思?

    mv[OPTION]… [-T] SOURCE DEST

    mv[OPTION]… SOURCE… DIRECTORY

    mv[OPTION]… -t DIRECTORY SOURCE..

    -i:交互式

    -f:強制

   rm:刪除文件

    rm[OPTION]… FILE…

    -i:交互

    -f:強制

    -r:遞歸

    wKioL1fs5E_THsClAAAQmy_wM5c233.png

    刪除目錄:rm -rf /PATH/TO/DIR

    建議一定要執行一次:rm -rf /*   (有驚喜)

 

bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示?

   bash的工作特性之命令執行狀態返回值:

    命令執行完後,其狀態返回值保存於bash的特殊變量$?中。

    bash通過狀態返回值來輸出此結果:

    成功:0

    失敗:1-255

    wKiom1fs5F_wHzh7AAAkiI5LaCs539.png

    注意,命令執行狀態返回值和命令的執行結果間的區別。如上圖,ls的執行結果是顯示當前目錄的文件名,緊接着執行echo命令用於顯示命令的執行狀態返回值,不管ls命令是否成功執行,其都會有相關數據顯示,但是命令執行狀態返回值卻是不同的。

    bash的工作特性之命令行展開:

    ~:自動展開爲用戶的家目錄,或指定的用戶的家目錄。

    {}:可承載一個以逗號分割的路徑列表,並能夠將其展開爲多個路徑。

wKiom1fs5HvTdpXUAAAahPPId8w848.png

wKioL1fs5Jihpk0fAAAWWc_cHCA243.png

    

請使用命令行展開功能來完成以下練習?

  (1)、創建/tmp目錄下的:a_c, a_d,b_c, b_d

    ~]#mkdir-p {a,b}_{c,d}

    wKioL1fs5MyTL1F2AAAPB5qkdsA058.png

  (2)、創建/tmp/mylinux目錄下的:

 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-pv /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}}

    wKiom1fs5OLSEyQCAAA1G1RP1WA794.png

文件的元數據信息有哪些,分別表示什麼含義,如何查看?如何修改文件的時間戳信息?

    文件的數據分兩種:一種元數據,既屬性數據;一種就是數據本身;

    可以用命令stat查看文件的元數據;

wKioL1fs5PHhUvmQAAA6HPnxs50330.png

    file:文件名;

    size:文件大小

    block:文件佔了多少個數據塊

    IO Block:文件所佔數據塊的塊大小

    Device:硬件,既說明該文件在硬盤的那個柱面

    Inode:節點號

    links:鏈接

    Access(第一個):權限

    Uid:該文件所屬的屬主

    Gid:該文件所屬的屬組

    context:安全上下文

    Access(第二個):文件上一次的訪問時間

    Modify:文件上一次修改的時間

    Change:文件上一次屬性更改的時間

 

    可以使用touch命令更改文件的時間戳:

    touch[OPTION]… FILE..。

    -c: 指定的文件路徑不存在時不予創建;

    -a: 僅修改access time;

    -m:僅修改modify time;

    -t STAMP

[[CC]YY]MMDDhhmm[.ss]

    ~]#touchFILE

    這條命令會將文件的三個時間一併更改成當前的時間

    如下三個分別更改atime,mtime,三個時間一起更改。


wKioL1fs5SGQ-8-pAAA_ujEq6r8040.png

wKiom1fs5SGBgYr5AAA-o45Yf3I667.png

wKiom1fs5SGBKVsWAAA_jDg-znA844.png

如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?

    命令別名使用alias命令。

    ~]#aliasNAME='COMMAND'

 wKioL1fs5TqDBjN_AAAWaYhtDKo768.png

    在一個命令中引用另一個命令的執行結果也是bash的特性之一,引用。

    方法:$(COMMAND) 或者 `COMMAND`

    wKioL1fs5VXCxvtiAAAMMXFd6Ow958.png

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

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

顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄?

    ~]#ls-d /etc/[0-9]*[^0-9]

顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其它任意長度任意字符的文件或目錄?

    ~]#ls-d /etc/[^a-z][a-z]*

在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22?

    ~]#touch/tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)

wKiom1fs5WKQrQgoAAAyZM9rjTY222.png

複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中?

[root@localhost tmp]# cp -a /etc/p*[^0-9] /tmp/mytest1

複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中?

# cp -a/etc/*.d /tmp/mytest2

複製/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中?

[root@localhost tmp]# cp -a /etc/[l,m,n]*.conf /tmp/mytest3

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章