文件和目錄列表
- ls -F 區(qū)分文件和目錄,目錄名稱后面帶了(/) ,會(huì)在可執(zhí)行文件后面帶上(*),類似.publish.sh的文件。
- ls -a 顯示所有文件目錄,包括隱藏。
- ls -R 遞歸選項(xiàng)。列出了當(dāng)前目錄下包含的子目錄中的文件。
ls -F -R ----> ls -FR
- ls -l 顯示附加信息。

顯示下述信息:
- 文件類型:(d)開(kāi)頭表示目錄,(-)開(kāi)頭表示文件,字符型文件(c),塊設(shè)備(b)
- 文件權(quán)限:r:read w:write x:execute 可執(zhí)行
- 文件的硬鏈接總數(shù)
- 文件屬主的用戶名 zhanglinyu
- 文件屬組的組名 stafff
- 文件大小 以字節(jié)為單位
- 文件的上次修改時(shí)間
- 文件名或者目錄名
- man ls
能看到可用來(lái)修改ls命令輸出的參數(shù)。 對(duì)于其他的一些命令同樣可以查看,不只是ls。 - 過(guò)濾輸出列表
ls src
ls -l src //指定文件名作為過(guò)濾器
//如果不知道確切的文件名,在過(guò)濾器中使用星號(hào)和問(wèn)號(hào)被稱為擴(kuò)展匹配,指的是通配符進(jìn)行模式匹配過(guò)程。
ls -l sr*
ls -l s?
//(?)代表一個(gè)字符
//(*)代表0個(gè)或者多個(gè)字符
ls -l rout[er] //匹配出 routr/route
//中括號(hào)表示一個(gè)字符位置并給出多個(gè)可能的選擇。也可以指定字符范圍 [a-i]/ [!a]
處理文件
- 創(chuàng)建文件
touch test_one
- 文件復(fù)制
cp 源對(duì)象 目標(biāo)對(duì)象
cp test_one test_two
cp -i test_one test_two // -i 如果后者已經(jīng)存在會(huì)提示是否覆蓋
man cp可以查看cp命令的所有可用參數(shù)
cp -R 可以用它在一條命令中遞歸地復(fù)制整個(gè)目錄的內(nèi)容
- 制表鍵自動(dòng)補(bǔ)全 mac上的tab鍵同等功能。
- 鏈接文件
鏈接文件是Linux文件系統(tǒng)的一個(gè)優(yōu)勢(shì),如果需要在系統(tǒng)上維護(hù)同一份文件的兩個(gè)或者多個(gè)副本,除了保存多份單獨(dú)的物理副本之外,還可以采用保存一份物理副本和多個(gè)虛擬副本的方法。
這種虛擬的副本就稱為鏈接。鏈接是目錄中指向真實(shí)位置的占位符。在Linux中有兩種不同的文件鏈接:
- 符號(hào)鏈接
符號(hào)鏈接就是一個(gè)實(shí)實(shí)在在的文件,它指向存放在虛擬目錄結(jié)構(gòu)中的某個(gè)地方的另一個(gè)文件。這兩個(gè)通過(guò)符號(hào)鏈接在一起的文件,彼此內(nèi)容并不相同。要為一個(gè)文件創(chuàng)建符號(hào)鏈接,原始文件必須事先存在。然后可以使用ln命令以及-s選項(xiàng)來(lái)創(chuàng)建符號(hào)鏈接。
ln -s test_one s1_test_one

注意:符號(hào)鏈接的文件大小與源文件大小不一樣。因?yàn)殒溄游募皇侵赶蛟次募?。?nèi)容并不同。
另一種證明鏈接文件是獨(dú)立文件的方法是查看inode編號(hào)。文件或者目錄的inode編號(hào)是用于唯一標(biāo)識(shí)的數(shù)字,這個(gè)數(shù)字由內(nèi)核分配給文件系統(tǒng)中每一個(gè)對(duì)象。查看inode編號(hào),可以使用ls的-i參數(shù)。
ls -i *test_one //

- 硬鏈接
硬件鏈接會(huì)創(chuàng)建獨(dú)立的虛擬文件。其中包含了源文件的信息和位置。但它們從根本上而已是同一個(gè)文件。引用硬件鏈接文件等同于引用了源文件。要為一個(gè)文件創(chuàng)建硬件鏈接,原始文件必須事先存在。只不過(guò)使用ln的時(shí)候不需要加額外的參數(shù)。
ln test_one s2_test_one

