linux系統中的文件或目錄的屬性主要包括:索引節點(inode)、文件類型、權限屬性、連接數、所歸屬的用戶和用戶組、最近修改的時間等內容node
咱們用ls –lhi命令查看一下結果,也能夠用stat詳細查看文件屬性。linux
[root@linzhongniao ~]# ls -lhi total 92K 400420 -rw-------. 1 root root 1.1K Jun 14 05:02 anaconda-ks.cfg 400431 -rw-r--r--. 1 root root 112 Jul 16 2018 chuangjianrizhi.sh 404480 -rw-r--r--. 1 root root 52 Jul 17 2018 ddd.txt 404166 drwxr-xr-x. 2 root root 4.0K Jun 28 09:15 Desktop 404170 drwxr-xr-x. 2 root root 4.0K Jun 28 09:09 Documents 404167 drwxr-xr-x. 2 root root 4.0K Jun 28 09:09 Downloads 390867 -rw-r--r--. 1 root root 292 Jun 20 01:00 ett.txt 390147 -rw-r--r--. 1 root root 20K Jun 14 05:02 install.log 390148 -rw-r--r--. 1 root root 5.8K Jun 14 05:01 install.log.syslog 390809 drwxr-xr-x. 7 root root 4.0K Jul 12 10:26 linzhongniao 404481 -rw-r--r--. 1 root root 41 Jul 8 13:41 linzhongniao.txt 404171 drwxr-xr-x. 2 root root 4.0K Jun 28 09:09 Music 404172 drwxr-xr-x. 2 root root 4.0K Jun 28 09:09 Pictures 404169 drwxr-xr-x. 2 root root 4.0K Jun 28 09:09 Public 390873 -rw-r--r--. 1 root root0 Jul 3 09:09 sdsd.txt 400406 -rw-r--r--. 1 root root 297 Jul 11 14:26 sss.txt 404168 drwxr-xr-x. 2 root root 4.0K Jun 28 09:09 Templates 404173 drwxr-xr-x. 2 root root 4.0K Jun 28 09:09 Videos
Inode中文意思是索引節點(index node)。在每一個linux存儲設備或存儲設備的分區(存儲設備能夠是硬盤、軟盤、U盤)被格式化爲ext4文件系統後,通常有兩個部分:第一個部分是Inode(不少個),第二部分是Block(不少個)。inode節點號相同的文件,互爲硬連接文件,能夠認爲是一個文件的不一樣入口。shell
Block是用來存儲實際數據的,而Inode就是用來存儲文件屬性的。Inode的屬性信息包括文件大小、屬主、文件的權限、文件類型、修改時間。還包含指向文件實體block的指針。可是Inode裏面惟獨不包括文件名。windows
由於Inode要存放文件的屬性信息,因此inode是有大小的,不一樣的Inode大小是不同的。inode的大小在分區被格式化建立文件系統後定下來了,格式化之後就不能改變inode的大小,格式化前能夠用-i參數指定inode的大小。bash
查看每一個分區的inode大小,先查看系統分區運維
[root@linzhongniao ~]# dumpe2fs /dev/sda1|grep -i "inode size" dumpe2fs 1.41.12 (17-May-2010) Inode size: 128 [root@linzhongniao ~]# dumpe2fs /dev/sda2|grep -i "inode size" dumpe2fs 1.41.12 (17-May-2010) Inode size: 256 [root@linzhongniao ~]# dumpe2fs /dev/sda3|grep -i "inode size" dumpe2fs 1.41.12 (17-May-2010) dumpe2fs: Bad magic number in super-block while trying to open /dev/sda3 《==sda3是swap訪問不了,能夠用df –h查看 [root@linzhongniao ~]# dumpe2fs /dev/sda4|grep -i "inode size" dumpe2fs 1.41.12 (17-May-2010) Inode size: 256
用df –i查看ssh
[root@linzhongniao ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda411G 3.5G 6.3G 36% / tmpfs 490M 0 490M 0% /dev/shm /dev/sda1 190M 65M 116M 36% /boot /dev/sda2 7.6G 182M 7.0G 3% /var /dev/sdb185M 312K 79M 1% /tmp/sdb1
兩種方法ide
[root@linzhongniao ~]# dumpe2fs /dev/sda4|egrep -i "block size|inode size" dumpe2fs 1.41.12 (17-May-2010) Block size: 4096 Inode size: 256 [root@linzhongniao ~]# dumpe2fs /dev/sda4|egrep -i "block count|inode count" dumpe2fs 1.41.12 (17-May-2010) Inode count: 690880 Block count: 2759424 Reserved block count: 137971 [root@linzhongniao ~]# tune2fs -l /dev/sda1|egrep -i "inode size|block size" Block size: 1024 Inode size: 128
小結:優化
磁盤空間是否滿了,是由兩項參數決定的:ui
第一個是Inode滿了,第二個是block滿了,任何一項滿了都會致使磁盤空間已經佔滿。
在格式化的時候指定,格式化命令:mkfs.ext4 –b 2048 –i 256 /dev/sdb
在linux系統中,一切設備(包括目錄、普通文件)皆是文件,文件類型包括普通文件、目錄、字符設備文件、塊設備文件、符號連接文件、管道文件等等。查看文件類型能夠用file命令。
在linux系統中,連接可分爲兩種:一種爲硬連接,另外一種爲軟鏈接或符號連接。ln這個命令就是建立連接文件的,在默認不帶參數的狀況下,執行ln命令就是建立硬連接文件的。
硬連接:ln 源文件 目標文件(目標文件不能是事先存在的)
軟鏈接:ln –s 源文件 目標文件(目標文件不能是事先存在)
硬連接是指經過索引節點(Inode)來進行連接。在linux(ext2,ext3,ext4)文件系統中,保存在磁盤分區中的文件不論是什麼類型都會給它分配一個編號,這個編號被稱爲索引節點編號(Index Inode)簡稱Inode。即在系統中文件的編號。
在linux文件系統中,多個文件名指向同一個索引節點(Inode)是正常且容許的。硬連接文件就至關於文件的另外一個入口,硬連接的做用之一是容許一個文件擁有多個有效路徑名(多個入口),這樣用戶就能夠經過創建硬連接文件,以防止「誤刪」源數據。
演示:誤刪數據
[root@linzhongniao linzhongniao]# echo 1 >a [root@linzhongniao linzhongniao]# cat a 1 [root@linzhongniao linzhongniao]# ls -l a -rw-r--r--. 1 root root 2 Jul 13 14:20 a [root@linzhongniao linzhongniao]# ln a b 硬連接文件有相同的inode [root@linzhongniao linzhongniao]# ls -lhi a b 390821 -rw-r--r--. 2 root root 2 Jul 13 14:20 a 390821 -rw-r--r--. 2 root root 2 Jul 13 14:20 b [root@linzhongniao linzhongniao]# rm -f a [root@linzhongniao linzhongniao]# ls b [root@linzhongniao linzhongniao]# cat b 1 恢復誤刪的數據 [root@linzhongniao linzhongniao]# cat b 1 [root@linzhongniao linzhongniao]# cat b > a [root@linzhongniao linzhongniao]# ls a b [root@linzhongniao linzhongniao]# cat a 1
硬連接文件的建立:
直接執行命令「ln 源文件 硬連接文件」(硬連接文件必定是不存在的)便可完成建立硬連接。
小結:
(1)具備相同的inode節點號的多個文件是互爲硬連接文件。
(2)刪除硬連接文件或者刪除源文件任意之一,文件實體並未被刪除。
(3)只有刪除了源文件及全部對應的硬連接文件,文件實體纔會被刪除。
(4)能夠經過給文件設置硬連接文件,來防止重要文件被誤刪
(5)經過執行命令「ln 源文件 硬連接文件」,便可完成建立硬連接文件。
(6)硬連接文件是普通文件所以能夠用rm 刪除。
軟連接(Symbolic Link)也稱爲符號連接。linux裏的軟鏈接文件就相似於Windows系統中的快捷方式。linux裏的軟連接文件其實是一個特殊的文件,文件類型是l(L)。軟連接文件實際上能夠理解爲一個文本文件,這個文件中包含有軟連接指向另外一源文件的位置信息內容,所以經過訪問這個「快捷方式」就能夠迅速定位到軟連接所指向的源文件實體。
演示:
[root@linzhongniao linzhongniao]# touch file [root@linzhongniao linzhongniao]# ln -s file soft_file [root@linzhongniao linzhongniao]# ls -l file soft_file -rw-r--r--. 1 root root 0 Jul 13 15:53 file lrwxrwxrwx. 1 root root 4 Jul 13 15:53 soft_file -> file 查看軟連接包含什麼用readlink,輸出源文件 [root@linzhongniao linzhongniao]# readlink soft_file file 《==soft_file是軟連接文件它其實是指向了源文件file
設置開機自啓動其實就是爲/etc/init.d/下的文件在/etc/rc.d/rc3.d/下的文件建立軟連接文件
[root@linzhongniao ~]# ls -l /etc/rc.d/rc3.d/S55sshd lrwxrwxrwx. 1 root root 14 Jun 14 05:01 /etc/rc.d/rc3.d/S55sshd -> ../init.d/sshd [root@linzhongniao ~]# readlink /etc/rc.d/rc3.d/S55sshd ../init.d/sshd
軟連接的建立:
執行命令「ln –s 源文件 軟連接文件」(軟連接文件必定是不存在的),便可完成建立軟連接。
提示:建立軟連接源文件是須要存在的,要建立的軟連接文件是不能存在的,是要用ln命令建立的。
小結:
(1)軟連接相似windows的快捷方式(能夠經過readlink查看其指向)。
(2)軟連接相似一個文本文件,裏面存放的是源文件的路徑,指向源文件實體。
(3)刪除源文件,軟連接文件依然存在,可是沒法訪問指向的源文件路徑內容了。
(4)失效的時候通常是白字紅底閃爍提示、
(5)軟連接文件和源文件是不一樣類型的文件,也是不一樣的文件。inode號也不相同。
(6)刪除軟連接文件能夠用rm命令。
(1)對於目錄,不能夠建立硬連接,但能夠建立軟連接
[root@linzhongniao linzhongniao]# ln woshishei woshishei_hard_link ln: `woshishei': hard link not allowed for directory [root@linzhongniao linzhongniao]# ln -s woshishei woshishei_hard_link
(2)對於目錄的硬連接是生產場景運維中經常使用的技巧
(3)目錄的軟連接不能跨越文件系統
(4)每一個目錄下面都有一個硬連接「.」號和當前目錄互爲硬連接,和對應上級目錄的「..」互爲硬連接
[root@linzhongniao linzhongniao]# ls -a woshishei woshishei/. -ldi 390865 drwxr-xr-x. 2 root root 4096 Jul 13 17:17 woshishei 390865 drwxr-xr-x. 2 root root 4096 Jul 13 17:17 woshishei/. [root@linzhongniao linzhongniao]# ls -a woshishei/.. ../linzhongniao ../linzhongniao/. -ldi 390809 drwxr-xr-x. 3 root root 4096 Jul 13 17:18 ../linzhongniao 390809 drwxr-xr-x. 3 root root 4096 Jul 13 17:18 ../linzhongniao/. 390809 drwxr-xr-x. 3 root root 4096 Jul 13 17:18 woshishei/..
(5)在父目錄裏建立一個子目錄,父目錄的連接數增長1(每一個子目錄裏都有..來指向父目錄)。可是在父目錄裏面建立文件,父目錄的鏈接數不會增長。我認爲這就是爲何cd .是進入到當前目錄而cd ..就是進入到上一級目錄的緣由。
[root@linzhongniao ddd]# mkdir df [root@linzhongniao ddd]# ls -lid df/.. 399601 drwxr-xr-x. 3 root root 4096 Sep 21 21:07 df/.. [root@linzhongniao ddd]# ls -ldi . 399601 drwxr-xr-x. 3 root root 4096 Sep 21 21:07 .
用戶的角色是經過UID和GID識別的,用戶的UID就至關於咱們的×××號同樣,用戶名就至關於咱們的名字。
UID (User Identify) 用戶ID,至關於×××號,在系統是惟一的
GID (Group Identify) 組ID,至關於一個家庭或者一個學校的ID
linux系統中的用戶分爲三類:超級用戶、普通用戶、虛擬用戶。
超級用戶:默認是root用戶,其UID和GID均爲0。root用戶在每臺linux操做系統中都是惟一真實存在的而且擁有最高的管理權限。
企業工做中:沒有特殊需求,應該儘可能在普通用戶下操做任務,而不是root。
在linux系統中,uid爲0的用戶就是超級用戶,可是一般不這麼作,而是sudo管理提權,能夠爲每一個命令分配權限。
普通用戶:
普通用戶的UID是500到65535,普通用戶是具有系統管理員root的權限的運維或者系統管理人員添加的,普通用戶登陸系統,僅能操做本身家目錄中的文件及目錄的權限,除此以外還能夠進入或者瀏覽相關的目錄;可是沒法建立、修改和刪除完成這些操做,可是能夠給用戶受權(sudo)。
虛擬用戶:
虛擬用戶(沒有家目錄)的UID是從1到499。安裝系統默認就會存在,且默認狀況大多數不能登陸系統,他們是系統正常運行不可缺乏的,他們的存在主要是方便系統管理,知足相應的系統進程對文件屬主的要求。在系統優化的時候能夠把虛擬用戶註釋掉。
linux系統下的帳戶文件主要有/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow四個文件中。
/etc/passwd 文件中每行定義一個用戶帳號,有多少行就表示多少個帳號。分爲7列。
[root@linzhongniao ~]# tail -5 /etc/passwd stu6:x:860:860::/home/stu6:/bin/bash stu7:x:861:861::/home/stu7:/bin/bash stu8:x:862:862::/home/stu8:/bin/bash stu9:x:863:863::/home/stu9:/bin/bash stu10:x:864:864::/home/stu10:/bin/bash
第一列:帳號名稱
第二列:帳號密碼
第三列:帳號UID
第四列:帳號組GID
第五列:用戶說明
第六列:用戶家目錄
第七列:shell解釋器
[root@linzhongniao ~]# head -5 /etc/shadow root:$6$IcyLTHpcQrCAyptm$cYxjHT.wPQHekZsb.c/UFyH8FQ4BTDms4o3P8YAvpcyEzA1gcr51gaXVN0IBh2yOne1fZB5zPfZ4Ven3QocAz0:17695:0:99999:7::: bin:*:15980:0:99999:7::: daemon:*:15980:0:99999:7::: adm:*:15980:0:99999:7::: lp:*:15980:0:99999:7:::