課后作業
1.Linux上的文件管理類命令都有哪些,其常用的使用方法及相關示例演示。
cp:復制命令
三種常用方式:
cp[OPTION]...[-T] SOURCE DEST cp[OPTION]...SOURCE...DIRECTORY cp[OPTION]...-t DIRECTORY SOURCE
如果SRC是文件,
(1)如果DEST不存在:新建DEST,并將SRC中的內容填充至DEST中;
(2)如果DEST存在:
若DEST是文件:將SRC中的內容覆蓋至DEST中;(可以使用-i來提醒用戶是否覆蓋)
若DEST是目錄:在DEST下新建與源文件同名的文件,并將SRC中的內容填充至新文件中?!?/p>
常用選項:
–i:交互式
在centos6.0版本后,原本的cp命令已經自帶cp -i,所以當出現復制的源文件會覆蓋掉已有目標文件時,就會出現交互命令。
[root@centPlinux ~]# alias cp alias cp='cp -i' [root@centPlinux ~]# cp /etc/rpc /tmp/111 cp:是否覆蓋"/tmp/111"?
–r、R:遞歸復制目錄及內部的所有內容
做一個對比:
[root@centPlinux ~]# cp -r /etc/yum /tmp/222 [root@centPlinux ~]# ls /tmp/222 pluginconf.d protected.d vars version-groups.conf
[root@centPlinux ~]# cp /etc/yum /tmp/222 cp: 略過目錄"/etc/yum" [root@centPlinux ~]# ls /tmp/222 ls: 無法訪問/tmp/222: 沒有那個文件或目錄
–a:歸檔,相當于-dR –preserve=all
–d:不跟蹤符號鏈接所指向的源文件,只復制符號鏈接本身 –no-dereference –preserve=links
仍然做個對比:
[root@centPlinux tmp]# cp /etc/system-release /tmp [root@centPlinux tmp]# ls /tmp mylinux system-release yum.log [root@centPlinux tmp]# cat /tmp/system-release CentOS release 6.5 (Final)
[root@centPlinux tmp]# cp -d /etc/system-release /tmp [root@centPlinux tmp]# ls /tmp mylinux system-release yum.log [root@centPlinux tmp]# cat /tmp/system-release cat: /tmp/system-release: 沒有那個文件或目錄
—preserve = mode:權限
ownership:屬主屬組
timestamp:時間戳
links:鏈接
xattr:擴展屬性
context:安全標簽
all:以上所有屬性
–f:強制覆蓋
–v:顯示過程
mv:移動命令
用法基本等同于cp,常用選項也參考cp
rm:刪除命令
格式:rm [OPTION]…FILE…
常用選項:
–i:交互式
–f:強制刪除
–r:遞歸刪除
刪除目錄:rm -rf /PATH/TO/DIR
注意:所有無用文件建議不要直接刪除,而是移動到某個指定目錄(用來模擬回收站),可設置定期刪除指定目錄里的無用文件。
touch:該命令是修改文件時間戳的命令,但當touch一個不存在的文件時,則會創造一個文件,所以可以用下面格式創建文件:
touch…FILE…
若不想創建文件,則touch加選項參數-c,即使如果文件不存在,也不創建該文件。
2.bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示
(1)命令執行狀態返回值
bash通過狀態返回值來輸出此結果,成功:0,失?。?-255
命令執行完成后,狀態返回值保存于bash的特殊變量$?中
[root@guolin ~]# ls 10:06:44 a_c CST install.log Nov 25 anaconda-ks.cfg $Fri install.log.syslog [root@guolin ~]# echo $? 0 [root@guolin ~]# lss -bash: lss: command not found [root@guolin ~]# echo $? 127
引用命令的執行結果,有以下兩種格式實現:
$(COMMAND) 'COMMADN'
[root@guolin ~]# mkdir /tmp/test_$(date +%H-%M-%S) [root@guolin ~]# ls /tmp test_19-45-16 wodediyigewenjian yum.log
(2)命令行展開
~:展開為用戶的主目錄
~USERNAME:展開為指定用戶的主目錄
{ }:可承載一個以逗號分隔的列表,并將其展開為多個路徑
[root@guolin ~]# mkdir -v /tmp/{a,b} mkdir: 已創建目錄 "/tmp/a" mkdir: 已創建目錄 "/tmp/b"
3.請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c,a_d,b_c,b_d
結果如下:
[root@centPlinux ~]# mkdir -v /tmp/{a,b}_{c,d} mkdir: 已創建目錄 "/tmp/a_c" mkdir: 已創建目錄 "/tmp/a_d" mkdir: 已創建目錄 "/tmp/b_c" mkdir: 已創建目錄 "/tmp/b_d" [root@centPlinux ~]# ls /tmp a_c a_d b_c b_d
(2)、創建/tmp/mylinux目錄下的:
結果如下:
[root@centPlinux ~]# 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}} [root@centPlinux ~]# tree /tmp/mylinux /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 24 directories, 0 files
4.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息
元數據即為文件的屬性信息,其中三個時間戳,分別是
access time—atime:訪問時間,即通過使用cat,more等讀取內容的時間
modify time—mtime:修改時間,即文件內容發生改變的時間
change time—ctime:改變時間,即元數據發生改變的時間
stat:查看文件時間戳
touch:修改時間戳信息
常用參數:
–a:僅修改atime
–m:僅修改mtime
–t:設置時間 CCYYMMDDhhmm,ss
注意:只要修改時間戳,則ctime必定會改變,所以ctime不能指定修改,只能同atime、mtime一起修改成當前時間。故-c并不是修改ctime,而是在前文提到的,在touch到的文件不存在時,不創建該文件
5.如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
alias:定義命令別名 alias NAME='COMMAND'(僅對當前shell進程有效)
引用命令的結果:使用$(COMMAND)或'COMMAND'
6.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
ls -d /var/l*[[:digit:]]*[[:lower:]]
7.顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
ls -d /etc/[[:digit:]]*[^[:digit:]]
8.顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
ls -d /etc/[^[:alpha:]][[:alpha:]]*
9.在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@centPlinux ~]# touch /tmp/tfile-$(date +%y-%m-%d-%H-%M-%S) [root@centPlinux ~]# ls /tmp a_c a_d b_c b_d mylinux tfile-16-11-24-00-32-01 yum.log
10.復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
mkdir /tmp/mytest1
cp -r /etc/p*[^[:digit:]] /tmp/mytest1/
11.復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
mkdir /tmp/mytest2
cp -r /etc/*.d /tmp/mytest2
12.復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
mkdir /tmp/mytest3
cp -r /etc/[lmn]*.conf
原創文章,作者:gl693184974,如若轉載,請注明出處:http://www.www58058.com/62836
整體還是不錯的,第11、12題有點問題~再注意下整體排版風格會更好~加油~