馬哥Linux培訓第二週課程做業

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


#    文件及目錄列表查看:lsshell

#    文件內容查看:cat, tacbash

#    修改文件時間戳或建立新文件:touchide

#    文件編輯: vi, nanospa

    文件管理:cp, mv, rm, 命令行

    (mkdir, rmdir:建立、刪除目錄)orm


 

(1)     、複製命令:cpcdn

    格式:遞歸

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

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

    cp [OPTION]... -t DIRECTORY SOURCE...

     說明:1、若是目標不存在,新建目標文件,並將源文件中的內容填充至目標中。

       2、若是目錄存在:

       1)目標是文件,覆蓋

       2)目標是目錄:在目標路徑下新建與原文件同名的文件,並填充內容

         3、若是源文件是多個文件,目標必須存在,且爲目錄,其餘情形均會出錯。

         4、若是源文件是目錄,cp命令默認不會遞歸複製文件,沒法複製。

           此時須要使用選項:-r

            (1)若是目標不存在,則會建立目錄,複製源目錄中的全部文件至目標中。

           (2)若是目標存在,並且是文件,報錯

            (3)若是目標存在,並且是目錄,直接複製。

                   

    經常使用選項:

     -i:交互式

     -r,-R:遞歸複製目錄及內部的全部內容

     -a:歸檔(複製時必須保留文件原來的樣子,包括修改時間),至關於-dR  --Preserv=all         保留文件的屬性

    Note:複製會修改文件的源數據,

        -d:--no-dereference,--preserve=links僅複製文件自己,不復制它所指向的連接

        --preserv=[ATTR_LIST]:保留文件的屬性,

           後面不加參數默認保留:mode,ownership,timestamps.

              mode:權限

              ownership:屬主屬組

              timestamp:時間戳

              links:連接屬性

              xattr:擴展屬性,隱藏屬性

              context

              all

       -p--preserv=mode,owership,timestamp

       -v: --verbose

       -f: --force:強制


2)、移動命令:mv :--move

    格式:    

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

      mv [OPTION]... SOURCE... DIRECTORY

   mv [OPTION]... -t DIRECTORY SOURCE...

      

經常使用選項:跟cp命令相同

       -i:交互式(會提示是否執行該操做)

       -f:強制

           

3)、刪除命令:rm--remove files or directories

    格式:rm [OPTION]...FILE...

    選項:           

        -i:交互。管理員下,默認全部rm都帶有-i選項,每次操做都會自動提示是否須要刪除

        -f:強制執行

        -R,-r:遞歸刪除,使用該命令能夠刪除目錄並一個個提示操做

Note:管理員下,默認不能夠刪除根目錄/,若是非要刪除,可使用-rf參數

     rm -rf /tmp/soso/:強制刪除/tmp/soso目錄及裏面的內容

 

 

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

1bash命令執行狀態返回值使用特殊變量$?保存

         0,成功

         1:失敗

    echo $? 顯示執行狀態

  2)命令行展開:

       ~:展開爲用戶的主目錄

        ~USERNAME:展開爲指定用戶的主目錄

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

          例如:/tmp/{a,b} = /tmp/a,/tmp/b

 

3、請使用命令行展開功能來完成如下練習:

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

         mkdir -pv /tmp/{a,b}_{c,d}

(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}

 

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


答:文件的元數據用於記錄文件的許多信息,好比

Size:大小,

Device:文件的位置

Uid:擁有人,

Gid:所屬的組,

Blocks:塊大小,

Links:連接數量

時間戳:

Access:訪問時間

Modify:修改時間,

Change:改變時間

等等

 

  元數據查看:stat命令

  修改文件的時間戳使用touch命令:

    格式:touch[OPTION]...FILE...

    參數:

        -a:只改atimeaccess time

        -m:只改mtimemodify time

        -t STAMP:指定時間修改

           [[CC]YY]MMDDhhmm[.ss]

         -c:若是文件不存在則不予建立。

   Note:touch文件時,假如文件不存在,會默認建立該文件。


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


答:命令別名使用alias定義

1alias:顯示當前shell進程全部可用的命令別名

alias NAME='VALUE'

    定義別名NAME,其至關於執行命令VALUE

    例子:alias cdnet='cd/etc/sysconfig/network-scripts

    定義命令別名cdnet並賦值爲其後面的cd命令

2)命令中引用另外一個命令的執行結果能夠經過管道。

 

6、顯示/var目錄下全部以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(能夠有其它字符)的文件或目錄。

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

 

例如:

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

    /var/l12d  /var/l1c  /var/l3b  /var/l3k  /var/labc8dfdse

 

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

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

 

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

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

或者 ls -d /etc/[^a-z][a-z]*

 

 

9、在/tmp目錄下建立以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-08-06-09-32-22

   建立文件:touch /tmp/tfile-`date +%F-%H-%M-%S`

   建立目錄:mkdir /tmp/tfile-`date +%F-%H-%M-%S`

 

10、複製/etc目錄下全部以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

    mkdir /tmp/mytest1

    cp -a /etc/p*[^0-9] /tmp/mytest1

 

11、複製/etc目錄下全部以.d結尾的文件或目錄至/tmp/mytest2目錄中。

    mkdir /tmp/mytest2

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

 

12、複製/etc/目錄下全部以lmn開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

    mkdir /tmp/mytest3

    cp -a /etc/[lmn]*.conf /tmp/mytest3

相關文章
相關標籤/搜索