Linux常用命令詳解(三)_權限管理

chmod命令

chmod命令用於改變系統文件或目錄的訪問權限。chmod命令有兩種形式,一種是字母形式,一種是八進制數字形式。

在任意目錄下,使用 ls -l,查看文件列表。
如:

[shmilychan@localhost ~]$ ls -l
total 8
drwxr-xr-x. 2 shmilychan shmilychan  35 Aug 28 21:38 Desktop
drwxr-xr-x. 2 shmilychan shmilychan   6 Aug 19 02:51 Documents
drwxr-xr-x. 2 shmilychan shmilychan   6 Aug 19 02:51 Downloads
-rw-rw-r--. 1 shmilychan shmilychan   0 Aug 30 03:09 help
drwxr-xr-x. 2 shmilychan shmilychan   6 Aug 19 02:51 Music
-rw-------. 1 shmilychan shmilychan   0 Sep  6 02:35 nohup.out
drwxr-xr-x. 2 shmilychan shmilychan   6 Aug 19 02:51 Pictures
drwxr-xr-x. 2 shmilychan shmilychan   6 Aug 19 02:51 Public
drwxr-xr-x. 2 shmilychan shmilychan   6 Aug 19 02:51 Templates
-rw-rw-r--. 1 shmilychan shmilychan 448 Sep  5 04:25 test01.sh

ls -l 輸出命令的含義

字符 含義
(第一個字符)- 普通文件
(接下來的三個字符)rw- 文件屬主的權限
(再接下來的三個字符 )r– 同組用戶的權限
(最後三個字符 )r– 其他用戶的權限


這三組字符(除第一個字符外)分別定義了:

  • 文件屬主所擁有的權限。
  • 文件屬主缺省組(一個用戶可以屬於很多的組 )所擁有的權限。
  • 系統中其他用戶的權限。

在每一組字符中含有 三個權限位

  • r 讀權限
  • w 寫/更改權限
  • x 執行該腳本或程序的權限

改變權限位格式:

chmod [who] operator [permission] filename

權限範圍(who):

u 文件屬主權限。
g 同組用戶權限。
o 其他用戶權限。
a 所有用戶(文件屬主、同組用戶及其他用戶 )

operator的含義:

+ 增加權限。
- 取消權限。
= 設定權限。

permission的含義:

r 讀權限

w 寫權限

x 執行權限

s 文件屬主和組set-ID

t 粘性位*

l 給文件加鎖,使其他用戶無法訪問

u,g,o 針對文件屬主、同組用戶及其他用戶的操作

使用字母改變權限

實例:

1.增加用戶權限

$chmod [ugo]+[rwx] filename/dir    //同時修改不同用戶權限使用","隔開,刪除權限使用"-"

2.對一個目錄及其子目錄所有文件添加權限

$ chmod -R [ugo]+[rwx] filename    //刪除權限使用"-"

使用數字改變權限

八進制目錄/文件權限表示

八 進 制 數 含 義 八 進 制 數 含 義
0400 文件屬主可讀 0010 同組用戶可執行
0200 文件屬主可寫 0004 其他用戶可讀
0100 文件屬主可執行 0002 其他用戶可寫
0040 同組用戶可讀 0001 其他用戶可執行
0020 同組用戶可寫

如:

$ chmod 755 filename

chgrp命令

在lunix系統裏,文件或目錄的權限被擁有者和系統管理員掌控。可以使用chgrp指令取變更文件與目錄所屬羣組,chgrp命令就是change group的縮寫。要被改變的組名必須要在/etc/group文件內存在才行。chgrp命令可採用羣組名稱或羣組識別碼的方式改變文件或目錄的所屬羣組,使用權限是root用戶。

格式:

chgrp [option] [para]

選項:

-c 當發生改變時輸出調試信息

-f 不顯示錯誤信息

-R 處理指定目錄以及其子目錄下的所有文件

-v 運行時顯示詳細的處理信息

chown命令

通過chown改變文件的擁有者和羣組。在更改文件的所有者或所屬羣組時,可以使用用戶名稱和用戶識別碼設置。普通用戶不能將自己的文件改變成其他的擁有者。其操作權限一般爲管理員。

格式:

chown [option] [para]

選項:

-c 顯示更改的部分的信息

-f 忽略錯誤信息

-h 修復符號鏈接

-R 處理指定目錄以及其子目錄下的所有文件

