# 第二周作業
##1.文件管理類命令
###cp 復制
* 單元復制
如果目標文件不存在,會自動創建
如果已經存在,會覆蓋
* 多源復制
目標必須是目錄,分別復制每個文件至目標目錄中,并保持原名
> -i: 交互提醒
> -f: 強制覆蓋,不交互
> -r: 遞歸復制目錄
> -d: 如果復制的是符號鏈接,不找源文件,僅復制鏈接本身,cp默認是會復制符號鏈接的源文件到目標文件的
> -a: 用于實現付歸檔
> –preserv=
> mode 權限
> ownership 屬主和屬組
> timestamps 時間戳
> context 安全標簽
> xattr 擴展屬性
> links 符號鏈接
> all 上述所有屬性
###mv 移動
> -i 交互式
> -f 強制,不交互
###rm 刪除
> -i 交互式
> -f 強制 force
> -r 遞歸 recursive
**所有不用的文件建議不要直接刪除,而是移動到某個專用目錄。**
##2.bash執行狀態和命令行
###命令行展開
~: 自動展開為用戶的家目錄,或指定的用戶的家目錄
{}: 可承載一個以逗號分割的路徑列表,并能夠將其展開為多個路徑
/tmp/{a,b} 相當于/tmp/a,/tmp/b
[root@cloud test]# mkdir -pv /root/test/x/{y1/{a,b},y2}
mkdir: created directory ‘/root/test/x’
mkdir: created directory ‘/root/test/x/y1’
mkdir: created directory ‘/root/test/x/y1/a’
mkdir: created directory ‘/root/test/x/y1/b’
mkdir: created directory ‘/root/test/x/y2’
[root@cloud test]# mkdir -v {a,b}_{c,d}
mkdir: created directory ‘a_c’
mkdir: created directory ‘a_d’
mkdir: created directory ‘b_c’
mkdir: created directory ‘b_d’
###命令的執行狀態結果
bash通過狀態返回值來輸出此結果:
成功:0
失?。?-255
命令執行完成之后,其狀態返回值保存于bash的特殊變量$?中
[root@cloud test]# ls
123.gz a_c a_d b_c b_d file1 file1.gz file2 x
[root@cloud test]# echo $?
0
命令正常執行時,有的還會有命名返回值
這個返回值會保存于bash的變量中 $(COMMAND)或\`COMMAND\`
##3.完成練習
– 創建/tmp目錄下的:a_c,a_d,b_c,b_d
mkdir /tmp/{a,b}_{c,d}
– 創建/tmp/mylinux目錄下
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.文件的元數據
###stat能看到文件的元數據
[root@cloud test]# stat file1
File: ‘file1’
Size: 21 Blocks: 8 IO Block: 4096 regular file
Device: 802h/2050d Inode: 68666229 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-12-06 23:18:37.841655271 +0800
Modify: 2016-12-06 23:18:35.767655289 +0800
Change: 2016-12-06 23:18:35.767655289 +0800
Birth: –
Access: 2016-12-06 23:18:37.841655271 +0800 最近訪問
Modify: 2016-12-06 23:18:35.767655289 +0800 最近更改,數據
Change: 2016-12-06 23:18:35.767655289 +0800 最近改動,元數據
###touch 創建文件,更改時間戳
> -c 指定的文件路徑不存在時不予創建
> -a 僅修改access time;
> -m 僅修改modify time;
> -t 指定修改時間戳
##5.別名,引用結果
alias 定義別名
alias cdnd='cd /var/named/chroot/var/named/'
用管道連接程序,實現將前一個命令的輸出直接定向給后一個程序當作輸入數據流
[root@cloud test]# cat /etc/issue |tr 'a-z' 'A-Z'
\S
KERNEL \R ON AN \M
##6.顯示/var目錄下,所有以1開頭,以一個小寫字母結尾,且中間至少出現一位數字的文件或目錄
ls -d /var/1*[0-9]*[a-z]
##7.顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
ls -d /etc/[0-9]*[^0-9]
##8.顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其他任意長度任意字符的文件或目錄
ls -d /etc/[^a-z][a-z]*
##9.在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,
touch /tmp/tfile-$(date +'%F-%H-%M-%S')
##10.復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1中
[root@WH-DNS-00 named]# mkdir /tmp/mytest1
[root@WH-DNS-00 named]# cp -r /etc/p*[^0-9] /tmp/mytest1/
##11.復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
[root@cloud ~]# mkdir /tmp/mytest2
[root@cloud ~]# cp -r /etc/*.d /tmp/mytest2/
##12.復制/etc目錄下所有以1或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
[root@cloud ~]# mkdir /tmp/mytest3
[root@cloud ~]# cp -r /etc/[1mn]*.conf /tmp/mytest3
原創文章,作者:lanpang,如若轉載,請注明出處:http://www.www58058.com/63072
贊,能注意下排版會更好~