mkdir 命令
mkdir 命令用來創(chuàng)建指定名稱的目錄,要求創(chuàng)建目錄的用戶在當前目錄中具有寫權限,并且指定的目錄名不能是當前目錄中已有的目錄。 mkdir 命令是 make directory 的縮寫。
命令格式
mkdir [選項] 目錄
常用參數(shù)

常用范例
例一:遞歸創(chuàng)建多個目錄 ,可以使用如下命令:
mkdir -p zhou/test
例二:創(chuàng)建權限為 777 的目錄,可以使用如下命令:
mkdir -m 777 zhou

例三:創(chuàng)建目錄顯示信息,可以使用如下命令:
mkdir -vp zhou/test

思考題
嘗試一下下面的命令,看看有什么神奇的事發(fā)生,tree 命令需要單獨安裝。
sudo apt-get update
sudo apt-get install tree
mkdir -vp shiyanlou/{lib/,bin/,doc/{info,product}}
tree shiyanlou/
rm 命令
rm 是常用的命令,該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對于鏈接文件,只會刪除鏈接,原文件均保持不變。
rm 是一個危險的命令,使用的時候要特別當心,尤其對于新手,否則整個系統(tǒng)就會毀在這個命令(比如在/(根目錄)下執(zhí)行 rm * -rf)。所以,我們在執(zhí)行 rm 之前最好先確認一下在哪個目錄,到底要刪除什么東西,操作時保持高度清醒的頭腦。
rm 命令是 remove 的縮寫。
命令格式
rm [選項] 文件或目錄
常用參數(shù)

常用范例
先來創(chuàng)建一個測試文本:
sudo touch shiyanlou.log
例一:刪除文件,系統(tǒng)會先詢問是否刪除,可以使用如下命令:
rm shiyanlou.log

例二:強行刪除文件,系統(tǒng)不再提示,可以使用如下命令:
rm -f shiyanlou.log

例三:刪除后綴名為.log 的所有,刪除前逐一詢問,可以使用如下命令:
rm *.log 或 rm -i *.log

思考題
思考一下下面這段代碼有什么作用。
myrm(){
D=/tmp/$(date "+%Y%m%d%H%M%S")
mkdir -p $D
mv "$@" $D && echo "moved to $D ok"
}
mv 命令
mv 命令功能是用來移動文件或更改文件名,是 Linux 系統(tǒng)下常用的命令,經(jīng)常用來備份文件或者目錄。 mv 命令根據(jù)第二個參數(shù)類型(目標是一個文件還是目錄),決定執(zhí)行將文件重命名或將其移至一個新的目錄中。當?shù)诙€參數(shù)類型是文件時,mv 命令完成文件重命名,此時,源文件只能有一個(也可以是源目錄名),它將所給的源文件或目錄重命名為給定的目標文件名。當?shù)诙€參數(shù)是已存在的目錄名稱時,源文件或目錄參數(shù)可以有多個,mv 命令將各參數(shù)指定的源文件均移至目標目錄中。 mv 命令是 move 的縮寫。
命令格式
mv [選項] 源文件或目錄 目標文件或目錄
常用參數(shù)

常用范例
例一:將文件shiyanlou.log重命名為zhou.log,可以使用如下命令:
mv shiyanlou.log zhou.log

例二:將文件zhou.log移動到 test 目錄下(test 目錄必須已經(jīng)存在,否則執(zhí)行重命名),可以使用如下命令:
mv zhou.log test


例三:將文件a.txt移動到 test1 目錄下,如果文件存在,覆蓋前會詢問是否覆蓋,可以使用如下命令:
mv -i a.txt test1
cp 命令
cp 命令用來復制文件或者目錄,是 Linux 系統(tǒng)中最常用的命令之一。一般情況下,shell 會設置一個別名,在命令行下復制文件時,如果目標文件已經(jīng)存在,就會詢問是否覆蓋,不管你是否使用 -i 參數(shù)。但是如果是在 shell 腳本中執(zhí)行 cp 時,沒有 -i 參數(shù)時不會詢問是否覆蓋。這說明命令行和 shell 腳本的執(zhí)行方式有些不同。 cp 命令是 copy 的縮寫。
命令格式
cp [選項] 源文件 目錄 cp [選項] -t 目錄 源文件
常用參數(shù)

常用范例
例一:對文件shiyanlou.log建立一個符號鏈接syl.log,可以使用如下命令:
cp -s shiyanlou.log syl.log
例二:將 test1 目錄下的所有文件復制到 test2 目錄下,覆蓋前詢問,可以使用如下命令:
cp -i test1/* test2

例三:將 test1 目錄下的最近更新的文件復制到 test2 目錄下,覆蓋前詢問,可以使用如下命令:
cp -iu test1/* test2

cat 命令
cat 命令的功能是將文件或標準輸入組合輸出到標準輸出。這個命令常用來顯示文件內容,或者將幾個文件連接起來顯示,或者從標準輸入讀取內容并顯示,它常與重定向符號配合使用。 cat 命令是 concatenate 的縮寫。
命令格式
cat [選項][文件]
常用參數(shù)

常用范例
例一:把shiyanlou.log的文件內容加上行號后輸入zhou.log這個文件里,可以使用如下命令:
cat -n shiyanlou.log > zhou.log

例二:把shiyanlou.log的文件內容加上行號后輸入zhou.log這個文件里,多行空行換成一行輸出,可以使用如下命令:
cat -ns shiyanlou.log > zhou.log

例三:將zhou.log的文件內容反向顯示,可以使用如下命令:
tac zhou.log

說明:tac 是將 cat 反寫過來,所以它的功能就跟 cat 相反,cat 是由第一行開始到最后一行連續(xù)顯示在屏幕上,而 tac 則是由最后一行開始到第一行反向在屏幕上顯示出來。
思考題
執(zhí)行下面命令會輸出什么。

nl 命令
nl 命令在 linux 系統(tǒng)中用來計算文件中的行號。nl 可以將輸出的文件內容自動加上行號,其默認的結果與 cat -n 有點不太一樣。 nl 可以將行號做較多的顯示設計,包括位數(shù)與是否自動補齊 0 等等的功能。
nl 命令是 number of lines 的縮寫。
命令格式
nl [選項][文件]
常用參數(shù)

常用范例
例一:把shiyanlou.log的文件內容加上行號后顯示,空行不加行號,可以使用如下命令:
nl -b t shiyanlou.log

例二:把shiyanlou.log的文件內容加上行號后顯示,行號分別在屏幕最左方、最右方不加 0 和最右方加 0 顯示,可以使用如下命令:
nl -n ln shiyanlou.log
nl -n rn shiyanlou.log
nl -n rz shiyanlou.log

例三:把shiyanlou.log的文件內容加上行號后顯示,行號在屏幕最右方加 0 顯示,行號欄目占位數(shù)為 3,可以使用如下命令:
nl -n rz -w 3 shiyanlou.log
