目錄管理類命令:
mkdir, rmdir, tree
mkdir
mkdir [options] /path/to/somewhere
-p: 存在于不報錯,且可自動創建所需的各目錄;
-v: 顯示詳細信息
-m MODE: 創建目錄時直接指定權限;
tree
tree: 需要安裝 yum -y install tree
-d: 只顯示目錄
-L level:指定顯示的層級數目
-P pattern: 只顯示由指定pattern匹配到的路徑;
rmdir
rmdir:刪除空目錄
rmdir [OPTION]… DIRECTORY…
-v: 顯示過程;
-p:遞歸刪除目錄一級一級刪除
命令行展開
~: 展開為用戶的主目錄
~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
2、創建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b
3、如何創建/tmp/bin, /tmp/sbin, /tmp/usr, /tmp/usr/bin, /tmp/usr/sbin
創建/tmp/mylinux目錄下的
創建/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
命令的執行結果狀態
成功
失敗
bash使用特殊變量$?保存最近一條命令的執行狀態結果:
0:成功
1-255:失敗
程序執行有兩類結果:
程序的返回值;
程序的執行狀態結果;
文件的元數據信息
ls -l :查看文件元數據
最左側的第一位:文件類型
Linux下文件類型:
– (f):普通文件;
d: 目錄文件;
b: 塊設備;
c: 字符設備;
l: 符號鏈接文件;(軟連接)
p: 管道文件;
s: 套接字文件;
后面九位:u,g,o的權限
數字:代表硬鏈接次數
兩個root代表:所有者,所屬組
1777:文件的size
5月22 17:39:最后一次的修改時間
anaconda-ks.cfg:文件名
stat
查看文件的時間戳
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進程所有可用的命令別名;
(2) alias NAME='VALUE'
定義別名NAME,其相當于執行命令VALUE;
變量引用:
echo "$VAR_NAME": 變量會替換,雙引號表弱引用
echo '$VAR_NAME': 變量不會替換,強引用
echo `$VAR_NAME`:調用命令結果
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
寫的很好,可以多注意一下排版問題,加油