linux第二周作業(yè)
- Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關(guān)示例演示。
常用的工具:cp,mv,rm
復(fù)制命令:cp
兩種使用風(fēng)格:cp [OPTION]...[-T]SOURCE DEST
cp[OPTION]...SOURCE ...DIRECTORY
簡(jiǎn)要講:
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來(lái)提醒用戶是否覆蓋)
如果目標(biāo)是目錄,則在該目錄下創(chuàng)建一個(gè)與源文件同名的目標(biāo)文件,并將源文件內(nèi)容復(fù)制過(guò)去。
- 如果SRC是目錄:則必須使用-r選項(xiàng)
(1)如果DEST存在,則其必須是目錄,否則報(bào)錯(cuò);先在DEST下創(chuàng)建與SRC同名的目錄,并將SRC中所有內(nèi)容復(fù)制過(guò)去,
(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:顯示過(guò)程
移動(dòng)命令mv:同樣也有三種使用格式
(1)如果SRC是單個(gè)文件,且DEST不存在,則相當(dāng)于剪切功能,如果SRC是單個(gè)文件,且DEST存在,則目標(biāo)文件內(nèi)容被源文件覆蓋,且源文件消失;
(2)如果SRC是多個(gè)文件,如果DEST不存在,則創(chuàng)建一個(gè)目錄,并將多個(gè)源文件復(fù)制到目錄下;如果存在,則該目標(biāo)必須為目錄,且移動(dòng)過(guò)去的文件不會(huì)覆蓋目標(biāo)目錄已存在的文件
(3)如果SRC是個(gè)目錄,且DEST不存在,則創(chuàng)建目標(biāo)目錄,且將SRC剪切到目標(biāo)目錄。如果SRC是個(gè)目錄,且DEST存在,則在DEST下創(chuàng)建一個(gè)與SRC同名的目錄,并剪切過(guò)去。
常用選項(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)
成功:
失?。?/p>
bash使用特殊變量?
0:成功
1-255:失敗
同樣程序執(zhí)行結(jié)果也有兩類:
程序的返回值:程序的功能定義
程序的執(zhí)行狀態(tài)結(jié)果:程序執(zhí)行完成后的狀態(tài)
2.2 命令行展開
~:展開為用戶的主目錄
~:USERNAME:展開為指定用戶的主目錄
{}:可承載一個(gè)以逗號(hào)分隔的列表,并將其展開為多個(gè)路徑
如:
./tmp/{a,b}=/tmp/a,/tmp/b
/tmp/{jack,mary,tom}/x=/tmp/jack/x,/tmp/mary/x,/tmp/tom/x
-
請(qǐng)使用命令行展開功能來(lái)完成以下練習(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í)間戳信息。
文件的元數(shù)據(jù)信息有文件名、文件的大小屬性、以及被訪問(wèn)時(shí)間、修改及改動(dòng)時(shí)間等,就像人的身高屬性等;
Linux文件系統(tǒng)特性:
4.1 文件名嚴(yán)格區(qū)分大小寫;
4.1 文件名長(zhǎng)度不能超過(guò)255;
4.3 文件名命名能使用除/外其他所有的字符;
4.4 所有以.開頭的文件都為隱藏文件;
查看文件時(shí)間戳:stat 文件路徑
狀態(tài)信息有三個(gè)時(shí)間戳:
access time:訪問(wèn)時(shí)間,atime 即:通過(guò)cat,more等讀取其內(nèi)容
modify time:修改時(shí)間,mtime 即:改變文件內(nèi)容
change time:改變時(shí)間,ctime 即:元數(shù)據(jù)發(fā)生變化
可通過(guò)touch[OPTION]...FILE...
-a:修改atime
-m:修改mtime
-t[[CC]YY]MMDDhhmm[.ss]:修改指定時(shí)間戳為某時(shí)間
- 如何定義一個(gè)命令的別名,如何在命令中引用另一個(gè)命令的執(zhí)行結(jié)果?
通過(guò)alias命令實(shí)現(xiàn),
(1)當(dāng)alias不帶任何選項(xiàng)表示顯示所有已定義別名;
(2)定義別名:
alias new_name='old_name'
注意:通過(guò)命令行定義別名只對(duì)當(dāng)前shell進(jìn)程有效,要想長(zhǎng)久有效必須定義在配置文件中;
僅對(duì)當(dāng)前用戶有效:~/.bashrc
對(duì)所有用戶有效:/etc/bashrc
bash進(jìn)程重新讀取配置文件:
source /path/to/config_file或者./path/to/config_file
撤銷別名用unalias new_name,
unalias -a 表示撤銷所有命令別名
如何
通過(guò)管道引用另一個(gè)命令的執(zhí)行結(jié)果
COMMAND1 | COMMAND2 |COMMAND3,最后一個(gè)命令會(huì)在當(dāng)前shell進(jìn)程的子進(jìn)程中執(zhí)行
-
顯示/var目錄下所有以l開頭,以一個(gè)小寫字母結(jié)尾,且中間至少出現(xiàn)一位數(shù)字(可以有其它字符)的文件或目錄。
ls /var/l[0-9][a-z]
-
顯示/etc目錄下,以任意一個(gè)數(shù)字開頭,且以非數(shù)字結(jié)尾的文件或目錄。
ls -d /etc/[0-9]*[^0-9]
-
顯示/etc目錄下,以非字母開頭,后面跟了一個(gè)字母以及其它任意長(zhǎng)度任意字符的文件或目錄。
ls -d /etc/[^a-z][a-z]*
-
在/tmp目錄下創(chuàng)建以tfile開頭,后跟當(dāng)前日期和時(shí)間的文件,文件名形如: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