可以看見(jiàn) 硬件鏈接的inode編碼和源文件的一樣 所以其實(shí)是通一個(gè)文件。
說(shuō)明:只能對(duì)處于同一個(gè)存儲(chǔ)媒體的文件創(chuàng)建硬鏈接。要想在不同存儲(chǔ)媒體的文件之間的文件之間創(chuàng)建鏈接,只能使用符號(hào)鏈接。
- 重命名文件(移動(dòng))
在Linux中,重命名文件稱為移動(dòng),mv命令可以將文件和目錄移動(dòng)到另外一個(gè)位置或重新命名。
mv 重命名
mv test_onea test_oneb //重命名

只影響文件名,其他都不變。
mv 可以用來(lái)移動(dòng)文件:
創(chuàng)建test文件,將test_oneb移動(dòng)下面
mv test_oneb ./test/ 移動(dòng)到當(dāng)前目錄下的test文件中
mv test_oneb ./test/test_oneb_1 //移動(dòng)并修改名稱 改變的只是位置和名稱

如上圖 文件信息也不會(huì)改變
- 刪除文件
rm -i test_one //-i參數(shù)就是一個(gè)提示操作 bash shell沒(méi)有回收站或者垃圾箱,一旦刪除,就無(wú)法再找回。
rm -f test_one //強(qiáng)制刪除文件
rm -rf test //遞歸強(qiáng)制刪除目錄
處理目錄
在Linux中,有些命令(比如cp命令)對(duì)文件和目錄都有效,而有些只對(duì)目錄有效。
- 創(chuàng)建目錄 mkdir
mkdir New_dir
ls -ld New_dir // 查看目錄用 -ld
目錄長(zhǎng)列表是以d開(kāi)頭,表示不是一個(gè)文件而是一個(gè)目錄
批量創(chuàng)建目錄需要加參數(shù)-p
mkdir -p New_dir/Sub_dir/Under_dir
ls -R New_dir //查看整個(gè)目錄

- 刪除目錄 rmdir
mkdir one_file
rmdir one_file //如果one_file目錄下面沒(méi)有東西則可以直接刪除成功。如果有東西則需要先將目錄下面的文件刪除,然后才能使用rmdir命令。
rmdir 沒(méi)有 -i選項(xiàng)來(lái)詢問(wèn)是否刪除目錄。還有一種方式刪除非空目錄。使用rm,刪除其中的文件,再刪除目錄本身。
rm -r New_dir 直接刪除
rm -ri New_dir 詢問(wèn)刪除
注意:對(duì)于rm命令而言,-r和-R參數(shù)的效果是一樣的,-R參數(shù)同樣可以遞歸刪除目錄中的文件。shell命令很少會(huì)就相同功能采用不同大小寫的參數(shù)。
查看文件內(nèi)容
- 查看文件類型

當(dāng)我們?cè)趖est文件里面寫入 '1222ww22',執(zhí)行
file test : ASCII text, with no line terminators
當(dāng)我們?cè)趖est文件里面寫入 '我的',執(zhí)行
file test : UTF-8 Unicode text, with no line terminators
- 查看整個(gè)文件,在Linux上有3個(gè)不同的命令可以完成這個(gè)任務(wù)
cat test.txt //會(huì)顯示里面的內(nèi)容
cat -n test.txt //會(huì)把行號(hào)也帶上
cat -b test.txt//只給有文本

- more 命令
cat 命令的主要缺陷是:一旦運(yùn)行,你就無(wú)法控制后面的操作。為了解決這個(gè)問(wèn)題,才有了more命令。more命令會(huì)顯示文本文件的內(nèi)容,但會(huì)在顯示每頁(yè)的數(shù)據(jù)之后停下來(lái)。
簡(jiǎn)單來(lái)說(shuō)就是cat會(huì)將內(nèi)容一次性顯示出來(lái),而more會(huì)進(jìn)行分頁(yè)。
- less命令
more 命令只支持文本文件中的基本移動(dòng),如果要更多高級(jí)的功能,可以試試less命令。具體執(zhí)行man less看看相關(guān)。 - 查看部分文件
tail test.txt //默認(rèn)顯示最后10行
tail -n 2 test.txt //使用-n修改 顯示最后兩行
tail -2 text.txt//同上
-f 參數(shù)是tail命令一個(gè)突出的特征,它允許你在其他進(jìn)程使用該文件的時(shí)候查看文件的內(nèi)容,tail命令會(huì)保持活躍狀態(tài),并不斷顯示添加到文件中的內(nèi)容,這是實(shí)時(shí)監(jiān)控系統(tǒng)日志的絕妙方式
- head 顯示前面
head test.txt //默認(rèn)顯示前面10行
head -n 2 test.txt //使用-n修改 顯示前面兩行
head -2 text.txt//同上
文件的開(kāi)頭部分一般不會(huì)改的,所以不支持-f 特性。