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

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


cp:復制


CP SRC DEST

    SRC是源文件:

               如果目錄不存在,新建DEST,并將SRC的內容填充到DEST;

               如果目錄存在:

                             如果DEST是文件,將SRC中的內容覆蓋至DEST兩種

                              此時建議是用-i選項:

                              如果DEST是目錄,則直接原名復制。

CP SRC…   DEST

              SRC…..:多個文件

                   DEST必須存在,且為目錄,其他情形會報錯。

 

CP SRC DEST

             SRC是目錄:

                     則使用選項:-r (遞歸);

                     如果DEST目錄不存在,新建DEST目錄,并將SRC的內容復制到新建的DEST。

                     如果DEST存在:

                                         必須是目錄,則同名復制。

 

相關參數:

-a:歸檔保留所有屬性

-r/-R: 遞歸

-p:保留mode,ownership,timestamp

-f:如果目標文件無法打開,則使用-f強制cp

-i:開啟交互式界面

 

示例演示:

cp:

[root@localhost etc]# ll aa.sh

-rwxrwxrwx. 1 root root 0 Jul  7 22:01 aa.sh

[root@localhost etc]# cp aa.sh /root

[root@localhost etc]# ll /root/aa.sh

-rwxr-xr-x. 1 root root 0 Jul  7 22:02 /root/aa.sh

 

cp -a:

[root@localhost etc]# ll aa.sh

-rwxrwxrwx. 1 root root 0 Jul  7 22:01 aa.sh

[root@localhost etc]# cp -a aa.sh /dev

[root@localhost etc]# ll /dev/aa.sh

-rwxrwxrwx. 1 root root 0 Jul  7 22:01 /dev/aa.sh

 

cp -r:

[root@localhost ~]# ls test

a.txt  b.txt  c.txt  test_for_root  test_for_user1.sh

[root@localhost ~]# cp -r test /etc

[root@localhost ~]# ls /etc/test

a.txt  b.txt  c.txt  test_for_root  test_for_user1.sh

 

 

mv:移動

         

mv [OPTION]… [-T] SOURCE DEST

mv [OPTION]… SOURCE… DIRECTORY

mv [OPTION]… -t DIRECTORY SOURCE…

相關參數:

-i:交互式,每次移動,系統都會提示是否需要這樣做;

-f:強制執行

-r:遞歸,移動文件夾以及文件夾內的所有內容

 

實例參照cp,其實差不多。

 

rm:刪除

 

rm [OPTION]… FILE…

相關參數:

-i:交互式,每次移動,系統都會提示是否需要這樣做;

-f:強制執行

-r:遞歸,移動文件夾以及文件夾內的所有內容

可以利用rm -rf 來刪除目錄下的所有子目錄,包括文件。

 

實例參照cp,其實差不多。

 

 

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


命令行展開;

~:展開為當前用戶的主目錄;

~ username:展開為指定用戶的家目錄;

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

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

 

命令的執行狀態結果

邏輯上只有兩種:成功,失敗

$?:存儲最近一次執行結果

利用echo $?查看。

(0:成功,1-255:失敗)

 

實例:

[chenchen@localhost ~]$ echo 'this is a good begging!' &> /dev/null

[chenchen@localhost ~]$ echo $?

0

[chenchen@localhost ~]$ echp 'this is a good begging!' &> /dev/null

[chenchen@localhost ~]$ echo $?

127

 

 

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


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

[chenchen@localhost ~]$ touch /tmp/{a,b}_{c,d}

[chenchen@localhost ~]$ ls /tmp | egrep '\<.\_.\>'

a_c

a_d

b_c

b_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

 

[chenchen@localhost ~]$ 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、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。

權限:定義文件屬主,屬組以及其他用戶的權限(可讀?可寫?可執行?)

屬主:文件的歸屬用戶;

屬組:文件的歸屬用戶所在的群組;

大小:文件大?。?/p>

Modify time:最后一次文件的修改時間;

查看方式:ls -l 或者 ll

[chenchen@localhost ~]$ ls -l

[chenchen@localhost ~]$ ll

 

時間戳修改:

Access:最后訪問時間

