linux 作業第二週

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

文件管理:

cp, mv, rm

 

複製命令:cp

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

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

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

 

        cp SRC DEST

                SRC是文件:

                        如果目標不存在:新建DEST,並將SRC中內容填充至DEST中;

                        如果目錄存在:

                                如果DEST是文件:將SRC中的內容覆蓋至DEST中;

                                        此時建議爲cp命令使用-i選項;

                                如果DEST是目錄:在DEST下新建與原文件同名的文件,並將SRC中內容填充至新文件中;

 

        cp SRC... DEST

                SRC...:多個文件

                        DEST必須存在,且爲目錄,其它情形均會出錯;

 

        cp SRC DEST

                SRC是目錄:

                        此時使用選項:-r

 

                        如果DEST不存在:則創建指定目錄,複製SRC目錄中所有文件至DEST中;

                        如果DEST存在:

                                如果DEST是文件:報錯

                                如果DEST是目錄:

 

        常用選項:

                -i:交互式

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

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

                        -d--no-dereference --preserv=links

                        --preserv[=ATTR_LIST]

                                mode:權限

                                ownership:屬主屬組

                                timestamp:

                                links

                                xattr

                                context

                                all

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

                -v: --verbose

                -f: --force

 

    mv: move,移動文件

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

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

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

      

       常用選項:

                       -i:交互式

                       -f:強制

 

    rm: remove,刪除

            rm [OPTION]... FILE...

 

            常用選項:

                    -i:交互式

                    -f:強制刪除

                    -r:遞歸

 

                    rm -rf

 


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


命令行展開

             ~:展開爲用戶的主目錄

                ~username:指定用戶的主目錄

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

                    /tmp/{a,b}= /tmp/a, /tmp/b

                    /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi

 

命令的執行結果狀態

             成功

             失敗

           bash 使用特殊變了$?保存最近一條命令的執行狀態結果

                 0 成功

                 1-255 失敗

        程序執行有兩類結果

                程序的返回值

                程序的執行狀態結果

 

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

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

mkdir /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 -p /tmp/mylinux/{bin,sbin,boot,dev,etc,lib,lib64,porc,sys,tmp,usr,var,lock,log,run}

mkdir /tmp/mylinux/boot/grub

mkdir /tmp/mylinux/etc/sysconfig

mkdir /tmp/mylinux/usr/local/{bin,sbin}



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


元數據用於記錄文件的許多信息,比如文件大小,擁有人,所屬的組,修改日期等等。

stat/PATH/TO/SOMEFILE:獲取指定文件的元數據


文件查看命令:cat, tac

cat [OPTION]... [FILE]...

-E: 顯示行結束符$

-n: 對顯示出的每一行進行編號


文件內容類型查看命令:file

file /PATH/TO/SOMEWHERE

touch


文件:metadata, data

查看文件狀態:stat


三個時間戳:

access time:訪問時間,簡寫爲atime,讀取文件內容

modify time: 修改時間, mtime,改變文件內容(數據)

change time: 改變時間, ctime,元數據發生改變


touch命令:

touch [OPTION]... FILE...

-a: only atime

-m: only mtime

-t STAMP:

[[CC]YY]MMDDhhmm[.ss]

-c: 如果文件不存,則不予創建


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

1、命令別名(alias)

通過alias命令實現:

(1) alias

顯示當前shell進程所有可用的命令別名;

(2) alias NAME='VALUE'

定義別名NAME,其相當於執行命令VALUE;


注意:在命令行中定義的別名,僅對當前shell進程有效;如果想永久有效,要定義在配置文件中;

僅對當前用戶:~/.bashrc

對所有用戶有效:/etc/bashrc


Note: 編輯配置給出的新配置不會立即生效;


bash進程重新讀取配置文件:

source /path/to/config_file

.  /path/to/config_file


撤消別名:unalias

unalias [-a] name [name ...]


Note: 如果別名同原命令的名稱,則如果要執行原命令,可使用"\\\\COMMAND";


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

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

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

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

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

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

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

cp tfile /tmp/


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/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

mkdir /tmp/mytest3

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


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