第二周
1. Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
cp 復制文件和目錄
語法格式:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
選項:
-a: 歸檔文件與目錄,并保留其屬性。
[root@node1 ~]# cp -a /etc/issue ./
-i: 覆蓋前提醒
[root@node1 ~]# cp -i /etc/fstab ./
cp: overwrite ‘./fstab’?
-r: 遞歸復制目錄
[root@node1 ~]# cp -R /var/log ./
-d: 復制符號鏈接文件本身,而非其指向的源文件
[root@node1 ~]# cp -d /var/lock /tmp
[root@node1 ~]# ll /tmp/lock
lrwxrwxrwx. 1 root root 11 Jul 21 11:39 /tmp/lock -> ../run/lock
mv 移動(重命名)文件,移動目錄
語法格式:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
移動文件:
[root@node1 ~]# ls a [root@node1 ~]# mkdir test [root@node1 ~]# ls a test [root@node1 ~]# mv a test [root@node1 ~]# ls test/ a
重命名文件:
[root@node1 ~]# touch b [root@node1 ~]# ls b test [root@node1 ~]# mv b c [root@node1 ~]# ls c test
移動目錄:
[root@node1 ~]# mkdir test{1,2} [root@node1 ~]# ls c test1 test2 [root@node1 ~]# mv test1 test2 [root@node1 ~]# ls test2 test1
rm 刪除文件和目錄
語法格式:
rm [OPTION]… FILE…
-f: 強制,不提醒
[root@node1 ~]# ls a c test2 [root@node1 ~]# rm a rm: remove regular empty file ‘a’? y [root@node1 ~]# rm -f c [root@node1 ~]# ls test2
-r: 刪除目錄
[root@node1 ~]# ls test2 [root@node1 ~]# rm -r test2 rm: descend into directory ‘test2’? y rm: remove directory ‘test2/test1’? y rm: remove directory ‘test2’? y
2. bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
bash通過狀態返回值來輸出命令執行結果成功與否,0表示成功,1~255表示失敗。命令執行完成后,其狀態返回值保存在bash的特殊變量$?中??赏ㄟ^命令echo $?查看返回值。
命令執行成功,顯示返回值示例:
[root@node1 ~]# cat /etc/issue \S Kernel \r on an \m [root@node1 ~]# echo $? 0
命令執行失敗,顯示返回值示例:
[root@node1 ~]# catt /etc/issue -bash: catt: command not found [root@node1 ~]# echo $? 127
bash命令行展開,符號{},可承載一個以逗號分隔的路徑列表,并能將其展開為多個路徑。
[root@node1 ~]# ls [root@node1 ~]# mkdir test{a,b} [root@node1 ~]# ls testa testb 使用命令展開符號{},同時創建2個目錄,mkdir命令先創建testa目錄,然后再創建testb目錄。
3. 使用命令行展開功能來完成以下練習:
創建/tmp目錄下的:ac,ad,bc,bd
[root@node1 ~]# mkdir -pv /tmp/{a,b}_{c,d} mkdir: created directory ‘/tmp/a_c’ mkdir: created directory ‘/tmp/a_d’ mkdir: created directory ‘/tmp/b_c’ mkdir: created directory ‘/tmp/b_d’
創建/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
[root@node1 ~]# mkdir -vp /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}}
mkdir: created directory ‘/tmp/mylinux’ mkdir: created directory ‘/tmp/mylinux/bin’ mkdir: created directory ‘/tmp/mylinux/boot’ mkdir: created directory ‘/tmp/mylinux/boot/grub’ mkdir: created directory ‘/tmp/mylinux/dev’ mkdir: created directory ‘/tmp/mylinux/etc’ mkdir: created directory ‘/tmp/mylinux/etc/rc.d’ mkdir: created directory ‘/tmp/mylinux/etc/rc.d/init.d’ mkdir: created directory ‘/tmp/mylinux/etc/sysconfig’ mkdir: created directory ‘/tmp/mylinux/etc/sysconfig/network-scripts’ mkdir: created directory ‘/tmp/mylinux/lib’ mkdir: created directory ‘/tmp/mylinux/lib/modules’ mkdir: created directory ‘/tmp/mylinux/lib64’ mkdir: created directory ‘/tmp/mylinux/proc’ mkdir: created directory ‘/tmp/mylinux/sbin’ mkdir: created directory ‘/tmp/mylinux/sys’ mkdir: created directory ‘/tmp/mylinux/tmp’ mkdir: created directory ‘/tmp/mylinux/usr’ mkdir: created directory ‘/tmp/mylinux/usr/local’ mkdir: created directory ‘/tmp/mylinux/usr/local/bin’ mkdir: created directory ‘/tmp/mylinux/usr/local/sbin’ mkdir: created directory ‘/tmp/mylinux/var’ mkdir: created directory ‘/tmp/mylinux/var/lock’ mkdir: created directory ‘/tmp/mylinux/var/log’ mkdir: created directory ‘/tmp/mylinux/var/run’
4. 文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
文件的元數據包含文件的文件名,文件大小,文件類型,inode標識,硬鏈接次數,訪問權限,上下文,訪問時間,修改時間,更改時間等??捎胹tat命令查看文件的元數據信息。
[root@node1 ~]# stat /etc/fstab File: ‘/etc/fstab’ Size: 465 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 67108994 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:etc_t:s0 Access: 2017-07-21 10:51:49.727772230 +0800 Modify: 2017-07-12 20:53:27.931985854 +0800 Change: 2017-07-12 21:02:06.490956739 +0800 Birth: -可用touch命令修改文件的時間戳:
語法格式:
touch [OPTION]… FILE…
-a: 修改文件的訪問時間[root@node1 ~]# touch -a fstab [root@node1 ~]# stat fstab File: ‘fstab’ Size: 465 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 135802950 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2017-07-21 13:37:01.480322173 +0800 <---- 訪問時間改變 Modify: 2017-07-21 13:36:50.831322656 +0800 Change: 2017-07-21 13:37:01.480322173 +0800 改變文件的任何屬性,更改時間也會改變 Birth: -
-m: 修改文件的修改時間
[root@node1 ~]# touch -m fstab [root@node1 ~]# stat fstab File: ‘fstab’ Size: 465 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 135802950 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2017-07-21 13:42:13.170308020 +0800 Modify: 2017-07-21 13:42:20.796307674 +0800 <---- 修改時間改變 Change: 2017-07-21 13:42:20.796307674 +0800 改變文件的任何屬性,更改時間也會改變 Birth: -
原創文章,作者:ZhengBin,如若轉載,請注明出處:http://www.www58058.com/81945
贊,總結的不錯,每個小知識點都列舉了例子,比較上心,繼續加油~