1、選項和參數的區別node
在通過上一次的系統安裝後咱們已經成功登錄,登錄LInux後,咱們就能夠在#或$符後面去輸入命令,有的時候命令後面還會跟着「選擇「(英文名:options)或「參數」(英文名:agruments)。即Linux中的命令格式爲:數據庫
command [options] [arguments] //中括號表示可選的,即有些命令不須要選項也不須要參數,但有的命令在運行時須要多個選項或參數。編程
options(選項):選項是調整命令執行行爲的開關,即,選項不一樣決定了命令的顯示結果不一樣。vim
選項分爲長選項和短選項。bash
短選項:例如-h,-l,-s等。(- 後面接單個字母)app
一、短選項都是使用 ‘-’ 引導,當有多個短選項時,各選項之間使用空格隔開less
二、有些命令的短選項能夠組合,例如 -l -h 能夠組合爲-lh編輯器
三、有些命令的短選項能夠不帶 - ,這一般叫作BSD風格的選項。例如ps auxide
四、有些短選項須要帶選項自己的參數,例如 -L 512M函數
長選項:例如 --help,--list 等。(-- 後面接單詞)
一、長選項都是完整的單詞
二、長選項一般不能組合
三、若是須要加參數,長選項的參數一般須要 "=",例如 --size=1G
agruments(參數):
參數是指命令的做用對象。
例如 ls 命令,不加參數的時候顯示是當前目錄,也能夠加參數,例如 ls /dev,則輸出的結果是 /dev 目錄。
小結一下:
選項是限定結果的顯示結果
短選項( - ):只能修飾一個字符的選項,例如:ls -a,固然多個短選項能夠合併,例如tar -cvf
長選項( -- ):既能夠修飾單個字符,也能夠修飾一個單詞,例如:chkconfig --list,chkconfig --add xxx,service --status-all
參數是指命令的做用對象
我這裏簡單說明了選項和參數的區別,但具體Linux中哪條命令有哪些選項和參數,須要咱們靠經驗積累或者查看Linux的幫助了(man幫助命令)。
2、權限管理: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用戶全部權限,組可讀可執行權限,其餘用戶可讀可執行權限
3、Linux入門基礎命令--文件和目錄經常使用操做命令
在學習以前咱們得先了解一下絕對路徑和相對路徑這兩個概念
絕對路徑:
在Linux中,絕對路徑是從/(即根目錄)開始的,例如 /usr、/etc/X11。若是一個路徑是從 / 開始的,它必定是絕對路徑。舉幾個示例
[root@srv1 ~]# pwd --判斷當前用戶所在的位置,也就是說他如今到底位於哪裏
/root --用戶當前位於/root
[root@srv1 doc]# cd /usr/share/doc/ --以絕對路徑方式進入/usr/share/doc目錄下
[root@srv1 doc]# pwd --判斷用戶當前所在的位置
/usr/share/doc --用戶位於/usr/share/doc,看來已經達到目的了
相對路徑:
是以 . 或 .. 開始的, .戶當前操做所在的位置,而 .. 表示上級目錄,在路徑中, . 表示用戶當前所在的目錄,而 .. 上級目錄,要把 . 和 .. 當作目錄來看,這裏也舉幾個例子
[root@srv1 ~]# pwd --經過pwd來判斷當前用戶所在的位置
/root --得出目錄處於/root目錄中;
[root@srv1 ~]# cd . --咱們進入 .
[root@srv1 ~]# pwd --判斷當前用戶所在的位置
/root --得出在root目錄中
[root@srv1 ~]# cd .. --咱們切入/root的上級目錄
[root@srv1 /]# 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 [選項] [參數]
【經常使用選項】
無
【參數說明】
切換用戶當前目錄,例如 . 表示當前目錄 .. 表示上一級目錄 ,~ 表示家目錄 / 表示根目錄
【命令示例】
[root@srv1 ~]# cd --切換到前期用戶家目錄
[root@srv1 ~]# cd . --切換到當前目錄
[root@srv1 ~]# cd .. --切換到當前目錄上一級目錄
[root@srv1 /]# cd ~ --切換到用戶家目錄
[root@srv1 ~]# 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命令只能用於程序名的搜索,並且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。若是省略參數,則返回全部信息
和find相比,whereis查找的速度很是快,這是由於Linux系統會將系統內的全部文件都記錄在一個數據庫文件中,當使用whereis和下面即將介紹的locate時,會從數據庫中查找數據,而不是像find命令那樣,經過遍歷硬盤來查找,效率天然會很高。
可是該數據庫文件並非實時更新,默認狀況下時一星期更新一次,所以,咱們在用whereis和locate 查找文件時,有時會找到已經被刪除的數據,或者剛剛創建文件,卻沒法查找到,緣由就是由於數據庫文件沒有被更新。
【命令語法】
whereis [選項] [參數]
【經常使用選項】
-b --僅查找二進制程序和命令
-m --僅查找man幫助手冊文件
-s --僅查找源代碼文件
【參數說明】
命令名
【命令示例】
(1)查看cp文件及相關文件路徑
# whereis cp
(2)# where -b cp --只將cp的二進制文件查找出來
# where -m cp --查找cp的man幫助
# where -s cp --查找cp源代碼文件
37.locate
【命令做用】
快速定位文件的路徑。
依賴於事先構建的索引;索引的構建是在系統較爲空閒時自動進行(週期性任務);手動更新數據庫(updatedb);索引構建過程須要遍歷整個根文件系統,極消耗資源;
工做特色是:查找速度快,模糊查找,非實時查找
【命令語法】
locate [選項] [參數]
【經常使用選項】
無
【參數說明】
文件名
【命令示例】
(1)# locate pwd --和pwd相關的全部文件
(2)# locate /etc/sh --搜索在etc目錄下全部以sh開頭的文件
38.find
【命令做用】
用於在文件樹種查找文件,並做出相應的處理
【命令語法】
find [選項] [參數]
【經常使用選項】
-name --按照文件名查找文件
-iname --按照文件名查找文件,不區分字母大小寫
-user --查找屬於指定用戶的全部文件
-group --按照文件所屬的組來查找文件
-uid -- 查找屬主爲指定的 UID 號的文件
-gid --查找屬組爲指定的 GID 號的文件
-size --根據文件大小來查找文件
-type --根據文件類型查找
f (普通文件)
d (目錄文件)
b (塊設備)
c (字符設備)
s (套接字文件)
p (管道文件)
l (符號連接文件)
-exec COMMAND {} \ --對查找到的每一個文件執行由COMMAND指定的命令;{}: 用於引用查找到的文件名稱自身
注意:find傳遞查找到的文件至後面指定的命令時,查找到全部符合條件的文件一次性傳遞給後面的命令;有些命令不能接受過多參數,此時命令執行可能會失敗;另外一種方式可規避此問題:
【參數說明】
要查的起始目錄,查找的名稱是什麼
【命令示例】
(1)根據關鍵字查找
# find . -name "*.1"
解釋:在當前目錄中查找,以1結尾的文件, "." 表明當前目錄
(2)根據權限進行查找
# find . -perm 777
解釋:在當前目錄中查找權限爲777的文件
(3)按類型查找
# find -type f -name "*6"
解釋:在當前目錄中,查找以6結尾的普通文件
(4)按大小查找文件
# find . -size +1000c -print
解釋:在當前目錄下,查找大於1K的文件
39.help
【命令做用】
查看內部命令的幫助信息
【命令語法】
help [選項] [參數]
【經常使用選項】
無
【參數說明】
指定命令名顯示幫助信息
【命令示例】
# help pwd --查看內部命令pwd的幫助信息
40.man
【命令做用】
命令幫助手冊
【命令語法】
man [選項] [參數]
【經常使用選項】
無
【參數說明】
所要搜索幫助信息的命令
【命令示例】
# man cd 查看cd的幫助信息