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:::