1.Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
文件管理工具:cp,mv,rm
cp命令:copy
源文件:目標文件
單源復制:cp [OPTION]… [-T] SOURCE DEST
多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
單源復制:如果DEST不存在,則事先創建此文件,并復制源文件的數據流至DEST中
如果DEST存在:
如果DEST是非目錄文件,則覆蓋目標文件
如果DEST是目錄文件:則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流至目標文件;
多源目錄:如果DEST不存在,錯誤
如果DEST存在:
如果DEST是非目錄文件,錯誤
如果DEST是目錄文件;分別復制每個文件至目標目錄中,并保存原名;
常用選項:
-i:交互式復制,即覆蓋之前提醒用戶確認;
-f:強制覆蓋目標文件;
-r:遞歸復制目錄
-d:復制符號鏈接文件本身,而非其指向的源文件;
-a:-dR –preserve=all,archive,用于實現歸檔
–preserv=
mode:權限
ownership:屬主和屬組
timestamp:時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
mv命令:跟cp差不多,只不過是mv把源文件刪除了
-f:force,強制刪除
-i:交互式
rm命令:remove,刪除文件,還可以刪除目錄
-i:interacive
-f:force,強制刪除
-r:遞歸刪除
刪除目錄:rm -rf /PATH/TO/DIR
危險操作:rm -rf /
注意:所有不用的文件不要直接刪除,而是移動至某個專用目錄:(模擬回收站)
2.bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
bash的基礎特性之:命令行展開
~:自動展開為用戶的家目錄,或指定的家目錄;
{}:可承載一個以逗號分割的路徑列表,并能夠將其展開為多個路徑;
例如:/tmp/{a,b}相當于/tmp/a /tmp/b
tree命令:
tree [options] [direcrory]
-L level:指定要顯示的層級
bash的基礎特性:命令的執行狀態結果
命令執行的狀態結果:
bash通過狀態返回值來輸出此結果;
成功:0
失敗:1-255
命令執行完成之后,其狀態返回值保存在于bash的特殊變量$?
命令正常執行時,有的還會有命令返回值;
根據命令及其功能不同,結構各不相同;
3.請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
# mkdir {a,b}_{c,d}
(2)、創建/tmp/mylinux目錄下的:
# mkdir -p /tmp/mylinux1/{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}}
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.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
文件:兩類數據
元數據:metadate,用stat查看出來的信息,就是元數據
數據:data,用cat命令查看出來的信息,稱為數據
時間戳:每一個文件都有三個時間戳
Access: 2016-10-27 20:22:43.389000014 +0800——–atime
Modify: 2016-10-27 20:22:36.544000003 +0800——–mtime
Change: 2016-10-27 20:22:42.078000012 +0800——–ctime
touch命令:改變文件的時間戳,也可以創建空文件(不推薦此方法)
-c:指定的文件路徑不存在時不予創建;
-a:僅修改access time
-m:僅修改modify time
-t STAMP:自定義時間戳
use [[CC]YY]MMDDhhmm[.ss] instead of current time
5.如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
命令別名:獲取所有可用別名的定義:alias
定義別名:alias NAME=‘COMMAND’,注意:僅對當前shell進程有效
撤銷別名:unalias NAME
引用命令的執行結果:
$(COMMAND)
或者‘COMMAND’
6.顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
# ls -d /var/l?[[:lower:]]
7.顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
#ls -d /etc/[0-9]*[^0-9]
8.顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
#ls -d /etc/[^a-z][a-z]*
9.在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
#touch "tfile-$(date +%Y-%m-%d-%H-%M-%S)"
10.復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
#cp -d /etc/p*[^0-9] /tmp/mytest1
11.復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
#cp -d /etc/*.d /tmp/mytest2
12.復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
#cp -d /etc/[lmn]*.conf /tmp/mytest3
原創文章,作者:evergreen1989,如若轉載,請注明出處:http://www.www58058.com/58026
總結的不錯,贊~~可以多想幾種方法來實現~繼續加油~