刪除元音字母(aeiou),保留前2-3個輔音字母,如
java
cd 命令,是 Change Directory 的縮寫,用來切換工做目錄。
cd 命令的基本格式以下:node
[root@localhost ~]# cd [相對路徑或絕對路徑]
[root@localhost ~]# cd #沒有加上任何路徑,也表明回到當前登陸用戶的主目錄
pwd 命令,是 Print Working Directory (打印工做目錄)的縮寫,功能是顯示用戶當前所處的工做目錄。
該命令的基本格式爲:程序員
[root@localhost ~]# pwd
ls 命令,list 的縮寫,是最多見的目錄操做命令,其主要功能是顯示當前目錄下的內容。
此命令的基本格式爲:web
[root@localhost ~]# ls [選項] 目錄名稱
注意,當 ls 命令不使用任何選項時,默認只會顯示非隱藏文件的名稱,並以文件名進行排序,同時會根據文件的具體類型給文件名配色(藍色顯示目錄,白色顯示通常文件)。
注意,Linux 系統中,隱藏文件不是爲了把文件藏起來不讓其餘用戶找到,而是爲了告訴用戶這些文件都是重要的系統文件,如非必要,不要亂動!svg
mkdir 命令,是 make directories 的縮寫,用於建立新目錄,此命令全部用戶均可以使用。
mkdir 命令的基本格式爲:學習
[root@localhost ~]# mkdir [-mp] 目錄名
rmdir(remove empty directories 的縮寫)命令用於刪除空目錄,
此命令的基本格式爲:spa
[root@localhost ~]# rmdir [-p] 目錄名
-p 選項用於遞歸刪除空目錄。
例:3d
[root@localhost ~]# rmdir -p lm/movie/jp/cangls
注意,此方式先刪除最低一層地目錄(這裏先刪除 cangls),而後逐層刪除上級目錄,刪除時也須要保證各級目錄是空目錄。
rmdir 命令的做用十分有限,由於只能刪除空目錄,因此一旦目錄中有內容,就會報錯。code
touch 命令不光能夠用來建立文件(當指定操做文件不存在時,該命令會在當前位置創建一個空文件),此命令更重要的功能是修改文件的時間參數(但當文件存在時,會修改此文件的時間參數)。
touch 命令的基本格式以下:xml
[root@localhost ~]# touch [選項] 文件名
選項:
能夠看到,touch 命令能夠只修改文件的訪問時間,也能夠只修改文件的數據修改時間,可是不能只修改文件的狀態修改時間。由於,不管是修改訪問時間,仍是修改文件的數據時間,對文件來說,狀態都會發生改變,即狀態修改時間會隨之改變(更新爲操做當前文件的真正時間)。
Linux 系統中,每一個文件主要擁有 3 個時間參數(經過 stat 命令進行查看),分別是文件的訪問時間、數據修改時間以及狀態修改時間:
ln命令:在文件之間創建連接(硬連接和軟連接)
要想說清楚 ln 命令,則必須先解釋下 ext 文件系統(Linux 文件系統)是如何工做的。咱們在前面講解了分區的格式化就是寫入文件系統,而咱們的 Linux 目前使用的是 ext4 文件系統。若是用一張示意圖來描述 ext4 文件系統,則能夠參考圖 1。
ext4 文件系統會把分區主要分爲兩大部分(暫時不提超級塊):小部分用於保存文件的 inode (i 節點)信息;剩餘的大部分用於保存 block 信息。
inode 的默認大小爲 128 Byte,用來記錄文件的權限(r、w、x)、文件的全部者和屬組、文件的大小、文件的狀態改變時間(ctime)、文件的最近一次讀取時間(atime)、文件的最近一次修改時間(mtime)、文件的數據真正保存的 block 編號。每一個文件須要佔用一個 inode。你們若是仔細查看,就會發現 inode 中是不記錄文件名的,那是由於文件名記錄在文件所在目錄的 block 中。
block 的大小能夠是 1KB、2KB、4KB,默認爲 4KB。block 用於實際的數據存儲,若是一個 block 放不下數據,則能夠佔用多個 block。例如,有一個 10KB 的文件須要存儲,則會佔用 3 個 block,雖然最後一個 block 不能佔滿,但也不能再放入其餘文件的數據。這 3 個 block 有多是連續的,也有多是分散的。
由此,咱們能夠知道如下 2 個重要的信息:
每一個文件都獨自佔用一個 inode,文件內容由 inode 的記錄來指向;
若是想要讀取文件內容,就必須藉助目錄中記錄的文件名找到該文件的 inode,才能成功找到文件內容所在的 block 塊;
瞭解了 Linux 系統底層文件的存儲狀態後,接下來學習 ln 命令。
ln 命令用於給文件建立連接,根據 Linux 系統存儲文件的特色,連接的方式分爲如下 2 種:
ln 命令的基本格式以下:
[root@localhost ~]# ln [選項] 源文件 目標文件
選項:
創建硬連接和軟連接很是簡單,那這兩種連接有什麼區別?它們都有什麼做用?這纔是連接文件最不容易理解的地方,咱們分別來說講。
ln建立硬連接
咱們再來創建一個硬連接文件,而後看看這兩個文件的特色。
[root@localhost ~]# touch test #創建源文件 [root@localhost ~]# ln /root/test /tmp/test-hard #給源文件創建硬連接文件 /tmp/test-hard [root@localhost ~]# ll -i /root/test /tmp/test-hard 262147 -rw-r--r-- 2 root root 0 6月 19 10:06 /root/test hard 262147 -rw-r--r-- 2 root root 0 6月 19 10:06 /tmp/test-hard #查看兩個文件的詳細信息,能夠發現這兩個文件的 inode 號是同樣的,"ll"等同於"ls -l"。
這裏有一件很奇怪的事情,咱們以前在講 inode 號的時候說過,每一個文件的 inode 號都應該是不同的。inode 號就至關於文件 ID,咱們在查找文件的時候,要先查找 inode 號,才能讀取到文件的內容。
可是這裏源文件和硬連接文件的 inode 號竟然是同樣的,那咱們在查找文件的時候,到底找到的是哪個文件呢?咱們來畫一張示意圖,如圖 2 所示。
在 inode 信息中,是不會記錄文件名稱的,而是把文件名記錄在上級目錄的 block 中。也就是說,目錄的 block 中記錄的是這個目錄下全部一級子文件和子目錄的文件名及 inode 的對應;而文件的 block 中記錄的纔是文件實際的數據。
當咱們查找一個文件,好比 /root/test 時,要通過如下步驟:
按照這個步驟,在給源文件 /root/test 創建了硬連接文件 /tmp/test-hard 以後,在 /root/ 目錄和 /tmp/ 目錄的 block 中就會創建 test 和 test-hard 的信息,這個信息主要就是文件名和對應的 inode 號。可是咱們會發現 test 和 test-hard 的 inode 信息竟然是同樣的,那麼,咱們不管訪問哪一個文件,最終都會訪問 inode 號是 262147 的文件信息。
這就是硬連接的原理。硬連接的特色以下:
硬連接的限制比較多,既不能跨文件系統,也不能連接目錄,並且源文件和硬連接文件之間除 inode 號是同樣的以外,沒有其餘明顯的特徵。這些特徵都使得硬連接並不經常使用,你們有所瞭解就好。
ln建立軟連接
軟連接也稱做符號連接,相比硬連接來說,軟連接就要經常使用多了。咱們先創建一個軟連接,再來看看軟連接的特色。
[root@localhost ~]# touch check #創建源文件 [root@localhost ~]# ln -s /root/check /tmp/check-soft #創建軟連接文件 [root@localhost ~]# ll -id /root/check /tmp/check-soft 262154 -rw-r--r-- 1 root root 0 6月 19 11:30 /root/check 917507 lrwxrwxrwx 1 root root 11 6月 19 11:31 /tmp/ check-soft -> /root/check #軟連接和源文件的 inode 號不一致,軟連接經過 -> 明顯地標識出源文件的位置 #在軟連接的權限位 lrwxrwxrwx 中,l 就表明軟連接文件
再強調一下,軟連接的源文件必須寫絕對路徑,不然創建的軟連接文件就會報錯,沒法正常使用。
軟連接的標誌很是明顯,首先,權限位中"l"表示這是一個軟連接文件;其次,在文件的後面經過 「->」 顯示出源文件的完整名字。因此軟連接比硬連接的標誌要明顯得多,並且軟連接也不像硬連接的限制那樣多,好比軟連接能夠連接目錄,也能夠跨分區來創建軟連接。
軟連接徹底能夠看成 Windows 的快捷方式來對待,它的特色和快捷方式同樣,咱們更推薦你們使用軟連接,而不是硬連接。
你們在學習軟連接的時候會有一些疑問:Windows 的快捷方式是因爲源文件放置的位置過深,不容易找到,創建一個快捷方式放在桌面,方便查找,那 Linux 的軟連接的做用是什麼呢?
筆者我的以爲,軟連接主要是爲了照顧管理員的使用習慣。好比,有些系統的自啓動文件 /etc/rc.local 放置在 /etc 目錄中,而有些系統卻將其放置在 /etc/rc.d/rc.local 中,那麼幹脆對這兩個文件創建軟連接,不論你習慣操做哪個文件,結果都是同樣的。
若是你比較細心,則應該已經發現軟連接和源文件的 inode 號是不一致的,咱們也畫一張示意圖來看看軟連接的原理,如圖 3 所示。
軟連接和硬連接在原理上最主要的不一樣在於:硬連接不會創建本身的 inode 索引和 block(數據塊),而是直接指向源文件的 inode 信息和 block,因此硬連接和源文件的 inode 號是一致的;而軟連接會真正創建本身的 inode 索引和 block,因此軟連接和源文件的 inode 號是不一致的,並且在軟連接的 block 中,寫的不是真正的數據,而僅僅是源文件的文件名及 inode 號。
咱們來看看訪問軟連接的步驟和訪問硬連接的步驟有什麼不一樣。
經過這個過程,咱們就能夠總結出軟連接的特色(軟連接的特色和 Windows 中的快捷方式徹底一致)。
cp 命令,主要用來複制文件和目錄,同時藉助某些選項,還能夠實現複製整個目錄,以及比對兩文件的新舊而予以升級等功能。
cp 命令的基本格式以下:
[root@localhost ~]# cp [選項] 源文件 目標文件
選項:
須要注意的是,源文件能夠有多個,但這種狀況下,目標文件必須是目錄才能夠。
-d: 若是源文件爲軟連接(對硬連接無效),則複製出的目標文件也爲軟連接,相似Windows中對快捷方式進行復制;
若是在複製軟連接文件時不使用 「-d」 選項,則 cp 命令複製的是源文件,而不是軟連接文件;
「-d」 選項對硬連接是無效的。
rm 是強大的刪除命令,它能夠永久性地刪除文件系統中指定的文件或目錄。在使用 rm 命令刪除文件或目錄時,系統不會產生任何提示信息。此命令的基本格式爲:
[root@localhost ~]# rm[選項] 文件或目錄
選項:
注意,rm 命令是一個具備破壞性的命令,由於 rm 命令會永久性地刪除文件或目錄,這就意味着,若是沒有對文件或目錄進行備份,一旦使用 rm 命令將其刪除,將沒法恢復,所以,尤爲在使用 rm 命令刪除目錄時,要慎之又慎。
雖然 「-rf」 選項是用來刪除目錄的,可是刪除文件也不會報錯。因此,爲了使用方便,通常不管是刪除文件仍是刪除目錄,都會直接使用 「-rf」 選項。
mv 命令(move 的縮寫),既能夠在不一樣的目錄之間移動文件或目錄,也能夠對文件和目錄進行重命名。
該命令的基本格式以下:
[root@localhost ~]# mv 【選項】 源文件 目標文件
選項:
須要注意的是,同 rm 命令相似,mv 命令也是一個具備破壞性的命令,若是使用不當,極可能給系統帶來災難性的後果。
更名。
若是源文件和目標文件在同一目錄中,那就是更名。例如:
[root@localhost ~]# mv bols lmls #把 bols 更名爲 lmls
目錄也能夠按照一樣的方法更名。