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

目錄管理類命令:
mkdir, rmdir, tree
mkdir

mkdir [options] /path/to/somewhere

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

-v: 顯示詳細信息

-m MODE: 創建目錄時直接指定權限;

QQ截圖20160627164037.png

QQ截圖20160627164240.png

tree

tree:  需要安裝  yum -y install tree

-d: 只顯示目錄

QQ截圖20160627205245.png

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

QQ截圖20160627205514.png

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

rmdir

rmdir:刪除空目錄

rmdir [OPTION]… DIRECTORY…

-v: 顯示過程;

-p:遞歸刪除目錄一級一級刪除

QQ截圖20160627164634.png

命令行展開

~: 展開為用戶的主目錄

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

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

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

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

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

QQ截圖20160627165444.png

2、創建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b

QQ截圖20160627170028.png

3、如何創建/tmp/bin, /tmp/sbin, /tmp/usr, /tmp/usr/bin, /tmp/usr/sbin

創建/tmp/mylinux目錄下的

QQ截圖20160627171050.png

創建/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

QQ截圖20160627204219.png

命令的執行結果狀態

成功

失敗

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

0:成功

1-255:失敗

程序執行有兩類結果:

程序的返回值;

程序的執行狀態結果;

QQ截圖20160627204633.png

QQ截圖20160627204551.png

文件的元數據信息

ls -l :查看文件元數據

QQ截圖20160628162015.png

最左側的第一位:文件類型

Linux下文件類型:

– (f):普通文件;

d: 目錄文件;

b: 塊設備;

c: 字符設備;

l: 符號鏈接文件;(軟連接)

p: 管道文件;

s: 套接字文件;

后面九位:u,g,o的權限

數字:代表硬鏈接次數

兩個root代表:所有者,所屬組

1777:文件的size

5月22 17:39:最后一次的修改時間

anaconda-ks.cfg:文件名

stat

查看文件的時間戳

QQ截圖20160628163643.png

Access: 訪問時間

Modify: 修改時間

Change:改變時間

touch

 創建文件

三個時間戳:

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

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

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

touch

-a: only atime

-m: only mtime     改變時間戳

命令別名(alias)

通過alias命令實現:

(1) alias

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

QQ截圖20160628170109.png

(2) alias NAME='VALUE'

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

QQ截圖20160628171055.png

變量引用:

echo "$VAR_NAME": 變量會替換,雙引號表弱引用

echo '$VAR_NAME': 變量不會替換,強引用

echo `$VAR_NAME`:調用命令結果

QQ截圖20160628171352.png

glob (globbing)

bash中用于實現文件名“通配”

通配符:*, ?, []

(1) *

任意長度的任意字符

a*b: 

aab, ab, a123b, 

abc

(2) ?

任意單個字符

a?b:

aab

ab, a12b, abc

(3) []

匹配指定范圍內的任意單個字符

[0-9]

[a-z]:不區分字符大小寫

[A-Z]:大寫字符

(4) [^]

匹配指定范圍外的任意單個字符

[^0-9]

專用字符集合:

[:digit:]:任意數字,相當于0-9

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

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

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

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

[:space:]:空格字符

[:punct:]:標點符號

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

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

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

ls -l /etc [0-9]*[[:alpha:]]

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

ls -l /etc [^[0-9]][[:alpha:]]*

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

touch "tfile-`date +%F`-`date +%H`-`date +%M`-`date +%S`"

文件管理:

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選項;管理員具備-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: 遞歸

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

cp -rf /etc p*[^[0-9]] /tmp/mystest1

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

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

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

cp -rf /etc [m,n].conf /tmp/mytest3

cp -rf /etc {m,n}.conf /tmp/mytest3

原創文章,作者:N21_ Dominic,如若轉載,請注明出處:http://www.www58058.com/20667

(0)
N21_ DominicN21_ Dominic
上一篇 2016-06-29 12:24
下一篇 2016-06-29 14:27

相關推薦

  • 第一篇博客 簡單說下最近的學習心得吧

        今天是個特殊的日子, 來到馬哥教育已經一周時間了,剛來的時候滿環信心,感覺人生充滿了希望,但是接下來的學習讓我感受到了什么是絕望,剛開始的兩天完全是一種朦朧的狀態,不知道干什么,敲得命令也不理解,完全是生搬硬套,沒有自己的認知,當時就有一種沖動想要一走了之,后來想想算了 ,然后就堅持到了現在,此時感覺當時的決定是對的,經過一周的學…

    2017-07-15
  • N27_網絡班第八周作業

    1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間所有主機的在線狀態; 在線的主機使用綠色顯示; 不在線的主機用紅色表示; #!bin/bash # for i in `seq 254`;do if ping -c 1 192.168.68.$i &> /dev/null;then echo -e “…

    2017-09-28
  • 十.Linux博客-2016年8月12日變量、算術表達式、測試

    格式說明: 操作 概念 命令 說明及舉例 十.變量、算術表達式、測試 bash -n +腳本 檢查語法錯誤 .bash_profile 配置文件PATH=$PATH:$HOME/bin:. 加.方便但不安全 unset name 刪變量name 小駝峰 第一個單詞字母小寫,以后單詞首字母大寫大駝峰 每一個單詞首字母都大寫 set…

    Linux干貨 2016-08-24
  • Linux文件根目錄

    / 表示為根目錄/├── bin  存放用戶使用的基本命令(可執行程序,二進制文件)  不能單獨分區├── boot   跟內核有關的文件 grub  內核和BootLoader ├── cgroup   用來資源限制資源隔離 docker 容器化├── dev(device )設備文件&…

    2017-03-27
  • 文件查找命令find

      在文件系統上常常需要根據文件的各種屬性去查找符合條件的文件。在Linux下也有相當優異的查找命令。今天只要將find和locate。find通常不常用,因為速度慢!通常我們先使用locate來進行模糊查找,如果真找不到了,才以find來查找。為什么呢?因為locate是利用數據庫來查找數據,所以速度非??欤也]有實際查詢硬盤比較省時間。 l…

    Linux干貨 2016-08-22

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-29 15:13

    寫的很好,可以多注意一下排版問題,加油

欧美性久久久久