-i inode节点号
-h 人类可读node
ls -lhi 1703938 drwxr-xr-x 2 rsync rsync 4.0K Jun 7 07:24 gameserver1 第一列:文件的索引节点号(人的身份证,linux系统惟一) 系统读取文件时首先经过文件名找到inode,而后才能读取文件内容。 第二列:文件的类型和权限,第一个字符文件的类型,后九个字符是文件的权限,最后一个字符.是和selinux相关的标识 第三列:硬连接的数量,同一个文件的不一样的访问路口 第四列:文件或目录所属的用户,属主 linux里面文件和程序的存在必需要有用户和组知足的存在需求 第五列:文件或目录所属的组 第六列:文件大小 第七列:第八列:第九列:文件的修改时间 对应的是-mtime时间,默认是月日时分 ctime是属性的改变,atime访问 第十列:文件名称 文件名不算文件的属性
inode 索引节点,英文就是 index node
硬盘要存储数据,首先要分区,而后格式化建立文件系统,最后存储数据mysql
每一个linux存储设备或存储设备的分区被格式化为ext4文件系统后(管理文件的一种机制),通常生成2部分,inode和blocklinux
block是用来存储数据的用的。
inode就是用来存储数据属性信息的(至关于ls -l的结果),inode属性信息包括不限于文件大小,属主,归属的用户组,文件权限,文件类型,修改时间,还包含指向文件实体的指针,可是inode里面惟独不包含文件名,还会为每一个文件进行信息索引,就是inode的数值。sql
书的目录索引就至关于inode,每一页至关于block,整本书就是一个扇区shell
stat 显示文件,文件系统状态(查看文件属性)
stat /etc/hosts 也能够查看inode,详细的查看文件信息数据库
[root@Poppy ~]# stat /etc/hosts File: ‘/etc/hosts’ Size: 204 Blocks: 8 IO Block: 4096 regular file Device: fd01h/64769d Inode: 1183348 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2018-06-19 14:10:17.421425118 +0800 Modify: 2018-06-14 14:05:07.713140443 +0800 Change: 2018-06-14 14:05:07.716140534 +0800 Birth: -
由于inode要存放文件的属性,因此每一个inode自己是有大小的,centos5默认大小事128字节,centos6是256字节,inode的大小在文件系统被格式化建立文件系统以后定下来的,格式化之后就没法更改inode大小,格式化以前能够经过参数指定inode的大小,可是通常不须要改apache
文件系统的默认inode大小 [root@Poppy ~]# dumpe2fs /dev/vda1|grep -i "inode size" dumpe2fs 1.42.9 (28-Dec-2013) Inode size: 256 文件系统inode总量以及剩余量 [root@Poppy ~]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/vda1 2621440 151967 2469473 6% / devtmpfs 233122 320 232802 1% /dev tmpfs 235465 1 235464 1% /dev/shm tmpfs 235465 406 235059 1% /run tmpfs 235465 16 235449 1% /sys/fs/cgroup tmpfs 235465 1 235464 1% /run/user/0 磁盘空间是否满了,第一个是inode是否满了,第二个事block满了 磁盘满了的特征 no space device left on
咱们总结一下inode节点windows
1. 磁盘被分区并格式化为ext3/ext4文件系统后会生成必定数量的inode和block 2. inode称为索引节点,它的做用就是存放文件的属性信息以及做为文件的索引(指向文件的实体) 3. ext3/ext4文件系统的block存放的是文件的实际内容 4. inode是磁盘上的一块存储空间,centos6非启动分区inode默认大小256字节,centos5是128字节 5. inode的表现形式是一串数字,不一样的文件对应的inode(一串数字)在文件系统里是惟一的。 6. inode相同的文件,互为硬连接文件 7. ext3/ext4文件系统下,一个文件被建立后至少要占用一个inode和一个block 8. ext3/ext4文件系统下,正常状况下一个文件占用且只能占用一个inode 9. block是用来存储数据的,每一个block大小通常有1k,2k,4k几种,其中引导分区等为1k,其余普通分区为4k 10. 若是一个文件很大,可能占多个block,若是文件很小,至少也要占一个block,而且这个block的剩余空间就浪费了,即没法在存储其余数据了 11. inode大小和block总量查看 [root@Poppy ~]# dumpe2fs /dev/vda1 |egrep -i "block size|inode size" dumpe2fs 1.42.9 (28-Dec-2013) Block size: 4096 Inode size: 256 [root@Poppy ~]# dumpe2fs /dev/vda1 |egrep -i "block count|inode count" dumpe2fs 1.42.9 (28-Dec-2013) Inode count: 2621440 Block count: 10485248 Reserved block count: 524262 默认block count通常会大于inode count的数量 12. 查看inode的总量和使用量命令 df -i 13. 查看文件的inode ls -li 或 stat /etc/hosts 14. 改变inode大小 格式化的时候: mkfs.ext4 -b 2048 -I 256 /dev/sda
1. block块centos
1. 磁盘读取数据是按block为单位读取的 2. 一个文件可能占用多个block。可是每读取一个block就会消耗一次磁盘i/o 3. 若是要提高磁盘io性能,那么就要尽量一次性读取数据尽可能的多 4. 一个block只能存放一个文件的内容,不管内容有多小。若是blcok默认是4K大小,那么存放一个1K的文件,剩余3K就不能存放别的文件,只能浪费了 5. block太大,例如4k,文件都是0.1k,浪费磁盘空间,可是访问性能高 6. block过小,例如1k,文件都是1000k,消耗大量磁盘I/O 7. block的大小设置十四载格式化分区时候肯定的,mkfs.ext4 -b 2048 -I 256 /dev/vda/ 8. 企业里文件都比较大(通常大于4K),block设置大一些会提高磁盘访问效率 9. ext3/ext4文件系统,通常都是设置为4k
2. inode和block的总结bash
1. 磁盘被分区格式化文件系统后,会分为inode和block俩部份内容 2. inode存放文件的属性以及指向文件实体的指针,文件名不在inode里,通常上级目录的block里 3. 访问文件,经过文件名---inode---blocks 4. inode通常状况下大小是256b,block大小1,2,4k,默认是4k,注意,引导分区等特殊分区除外 5. 经过df -i查看inode的数量以及使用状况,dumpe2fs /dev/vda1 查看inode及block的大小及数量 6. 一个文件至少要占用一个inode及一个block,多个文件能够占用同一个inode(硬连接),相同文件 7. 一个block只能被一个文件使用,若是文件很小block很大,剩余空间浪费,没法继续被其余文件使用 8. block不是越大越好,要根据业务的文件大小进行选择,通常默认4k 9. 能够在格式化的时候改变inode及block的大小
ls -lhi 1703938 drwxr-xr-x 2 rsync rsync 4.0K Jun 7 07:24 gameserver1
一 文件类型
在inux系统中,一切皆文件
普通文件的建立:touch cp > tar
1. 普通文件包括:
2. 目录文件
[root@Poppy joker]# tree -Ld 1 /joker 显示目录结构 /joker ├── gameserver1 ├── gameserver2 ├── scripts └── tools 4 directories -L layer层数, -d目录
3. 字符设备文件
字符设备或块设备 [root@Poppy joker]# ls -al /dev/tty crw-rw-rw- 1 root tty 5, 0 Jun 12 11:33 /dev/tty
4. 块设备文件
什么是块设备,就是存放数据的,就是磁盘 [root@Poppy ~]# find /dev -type b|xargs ls -l brw-rw---- 1 root disk 253, 0 Jun 6 14:09 /dev/vda brw-rw---- 1 root disk 253, 1 Jun 6 14:10 /dev/vda1
5. 套接字文件
用于网络通讯的,数据库mysql.sock
[root@Poppy ~]# find /dev -type s |xargs ls -l srw-rw-rw- 1 root root 0 Jun 6 22:09 /dev/log
6. 符号连接文件
快捷方式,指向文件的实体
[root@Poppy ~]# find /application/ -type l|xargs ls -l lrwxrwxrwx 1 root root 26 Jun 13 10:30 /application/apache -> /application/apache2.4.33/
7. 管道文件
特殊的文件类型,主要是解决多个程序同时访问一个文件所形成的错误,第一个字符为p
8. 扩展名文件
linux中的文件是不须要扩展名的,为了 兼容window,便于咱们大多数习惯了windows的用户区分文件的不一样
如何查看文件类型:
[root@Poppy joker]# file a a: ASCII text [root@Poppy joker]# file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=3d705971a4c4544545cb78fd890d27bf792af6d4, stripped [root@Poppy joker]# file /var/log/wtmp /var/log/wtmp: data
二 权限位
- 没有权限 0 , r 4 w 2 x 1
前三位 属主权限位(用户权限位),中三位 属组权限位(用户组),后三位 其它用户权限位
三 关于.
.与selinux相关的状态,若是把selinux关闭,目录文件将不会有这个.
一种是硬连接,还有一种是软链接或符号连接
1. 硬连接
经过ln命令建立的硬连接,而经过ln -s建立的连接是软连接
命令演示 ln 源文件 目标文件 ln -s 源文件 目标文件,不能事先存在
硬连接是经过inode来进行连接,在linux系统中,多个文件名指向同一个索引节点是正常容许的,这种状况的文件就称为硬连接文件。硬连接文件就至关于文件的另一个入口。做用之一是容许一个文件拥有多个有效路径名,以防止误删除。
[root@Poppy joker]# echo 1 > a [root@Poppy joker]# ln a b [root@Poppy joker]# ls -lhi total 744K 1717994 -rw-r--r-- 2 root root 2 Jun 20 14:06 a 1717994 -rw-r--r-- 2 root root 2 Jun 20 14:06 b 因此即便你删除了a,还能经过b来恢复重定向
linux下文件删除的原理
只要文件的inode还有一个以上的硬连接,只删除其中一个硬连接并不影响inode自己和其它的连接,只有当文件的最后一个连接被删除后,被删除的文件的数据块才会被释放。
i_link(硬连接数量),为0,文件就被删除。
i_count(进程引用计数),为0,文件就被删除。
文件的删除条件为,i_link和i_count都为0,才可删除文件,虽然删除仍是删除的inode节点,并非真正删除内容,可是后面产生的新数据会覆盖这些数据
若是你删除文件,可是磁盘仍是没有释放空间,多数由于进程还在调用这个文件,能够重启服务,或者经过重定向清空文件
硬连接知识小结:
1. 具备相同inode节点号的多个文件是互为硬连接文件 2. 删除硬连接文件或者删除源文件任意之一,文件实体并未被删除 3. 只有删除了源文件及全部对应的硬连接文件,文件实体才会被删除 4. 当全部的硬连接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查的时候,删除的数据也会被系统回收 5. 硬连接文件就是文件的另外一个入口 6. 能够经过给文件设置硬连接文件,来防止重要文件被误删除 7. 经过执行命令“ln 源文件 硬连接文件”,便可完成建立硬连接 8. 硬连接文件是普通文件,所以能够用rm命令删除 9. 对于静态文件来说,当对应硬连接数为0,文件就被删除,ls -l第三列就是
2. 软连接
快捷方式,就是一个指向
[root@Poppy joker]# ls -lhi a b 1717994 -rw-r--r-- 1 root root 0 Jun 20 14:50 a 1717995 lrwxrwxrwx 1 root root 1 Jun 20 14:50 b -> a 访问软连接的时候其实软连接保存了源文件的路径地址
软链接知识小结:
建立软链接源文件是须要存在的,要建立的软链接文件是不能存在的,是要用ln命令建立的 1. 软链接相似windows的快捷方式(能够经过readlink查看其指向) 2. 软链接相似一个文件文件,里面存放的是源文件的路径,指向源文件实体 3. 删除源文件,软链接文件依然存在,可是没法访问指向的源文件路径内容了 4. 失效的时候通常是白字红底闪烁提示 5. 执行命令“ln -s 源文件 软链接文件”,便可完成建立软连接(目标不能存在) 6. 软链接和源文件是不一样类型的文件,也是不一样的文件。inode号也不相同 7. 软链接文件的文件类型为l,能够用rm命令删除
目录软链接知识:
.为何是当前目录,由于它与当前目录互为硬连接 [root@Poppy joker]# ls -aldi gameserver1 gameserver1/. 1703938 drwxr-xr-x 3 rsync rsync 4096 Jun 20 15:19 gameserver1 1703938 drwxr-xr-x 3 rsync rsync 4096 Jun 20 15:19 gameserver1/. ..为何是上级目录,由于它与上级目录互为硬连接 [root@Poppy joker]# ls -aldi gameserver1 gameserver1/. gameserver1/2/.. 1703938 drwxr-xr-x 3 rsync rsync 4096 Jun 20 15:19 gameserver1 1703938 drwxr-xr-x 3 rsync rsync 4096 Jun 20 15:19 gameserver1/. 1703938 drwxr-xr-x 3 rsync rsync 4096 Jun 20 15:19 gameserver1/2/.. 1. 对于目录,不能够建立硬连接,可是能够建立软连接 2. 对于目录的软链接是生产场景运维中的经常使用的技巧 3. 目录的硬连接不能跨越文件系统 4. 每一个目录下面都有一个硬连接“.”号,和对应上级目录的硬连接”..“ 5. 再敷目录里建立一个子目录,父目录的链接数增长1(每一个子目录里都有..来指向父目录),可是再父目录里建立文件,父目录的链接数不会增长
linux是一个多用户,多任务的操做系统
用户的角色是经过uid和gid识别的,特别是uid,在linux系统运维工做中,一个uid是惟一标识一个系统用户的帐号(至关于咱们的身份证),用户系统帐号的名称其实给人看的,linux系统能识别仅仅是uid和gid这样的数字
1. 超级用户
root是超级用户,uid和gid都是0,拥有最高的管理权限
2. 普通用户
500-65535 普通用户 su -root 角色切换 sudo ls 受权
3. 虚拟用户
1-499 虚拟用户 安装软件时候自带的用户,不能登陆的用户
4. 用户相关的文件
# /etc/passwd 用户的配置文件 帐号名称 帐号密码 帐号uid 帐号gid 用户说明 用户家目录 shell解释器 [root@Poppy conf]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin # /etc/shadow 用户口令文件 帐号名称 帐号密码 最近更改密码的时间 禁止修改密码的天数 用户必须更改口令的天数 警告更改密码的期限 不活动时间 失效时间 标志 # /etc/group 组的配置文件 用户组名 用户组密码 gid 用户组成员 # /etc/gshadow 组的口令文件
文件或者目录的大小
modify修改时间 mtime 通常修改文件内容的时候 change改变时间 ctime 文件的属性改变,大小,权限等 access访问时间 atime 访问文件内容的时候 [root@Poppy conf]# ls -l --time-style=long-iso total 124 drwxr-xr-x 2 root root 4096 2018-06-13 16:46 extra -rw-r--r-- 1 root root 18566 2018-06-13 16:05 httpd.conf -rw-r--r-- 1 root root 18410 2018-06-13 15:07 httpd.conf.bak -rw-r--r-- 1 root root 13077 2018-06-13 10:24 magic -rw-r--r-- 1 root root 60847 2018-06-13 10:24 mime.types drwxr-xr-x 3 root root 4096 2018-06-13 10:24 original 查看文件的时间属性 stat 后面接文件或者属性 [root@Poppy conf]# stat /joker/ File: ‘/joker/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd01h/64769d Inode: 1703937 Links: 6 Access: (0755/drwxr-xr-x) Uid: ( 1000/ rsync) Gid: ( 1000/ rsync) Access: 2018-06-20 14:55:54.246604690 +0800 Modify: 2018-06-20 14:55:53.766590115 +0800 Change: 2018-06-20 14:55:53.766590115 +0800 Birth: -
不在inode里,而是在上级目录的block里