-v 顯示詳細的處理信息

chmod -R -h owner file  //改變所有子目錄的文件屬主

df命令

顯示指定磁盤文件的可用空間。如果沒有文件名被指定,則所有當前被掛載的文件系統的可用空間將被顯示。默認情況下,磁盤空間將以 KB 爲單位進行顯示,除非環境變量 POSIXLY_CORRECT 被指定,那樣將以512字節爲單位進行顯示。

格式:

df [option]

選項:

-a 全部文件系統列表

-h 方便閱讀方式顯示

-H 等於“-h”,但是計算式,1K=1000,而不是1K=1024

-i 顯示inode信息

-k 區塊爲1024字節

-l 只顯示本地文件系統

-m 區塊爲1048576字節

--no-sync 忽略 sync 命令

-P 輸出格式爲POSIX

--sync 在取得磁盤信息前,先執行sync命令

-T 文件系統類型

應用實例:

1.顯示磁盤使用情況

$ df 

如:

[shmilychan@localhost ~]$ df
Filesystem            1K-blocks    Used Available Use% Mounted on
/dev/mapper/rhel-root  18307072 2999896  15307176  17% /
devtmpfs                 918804       0    918804   0% /dev
tmpfs                    934344     156    934188   1% /dev/shm
tmpfs                    934344   17544    916800   2% /run
tmpfs                    934344       0    934344   0% /sys/fs/cgroup
/dev/sda1                508588  160796    347792  32% /boot
tmpfs                    186872       4    186868   1% /run/user/42
tmpfs                    186872      20    186852   1% /run/user/1000
/dev/sr0                3947824 3947824         0 100% /run/media/shmilychan/RHEL-7.2 Server.x86_64
tmpfs                    186872       0    186872   0% /run/user/0

linux中df命令的輸出清單的第1列是代表文件系統對應的設備文件的路徑名(一般是硬盤上的分區);第2列給出分區包含的數據塊(1024字節)的數目;第3,4列分別表示已用的和可用的數據塊數目。用戶也許會感到奇怪的是,第3,4列塊數之和不等於第2列中的塊數。這是因爲缺省的每個分區都留了少量空間供系統管理員使用。即使遇到普通用戶空間已滿的情況,管理員仍能登錄和留有解決問題所需的工作空間。清單中Use% 列表示普通用戶空間使用的百分比,即使這一數字達到100%,分區仍然留有系統管理員使用的空間。最後,Mounted on列表示文件系統的掛載點。

2.以inode模式顯示磁盤使用情況

$ df -i

3.以更易讀方式顯示

$ df -h   //以1K=1024
$ df -H   //以1K=1000

4.以常用格式顯示

$ df -g        //以G形式顯示
$ df -m        //以M形式顯示
$ df -k        //以K形式顯示

5.列出文件系統的類型

$ df -T

du命令

顯示每個文件和目錄的磁盤使用空間。

格式:

du [option]

選項:

-a或-all 顯示目錄中個別文件的大小

-b或-bytes 顯示目錄或文件大小時,以byte爲單位

-c或--total 除了顯示個別目錄或文件的大小外,同時也顯示所有目錄或文件的總和

-k或--kilobytes 以KB(1024bytes)爲單位輸出。 -m或--megabytes 以MB爲單位輸出

-s或--summarize 僅顯示總計,只列出最後加總的值

-h或--human-readable 以K,M,G爲單位,提高信息的可讀性

 -x或--one-file-xystem 以一開始處理時的文件系統爲準,若遇上其它不同的文件系統目錄則略過

-L<符號鏈接>或--dereference<符號鏈接> 顯示選項中所指定符號鏈接的源文件大小

-S或--separate-dirs 顯示個別目錄的大小時,並不含其子目錄的大小

-X<文件>或--exclude-from=<文件> 在<文件>指定目錄或文件

-exclude=<目錄或文件> 略過指定的目錄或文件

-D或--dereference-args 顯示指定符號鏈接的源文件大小

-H或--si 與-h參數相同,但是K,M,G是以1000爲換算單位

-l或--count-links 重複計算硬件鏈接的文件

應用實例:

1.顯示目錄或者文件所佔空間

$ du

2.顯示指定文件所佔空間

$ du test.txt

3.顯示總和的大小

$ du -s

4.以方便查閱的方式顯示

$ du -h test
$ du -ah test      //文件和目錄都顯示

