linux第二周作業(yè)
- Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關(guān)示例演示竖瘾。
常用的工具:cp沟突,mv,rm
復(fù)制命令:cp
兩種使用風(fēng)格:cp [OPTION]...[-T]SOURCE DEST
cp[OPTION]...SOURCE ...DIRECTORY
簡要講:
cp SRC...DEST
1.如果SRC是文件的:
(1)如果目標(biāo)不存在:新建DEST捕传,并將SRC中的內(nèi)容填充至DEST中惠拭;
(2)如果目標(biāo)存在:
如果目標(biāo)是文件,則將源文件內(nèi)容覆蓋到目標(biāo)文件當(dāng)中乐横,(可以使用-i來提醒用戶是否覆蓋)
如果目標(biāo)是目錄求橄,則在該目錄下創(chuàng)建一個與源文件同名的目標(biāo)文件今野,并將源文件內(nèi)容復(fù)制過去葡公。
- 如果SRC是目錄:則必須使用-r選項(xiàng)
(1)如果DEST存在,則其必須是目錄条霜,否則報錯催什;先在DEST下創(chuàng)建與SRC同名的目錄,并將SRC中所有內(nèi)容復(fù)制過去宰睡,
(2)如果DEST不存在蒲凶,則先創(chuàng)建DEST目錄气筋,并將SRC所有內(nèi)容復(fù)制到DEST中。
常用選項(xiàng):
-i:交互式
-r:遞歸復(fù)制目標(biāo)目錄及目錄下所有內(nèi)容
-a:歸檔旋圆,相當(dāng)于-dR --preserve=all
-p:保持源文件的屬性信息
-f:強(qiáng)制覆蓋
-v:顯示過程
移動命令mv:同樣也有三種使用格式
(1)如果SRC是單個文件宠默,且DEST不存在,則相當(dāng)于剪切功能灵巧,如果SRC是單個文件搀矫,且DEST存在,則目標(biāo)文件內(nèi)容被源文件覆蓋刻肄,且源文件消失瓤球;
(2)如果SRC是多個文件,如果DEST不存在敏弃,則創(chuàng)建一個目錄卦羡,并將多個源文件復(fù)制到目錄下;如果存在麦到,則該目標(biāo)必須為目錄绿饵,且移動過去的文件不會覆蓋目標(biāo)目錄已存在的文件
(3)如果SRC是個目錄,且DEST不存在瓶颠,則創(chuàng)建目標(biāo)目錄蝴罪,且將SRC剪切到目標(biāo)目錄。如果SRC是個目錄步清,且DEST存在要门,則在DEST下創(chuàng)建一個與SRC同名的目錄,并剪切過去廓啊。
常用選項(xiàng):
-i:交互式
-f:強(qiáng)制
-刪除命令:rm
rm [OPTION]...FILE...
常用選項(xiàng):
-i:交互式
-f:強(qiáng)制
-r:遞歸
常用選項(xiàng)組合:rm -rf
- bash的工作特性之命令執(zhí)行狀態(tài)返回值和命令行展開所涉及的內(nèi)容及其示例演示欢搜。
2.1 命令的執(zhí)行結(jié)果狀態(tài)
成功:
失敗:
bash使用特殊變量?
0:成功
1-255:失敗
同樣程序執(zhí)行結(jié)果也有兩類:
程序的返回值:程序的功能定義
程序的執(zhí)行狀態(tài)結(jié)果:程序執(zhí)行完成后的狀態(tài)
2.2 命令行展開
~:展開為用戶的主目錄
~:USERNAME:展開為指定用戶的主目錄
{}:可承載一個以逗號分隔的列表谴轮,并將其展開為多個路徑
如:
./tmp/{a,b}=/tmp/a,/tmp/b
/tmp/{jack,mary,tom}/x=/tmp/jack/x,/tmp/mary/x,/tmp/tom/x
-
請使用命令行展開功能來完成以下練習(xí):
(1)炒瘟、創(chuàng)建/tmp目錄下的:a_c, a_d, b_c, b_dtouch /tmp/{a,b}_{c,d}
(2)、創(chuàng)建/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
mkdir -p -v /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/{log,run}}
- 文件的元數(shù)據(jù)信息有哪些第步,分別表示什么含義疮装,如何查看?如何修改文件的時間戳信息粘都。
文件的元數(shù)據(jù)信息有文件名廓推、文件的大小屬性、以及被訪問時間翩隧、修改及改動時間等樊展,就像人的身高屬性等;
Linux文件系統(tǒng)特性:
4.1 文件名嚴(yán)格區(qū)分大小寫;
4.1 文件名長度不能超過255专缠;
4.3 文件名命名能使用除/外其他所有的字符雷酪;
4.4 所有以.開頭的文件都為隱藏文件;
查看文件時間戳:stat 文件路徑
狀態(tài)信息有三個時間戳:
access time:訪問時間涝婉,atime 即:通過cat哥力,more等讀取其內(nèi)容
modify time:修改時間,mtime 即:改變文件內(nèi)容
change time:改變時間墩弯,ctime 即:元數(shù)據(jù)發(fā)生變化
可通過touch[OPTION]...FILE...
-a:修改atime
-m:修改mtime
-t[[CC]YY]MMDDhhmm[.ss]:修改指定時間戳為某時間
- 如何定義一個命令的別名省骂,如何在命令中引用另一個命令的執(zhí)行結(jié)果?
通過alias命令實(shí)現(xiàn)最住,
(1)當(dāng)alias不帶任何選項(xiàng)表示顯示所有已定義別名钞澳;
(2)定義別名:
alias new_name='old_name'
注意:通過命令行定義別名只對當(dāng)前shell進(jìn)程有效,要想長久有效必須定義在配置文件中涨缚;
僅對當(dāng)前用戶有效:~/.bashrc
對所有用戶有效:/etc/bashrc
bash進(jìn)程重新讀取配置文件:
source /path/to/config_file或者./path/to/config_file
撤銷別名用unalias new_name,
unalias -a 表示撤銷所有命令別名
如何
通過管道引用另一個命令的執(zhí)行結(jié)果
COMMAND1 | COMMAND2 |COMMAND3轧粟,最后一個命令會在當(dāng)前shell進(jìn)程的子進(jìn)程中執(zhí)行
-
顯示/var目錄下所有以l開頭,以一個小寫字母結(jié)尾脓魏,且中間至少出現(xiàn)一位數(shù)字(可以有其它字符)的文件或目錄兰吟。
ls /var/l[0-9][a-z]
-
顯示/etc目錄下,以任意一個數(shù)字開頭茂翔,且以非數(shù)字結(jié)尾的文件或目錄混蔼。
ls -d /etc/[0-9]*[^0-9]
-
顯示/etc目錄下,以非字母開頭珊燎,后面跟了一個字母以及其它任意長度任意字符的文件或目錄惭嚣。
ls -d /etc/[^a-z][a-z]*
-
在/tmp目錄下創(chuàng)建以tfile開頭,后跟當(dāng)前日期和時間的文件悔政,文件名形如:tfile-2016-05-27-09-32-22晚吞。
touch /tmp/tfile-2018-07-14-23-04-23
復(fù)制/etc目錄下所有以p開頭,以非數(shù)字結(jié)尾的文件或目錄到/tmp/mytest1目錄中谋国。
mkdir /tmp/mytest1
cp -ri /etc/p*[^0-9] /tmp/mytest1
- 復(fù)制/etc目錄下所有以.d結(jié)尾的文件或目錄至/tmp/mytest2目錄中槽地。
mkdir /tmp/test2
cp -ri /etc/*.d /tmp/mytest2
- 復(fù)制/etc/目錄下所有以l或m或n開頭,以.conf結(jié)尾的文件至/tmp/mytest3目錄中芦瘾。
mkdir /tmp/mytest3
cp /etc/{l,m,n}*.conf /tmp/mytest3