一、Linux上的文件管理類命令都有哪些,其經常使用的使用方法及其相關示例演示。linux
文件管理類命令:git
cp: 拷貝命令bash
SYNOPSIS:ide
cp [OPTION]... [-T] SOURCE DESTspa
cp [OPTION]... SOURCE... DIRECTORY命令行
cp [OPTION]... -t DIRECTORY SOURCE...遞歸
OPTIONS:ip
-a:歸檔,至關於-dR --preserve=all,在拷貝時會保留源文件的全部信息,包括:權限、屬主屬組、時間戳、連接等it
-v:verbose,在拷貝時顯示詳細信息ast
-R, -r, --recursive:遞歸拷貝
-i, --interactive:在拷貝數據時進行交互提醒
-p:same as --preserve=mode,在拷貝時保留屬主屬組和時間戳信息
-f:強制執行
Example:
歸檔(完整)拷貝/etc/sysconfig/network-scripts目錄至/tmp目錄下,並在拷貝時顯示詳細信息:
# cp -av /etc/sysconfig/network-scripts/ /tmp/
rm: 刪除文件或目錄
SYNOPSIS
rm [OPTION]... FILE...
OPTIONS:
-f, --force:強制執行刪除任務,不於提醒
-i: 在刪除每一個文件前都給予提醒
-r, -R, --recursive:遞歸刪除,用於刪除目錄
-d, --dir:刪除空間目錄,至關於rmdir命令
-v, --verbose:刪除時顯示詳細信息
Example:
刪除/tmp/network-scripts/目錄下的全部文件和子目錄,並顯示刪除過程:
# rm -frv /tmp/network-scripts/
mv:移動或重命名文件
SYNOPSIS
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
OPTIONS:
-f, --force:在覆蓋文件時不於提醒
-i, --interactive:與-i相反,在覆蓋文件時進行提醒
-v, --verbose:移動文件時給予提醒
Example:
將/tmp/b.txt重命名爲/tmp/c.txt
# mv /tmp/b.txt /tmp/c.txt 將/tmp/t2/目錄移動至/tmp/d1/下 # mv -v /tmp/t2/ /tmp/d1/
二、bash的工做特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
bash有如下特性:
1)、命令執行狀態返回值:
Linux命令或程序執行後有兩類結果,分別爲:
(1)、命令或程序的返回值;
例如:# echo "haha" 返回值爲:haha
(2)、命令或程序的執行狀態結果。狀態結果分兩類:成功或失敗,可經過bash的特殊變量$?來查看;
命令或程序執行成功時返回:0;
命令或程序執行失敗時返回:1-255。
例如:
# touch -c a.txt; echo $? 0 # touchh -c a.txt 2> /dev/null; echo $? 127
2)、命令行展開;
以某些bash可以解釋的符號來代替命令中的某些參數。
~:展開爲用戶的家目錄;
例:切換至家目錄
# cd ~;pwd /root
{}:可承載一個以逗號分隔的列表,並將其展開爲多個路徑;
例:在/tmp/d目錄下建立f1,f2,f3三個文件
# touch /tmp/d/f{1,2,3}
三、請使用命令行展開功能來完成如下練習:
(1)、建立/tmp目錄下的:a_c, a_d, b_c, b_d
# mkdir /tmp/{a,b}_{c,d}
(2)、建立/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 -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}
四、文件的元數據信息有哪些,分別表示什麼含義,如何查看?如何修改文件的時間戳信息。
文件的元數據信息有:文件名、文件大小、屬主屬組、硬連接數量、權限信息、訪問日期、修改日期、改變日期等 ,可經過stat FILENAME來進行查看。
修改文體的時間戳信息可以使用touch命令,touch命令介紹:
SYNOPSIS
touch [OPTION]... FILE...
OPTIONS:
-a:修改文體的訪問時間
-m:修改文件的修改時間
-c:不建立文件
-t STAMP:使用STAMP代替當前時間,STAMP格式:[[CC]YY]MMDDhhmm[.ss]
DESCRIPTION:
修改文件的任何元數據信息都會引發文件改變時間的變化,包括訪問和修改時間。由於改變時間記錄的就是無數據信息改變的時間。
例:
修改a.txt的訪問時間和改變時間爲當前時間:
# touch -a a.txt
修改a.txt的修改時間爲2016年1月2日3點4分5秒,改變時間爲當前時間:
# touch -m -t 201601020304.05 a.txt
五、如何定義一個命令的別名,如何在命令中引用另外一個命令的執行結果?
使用alias命令定義別名,如:# alias c='clear'
在命令中引用另外一個命令的執行結果的方法:
1)、使用管道;
例:統計登錄過系統的用戶帳號:
# last | cut -d' ' -f1 | sort -u | egrep -v 'reboot|wtmp'
2)、使用反引號(``)或$();
例:建立一個包含當前日期的文件:
# touch file_$(date +"%Y%m%d")
六、顯示/var目錄下全部以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(能夠有其它字符)的文件或目錄。
# ls -d /var/l*[0-9]*[[:lower:]]
七、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
# ls -d /tmp/[[:digit:]]*[^[:digit:]]
八、顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其它任意長度任意字符的文件或目錄。
# ls -d /etc/[^[:alpha:]][[:alpha:]]*
九、在/tmp目錄下建立以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-08-06-09-32-22。
# touch /tmp/tfile-`date +"%F-%T" | tr ':' '-'` or # touch /tmp/tfile-`date +"%F-%H-%M-%S"`
十、複製/etc目錄下全部以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
# mkdir /tmp/mytest1;cp -vr /etc/p*[^0-9] /tmp/mytest1/
十一、複製/etc目錄下全部以.d結尾的文件或目錄至/tmp/mytest2目錄中。
# mkdir /tmp/mytest2;cp -vr /etc/*.d /tmp/mytest2
十二、複製/etc/目錄下全部以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
# mkdir /tmp/mytest3;cp -vr /etc/[l,m,n]*.conf /tmp/mytest3