Modify:最后修改時間

Change:狀態更改時間(由系統維護,無法隨意修改)

touch -a :僅更新Access time(同時更新Change為current time)

touch -m:僅更新Modify time(同時更新Change為current time)

touch -c:不創建新文件

touch -t:使用指定的時間更新時間戳(僅更改Access time與Modify time,Change time更新為current time)

 

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

定義別名:alias  [name]=源命令

實例:

alias grep = 'grep –color = auto'

定義的別名僅對當前shell進程有效。

如果想永久有效,需要定義配置文件。

對當前用戶有效:~/.bashrc

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

在配置文件中定義alias之后,需要重新加載文件:利用source命令。

可使用管道符“|”來引用其他命令的執行結果:

實例:

ifconfig | egrep -o '\<addr:.{1,3}(\.).{1,3}(\.).{1,3}(\.).{1,3}\>' | cut -d: -f2

 

 

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


[root@localhost ~]# ls /var | grep '^l.\+\?[[:digit:]]\+.\+\?[a-z]$'

 

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

[root@localhost ~]# ls /etc | grep '^[[:digit:]].\+\?[^[:digit:]]$'

 

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

[root@localhost ~]# ls /etc | grep '^[^[:alpha:]].\+\?[[:alpha:]].\+\?'

 

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


[root@localhost ~]# touch /tmp/title-"$(date +%Y-%m-%d-%H-%M-%S)"

 

10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。

[root@localhost ~]# cp -r  /etc/p*[^[:digit:]]  /tmp/mytest1

 

11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。


[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2

 

12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。


[root@localhost ~]# cp -r /etc/{l,m,n}*.conf /tmp/mytest3

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

(0)
N21-yoyo_chenN21-yoyo_chen
上一篇 2016-07-12
下一篇 2016-07-12

相關推薦

  • N25期第一周作業

    計算機的組成與功能  一臺能正常工作的計算機有硬件和軟件組成,計算機的硬件就好比人的軀體,計算機的軟件就好比人的思想,人的思想控制指揮人的軀體,計算機有了軟件才能進行工作。 硬件大致由CPU,內存,輸入輸出設備,存儲設備組成,各個部件的主要作用流程是:由輸入設備(例如:鍵盤)輸入數據, 數據暫時出入內存, 而后由內存傳到CPU(CPU又由運算器+控…

    Linux干貨 2016-12-05
  • 【N25第三周作業】用戶及權限管理

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]# who root     pts/0        2016-12-14&nb…

    Linux干貨 2016-12-14
  • 2016-10-17練習題

    1 生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正。 linux系統查看當前時間命令為date [root@Shining pirate]# date Mon Oct 17 20:50:42 CST 2016 修改系統時間選項為-s 格式為 只修改系統的日期,不修改時間 …

    Linux干貨 2016-10-17
  • 腳本的進階與一些基本腳本

    1,腳本中用于表示數字大小寫和符號為: -gt(大于)-lt(小于)-ne(不等于)-eq(等于) 格式為 [[空格 ”符號”空格]] 2,測試文件類型的選項 -f(是否為普通文件)-l(是否為鏈接文件)-d(是否為目錄)-e(單獨測試文件是否存在) 3,if語句的格式:(其中path代表條件,elif鏈接多個條件,最后一個條件用else表示) if pat…

    Linux干貨 2017-05-22
  • 學習筆記(16)

    學習筆記

    Linux筆記 2018-05-06
  • 第三周學習總結之簡單文本處理

    寫在最前 通過前面的學習,我們已經知道Linux是一個一切皆文件的系統,因此對文件的處理就顯得尤為重要,到目前為止,對于新手來說可能連鼎鼎大名的三劍客也未必聽過,不過在這之前我們也可以使用一些非常好用的文本處理工具來完成一些簡單文件的處理。本次內容就是講講如何使用幾個簡單文本處理工具的組合完成一些實用的功能。 文本處理工具 文本處理工具,用我的理解就是能夠對…

    2017-12-19

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-12 11:41

    寫的很好,排版還可以在漂亮一點,在嘗試一下12題看看對嗎?加油

欧美性久久久久