一、文件權限管理類命令
1.chown
chown將指定文件的擁有者改為指定的用戶或組,用戶可以是用戶名或者用戶ID;組可以是組名或者組ID;文件是以空格分開的要改變權限的文件列表,支持通配符。系統管理員經常使用chown命令,在將文件拷貝到另一個用戶的名錄下之后,讓用戶擁有使用該文件的權限。
命令格式:
chown [選項]... [所有者][:[組]] 文件...
命令參數:
必要參數:
-c 顯示更改的部分的信息
-f 忽略錯誤信息
-h 修復符號鏈接
-R 處理指定目錄以及其子目錄下的所有文件
-v 顯示詳細的處理信息
-deference 作用于符號鏈接的指向,而不是鏈接文件本身
選擇參數:
--reference=<目錄或文件> 把指定的目錄/文件作為參考,把操作的文件/目錄設置成參考文件/目錄相同擁有者和群組
--from=<當前用戶:當前群組> 只有當前用戶和群組跟指定的用戶和群組相同時才進行改變
--help 顯示幫助信息
--version 顯示版本信息
示例:
1>改變擁有者和組
[root@system1 ~]# ll
total 8
drwxr-xr-x. 2 root root 6 May 18 13:11 Music
[root@system1 ~]# chown gj:gj Music
[root@system1 ~]# ll
total 8
drwxr-xr-x. 2 gj gj 6 May 18 13:11 Music
改變文件擁有者:chown gj: Music
改變文件所屬組:chown :gj Music
2>改變指定目錄以及其子目錄下的所有文件的擁有者和群組
[root@system1 Music]# ll
total 0
drwxr-xr-x. 2 root root 6 Sep 20 19:34 123
drwxr-xr-x. 2 root root 6 Sep 20 19:34 234
-rw-r--r--. 1 root root 0 Sep 20 19:34 789
[root@system1 ~]# ll
drwxr-xr-x. 4 root root 36 Sep 20 19:34 Music
[root@system1 ~]# chown -R -v gj:gj Music
changed ownership of ‘Music/123’ from root:root to gj:gj
changed ownership of ‘Music/234’ from root:root to gj:gj
changed ownership of ‘Music/789’ from root:root to gj:gj
changed ownership of ‘Music’ from root:root to gj:gj
[root@system1 ~]# ll
drwxr-xr-x. 4 gj gj 36 Sep 20 19:34 Music
[root@system1 Music]# ll
drwxr-xr-x. 2 gj gj 6 Sep 20 19:34 123
drwxr-xr-x. 2 gj gj 6 Sep 20 19:34 234
-rw-r--r--. 1 gj gj 0 Sep 20 19:34 789
2.chgrp:改變文件的所屬組
用法,參數與chown基本相同
示例:
[root@system1 Music]# ll
drwxr-xr-x. 2 gj gj 6 Sep 20 19:34 123
[root@system1 Music]# chgrp root 123
drwxr-xr-x. 2 gj root 6 Sep 20 19:34 123
3.chmod:改變文件的權限
chmod用于改變文件或目錄的訪問權限。用戶用它控制文件或目錄的訪問權限。該命令有兩種用法。一種是包含
字母和操作符表達式的文字設定法;另一種是包含數字的數字設定法。
1>文字設定法
chmod [-cfvR] [--help] [--version] mode file...
mode : [ugoa...][[+-=][rwxX]...][,...],
u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬于同一個群體(group)者,o 表示其他以外的人,a 表示這三者皆是。
- 表示增加權限、- 表示取消權限、= 表示唯一設定權限。
r 表示可讀取,w 表示可寫入,x 表示可執行,X 表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。
-c : 若該檔案權限確實已經更改,才顯示其更改動作
-f : 若該檔案權限無法被更改也不要顯示錯誤訊息
-v : 顯示權限變更的詳細資料
-R : 對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更)
--help : 顯示輔助說明
--version : 顯示版本
chmod [OPTION]... --reference=RFILE FILE...
參考RFILE文件的權限,將FILE的修改為同RFILE:
示例:# chmod -R --reference=/tmp/issue /tmp/fstab
2> 數字設定法
0表示沒有權限,1表示可執行權限, 2表示可寫權限,4表示可讀權限,然后將其相加。所以數字屬性的格式應為3個從0到7的八進制數,其順序是(u)(g)(o)。
語法:chmod [mode] 文件名
示例:讓文件123的用戶,組和其他都擁有可讀可寫可執行的權限
[root@system1 Music]# ll
drwxr-xr-x. 2 gj root 6 Sep 20 19:34 123
[root@system1 Music]# chmod 777 123
drwxrwxrwx. 2 gj root 6 Sep 20 19:34 123
4.umask
文件權限是linux系統中的一種安全機制,通過設置不同的權限,可以達到限制用戶操作的目的,有效地保證了文件的完整性。
默認的情況下,創建一個文件的權限為"rw-r--r--",而創建一個目錄的權限為rwxr-xr-x",如果默認的不符合用戶的需求,可以用chmod命令進行設置,但這樣的效率很低。
linux提供了一個方便的工具umask,可以用來設置文件的默認掩碼。
文件的默認權限就是umask設置的掩碼和系統中默認的最大權限碼做異或運算,其結果就是文件的默認權限。
默認的umask的值為0022
對于文件的執行權限(即X權限)使用umask命令是無法使其起作用的,系統強制關閉文件的X默認執行權限,只能通過chmod修改
umask只對當前shell環境起作用。
umask對應的配置文件 :
umask的配置文件為:/etc/profile 或 ~/.profile 或 ~/.bask_profile,修改這些文件里的umask值,則umask的值會長期不變。
二、文本處理工具
1.wc命令:統計單詞數,行數,字節數
語法:wc [選項] 文件…
- c 統計字節數。
- l 統計行數。
- w 統計字數。
示例:
[root@system1 etc]# wc -l passwd
40 passwd
[root@system1 etc]# wc -c passwd
1989 passwd
[root@system1 etc]# wc -w passwd
68 passwd
2.cut命令:切取文本
cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]
-b :以字節為單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指定了 -n 標志。
-c :以字符為單位進行分割。
-d :自定義分隔符,默認為制表符。
-f :與-d一起使用,指定顯示哪個區域。
-n :取消分割多字節字符。僅和 -b 標志一起使用。如果字符的最后一個字節落在由 -b 標志的 List 參數指示的<br />范圍之內,該字符將被寫出;否則,該字符將被排除。
cut命令主要是接受三個定位方法:
第一,字節(bytes),用選項-b
第二,字符(characters),用選項-c
第三,域(fields),用選項-f
3.sort命令:排序
sort將文件的每一行作為一個單位,相互比較,比較原則是從首字符向后,依次按ASCII碼值進行比較,最后將他們按升序輸出。
語 法:
sort [-bcdfimMnr][-o<輸出文件>][-t<分隔字符>][+<起始欄位>-<結束欄位>][--help][--verison][文件]
參 數:
-b 忽略每行前面開始出的空格字符。
-c 檢查文件是否已經按照順序排序。
-d 排序時,處理英文字母、數字及空格字符外,忽略其他的字符。
-f 排序時,將小寫字母視為大寫字母。
-i 排序時,除了040至176之間的ASCII字符外,忽略其他的字符。
-m 將幾個排序好的文件進行合并。
-M 將前面3個字母依照月份的縮寫進行排序。
-n 依照數值的大小排序。
-o<輸出文件> 將排序后的結果存入指定的文件。
-r 以相反的順序來排序。
-t<分隔字符> 指定排序時所用的欄位分隔字符。
+<起始欄位>-<結束欄位> 以指定的欄位來排序,范圍由起始欄位到結束欄位的前一欄位。
--help 顯示幫助。
--version 顯示版本信息
示例:
[root@system1 Music]# cat 123
banana
apple
pear
orage
pear
[root@system1 Music]# sort -u 123
apple
banana
orage
pear
4.uniq命令:不排序只去重
uniq [OPTION]... [FILE]...
-d:--repeated 僅顯示重復的行
-u:--unique 僅顯示不重復的行
-c:--count 在前綴顯示重復的數量
注意:連續且完全相同方為重復
三、文件管理命令 cp,mv,rm
1.cp:用來將一個或多個源文件或者目錄復制到指定的目的文件或目錄。它可以將單個源文件復制成一個指定文件名的具體的文件或一個已經存在的目錄下。cp命令還支持同時復制多個文件,當一次復制多個文件時,目標文件參數必須是一個已經存在的目錄,否則將出現錯誤。
語法:cp(選項)(參數)
選項:
-a:此參數的效果和同時指定"-dpR"參數相同;
-d:當復制符號連接時,把目標文件或目錄也建立為符號連接,并指向與源文件或目錄連接的原始文件或目錄;
-f:強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶;
-l:對源文件建立硬連接,而非復制文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
-s:對源文件建立符號連接,而非復制文件;
-u:使用這項參數后只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件并不存在時,才復制文件;
-S:在備份文件時,用指定的后綴“SUFFIX”代替文件的默認后綴;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執行的操作。
參數:
源文件:制定源文件列表。默認情況下,cp命令不能復制目錄,如果要復制目錄,則必須使用-R選項;
目標文件:指定目標文件。當“源文件”為多個文件時,要求“目標文件”為指定的目錄。
2.mv
mv:是move的縮寫,可以用來移動文件或者將文件改名(move (rename) files),是Linux系統下常用的命令,經常用來備份文件或者目錄。
命令格式:
mv [選項] 源文件或目錄 目標文件或目錄
命令參數:
-b :若需覆蓋文件,則覆蓋前先行備份。
-f :force 強制的意思,如果目標文件已經存在,不會詢問而直接覆蓋;
-i :若目標文件 (destination) 已經存在時,就會詢問是否覆蓋!
-u :若目標文件已經存在,且 source 比較新,才會更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目標目錄,該選項適用于移動多個源文件到一個目錄的情況,此時目標目錄在前,源文件在后。
示例:
將文件111改名為001
[root@system1 Music]# ll
-rw-r--r--. 1 root root 0 Sep 21 23:34 111
[root@system1 Music]# mv 111 001
[root@system1 Music]# ll
-rw-r--r--. 1 root root 0 Sep 21 23:34 001
移動文件123到目錄文件000中
[root@system1 Music]# ll
drwxr-xr-x. 2 root root 6 Sep 21 23:37 000
-rw-r--r--. 1 root root 29 Sep 21 23:17 123
[root@system1 Music]# mv 123 000
[root@system1 000]# ll
-rw-r--r--. 1 root root 29 Sep 21 23:17 123
3.rm
可以刪除一個目錄中的一個或多個文件或目錄,也可以將某個目錄及其下屬的所有文件及其子目錄均刪除掉。對于鏈接文件,只是刪除整個鏈接文件,而原有文件保持不變。
rm [選項] 文件…
-d:直接把欲刪除的目錄的硬連接數據刪除成0,刪除該目錄;
-f:強制刪除文件或目錄;
-i:刪除已有文件或目錄之前先詢問用戶;
-r或-R:遞歸處理,將指定目錄下的所有文件與子目錄一并處理;
--preserve-root:不對根目錄進行遞歸操作;
-v:顯示指令的詳細執行過程。
文件:指定被刪除的文件列表,如果參數中含有目錄,則必須加上-r或者-R選項。
示例:
交互式刪除當前目錄下的文件456和789
[root@system1 Music]# ll
-rw-r--r--. 1 root root 0 Sep 21 23:34 456
-rw-r--r--. 1 root root 0 Sep 21 23:34 789
[root@system1 Music]# rm -r 456 789
rm: remove regular empty file ‘456’? y
rm: remove regular empty file ‘789’? n
[root@system1 Music]# ll
-rw-r--r--. 1 root root 0 Sep 21 23:34 789
刪除當前目錄下除隱含文件外的所有文件和子目錄
[root@system1 Music]# ll
total 0
drwxr-xr-x. 2 root root 16 Sep 21 23:38 000
-rw-r--r--. 1 root root 0 Sep 21 23:34 001
-rw-r--r--. 1 root root 0 Sep 21 23:34 789
[root@system1 Music]# rm -rf *
[root@system1 Music]# ll
total 0
[root@system1 Music]#
四、文本文件查看類命令:cat,tac,more,less,tail,head
cat 是一個文本文件(查看)和(連接)工具,通常與more搭配使用,與more不同的是cat可以合并文件。查看一個文件的內容,用cat比較簡單,就是cat后面直接接文件名。
cat 語法結構:
cat [選項] [文件]...
選項:
-A, --show-all 等價于 -vET
-b, --number-nonblank 對非空輸出行編號
-e 等價于 -vE
-E, --show-ends 在每行結束處顯示 $
-n, --number 對輸出的所有行編號
-s, --squeeze-blank 不輸出多行空行
-t 與 -vT 等價
-T, --show-tabs 將跳格字符顯示為 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 顯示此幫助信息并離開
tac 從最后一行倒序顯示內容,并將所有內容輸出
more 根據窗口大小,一頁一頁的現實文件內容
less 和more類似,但其優點可以往前翻頁,而且進行可以搜索字符 head 只顯示頭幾行
tail 只顯示最后幾行
五、文件的時間戳管理工具:touch
touch的功能并不是用來創建新文件的,創建文件是touch命令的一個特殊情況,touch是用來修改指定的文件的訪問和修改時間屬性,如果指定的文件不存在,將建立一個新的空文件,并以當前的時間來設置文件的訪問和修改時間。
命令格式:
touch [選項]。。。 文件。。。
命令參數:
-a 或--time=atime或--time=access或--time=use 只更改存取時間。
-c 或--no-create 不建立任何文檔。
-d 使用指定的日期時間,而非現在的時間。
-f 此參數將忽略不予處理,僅負責解決BSD版本touch指令的兼容性問題。
-m 或--time=mtime或--time=modify 只更改變動時間。
-r 把指定文檔或目錄的日期時間,統統設成和參考文檔或目錄的日期時間相同。
-t 使用指定的日期時間,而非現在的時間。
示例:
創建不存在的文件
[root@system1 Music]# touch 123 234
[root@system1 Music]# ll
total 0
-rw-r--r--. 1 root root 0 Sep 22 09:38 123
-rw-r--r--. 1 root root 0 Sep 22 09:38 234
[root@system1 Music]# touch -c 345
[root@system1 Music]# ll
total 0
-rw-r--r--. 1 root root 0 Sep 22 09:38 123
-rw-r--r--. 1 root root 0 Sep 22 09:38 234
更新111的時間和123的時間戳相同
[root@system1 Music]# ll
total 0
-rw-r--r--. 1 root root 0 Sep 22 09:40 111
-rw-r--r--. 1 root root 0 Sep 22 09:38 123
-rw-r--r--. 1 root root 0 Sep 22 09:38 234
[root@system1 Music]# touch -r 111 123
[root@system1 Music]# ll
total 0
-rw-r--r--. 1 root root 0 Sep 22 09:40 111
-rw-r--r--. 1 root root 0 Sep 22 09:40 123
-rw-r--r--. 1 root root 0 Sep 22 09:38 234
六、文件內容類型查看命令:file
file命令用來探測給定文件的類型。
語法:file(選項)(參數)
選項:
-b:列出辨識結果時,不顯示文件名稱;
-c:詳細顯示指令執行過程,便于排錯或分析程序執行的情形;
-f<名稱文件>:指定名稱文件,其內容有一個或多個文件名稱時,讓file依序辨識這些文件,格式為每列一個文件名稱;
-L:直接顯示符號連接所指向的文件類別;
-m<魔法數字文件>:指定魔法數字文件;
-v:顯示版本信息;
-z:嘗試去解讀壓縮文件的內容。
參數:
文件:要確定類型的文件列表,多個文件之間使用空格分開,可以使用shell通配符匹配多個文件。
示例:
顯示文件類型
[root@system1 ~]# ll
-rw-------. 1 root root 1614 May 18 21:04 anaconda-ks.cfg
[root@system1 ~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text
[root@system1 ~]# file -b -i anaconda-ks.cfg (-i 顯示MIME類別)
text/plain; charset=us-ascii