文件系统
基于层次管理文件
目录:路径影射 文件:存储空间存储的一段流式数据,对数据可以做到按名存取
文件系统:层次结构 倒置树状结构 有索引 /:原始起点 /dev/pts/2: 最左侧/表示目录 其他/表示路径分隔符
文件的路径表示
绝对路径: 从根开始表示出的路径
相对路径:从当位置开始表示出的路径
文件名使用法则
严格区分字符大小写:file File FILE
目录也是文件,在同一路径下,两个文件不能同名
支持使用除/以外的任意字符
最长不能超过255个字符
以.开头的为隐藏文件
.为当前目录
..为当目录的上一级目录
用户都有家目录:home 用户的起始目录:普通用户管理文件的位置
工作目录: /etc/sysconfig/network-scripts/ifcfg-eno1688 basename: 基名 最右侧的文件或目录名 dirname: basename 左侧的目录
常用命令
相关的环境变量
$PWD:当前工作目录
$OLDPWD: 上一次的工作目录
-rw-r--r--. 1 root root 1363 Jul 31 17:27 init_master.sh
-:文件类型 -,d,b,c,l,s,p
-rw-r--r--.: 左三:文件属主权限 中三文件属组的权限 右三其他用户权限
root: 文件属主
root: 文件属组
1363: 文件大小 Byte字节
Jul 31 17:27: 最后修改时间
init_master.sh 文件名
程序编译方式
Linux公共库 glibc GNU标准类库
动态链接
静态编译
进程的类型
终端: 硬件设备 ,关联一个用户接口 与终端相关:通过终端启动 与终端无关:操作引导启动过程 当中自动启动
操作系统的组成
静态: kernel, application
FHS
/bin 供所有用户可用的基础命令程序文件
/sbin 供系统管理员使用的工具程序
/boot 引导加载器必须用到的各静态文件 kernel initramfs(initrd), grub等
/dev 特殊文件或硬件设备文件
设备有两种类型:字符设备(线性设备),块设备(随机设备)
/etc 系统程序中的配置文件
/home 用户的家目录 普通用户家目录集中位置,一般每个普通用户的家目录默认为此目录下与用户名同名的子目录 /home/USERNAME
/root 管理员的家目录 可选
/lib 为系统启动或根文件系统上的应用程序(/bin, sbin等)提供共享库,以及内核提供的内核模块
libc.so.*: 动态链接的C库
ld*:运行时链接器与加载器
modules: 用户于存储内核模块的目录
/lib64:64系统特有的存放64位共享库的路径
/media: 便携式设备的挂载点,cdrom, floppy等
/mnt: 其他文件系统的临时挂载点
/opt: 附加应用程序的安装位置 第三方程序,可选路径
/srv 当前主机为服务提供的数据
/tmp 为那些会产生临时文件的程序提供时用于存储临时文件的目录,可供所有用户执行写操作,有特殊权限
/usr user Hierarchy 全局共享的只读数据
bin, sbin
lib, lib64
include c程序头文件
share 架构特有的文件的存储位置,命令自带文档和手册页
local 另一个层级目录
x11RG x-widow程序的安装位置
src 程序源码文件的存储位置
/usr/local Local Hierarchy 让系统管理 员安装本地应用程序,也通常安装第三方程序
/var Hierarchy 存储常发生变化的数据的目录
proc 虚拟文件系统,用于内核及进程存储其相关信息,它们多为内核参数,例如net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward, 存储于/proc/sys/,因此其完整的路径为/proc/sys/net/ipv4/ip_forward
sys sysfs虚拟文件提供了种比proc更为理想的访问内核数据的途径 其主要作用管理Linux设备提供一种统一的模型接口
Linux的文件系统
-: 常规文件, 即f
d: 目录文件
b: block device 块设备 以“block”为单位随机访问
c: character device 字符设备文件,支持以“character”为单位进行线性访问
major number: 主设备号,用于标识设备类型,进而确定要加载的驱动程序
minor number: 次设备号,用于标识同一类型中的不同的设备
l:symbolic link; 符号链接文件
p:pipe 命名管道
s:socket 套接字文件
目录管理命令
路径的基名为命令的操作对象,基名之前的路径必须存在
mkdir
make directories
-p 自动按需创建父路径
-v verbose 显示详细过程
-m mode 创建时自动设置权限
rmdir
remove empty directories 删除空目录
-p 自动删除路径空目录
-v verbose 显示详细过程
tree
tree [options] [directory]
-d 只显示目录
-L Level 显示目录层级
disk
持久存储数据
接口类型
IDE(ata):并口 133MB/s
SCSI: 并口 ultrascsi320 320MB/S; UltraSCSI640 640MB/S 100iops
SATA: 串口 6gbps 150-200iops
SAS: 串口 6gbps
USB: 串口, 480MB/S
并口: 同一线缆可以接多块设备
IDE: 两个 主,从
SCSI: 宽带16-1 窄带8-1
串口:同一线缆可以接一个设备
iops: io per second
硬盘
机械硬盘 硬件设备
同轴旋转 固定角速旋转
track 磁道
sector:扇区 512bytes
cylinder 柱面 分区划分是基于柱面进行的
平均寻道时间
5400rpm/7200rpm/10000rpm/15000rpm
固态 400iops 电气设备
PCI-e接口
桌面多为sata接口
mknod
创建块设备或字符设备文件 mknod - make block or character special files
设备文件命名
由ICANN命名
IDE: /dev/hd[a-z]
SCSI,SATA,USB,SAS: /dev/sd[a-z]
引用设备的方式
设备的文件名
卷标
UUID
Centos6和7系统将硬盘设备文件标识为/dev/sd[a-z]
磁盘分区
MBR: 0 sector
master Boot Record
分为三部分
446bytes bootloader 程序 引导启动操作系统的程序
64bytes 分区表 每16个字节标识一个分区,一共只能有四个分区
4主分区
3y1扩展:
n逻辑分区
主分区为1-4
逻辑分区为5+
2byte: MBR区域的有效性标识; 55AA为有效
fdisk 命令
查看磁盘的分区信息
fdisk -l [-u] [device...] 列出指定磁盘设备上的分区情况
管理分区
fdisk device
fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能,所有的操作均在内存中存中完成,没有直接同步到磁盘;直到使用w命令保存到磁盘上
常用命令
n: 创建新分区
d:删除已有分区
t:修改分区类型
l: 查看所有已知ID
w: 保存并退出
q: 不保存并退出
m:查看帮助信息
p:显示所有分区信息
注意:在已经分区并且已经挂载其中的某个分区的磁盘设备上创建的新分区,内核可能在创建完成后无法直接识别
查看分区:
通知内核强制重读磁盘分区表
centos5 : partprobe [device]
centos6,7: partx, kpartx
partx -a [device]
kpartx -af [device]
分区创建工具:parted stdisk
创建文件系统
格式化:
低级格式化 分区之前进行 划分磁道
高级格式化 分区之后进行 创建文件系统
元数据区,数据区
元数据区:inodex(index node)
文件:大小、权限 、属主,属组,时间戳, 数据块指针
数据区 block
链接文件: 存储数据指针的空间当中存储的是真实文件的访问链接 设备文件:存储数据指针的空间当中存储的是设备号(major minor)
bitmap位图索引
inode位图索引
block位置索引
superblock gdt 块组描述符
文件定位:先找根的inode,然后找根的数据块,数据块是子目录与inode,若是目录继续查找目录数据块,若文件则是文件的数据块
vfs
virtual file system Linux的文件系统:ext2(无日志功能) ext3 ext4 xfs reiserfs btrfs(btree) 光盘:iso9660 网络文件系统:nfs,clfs 内核级分布式文件系统:ceph windows的文件系统:vfat,ntfs 伪文件系统:proc,sysfs,tmpfs, hugepagefs Unix的文件系统: UFS,FFS, JFS 交换文件系统:swap 用户空间的分布式文件系统:mogilefs, moosefs, glusterfs
文件系统管理工具
创建文件的工具
mkfs mkfs.ext2 mkfs.ext3...
检测及修复文件系统的工具
fsck fsck.ext2 fsck.ext3...
查看其属性的工具
dumpe2fs tune2fs
调整文件系统特性
tuner2fs
内核级文件系统的组成部分: 文件系统驱动:由内核提供 文件系统箮理工具:由用户空间的应用程序提供
blkid
查看磁盘类型
Centos6 如何使用xfs文件系统
$ yum -y installl xfsprogs
mke2fs
ext系列专用管理工具:mke2fs
-t [ext2|ext3|ext4] 指定要创建的文件系统类型
-b [1024|2048|4096] 指定文件系统的块大小
-L LABEL 指明卷标
-j 创建有日志功能的文件系统
mke2fs -j =
-i # bytes-per-inode 每多少字节一个inode 指明inode与字节的比率
-N # 直接指明要给此文件系统创建的inode的数量
-m # 指定预留空间,百分比
-O FEATURE 以指定的特性创建目标文件系统
ext系列文件系统的管理工具:
用于实现文件系统检测的工具
因进程意外中止或系统崩溃等 原因导致定稿操作非正常终止时,可能会造成文件损坏;此时,应该检测并修复文件系统; 建议,离线进行;
ext系列文件系统的专用工具: e2fsck : check a Linux ext2/ext3/ext4 file system e2fsck [OPTIONS] device -y:对所有问题自动回答为yes; -f:即使文件系统处于clean状态,也要强制进行检测;
fsck:check and repair a Linux file system -t fstype:指明文件系统类型; fsck -t ext4 = fsck.ext4 -a:无须交互而自动修复所有错误; -r:交互式修复;
journal
性能损失 元数据要写两次
link 链接文件
符号链接 权限:lrwxrwxrwx
硬链接 指向同一个inode的多个文件路径 特性
目录不支持硬链接
硬链接不能跨文件系统
创建硬链接会增加inode引用计数
符号链接 指向一文件路径的另一个文件路径
创建
特性
符号链接与文件是两个各自独立 的文件,各有自己的inode,对原文件不会增加引用计数
支持对目录创建的符号链接,可以跨文件系统
删除符号链接文件,不影响原文件,但删除原文件,符号指定的路径不存在,此时会变成无效链接
注意:符号链接的文件大小是其指定的文件的路径字符串的字节数
创建:
CentOS 6如何使用xfs文件系统:
blkid命令:
swap文件系统:
mount命令和umount命令
首先要“挂载”:mount命令和umount命令
交换分区的启用和禁用:
设定除根文件系统以外的其它文件系统能够开机时自动挂载:/etc/fstab文件
两个命令 df和du
删除文件
将此文件指向的所有data block标记为未使用状态,将此文件的inode标记为未使用
复制与移动文件
复制:新建文件
移动:
同一文件系统上,改变的仅是其路径
在不同文件系统,复制数据到目标文件,并删除原文件
符号链接:
权限:lrwxrwxrwx
权限受链接的文件管理
硬链接
指向同一个inode
挂载光盘设备
光盘设备文件
IDE:/dev/hdc
SATA:/dev/sr0
符号链接文件
/dev/cdrom
/dev/cdrw
/dev/dvd
/dev/dvdrw
挂载U盘
fdisk
mount
dd命令:convert and copy a file
用法 dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=# block size 复制单元大小
count=# 复制数量
磁盘拷贝 dd if=/dev/sda of=/dev/sdb
备份MBR dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破坏MRB中的boot loader: dd if=/dev/zero of=/dev/sda bs=256 count=1
两个特殊设备
/dev/null: 数据黑洞 /dev/zero: 吐零机
压缩及解压缩工具
压缩比 压缩目的: 时间换空间 cpu的时间->磁盘空间
compress/uncompress .z
gzip/gunzip .gz
bzip2/bunzip2 .bz2
xz/unxz .xz
zip/unzip
tar
cpio
gzip/gunzip/zcap
zcap 展开压缩包
-d 解压缩 相当于gunzip
-# 指定压缩比 默认6 数字越大压缩比越大(1-9)
-c 将压缩结果输出到标准输出
gzip -c FILE > compress.file
bzip2/bunzip2/bcat
bzip [option] FILE
-d 解压缩 相当于bunzip2
-# 指定压缩比 默认6 数字越大压缩比越大(1-9)
-k 保留原文件
xz/unxz/xzcat lzma/unlzma/lzcat
xz [option] FILE
-d 解压缩
-# 指定压缩比,默认是6,数字越大压缩比越大(1-9)
-k 保留原文件
归档 tar/cpio
tar [options] file
-c -f 创建归档
-x 展开归档
-C 展开到指定目录
-t 查看归档的文件列表
-cf 创建归档
-xf file.tar -C 目录
-tf 展开
-v 打印详细输出
归档完成后通需要压缩, 给合此前的压缩工具,就实现多个文件了
归档并压缩
-z gzip
tar -zct /PATH/TO/FIle.tar.gz FILE...
tar -zxf /PATH/TO/FIle.tar.gz
-j: bzip2
tar -jct /PATH/TO/FIle.tar.bz2 FILE...
tar -jxf /PATH/TO/FIle.tar.bz2
-J:xz
tar -Jct /PATH/TO/FIle.tar.xz FILE...
tar -Jxf /PATH/TO/FIle.tar.xz
zip/unzip
最通用的压缩工具 压缩比有限 即能归档又能压缩 后缀名.zip
Last updated
Was this helpful?