5.按空間大小排序

$ du|sort -nr|more
$ du -h --max-depth=1          //當前目錄下各個子目錄所使用情況

ln命令

ln是linux中又一個非常重要命令,它的功能是爲某一個文件在另外一個位置建立一個同步的鏈接.當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然後在 其它的目錄下用ln命令鏈接(link)它就可以,不必重複的佔用磁盤空間。

ln命令用來爲文件創件連接,連接類型分爲硬連接和符號連接兩種,默認的連接類型是硬連接。如果要創建符號連接必須使用”-s”選項。

注意:符號鏈接文件不是一個獨立的文件,它的許多屬性依賴於源文件,所以給符號鏈接文件設置存取權限是沒有意義的。

格式:

ln [option] [para]

選項:

-b或--backup:刪除,覆蓋目標文件之前的備份

-d或-F或——directory:建立目錄的硬連接

-f或——force:強行建立文件或目錄的連接,不論文件或目錄是否存在

-i或——interactive:覆蓋既有文件之前先詢問用戶

-n或--no-dereference:把符號連接的目的目錄視爲一般文件

-s或——symbolic:對源文件建立符號連接,而非硬連接

-S<字尾備份字符串>或--suffix=<字尾備份字符串>:用"-b"參數備份目標文件後,備份文件的字尾會被加上一個備份字符串,預設的備份字符串是符號“~”,用戶可通過“-S”參數來改變它

-v或——verbose:顯示指令執行過程

-V<備份方式>或--version-control=<備份方式>:用“-b”參數備份目標文件後,備份文件的字尾會被加上一個備份字符串,這個字符串不僅可用“-S”參數變更,當使用“-V”參數<備份方式>指定不同備份方式時,也會產生不同字尾的備份字符串

參數:

  • 源文件:指定連接的源文件。如果使用-s選項創建符號連接,則“源文件”可以是文件或者目錄。創建硬連接時,則“源文件”參數只能是文件
  • 目標文件:指定源文件的目標連接文件。

應用實例:

1.創建符號鏈接(軟鏈接)

ln -s /test/log201609.log /test1/log201608.log

2.創建硬鏈接

ln log201609.log /home/test/log201608.log

注意:
1.目錄只能創建軟鏈接

2.目錄創建鏈接必須用絕對路徑,相對路徑創建會不成功,會提示:符號連接的層數過多這樣的錯誤

3.在鏈接目標目錄中修改文件都會在源文件目錄中同步變化

diff命令

diff命令在最簡單的情況下,比較給定的兩個文件的不同。如果使用“-”代替“文件”參數,則要比較的內容將來自標準輸入。diff命令是以逐行的方式,比較文本文件的異同處。如果該命令指定進行目錄的比較,則將會比較該目錄中具有相同文件名的文件,而不會對其子目錄文件進行任何比較操作。

格式:

diff [option] [para]

常用命令:

$ diff filename1 filename2    //使用diff指令對文件進行比較

date命令

date命令是顯示或設置系統時間與日期。 很多shell腳本里面需要打印不同格式的時間或日期,以及要根據時間和日期執行操作。延時通常用於腳本執行過程中提供一段等待的時間。日期可以以多種格式去打印,也可以使用命令設置固定的格式。在類UNIX系統中,日期被存儲爲一個整數,其大小爲自世界標準時間(UTC)1970年1月1日0時0分0秒起流逝的秒數。

格式:

date [option] [para]

選項:

-d<字符串>:顯示字符串所指的日期與時間。字符串前後必須加上雙引號

-s<字符串>:根據字符串來設置日期與時間。字符串前後必須加上雙引號

-u:顯示GMT

應用實例:

1.格式化時間輸出

$ date +"%Y-%m-%d"

2.輸出昨天日期

$ date -d "1 day ago" +"%Y-%m-%d"      //輸出昨天日期

3.5秒後輸出

$ date -d "5 second" +"%Y-%m-%d %H:%M.%S"

4.設定時間

$ date -s time      

cal命令

用於顯示當前日曆,或者指定日期的日曆

格式:

cal [option] [para]

選項:

-l:顯示單月輸出

-3:顯示臨近三個月的日曆

-s:將星期日作爲月的第一天

-m:將星期一作爲月的第一天

-j:顯示日期,按天顯示

-y:顯示當前年的日曆
發佈了46 篇原創文章 · 獲贊 48 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章