第二周作業:
題1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
Linux上常見的文件管理類命令有mkdir、touch、cp、mv、rm、stat。
mkdir:創建新目錄
用法:mkdir /PATH/TO/NEW_DIR
示例:~]# mkdir -p -m 777 /tmp/a/test
touch:創建文件及修改時間戳
用法:touch /PATH/TO/NEW_FILE
示例:~]# touch /tmp/a/test/new_file
修改時間戳的選項:
-a:修改access time
-m:修改modify time
cp:拷貝文件
用法:cp /PATH/TO/OLD_FILE PATH/TO/NEWFILE
示例:~]# cp /tmp/a/test/new_file /tmp/a/test/new_file2
需要注意:
拷貝目錄時,加-r表遞歸復制
在測試時發現,由于cp是cp -i的別名,所以覆蓋時會有詢問,在腳本中實施即使加-f在覆蓋多個文件時也會有詢問,因此一般用\cp來使用,表不用cp -i別名
mv:移動或重命名文件
示例:~]# cp /tmp/a/test/new_file /tmp/a/test/new_file2
rm:刪除文件或目錄
示例:rm -rf /
需要注意:刪除操作非常危險,因此應該自己在系統上使用一個路徑模擬回收站,把需要刪除的文件先mv到模擬回收站上
stat:查看文件狀態屬性
示例:~]# stat /etc/crontab
題2:bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示
1、命令執行狀態返回值
返回值用于判定命令執行正確與否
示例:
~]# cd /etc/ssssss > /dev/null
~]# echo $?
結果:1
2、命令行展開
以bash能夠解釋的符號來代替命令中的一些重復字段
示例:
~]# cd ~
~]# touch /tmp/a/test/{w,t}
題3:使用命令行展開完成以下練習
(1)創建/tmp目錄下的:a_c,a_d,b_c,b_d
~]# touch /tmp/a_{c,d} /tmp/b_{c,d}
(2)創建/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}}
驗證:
[root@www ~]# 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
題4:文件的元數據信息有哪些,分別表示什么含義,如何查看,如何修改文件的時間戳信息。
[root@localhost ~]# stat test
File: `test'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 2097162 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-12-07 08:52:40.587661871 -0500
Modify: 2016-12-07 08:52:40.587661871 -0500
Change: 2016-12-07 08:52:40.587661871 -0500
輸出結果釋義:
File:文件名
Size:文件大小
Block:占據多少磁盤塊
IO Block:一個磁盤塊大小為4096k
regular empty file:常規的空文件
Device:文件所在設備主編號和次編號
Inode:inode編號
Linux:文件被硬鏈接的次數,1表示沒有硬鏈接
第一個Access:權限,屬主uid及名字,屬組gid及名字
第二個Access:文件最后一次被訪問的時間
Modify:文件的數據最后一次被修改的時間
Change:文件的元數據最后一次變化的時間
修改文件的時間戳:touch
~]# touch -m -t 201312011002.15 test
~]# touch -c -t 201102010802 test
題5:如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果
定義別名:
1、臨時
~]# alias clear=cln
2、永久
定義在~/.bashrc或者/etc/bashrc
命令中引用另一個命令的執行結果:
例:~]# echo -e "look here\n $(who)"
使用反引號“、$()
題6:顯示/var目錄下所有以l開頭的,以一個小寫字母結尾,且中間至少出現一位數字(可以有其他字符)的文件或目錄
~]# find /var/ -name "l[0-9]*[a-z]"
題7:顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄
~]# find /etc/ -name "[0-9]*[^0-9]"
題8:顯示/etc目錄下,以非字母開頭,后邊跟了一個字母以及其他任意長度任意字符的文件或目錄
~]# find /etc/ -name "[^[:alpha:]][[:alpha:]]*"
題9:在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名如tfile-2016-05-26-08-32-22
~]# touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
題10:復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1
題11:復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
~]# cp -r /etc/*.d /tmp/mytest2
題12:復制/etc目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
~]# cp -r /etc/[lmn]*.conf /tmp/mytest3
原創文章,作者:N25_水煮魚,如若轉載,請注明出處:http://www.www58058.com/62991
贊~~總結的很仔細~如果能使用markdown來格式化輸出會更好~加油~