linux系統因其優秀的穩定性和安全性,被越來越多的企業伺服器應用。隨之而來的越來越多的人學習使用linux,而做為linux系統的基礎linux命令更是必學無疑的,小編今天跟大家分享一篇小編精心編輯的文章“linux命令-檔案管理命令”,希望能幫到大部分的linux初學者。
工具/原料
linux作業系統
方法/步驟
cat
功能:有從磁碟建立檔案的功能(但不具備編輯功能),但主要功能還是2個或者以上檔案的合併。
常配合使用引數:
-n 或--number 由1 開始對所有輸出的行數編號。
-b 或--number-nonblank 和-n 相似,只不過對於空白行不編號。
使用方法:
Cat –n diannaob1>diannaob2,把diannaob1裡的內容加上行號以後併入diannaob2。
Cat –b diannaob1 diannaob2>>diannaob3,對diannaob1和diannaob2裡的內容加上行號(空白行不加)併入diannaob3。
chattr
功能:給指定檔案新增,去掉,賦予屬性。
常配合使用引數:
-R 遞迴處理,將指定目錄下的所有檔案及子目錄一併處理。
-v
<版本編號>
設定檔案或目錄版本。
-V 顯示指令執行過程。
+
<屬性>
開啟檔案或目錄的該項屬性。
-
<屬性>
關閉檔案或目錄的該項屬性。
=
<屬性>
指定檔案或目錄的該項屬性。
屬性>
屬性>
屬性>
版本編號>
a:讓檔案或目錄僅供附加用途。
b:不更新檔案或目錄的最後存取時間。
c:將檔案或目錄壓縮後存放。
d:將檔案或目錄排除在傾倒操作之外。
i:不得任意更動檔案或目錄。
s:保密性刪除檔案或目錄。
S:即時更新檔案或目錄。
u:預防以外刪除。
使用方法:
比如diannaob1這個檔案為了方式被其他linux使用者刪除,可以給其新增預防以外刪除屬性。
Chattr +u diannaob1
chgrp
功能:更改目錄或者檔案所屬的群組。
使用方法:
比如把diannaob1檔案移動到diannaob組裡:
Chgrp diannaob diannaob1
cmp
功能:用來比較檔案之間的不同,如果相同不返回任何資訊,不同的地方列出字元和列數編號。
常配合使用引數:
-c或--print-chars 除了標明差異處的十進位制字碼之外,一併顯示該字元所對應字元。
-i
<字元數目>
或--ignore-initial=
<字元數目>
指定一個數目。
-l或--verbose 標示出所有不一樣的地方。
-s或--quiet或--silent 不顯示錯誤資訊。
-v或--version 顯示版本資訊。
--help 線上幫助。
字元數目>
字元數目>
使用方法:
比如比較檔案diannaob1和diannaob2有什麼同
Cmp diannaob1 diannaob2
配合使用的引數加在cmp和檔案之間。
file
功能:辨識檔案型別。
常配合使用引數:
-b 列出辨識結果時,不顯示檔名稱。
-c 詳細顯示指令執行過程,便於排錯或分析程式執行的情形。
-f
<名稱檔案>
指定名稱檔案,其內容有一個或多個檔名稱呢感,讓file依序辨識這些檔案,格式為每列一個檔名稱。
-L 直接顯示符號連線所指向的檔案的類別。
-m
<魔法數字檔案>
指定魔法數字檔案。
-v 顯示版本資訊。
-z 嘗試去解讀壓縮檔案的內容。
魔法數字檔案>
名稱檔案>
使用方法:
比如要辨別diannaob1的檔案型別
File diannaob1 檔案位置
find
功能:根據各種需求(名稱、類別、時間、大小、許可權等)在指定的目錄內尋找符合要求的檔案。
常配合使用引數:
-mount, -xdev : 只檢查和指定目錄在同一個檔案系統下的檔案,避免列出其它檔案系統中的檔案
-amin n : 在過去n 分鐘內被讀取過
-anewer file : 比檔案file 更晚被讀取過的檔案
-atime n : 在過去n 天過讀取過的檔案
-cmin n : 在過去n 分鐘內被修改過
-cnewer file :比檔案file 更新的檔案
-ctime n : 在過去n 天過修改過的檔案
-empty : 空的檔案-gid n or -group name : gid 是n 或是group 名稱是name
-ipath p, -path p : 路徑名稱符合p 的檔案,ipath 會忽略大小寫
-name name, -iname name : 檔案名稱符合name 的檔案。iname 會忽略大小寫
-size n : 檔案大小是n 單位,b 代表512 位元組的區塊,c 表示字元數,k 表示kilo bytes,w 是二個位元組。-type c : 檔案型別是c 的檔案。
d: 目錄
c: 字型裝置檔案
b: 區塊裝置檔案
p: 具名貯列
f: 一般檔案
l: 符號連結
使用方法:
將目前目錄及其子目錄下所有延伸檔名是c 的檔案列出來。
find . -name "*.c"
將目前目錄其其下子目錄中所有一般檔案列出
find . -ftype f
將目前目錄及其子目錄下所有最近20 分鐘內更新過的檔案列出
find . -ctime -20
git
功能:文字模式下的檔案管理員,進入之後,可以進行各種檔案的操作。
常配合使用引數:
F1 :執行info指令,查詢指令相關資訊,會要求您輸入欲查詢的名稱。
F2 :執行cat指令,列出檔案內容。
F3 :執行gitview指令,觀看檔案內容。
F4 :執行vi指令,編輯檔案內容。
F5 :執行cp指令,複製檔案或目錄,會要求您輸入目標檔案或目錄。
F6 :執行mv指令,移動檔案或目錄,或是更改其名稱,會要求您輸入目標檔案或目錄。
F7 :執行mkdir指令,建立目錄。
F8 :執行rm指令,刪除檔案或目錄。
F9 :執行make指令,批處理執行指令或編譯程式時,會要求您輸入相關命令。
F10 :離開git檔案管理員。
cut
功能:用於從檔案或者標準輸入中讀取內容並擷取每一行的特定部分並送到標準輸出。
配合使用引數:
-b 位元組(bytes)
-c 字元(characters)
-f 域(fields)
使用方法:
如日期:dc oct 10 21:15:54 PDT 2012
Date cut –b 1-4 輸出dc o,表示取前4個位元組,其中空格也算一個位元組。
Date cut –c 1-4 輸出dc o,看似跟-b沒有區別,但是如果日期換成漢字就有區別了,因為一個漢字算3個位元組。
多個定位之間用逗號隔開:
Date cut –b 1-4,6 輸出前4個位元組和第6個位元組:dc ot
分割域:
如:
service1:pts/0:Oct 9 20:27: (211.95.114.235)
service2:pts/1:Oct 9 21:06: (218.80.203.242)
service3:pts/2:Oct 9 14:35: (218.80.203.242)
service4:pts/3:Oct 9 21:07: (218.80.213.242)
service5:pts/4:Oct 9 21:07: (218.80.213.242)
service6:pts/5:Oct 9 21:45: (58.31.205.19)
cut –d: -f1 f.txt 把f.txt這個檔案按:分割成域,取域1
輸出:
service1
service2
service3
service4
service5
service6
linux學習:準信培訓中心(training.zhunxin.net)
2.in
功能:建立連線(類似於window下建立超連結)
使用方法:
把將目錄/usr/menggc/mub l下的檔案m2.c連結到目J/usr/1iu下的檔案a2.c
In /usr/menggc/mub l/m2.c J/usr/1iu/a2.c 本來J/usr/1iu目錄下沒有a2.c檔案,當連結成功時就會出現a2.c檔案。
In 選項原始檔目標檔案
less
功能:檢視檔案
使用方法:
Less 檔名
Less的作用和more差不多,不同的是less 允許使用者往回捲動,檢視已經看過的部分。
名稱:locate
使用許可權:所有使用者
使用方式:
locate [-q] [-d ] [--database=]
locate [-r ] [--regexp=]
locate [-qv] [-o ] [--output=]
locate [-e ] [-f ] <[-l ] [-c]
<[-U ] [-u]>
locate [-Vh] [--version] [--help]
說明:
locate 讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的資料庫,之後當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。在一般的distribution 之中,資料庫的建立都被放在contab 中自動執行。
一般使用者在使用時只要用
# locate your_file_name
的型式就可以了。引數:
-u
-U
建立資料庫,-u 會由根目錄開始,-U 則可以指定開始的位置。
-e
將排除在尋找的範圍之外。
-l
如果是1.則啟動安全模式。在安全模式下,使用者不會看到許可權無法看到的檔案。這會始速度減慢,因為locate 必須至實際的檔案系統中取得檔案的許可權資料。
-f
將特定的檔案系統排除在外,例如我們沒有到理要把proc 檔案系統中的檔案放在資料庫中。
-q
安靜模式,不會顯示任何錯誤訊息。
-n
至多顯示個輸出。
-r
使用正規運算式做尋找的條件。
-o
指定資料庫存的名稱。
-d
指定資料庫的路徑
-h
顯示輔助訊息
-v
顯示更多的訊息
-V
顯示程式的版本訊息範例:
locate chdrv:尋找所有叫chdrv 的檔案
locate -n 100 a.out:尋找所有叫a.out 的檔案,但最多隻顯示100 個
locate -u:建立資料庫
名稱:more
使用許可權:所有使用者
使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
說明:類似cat ,不過會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與vi 相似),使用中的說明檔案,請按h 。
引數:
-num 一次顯示的行數
-d 提示使用者,在畫面下方顯示[Press space to continue, q to quit.] ,如果使用者按錯鍵,則會顯示[Press h for instructions.] 而不是嗶聲
-l 取消遇見特殊字元^L(送紙字元)時會暫停的功能
-f 計算行數時,以實際上的行數,而非自動換行過後的行數(有些單行字數太長的會被擴充套件為兩行或兩行以上)
-p 不以捲動的方式顯示每一頁,而是先清除螢幕後再顯示內容
-c 跟-p 相似,不同的是先顯示內容再清除其他舊資料
-s 當遇到有連續兩行以上的空白行,就代換為一行的空白行
-u 不顯示下引號(根據環境變數TERM 指定的terminal 而有所不同)
+/ 在每個檔案顯示前搜尋該字串(pattern),然後從該字串之後開始顯示
+num 從第num 行開始顯示
fileNames 欲顯示內容的檔案,可為複數個數
範例:
more -s testfile 逐頁顯示testfile 之檔案內容,如有連續兩行以上空白行則以一行空白行顯示。
more +20 testfile 從第20 行開始顯示testfile 之檔案內容。
名稱:mv
使用許可權:所有使用者
使用方式:
mv [options] source dest
mv [options] source... directory
說明:將一個檔案移至另一檔案,或將數個檔案移至另一目錄。
引數:-i 若目的地已有同名檔案,則先詢問是否覆蓋舊檔。
範例:
將檔案aaa 更名為bbb:
mv aaa bbb
將所有的C語言程式移至Finished 子目錄中:
mv -i *.c
名稱:rm
使用許可權:所有使用者
使用方式:rm [options] name...
說明:刪除檔案及目錄。
把計:
-i 刪除前逐一詢問確認。
-f 即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。
-r 將目錄及以下之檔案亦逐一刪除。
範例:
刪除所有C語言程式檔;刪除前逐一詢問確認:
rm -i *.c
將Finished 子目錄及子目錄中所有檔案刪除:
rm -r Finished
名稱:split
使用許可權:所有使用者
使用方式:split [OPTION] [INPUT [PREFIX]]
說明:將一個檔案分割成數個。而從INPUT 分割輸出成固定大小的檔案,其檔名依序為PREFIXaa, PREFIXab...;PREFIX 預設值為`x。若沒有INPUT 檔或為`-,則從標準輸入讀進資料。
匡兜:
-b, --bytes=SIZE
SIZE 值為每一輸出檔案的大小,單位為byte。
-C, --line-bytes=SIZE
每一輸出檔中,單行的最大byte 數。
-l, --lines=NUMBER
NUMBER 值為每一輸出檔的列數大小。
-NUMBER
與-l NUMBER 相同。
--verbose
於每個輸出檔被開啟前,列印出偵錯資訊到標準錯誤輸出。
--help
顯示輔助資訊然後離開。
--version
列出版本資訊然後離開。
SIZE 可加入單位: b 代表512, k 代表1K, m 代表1 Meg。
範例:
PostgresSQL 大型資料庫備份與回存:
因Postgres 允許表格大過你係統檔案的最大容量,所以要將表格dump 到單一的檔案可能會有問題,使用split進行檔案分割。
% pg_dump dbname split -b 1m - filename.dump.
重新載入
% createdb dbname
% cat filename.dump.* pgsql dbname
名稱:touch
使用許可權:所有使用者
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[[CC]YY][.ss]]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
說明:
touch 指令改變檔案的時間記錄。ls -l 可以顯示檔案的時間記錄。
引數:
a 改變檔案的讀取時間記錄。
m 改變檔案的修改時間記錄。
c 假如目的檔案不存在,不會建立新的檔案。與--no-create 的效果一樣。
f 不使用,是為了與其他unix 系統的相容性而保留。
r 使用參考檔的時間記錄,與--file 的效果一樣。
d 設定時間與日期,可以使用各種不同的格式。
t 設定檔案的時間記錄,格式與date 指令相同。
--no-create 不會建立新檔案。
--help 列出指令格式。
--version 列出版本訊息。
範例:
最簡單的使用方式,將檔案的時候記錄改為現在的時間。若檔案不存在,系統會建立一個新的檔案。
touch file
touch file1 file2
將file 的時間記錄改為5 月6 日18 點3 分,公元兩千年。時間的格式可以參考date 指令,至少需輸入MMDDHHmm ,就是月日時與分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
將file 的時間記錄改變成與referencefile 一樣。
touch -r referencefile file
將file 的時間記錄改成5 月6 日18 點3 分,公元兩千年。時間可以使用am, pm 或是24 小時的格式,日期可以使用其他格式如6 May 2000 。
touch -d "6:03pm" file
touch -d "05/06/2000" file
touch -d "6:03pm 05/06/2000" file
名稱:cp
使用許可權:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
說明:將一個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。
把計:
-a 儘可能將檔案狀態,許可權等資料都照原狀予以複製。
-r 若source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
-f 若目的地已經有相同檔名的檔案存在,則在複製前先予以刪除再行復制。
範例:
將檔案aaa 複製(已存在),並命名為bbb:
cp aaa bbb
將所有的C語言程式拷貝至Finished 子目錄中:
cp *.c Finished
指令名稱:ln
使用許可權:所有使用者
使用方式:ln [options] source dist,其中option 的格式為:
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
說明:Linux/Unix 檔案系統中,有所謂的連結(link),我們可以將其視為檔案的別名,而連結又可分為兩種:硬連結(hard link)與軟連結(symbolic link),硬連結的意思是一個檔案可以有多個名稱,而軟連結的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個檔案系統中,而軟連結卻可以跨越不同的檔案系統。
ln source dist 是產生一個連結(dist)到source,至於使用硬連結或軟鏈結則由引數決定。
不論是硬連結或軟鏈結都不會將原本的檔案複製一份,只會佔用非常少量的磁碟空間。
-f:鏈結時先將與dist 同檔名的檔案刪除-d:允許系統管理者硬鏈結自己的目錄-i:在刪除與dist 同檔名的檔案時先進行詢問-n:在進行軟連結時,將dist 視為一般的檔案-s:進行軟鏈結(symbolic link)-v:在連結之前顯示其檔名-b:將在鏈結時會被覆寫或刪除的檔案進行備份-S SUFFIX:將備份的檔案都加上SUFFIX 的字尾-V METHOD:指定備份的方式--help:顯示輔助說明--version:顯示版本
範例:
將檔案yy 產生一個symbolic link:zz
ln -s yy zz
將檔案yy 產生一個hard link:zz
ln yy xx