1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
cp -複製文件或目錄
語法
cp [選項] 源文件或目錄 目標文件或目錄
說明: cp指令用於複製文件或目錄,如同時指定兩個以上的文件或目錄,且最後的目的地是一個已經存在的目錄,則它會把前面指定的所有文件或目錄複製到此目錄中。若同時指定多個文件或目錄,而最後的目的地並非一個已存在的目錄,則會出現錯誤信息選項
-a :相當於 -pdr 的意思;常在複製目錄時使用。該選項保留鏈接、文件屬性,並遞歸地複製目錄
-d :若來源文件爲連結文件的屬性(link file),則複製連結文件屬性而非檔案本身;
-f :爲強制 (force) 的意思,若有重複或其它疑問時,不會詢問使用者,而強制複製;
-i :交互式模式,覆蓋目標文件之前先要進行詢問
-l :進行硬式連結 (hard link) 的連結檔建立,而非複製檔案本身;
-p :連同檔案的屬性一起復制過去,而非使用預設屬性;(保留源文件或目錄的屬性)
-r :遞歸持續複製,用於目錄的複製行爲;
-s :複製成爲符號連結文件 (symbolic link),亦即『快捷方式』檔案;
-u :若 destination 比 source 舊才更新 destination !
v--verbose:顯示命令執行的詳細信息
mv -剪切文件,改名
語法
mv [選項] 源文件或目錄 目標文件或目錄
選項
-i: 交互式
-f: 強制
rm -刪除文件
語法
rm[選項][文件或目錄]
選項
-i: 交互式
-f: 強制刪除
-r: 遞歸
source 當前進程重新讀取文件
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
命令執行狀態返回值
# echo $?
執行狀態返回值$?的數字含義爲:
0:成功執行;
1-255:執行失敗。
命令行展開
~: 展開爲用戶的主目錄
~USERNAME:展開爲指定用戶的主目錄
{}:可承載一個以逗號分隔的列表,並將其展開爲多個路徑
/tmp/{a,b} = /tmp/a, /tmp/b
/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
# touch /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 -p /tmp/mylinux/{bin,boot/grub,dev,etc/rc.d/init.d,etc/sysconfig/network-scripts,lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var{lock,log,run}}
4、文件的元數據信息有哪些,分別表示什麼含義,如何查看?如何修改文件的時間戳信息。
stat -顯示文件或文件系統的狀態
[root@localhost ~]# stat anaconda-ks.cfg 文件:"anaconda-ks.cfg" 大小:1432 塊:8 IO 塊:4096 普通文件 設備:fd00h/64768d Inode:70990358 硬鏈接:1 權限:(0600/-rw-------) Uid:( 0/ root) Gid:( 0/ root) 環境:system_u:object_r:admin_home_t:s0 最近訪問:2016-07-10 22:37:40.864008283 +0800 最近更改:2016-07-10 22:36:39.533837436 +0800 最近改動:2016-07-10 22:36:39.533837436 +0800 創建時間:-
touch -改變文件的時間戳
語法
touch [-acfm][-d<日期時間>][-r<參考文件或目錄>] [-t<日期時間>][--help][--version][文件或目錄…]
選項
-a 只更改存取時間
-m 只更該變動時間
-t:[[CC]YY]MMDDhhmm[.ss] 使用指定的日期時間,而非現在的時間
-c:或--no-create 如果文件不存,不建立任何文件
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
alias-定義或顯示別名
語法
alias[別名]=[指令名稱]
命令中引用另一個命令的執行結果
1、管道符 “|”
# cat /etc/fstab |wc -l
2、反引號
# mkdir /tmp/tfile-`date +%F-%H-%M-%S`
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
# ls -d /var/l*[0-9]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
# ls -d /etc/[0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其它任意長度任意字符的文件或目錄。
# ls-d /etc/[^a-zA-Z][[:alpha:]]*
或
# ls /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-08-06-09-32-22。
# touch /tmp/tfile-$(date +%F-%H-%M-%S)
知識點:
$()等價於反引號`` (返回括號中命令執行的結果)
${ }替換變量值 (常用來作變量替換)
10、複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
# cp -a /etc/p*[^0-9] /tmp/mytest1
11、複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
# cp -a /etc/*.d /tmp/mytest2
12、複製/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
# cp -a /etc/[lmn]*.conf /tmp/mmytest3