馬哥教育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
下一篇 2016-06-29

相關推薦

  • 用戶和組管理類命令詳解

    用戶和組管理類命令詳解 組管理 groupadd 功能描述:創建一個新組 命令格式: groupadd [選項] GROUP 選項: -g GID 表示指定GID,默認情況下使用的是最小的未使用過的GID -r 表示創建一個系統組 groupmod 功能描述:修改組屬性 命令格式:groupmod [選項] GROUP 選項: -g GID 表示修改GID …

    Linux干貨 2017-07-16
  • Centos網卡bond

    Centos6_Bonding配置: 1.禁用NetworkManager服務  2.創建bonding設備的配置文件 3.添加從屬接口1 4.添加從屬接口2 5.重啟網卡服務 6.查看bond0狀態 7.刪除bond配置 Centos7_Bonding配置: 1.添加bonding接口 2.添加從屬接口1 3.添加從屬接口2 4.修改bondin…

    2017-05-17
  • bash中的變量詳解

        在bash中,巧妙地運用變量,能夠大大減輕編程的工作量,下面讓我們來詳細了解一下bash的變量. bash中的變量種類:     根據變量的生效范圍等標準:         本地變量:生效范圍…

    Linux干貨 2016-08-18
  • LVS+Keepalived實現負載均衡

    keepalived工作原理 keepalived是基于VRRP協議實現的保證集群高可用的一個服務軟件,主要功能是實現后端真實服務器的故障隔離和負載均衡器間的失敗切換,防止單點故障。 VRRP協議全稱:虛擬路由冗余協議(Virtual Route Redundancy Protocol)。 keepalived安裝 # yum install keepali…

    2017-11-26
  • bash基礎特性及用戶與組管理

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 2、取出最后登錄到當前系統的用戶的相關信息。 3、取出當前系統上被用戶當做其默認shell的最多的那個shell。 4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxuser.txt文件中。 5、取出當前主機的I…

    2017-09-29
  • 第六周作業

    1、簡述osi七層模型和TCP/IP五層模型 應用層 運行著應用程序的協議http、ftp、tftp等 表示層 將應用層所編輯的數據進行加密或解密,沒有協議 會話層 決定一次數據傳輸發起和接收會話請求,沒有協議 傳輸層 根據選著的協議類型,決定是否將數據分割或重組,協議:tcp、udp等 網絡層 編輯邏輯地址信息(原站點、目的站點)和路由選著(ARP)協議:…

    2018-02-06

評論列表(1條)

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

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

欧美性久久久久