-------------------------------------------------------------------------------------------------------------
/etc 系统的配置文件以及服务的启动命令存放的目录
/home 普通用户的家目录
/sbin 系统的二进制目录,一般用于系统管理员的二进制命令的目录。
/var variable data --可变化的数据,存放可变化的目录的文件,例如,日志。
----------------------------------------------------------------------------------------------------------------
1、/etc 目录下的重要目录和文件
/etc/issue
记录用户登录前显示的系统的信息,例如,Centos版本,内核版本。
/etc/motd
登录提醒。在该文件中写入的内容下次登录会提示。
/etc/redhat-release
显示系统版本信息;
uname -r 显示内核版本信息
/etc/group
设定用户的组名与相关信息
chattr +i 锁定用户组,无法将用户添加到组里
chattr -i 解锁。
chattr 也可以对 /etc/passwd、/etc/shadow 进行操作。
/etc/passwd
账号信息文件
x 的位置代表的是密码,因为密码存放在 passwd 里不安全,因此移走了。
创建用户的时候默认创建一个同名的组。
/etc/shadow
密码信息文件
/etc/sudoers
可以执行使用 sudo 命令的配置文件(权限提升)
visudo -- 相当于 vim /etc/sudoers
/etc/rc.local
存放开机自启动内容的文件(通过源程序自己编译安装的软件);chkconfig 一般是用来管理 yum/rpm 包装的内容
/etc/securetty
设定哪些终端可以让 root 登录
/etc/login.defs
所有用户登录时的缺省配置
/etc/modprobe.conf
内核模块额外参数设定
/etc/rsyslog.conf
日志设置文件(Centos 6)
---------------------------------------------------------------------------------------
/use/local 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中,相当于:C:\Program files
/usr/src 内核源码的存放目录。
--------------------------------------------------------------------------------------
2、/var 目录下的路径知识
/var
日志文件
/var/log
各种系统日志存放地
/var/log/messages
系统信息默认日志文件,按周自动轮询,当系统出现问题时会将问题打到该目录下
/var/log/secure
系统安全的日志文件,记录登入系统存取信息的文件,按周自动轮询。
last
在线用户登录的信息
lastlog
曾经登录过的用户的历史
3、 /proc 下的重要路径知识
/proc
虚拟目录,是内存的映射,内核和进程的虚拟文件系统目录
/proc/version
内核版本
/proc/sys/kernel
系统内核功能
/proc/cpuinfo
关于处理器的信息,如累心、厂家、型号和性能等
/proc/memminfo
系统内存信息
/proc/devices
当前运行内核所配置的所有设备清单
/proc/dma
当前正在使用的 DMA 通道
/proc/filesystems
当前运行内核所配置的文件系统
/proc/interrupts
正在使用的中断,和曾经有多少个中断。
/proc/ioports
当前正在使用的I/O接口
/proc/loadavg
系统负载平均值信息(系统的繁忙情况,比较准确,但是不够细致系统性能指标)
4、文件类型和文件的扩展名
(1)Windows里是通过扩展名(.txt .png .doc...)来区分文件类型的。
(2)Linux系统下文件的扩展名和文件类型没有关系,
(3)为了容易区分和兼容用户使用Windows的习惯,我们也会用扩展名来表示Linux里的文件类型。
在Linux系统中,可以说一切皆文件。文件类型包含普通文件、目录文件、块设备文件等。
1、使用 ls -l 查看文件信息,第一列的第一个字符代表的就是文件的类型。
- 表示普通文件 d 目录文件 l 链接文件
在Linux里大多数文件都是普通文件,普通文件有三种类型。file 查看文件类型
1)纯文本文件(ASCII):内容可直接读取(使用cat直接查看),数字字母等,比如配置文件几乎都是这种类型的。
使用 ls -l 可以查看这个文件是什么文件,但是属于查看属于哪种类型需要使用 file 命令。
a.txt 在普通文件的基础上是一个纯文本文件。
2)二进制文件(binary):Linux中的可执行文件,比如命令文件,cat、ls、cp
3)数据格式的文件(data):具有特定格式的文件
/var/log/wtmp 存放的是最近登录的信息
2、ls -l 目录名 查看目录里内容的详细信息
ls -ld 目录名 仅仅查看目录本身的属性
ls -F 在文件后面加上标识(*/=>@|),用于区分是什么类型的文件
rmdir 用于删除空目录,只能删除空目录。
3、字符设备就是穿行端口的接口设备。
4、块设备(磁盘,光驱)
使用 mknod 创建字符设备和块设备。
4、套接字/套接口文件
5、符号链接文件
软连接文件的创建:ln -s 源文件名 新文件名
6、Linux下扩展名的作用
ls -h 以人类可读的形式标识
ls -i 文件的索引号,inode
(1)索引节点inode概述:
硬盘要分区,分区要格式化,创建文件系统;
inode(index node),索引节点。在每个Linux存储设备或存储设备的分区(存储设备可以是硬盘、软盘、U盘等)被格式化为文件系统(ext3 ext4)后,一般都有两部分:第一部分是Inode,第二部分是Block。
Block 是用来存储实际数据用的,真正存放数据实体的,例如:照片,视频等普通文件数据。
而inode就是用来存储这些数据属性信息的(也就是 ls -l 的结果),inode包含的属性信息包括文件大小、属主、归属的用户组、读写权限、文件类型,修改时间,还包含指向文件实体的指针的功能(inode 节点 --block 的对应关系)等,但是,唯独不包含用户名。
一般来说一个 block 大概只有 1k 2k 或4k,如果拷一个视频那么会分为若干个block。
每创建一个文件都会分配一个 inode,访问 inode 都会找到 block 的位置。
查看inode的总量和使用量:df -i
df -h 查看磁盘的使用量
小结:
(1)linux 里一个文件至少要占用一个 inode和一个 block,不管文件多大,一定要有一个inode。
格式化数量:inode 数量会大于block 数量。
(2)ext2 ext3 ext4 文件中block的大小一般为 1k 2k 4k
7、有关Block的大小:磁盘读取数据是按 Block 为单位读取的,一个 block 只能存放一个文件的内容,所以 Block 并非越大越好。
磁盘读取数据是按 block 为单位读取的,但是对于大文件,可以提升读取的效率,因为如果 block 太小,就要读多个 block,这样就消耗磁盘 IO ,如果 block 大,则会读较少的 block 就读完数据从而减少磁盘 IO。block 块太小又会影响硬盘读取大文件数据的效率,block 块越小,同样存储一个文件就需要更多的 Block,这样硬盘读取数据时就要读取多个 block,因此效率就越低。
当前生产环境一般设置为 4k。
小结:
1)磁盘分区格式化文件系统后,会分为 inode 和 block 两部分内容;
2)inode 存放文件的属性以及指向文件实体的指针,文件名不在 inode 里,一般在上级目录的 block 里。
3)访问文件,通过文件名----> inode --> block
4)inode 一般情况默认大小 256B,block 大小1k 2k 4k,默认是4k,注意,引导分区等特殊分区除外。
5)通过 df -i 查看 inode 的数量及使用情况,dump2fs /dev/sda3 查看 inode及 block 的大小及数量。
6)一个文件至少要占用一个 inode 及一个 block ,多个文件可以占用同一个 inode(硬链接)。
7)一个 block 只能被一个文件使用 ,如果文件很小 block 很大,剩余空间浪费,无法继续被其他文件使用。
8)block 不是越大越好,要根据业务的文件大小进行选择,一般就是默认 4k
9)可以再格式化的时候改变 inode 及 block 的大小。