linux常用檔案命令
一、選項和引數的區別
在經過上一次的系統安裝後我們已經成功登陸,登陸LInux後,我們就可以在#或$符後面去輸入命令,有的時候命令後面還會跟著“選擇“(英文名:options)或“引數”(英文名:agruments)。即Linux中的命令格式為:
command [options] [arguments] //中括號表示可選的,即有些命令不需要選項也不需要引數,但有的命令在執行時需要多個選項或引數。
options(選項):選項是調整命令執行行為的開關,即,選項不同決定了命令的顯示結果不同。
選項分為長選項和短選項。
短選項:例如-h,-l,-s等。(- 後面接單個字母)
1、短選項都是使用 ‘-’ 引導,當有多個短選項時,各選項之間使用空格隔開
2、有些命令的短選項可以組合,例如 -l -h 可以組合為-lh
3、有些命令的短選項可以不帶 - ,這通常叫做BSD風格的選項。例如ps aux
4、有些短選項需要帶選項本身的引數,例如 -L 512M
長選項:例如 --help,--list 等。(-- 後面接單詞)
1、長選項都是完整的單詞
2、長選項通常不能組合
3、如果需要加引數,長選項的引數通常需要 "="
agruments(引數):
引數是指命令的作用物件。
例如 ls 命令,不加引數的時候顯示是當前目錄,也可以加引數,例如 ls /dev,則輸出的結果是 /dev 目錄。
小結一下:
選項是限定結果的顯示結果
短選項( - ):只能修飾一個字元的選項,例如:ls -a,當然多個短選項可以合併,例如tar -cvf
長選項( -- ):既可以修飾單個字元,也可以修飾一個單詞,例如:chkconfig --list,chkconfig --add xxx,service --status-all
引數是指命令的作用物件
我這裡簡單說明了選項和引數的區別,但具體Linux中哪條命令有哪些選項和引數,需要我們靠經驗積累或者檢視Linux的幫助了(man幫助命令)。
二、許可權管理:UNIX許可權:U(rwx)g(rwx)0(rwx)
r --可讀許可權
w --可寫許可權
x --可執行許可權
也可以用數字來表示 :
r=4 w=2 x=1
例:rwx = 7(4+2+1) ; rw = 6 (4+2) ; r-w = 5 (4+0+1) ; r-- = 4 (4+0+0) ; --x = 1 (0+0+1);
示例:
(1)# chmod 777 test1 --賦予test1可讀可寫可執行許可權(所有許可權)
(2)# chmod 755 test1 --賦予test1使用者所有許可權,組可讀可執行許可權,其他使用者可讀可執行許可權
三、Linux入門基礎命令--檔案和目錄常用操作命令
在學習之前我們得先了解一下絕對路徑和相對路徑這兩個概念
絕對路徑:
在Linux中,絕對路徑是從/(即根目錄)開始的,例如 /usr、/etc/X11。如果一個路徑是從 / 開始的,它一定是絕對路徑。舉幾個示例
[[email protected] ~]# pwd --判斷當前使用者所在的位置,也就是說他現在到底位於哪裡
/root --使用者當前位於/root
[[email protected] doc]# cd /usr/share/doc/ --以絕對路徑方式進入/usr/share/doc目錄下
[[email protected] doc]# pwd --判斷使用者當前所在的位置
/usr/share/doc --使用者位於/usr/share/doc,看來已經達到目的了
相對路徑:
是以 . 或 .. 開始的, .戶當前操作所在的位置,而 .. 表示上級目錄,在路徑中, . 表示使用者當前所在的目錄,而 .. 上級目錄,要把 . 和 .. 當做目錄來看,這裡也舉幾個例子
[[email protected] ~]# pwd --通過pwd來判斷當前使用者所在的位置
/root --得出目錄處於/root目錄中;
[[email protected] ~]# cd . --我們進入 .
[[email protected] ~]# pwd --判斷當前使用者所在的位置
/root --得出在root目錄中
[[email protected] ~]# cd .. --我們切入/root的上級目錄
[[email protected] /]# pwd --判斷當前使用者所在的位置
/ --使用者當前處於 /(根目錄)中
下面來講講Linux中檔案和目錄中常用命令的【命令作用】,【命令語法】,【常用選項】,【引數說明】和【命令示例】
1.ls
【命令作用】
列出檔案和目錄的內容
【命令語法】
ls [選項] [引數]
【常用選項】
-l --以長格式顯示,列出檔案的詳細資訊,如建立者,建立時間,檔案的讀寫許可權列表等等
-L --列出檔案的連結名,Link(連結)
-A --列出除了 "." 和 ".."以外的檔案
-a --列出檔案下所有的檔案,包括以 "." 和 ".."開頭的隱藏檔案 (Linux下檔案隱藏檔案是以 . 開頭的,如果存在 .. 代表存在著父目錄)
-d --列出目錄本身而非目錄內的檔案,通常要與-l一起使用
-i --顯示每個檔案的inode號
-R --同時列出所有子目錄層,與-l相似,只是不顯示出檔案的所有者,相當於程式設計中的“遞迴”實現
-t --按照時間進行檔案的排序,Time(時間)
-F --在每一個檔案的末尾加上一個字元說明該檔案的型別。"@" 表示符號連結、"l" 表示FIFOS、"/" 表示目錄、"=" 表示套接字。
-s --在每個檔案的後面打印出檔案的大小,size(大小)
-S --以檔案的大小進行排序
【引數說明】
目錄或檔案 (需要注意絕對路徑和相對路徑,詳解請看第二部分開頭)
【命令示例】
# ls -l --以長格式列出當前目錄中的檔案及目錄
2.pwd
【命令作用】
檢視”當前工作目錄“的完整路徑
【命令語法】
pwd [選項]
【常用選項】
無
【引數說明】
一般情況下不帶任何引數
【命令示例】
# pwd --檢視預設工作目錄的完整路徑
3.cd
【命令作用】
顯示當前目錄的名稱,或更改當前的目錄(開啟特定目錄)
【命令語法】
cd [選項] [引數]
【常用選項】
無
【引數說明】
切換使用者當前目錄,例如 . 表示當前目錄 .. 表示上一級目錄 ,~ 表示家目錄 / 表示根目錄
【命令示例】
[[email protected] ~]# cd --切換到前期使用者家目錄
[[email protected] ~]# cd . --切換到當前目錄
[[email protected] ~]# cd .. --切換到當前目錄上一級目錄
[[email protected] /]# cd ~ --切換到使用者家目錄
[[email protected] ~]# cd / --切換到根目錄下
4.touch
【命令作用】
建立空檔案或檔案時間戳修改
【命令語法】
touch [選項] [引數]
【常用選項】
-a --修改檔案的存取時間
-m --修改檔案的變動時間
-t --使用指定的日期時間,而非現在的時間
-c --如果要修改的檔案不存在,此選項使touch不去建立它
-d --使用時間值 time代替指定檔案的戳記值.可以包含月份名,時區名以及`am'和 `pm'等等
-f --此引數將忽略不予處理,僅負責解決BSD版本touch指令的相容性問題
-r --把指定文件或目錄的日期時間,統統設成和參考文件或目錄的日期時間相同
-t 使用指定的日期時間,而非現在的時間
【引數說明】
建立檔案的檔名
【命令示例】
# touch /home123 --在home目錄下建立檔案123 (這是一個絕對路徑)
5.echo
【命令作用】
在顯示器上顯示一段文字,一般起到一個提示的作用
補充說明:echo會將輸入的字串送往標準輸出。輸出的字串間以空白字元隔開, 並在最後加上換行號。
【命令語法】
echo [選項] [引數]
【常用選項】
-e --允許下面列出的加反斜線轉義的字元進行解釋
\n --換行符
\f --換頁符
\t --水平製表符
\v --縱向製表符
【引數說明】
需要列印的內容或變數
【命令示例】
(1)文字的直接輸入:
# echo 'Welcome To WCZY'
(2) 輸出變數的值:假設定義一個變數:
# bl="Welcome To WCZY"
# echo $bl
解釋:bl是定義的變數名,=號後面是賦值,字串需要用“”括起來。$後面直接跟上變數名即可
(3)echo 後跟單雙引號的區別:
解釋:echo後的單引號表示強引用,單引號裡面是什麼就輸出什麼,而雙引號是弱引用,變數的值會代替變數名輸出。
(4)選項中加入 -e ,轉義字元可用:
\t:插入製表符,即跳格顯示
echo -e “Hello Linux\tHello World”
不加 -e 的對比,如下:
echo "Hello Linux\tHello World"
6.mkdir
【命令作用】
建立指定的名稱的目錄,要求建立目錄的使用者在當前目錄中具有寫許可權,並且指定的目錄名不能是當前目錄中已有的目錄。
【命令語法】
mkdir [選項] [引數]
【常用選項】
-p --可以是一個路徑名稱。此時若路徑中的某些目錄尚不存在,加上此選項後,系統將自動建立好那些尚不存在的目錄,即一次可以建立多個目錄(遞迴)
-v --每次建立新目錄都顯示資訊
-m --設定許可權<模式> (類似 chmod),而不是 rwxrwxrwx 減 umask
【引數說明】
需要建立的目錄
【命令示例】
(1)建立一個空目錄
# mkdir test1
(2)遞迴建立多個目錄
# mkdir -p test2/test22
(3)建立許可權為777的目錄
# mkdir -m 777 test3
test3 的許可權為rwxrwxrwx
(4)建立新目錄都顯示資訊
# mkdir -v test4
7.cp
【命令作用】
複製檔案或者目錄
【命令語法】
cp [選項] 源 目標
【常用選項】
-f --如果目標檔案無法開啟則將其移除並重試(當 -n 選項存在時則不需再選此項)
-n --不要覆蓋已存在的檔案(使前面的 -i 選項失效)
-i --覆蓋前詢問(使前面的 -n 選項失效)
-p --保持指定的屬性(預設:模式,所有權,時間戳),如果可能保持附加屬性:環境、連結、xattr 等
-P --不跟隨原始檔中的符號連結
-R,-r --複製目錄及目錄內的所有專案
-v --顯示過程 (通常與-r一起使用)
-s --對原始檔建立符號連線,而非複製檔案
【引數說明】
原始檔
目標檔案
【命令示例】
(1)將home目錄中的abc檔案複製到根目錄下
# cp /home/abc /
(2)目標檔案存在時,會詢問是否覆蓋
# cp /home/abc /
解釋:目標檔案存在時,會詢問是否覆蓋。這是因為cp是cp -i的別名。目標檔案存在時,即使加了-f標誌,也還會詢問是否覆蓋。
(3)複製整個目錄
當目標目錄不存在時
解釋:注意目標目錄存在與否結果是不一樣的。目標目錄存在時,整個源目錄被複制到目標目錄裡面
(4)複製的abc檔案建立一個連結檔abc.log
# cp -s abc abc.log
8.mv
【命令作用】
移動檔案或者將檔案改名(move (rename) files),經常用來備份檔案或者目錄。
【命令語法】
mv [選項] 原始檔或目錄 目標檔案或目錄
【常用選項】
-b --若需覆蓋檔案,則覆蓋前先行備份
【引數說明】
原始檔
目標檔案
【命令示例】
(1)檔案改名
# mv abc qwe
解釋:將檔案abc重新命名為qwe
(2)移動檔案
# mv test3 test4
9.rmdir
【命令作用】
刪除空目錄
【命令語法】
rmdir [選項] 目錄
【常用選項】
-p --遞迴刪除目錄dirname,當子目錄刪除後其父目錄為空時,也一同被刪除。如果整個路徑被刪除或者由於某種原因保留部分路徑,則系統在標準輸出上顯示相應的資訊。
-v --顯示指令執行過程
【引數說明】
需要刪除的目錄
【命令示例】
(1)不能刪除非空目錄
# rmdir bus
(2)遞迴刪除當前目錄下的1/2/3/4/5/6目錄
# rmdir -pv 1/2/3/4/5/6
10.rm
【命令作用】
刪除一個目錄中的一個或多個檔案或目錄,它也可以將某個目錄及其下的所有檔案及子目錄均刪除。對於連結檔案,只是刪除了連結,原有檔案均保持不變。
rm是一個危險的命令,使用的時候要特別當心,尤其對於新手,否則整個系統就會毀在這個命令(比如在 /(根目錄)下執行rm * -rf)。所以,我們在執行rm之前最好先確認一下在哪個目錄,到底要刪除什麼東西,操作時保持高度清醒的頭腦。
【命令語法】
rm [選項] 檔案
【常用選項】
-f --忽略不存在的檔案,從不給出提示
-r --指示rm將引數中列出的全部目錄和子目錄均遞迴地刪除。
【引數說明】
需要刪除的檔案或目錄
【命令示例】
(1)刪除某個檔案時,系統會先詢問是否刪除
# rm 檔名
解釋:輸入rm qwe命令後,系統會詢問是否刪除,輸入y後就會刪除檔案,不想刪除檔案則輸入n。
(2)強制刪除某個檔案
# rm-rf abc.log
解釋:強制刪除檔案abc.log
11.nano
【命令作用】
文字編輯器
【命令語法】
nano [選項] [+行,列] [引數]
【常用選項】
無
【引數說明】
檔名
【命令示例】
# nano abc 編輯名為abc的文字
12.vi/vim
【命令作用】
文字編輯器,若檔案存在則是編輯,若不存在則是建立並編輯
【命令語法】
vim [選項] [引數]
【常用選項】
無
【引數說明】
檔名
【命令示例】
# vim abc 編輯名為abc的文字
13.shred
【命令作用】
用隨機值重寫覆蓋檔案,讓檔案無法恢復
【命令語法】
shred [選項] 檔案 [引數]
【常用選項】
-n --自行指定重寫覆蓋的次數,預設為三次
-s --覆蓋指定的位元組數(可接受K、M、G等等的單位)
-u --在重寫覆蓋後截斷和刪除檔案
-v --顯示過程
-z --新增一個帶有0的最終覆蓋,以隱藏分解
【引數說明】
指定要覆蓋的檔名
【命令示例】
# shred -n 3 -u app 覆蓋app檔案三次,並刪除
14.cat
【命令作用】
連線檔案並在標準輸出上輸出。這個命令常用來顯示檔案內容,或者將幾個檔案連線起來顯示,或者從標準輸入讀取內容並顯示,它常與重定向符號配合使用。
【命令語法】
cat [選項] [引數]
【常用選項】
-E --在每行結束顯示 $
-n --給所有輸出行編號
-v --使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
【引數說明】
檔名
【命令示例】
(1)將123和456的內容輸入到789裡
# cat 123 456 > 789
(2)顯示123檔案內容和換行符
# cat -E 123
(3)顯示123檔案內容
# cat 123
(4)顯示123檔案內容和行號
# cat -n 123
15.nl
【命令作用】
計算檔案中行號。nl 可以將輸出的檔案內容自動的加上行號!其預設的結果與 cat -n 有點不太一樣, nl 可以將行號做比較多的顯示設計,包括位數與是否自動補齊 。 等等的功能。
【命令語法】
nl [選項] [引數]
【常用選項】
-b a --表示不論是否為空行,也同樣列出行號(類似 cat -n)
-b t --如果有空行,空的那一行不要列出行號(預設值)
【引數說明】
檔名
【命令示例】
(1)用nl列出/(根目錄)123檔案裡的內容
# nl /123
(2)用 nl 列出/123檔案的內容,空本行也加上行號
# nl -b a /123
16.tac
【命令作用】
倒序檢視指定檔案內容
【命令語法】
tac [選項] [引數]
【常用選項】
無
【引數說明】
檔名
【命令示例】
# tac /123 --倒敘檢視/123檔案內容
17.more
【命令作用】
類似 cat ,cat命令是整個檔案的內容從上到下顯示在螢幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能 。more命令從前向後讀取檔案,因此在啟動時就載入整個檔案。
【命令語法】
more [選項] [引數]
【常用選項】
無
【引數說明】
檔名
【命令示例】
(1)# more [檔名] --分屏檢視指定檔案內容
(2)顯示檔案中從第3行起的內容
# more +3 /123
(3)從檔案中查詢第一個出現"1a"字串的行,並從該處前兩行開始顯示輸出
# more +/1a /123
(4)列一個目錄下的檔案,由於內容太多,我們應該學會用more來分頁顯示。這得和管道 | 結合起來
# ls -l | more -7
解釋:每頁顯示7個檔案資訊,按 Ctrl+F 或者 空格鍵 將會顯示下5條檔案資訊。
18.less
【命令作用】
工具也是對檔案或其它輸出進行分頁顯示的工具,應該說是Linux正統檢視檔案內容的工具,功能極其強大。less 的用法比起 more 更加的有彈性。在 more 的時候,我們並沒有辦法向前面翻, 只能往後面看,但若使用了 less 時,就可以使用 [pageup] [pagedown] 等按鍵的功能來往前往後翻看檔案,更容易用來檢視一個檔案的內容!除此之外,在 less 裡頭可以擁有更多的搜尋功能,不止可以向下搜,也可以向上搜。
【命令語法】
less [選項] [引數]
【常用選項】
無
【引數說明】
檔名
【命令示例】
(1)# less 123 --檢視檔案123內容
(2)ps檢視程序資訊並通過less分頁顯示
# ps -ef |less
(3)瀏覽多個檔案
# less 123 456
輸入 :n 後,切換到 456;輸入 :p 後,切換到123
*附加備註*
1.全屏導航
ctrl + F --向前移動一屏
ctrl + B --向後移動一屏
ctrl + D -- 向前移動半屏
ctrl + U -- 向後移動半屏
2.單行導航
j -- 向前移動一行
k -- 向後移動一行
3.其它導航
G -- 移動到最後一行
g -- 移動到第一行
q / ZZ -- 退出 less 命令
4.其它有用的命令
v -- 使用配置的編輯器編輯當前檔案
h -- 顯示 less 的幫助文件
&pattern -- 僅顯示匹配模式的行,而不是整個檔案
5.標記導航
當使用 less 檢視大檔案時,可以在任何一個位置作標記,可以通過命令導航到標有特定標記的文字位置:
ma -- 使用 a 標記文字的當前位置
'a -- 導航到標記 a 處
19.head
【命令作用】
head 與 tail 就像它的名字一樣的淺顯易懂,它是用來顯示開頭或結尾某個數量的文字區塊,head 用來顯示檔案的開頭至標準輸出中,而 tail 想當然爾就是看檔案的結尾。
【命令語法】
head [選項] [引數]
【常用選項】
-q --隱藏檔名
-v --顯示檔名
-c --<位元組> 顯示位元組數
-n --<行數> 顯示的行數
-# --顯示檔案開頭#行內容
【引數說明】
檔名
【命令示例】
(1)#head 123 --顯示檔案123前十行內容
(2)#head -12 123 --顯示檔案123前十二行內容
(3)# head -n -5 123 --顯示檔案123除了最後5行的全部內容
(4)# head -c -7 123 --顯示檔案123的除了最後7個位元組以外的內容
20.tail
【命令作用】
從指定點開始將檔案寫到標準輸出.使用tail命令的-f選項可以方便的查閱正在改變的日誌檔案,tail -f filename會把filename裡最尾部的內容顯示在螢幕上,並且不但重新整理,使你看到最新的檔案內容.
【命令語法】
tail [必要引數] [選擇引數] [檔案]
【常用選項】
-f -- 跟蹤顯示檔案新追加的內容
-# --顯示末尾到#號的內容
-n --顯示行數
【引數說明】
檔名
【命令示例】
(1)迴圈檢視檔案內容
# tail -f 888 --ping 192.168.0.1 > 888 & //在後臺ping遠端主機。並輸出檔案到888;這種做法也使用於一個以上的檔案監視。用Ctrl+c來終止
(2)從第5行開始顯示檔案
# tail -n +5 123 --從第五行開始顯示檔案123的內容
(3)顯示檔案末尾內容
# tail -n 5 123 --從後五行開始顯示檔案123的內容
21.grep
【命令作用】
文字過濾,模糊查詢
【命令語法】
grep [選項] [需要查詢的內容] [引數]
【常用選項】
--color=auto --對匹配到的文字著色顯示
-v --顯示不能夠被pattern匹配到的行
-i --忽略字元大小寫
-n --顯示行號
-q --靜默模式,不輸出任何資訊;
-A # --after, 後#行
-B # --before, 前#行
-C # --context, 前後各#行
【引數說明】
檔名
【命令示例】
(1)# grep a /123 --在根目錄下的檔案123中查詢含字母a的行
(2)# grep -i a /123 --在根目錄下的檔案123中查詢含a或者A的行
(3)# grep -n a /123 --在根目錄下的檔案123中查詢含a的行,並顯示行號
(4)# grep -v a /123 --在根目錄下的檔案123中查詢不含a的行
22.cut
【命令作用】
剪下
【命令語法】
cut [選項] [檔案]
【常用選項】
-d --指明分隔符 (通常與-f一起使用)
-f --指定區域
【引數說明】
檔名
【命令示例】
# cut -d : -f 1,4,7 /etc/passwd --顯示etc目錄下passwd檔案的第1,4,7行
23.sort
【命令作用】
對檔案進行排序
【命令語法】
sort [選項] [引數]
【常用選項】
-f --忽略字元大小寫
-r --逆序
-t DELIMITER --欄位分隔符
-k # --以指定欄位為標準排序
-n --以數值大小進行排序
-u --uniq,排序後去重
【引數說明】
檔名
【命令示例】
(1)# sort -r /123 以倒序的方式顯示根目錄下123檔案內容
(2)# sort -k 3 -t : -n /etc/passwd 以etc目錄中的passwd檔案中的第三列為主,按數值方式排序
24.tr
【命令作用】
字元替換和刪除(通常接在管道符後面使用)
【命令語法】
tr [選項] [引數]
【常用選項】
-d --刪除檔案中的指定字元
【引數說明】
源字串
【命令示例】
(1)# echo "HELLO" | tr 'A-Z' 'a-z' --將大寫字母轉成小寫字母
(2)# echo "HELLO" | tr -d 'L,H' --刪除L和H這兩個字元
25.wc
【命令作用】
統計指定檔案中的位元組數、字數、行數,並將統計結果顯示輸出。
【命令語法】
wc [選項] 檔案
【常用選項】
-c --統計位元組數
-w --統計字數。一個字被定義為由空白、跳格或換行字元分隔的字串
-l --統計行數
-m --統計字元數。這個標誌不能與 -c 標誌一起使用
【引數說明】
檔名
【命令示例】
(1)# wc -l /123 --檢視123有多少行
(2)# wc -w /123 --檢視123中有多少個字數
(3)# wc -c /123 --檢視檔案123的大小是多少
(4)# ls -l | wc -l --統計當前目錄下的檔案數
26.uniq
【命令作用】
刪除排序檔案中的重複行,通常與sort一起使用
【命令語法】
uniq [選項] [引數]
【常用選項】
-c --顯示每行重複出現的次數
-d --僅顯示重複過的行
-u --僅顯示不曾重複的行
【引數說明】
檔名
【命令示例】
(1)查詢檔案123中的重複行
# sort 123 |uniq -d
(2)統計所有字元出現的次數
# sort 123 |uniq -c
(3)查詢123中僅出現過一次的行
# sort 123 |uniq -u
27.tee
【命令作用】
既輸出到檔案又輸出到螢幕
【命令語法】
tee [選項] [引數]
【常用選項】
無
【引數說明】
檔名
【命令示例】
# ls | tee 123 --將ls看到的內容輸出到螢幕並寫入到555.log檔案裡
28.diff
【命令作用】
比較檔案之間的差異
【命令語法】
diff [引數] [檔案1或目錄1] [檔案2或目錄2]
【常用選項】
無
【引數說明】
檔案1或目錄1
檔案2或目錄2
【命令示例】
# diff a1 a2 --對比a1和a2的不同
29.du
【命令作用】
檢視使用空間,但是與df命令不同的是Linux du命令是對檔案和目錄磁碟使用的空間的檢視,還是和df命令有一些區別的.
【命令語法】
du [選項] [引數]
【常用選項】
-s --僅顯示總計,只列出最後加總的值
-h --以K,M,G為單位,提高資訊的可讀性
-a --顯示目錄中個別檔案的大小
【引數說明】
目錄名
【命令示例】
(1)# du -s /home --顯示home目錄的大小
(2)# du -h /home --顯示home目錄大小。以K,M,G為單位
(3)# du -a /mnt --顯示mnt目錄下的檔案大小詳細情況
30.ln
【命令作用】
建立軟硬連結,不帶選項為硬連結。
為某一個檔案在另外一個位置建立一個同步的連結.當我們需要在不同的目錄,用到相同的檔案時,我們不需要在每一個需要要的目錄下都放一個必須相同的檔案,我們只要在某個固定的目錄,放上該檔案,然後在 其它的目錄下用ln命令連結(link)它就可以,不必重複的佔用磁碟空間。
【命令語法】
ln [選項] [引數]
【常用選項】
-b --刪除,覆蓋以前建立的連結
-s --軟連結(符號連結)
【引數說明】
原始檔
被連結的檔案
【科普】:
Linux檔案系統中,有所謂的連結(link),我們可以將其視為檔案的別名,而連結又可分為兩種 : 硬連結(hard link)與軟連結(symbolic link),硬連結的意思是一個檔案可以有多個名稱,而軟連結的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個檔案系統中,而軟連結卻可以跨越不同的檔案系統
軟連結:
1.軟連結,以路徑的形式存在。類似於Windows作業系統中的快捷方式
2.軟連結可以 跨檔案系統 ,硬連結不可以
3.軟連結可以對一個不存在的檔名進行連結
4.軟連結可以對目錄進行連結
硬連結:
1.硬連結,以檔案副本的形式存在。但不佔用實際空間
2.不允許給目錄建立硬連結
3.硬連結只有在同一個檔案系統中才能建立(不能跨分割槽進行)
區別:
a.硬連結不會產生新的inode,軟連結則會產生新的inode
b.刪除原始檔之後,硬連結仍然可用,但軟連結就不可用
c.硬連結只能用於檔案,而軟連結可以用於檔案和目錄
d.硬連結不能跨分割槽,而軟連結可以
這裡有兩點要注意:
第一,ln命令會保持每一處連結檔案的同步性,也就是說,不論你改動了哪一處,其它的檔案都會發生相同的變化
第二,ln的連結又分軟連結和硬連結兩種,軟連結就是ln –s 原始檔 目標檔案,它只會在你選定的位置上生成一個檔案的映象,不會佔用磁碟空間,硬連結 ln 原始檔 目標檔案,沒有引數-s, 它會在你選定的位置上生成一個和原始檔大小相同的檔案,無論是軟連結還是硬連結,檔案都保持同步變化。
ln指令用在連結檔案或目錄,如同時指定兩個以上的檔案或目錄,且最後的目的地是一個已經存在的目錄,則會把前面指定的所有檔案或目錄複製到該目錄中。若同時指定多個檔案或目錄,且最後的目的地並非是一個已存在的目錄,則會出現錯誤資訊
【命令示例】
(1)# ln -s 123 link123 --為123檔案建立軟連結link123,如果123丟失,link123將失效
(2)# ln 123 ln123 --為123建立硬連結ln123,123與ln123的各項屬性相同
(3)結合前兩步示例,連結完畢後刪除和重建連結原檔案
解釋:
1.原始檔123被刪除後,並沒有影響硬連結檔案;軟連結檔案在Linux系統下不斷的閃爍,提示原始檔123已經不存在
2.重建原始檔123後,軟連結不在閃爍提示,說明已經連結成功,找到了連結檔案系統;重建後,硬連結檔案並沒有受到原始檔影響,硬連結檔案的內容還是保留了刪除前原始檔的內容,說明硬連結已經失效
31.type
【命令作用】
檢視命令的型別
例:
alias:別名
keyword:關鍵字,Shell保留字
function:函式,Shell函式
builtin:內建命令,Shell內建命令
file:檔案,磁碟檔案,外部命令
unfound:沒有找到
【命令語法】
type [選項] [引數]
【常用選項】
-t --簡單顯示命令屬於外部命令,內部命令還是別名命令
-p --若命令為外部命令,則顯示其絕對路徑
【引數說明】
命令名
【命令示例】
(1)type cat --檢視cat屬於什麼命令
(2)type -t cat --簡單顯示cat屬於什麼命令
(3)type -p cat --顯示外部命令cat的絕對路徑
32.file
【命令作用】
確定檔案型別
如果檔案系統確定成功,則輸出檔案型別,輸出的檔案型別如下:
text :檔案中只有ASCII碼字元,可以將字元終端顯示檔案內容
executable:檔案可以執行
data:其他型別檔案,此類檔案一般是二進位制檔案或不能再字元終端上直接顯示的檔案
【命令語法】
file [選項] [引數]
【常用選項】
無
【引數說明】
檔名,或者目錄名
【命令示例】
# file 123 --檢視檔案123的型別
33.stat
【命令作用】
檢視檔案屬性
【命令語法】
stat [選項] [引數]
【常用選項】
-f --顯示檔案系統狀態
【引數說明】
檔名,或者目錄名
【命令示例】
# stat 123 --顯示檔案123的屬性
34.which
【命令作用】
我們經常在Linux要查詢某個檔案,但不知道放在哪裡了,可以使用下面的一些命令來搜尋:
which --檢視可執行檔案的位置
whereis --檢視檔案的位置
locate --配合資料庫檢視檔案位置
find --實際搜尋硬碟查詢檔名稱
which命令的作用是,在PATH變數指定的路徑中,搜尋某個系統命令的位置,並且返回第一個搜尋結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令
【命令語法】
which [可執行的檔名稱]
【常用選項】
無
【引數說明】
命令名
【命令示例】
(1) # which which --用which去找出which
解釋:竟然會有兩個which,其中一個是alias(別名命令),意思是輸入which會等於後面的那串命令
(2)# which cd --查詢cd的絕對路徑
解釋:發現並沒有找到cd的位置(絕對路徑),因為 cd 是 bash 內建的命令,但是 which 預設是找 PATH 內所規範的目錄,所以找不到
35.whatis
【命令作用】
檢視幫助檔案的位置。
使用makewhatis命令可將當前系統上所有的幫助手冊及與之對應的關鍵字建立為一個數據庫
【命令語法】
whatis [選項] [引數]
【常用選項】
無
【引數說明】
命令名
【命令示例】
# whatis cat --檢視命令cat的作用
36.whereis
【命令作用】
whereis