ln [ -s -v] SRC DEST
硬连接:
1、只能对文件创建,不能应用于目录
2、不能跨文件系统
3、创建硬连接会增加文件被连接的次数
符号连接:
1、可应用于目录
2、可以跨文件系统
3、不会被增加被连接的次数
4、其大小为为指定的路径所包含的字符个数
du命令:
-s 查看目录包含目录下文件的大小
-h 做单位换算,默认为M
df命令:显示磁盘使用大小
-h 做单位换算,默认为M
-i 显示Inode的使用情况
-P 使用postfix风格显示
设备文件:
b:设备,按块为单位,随机访问的设备
c:字符,按字符为单位,线性设备,有次序的访问
b:硬盘
c:键盘
设备文件都在/dev目录
主设备号
标识设备类型(major number)
次设备号
标识同一种类型中不同设备(minor number)
不真正占用磁盘空间,存储在inode中
mknod命令:创建设备文件
mknod [OPTIAN]...NAME TYPE [MAJOR MINOR]
mknod mydev c 66 0
-m [MODE]权限
mknod -m 640 mydev2 c 66 1
硬盘设备的设备文件名:
IDE,ATA:HD开头
SATA:sd开头
SCSI:sd开头
USB:sd开头
使用a,b,c...来区别同一种类型下的不同设备
IDE:
第一个IDE口:主、从
/dev/hda, /dev/hdb
第二个IDE口:主、从
/dev/hdc, /dev/hdd
分区编号:
hda1:第一个主分区
hda5:逻辑分区,分区号只能从5开始
查看当前系统识别了几块硬盘设备:
fdisk 磁盘查看工具
-l
fdisk -l [/dev/to/some_device_file]
p:显示当前硬盘的分区,包括没保存的改动
n:创建新分区
e:扩展分区
p:主分区
d:删除一个分区
w:保存退出
q:不保存退出
t:修改分区类型
L:显示分区类型
l:显示分区类型
创建和删除后,内核还无法识别,需要内核重读硬盘分区表,使用partprobe命令,将分区表写入/proc/partitions
管理磁盘分区:
linux支持的文件系统
文件系统:ext2 ext3 ext4
网络文件系统:nfs ocfs32(集群使用) gfs2 全局文件系统
vfs:virtual filesystem,提供支持多种文件系统
linux创建文件系统
mkfs -t ext3
元数据:
超级块:super blcok,包含如下:内容
1、有多少块组,
2、每个块组包含多少块,
3、块大小,
4、空闲磁盘块,已用磁盘块, 空闲inode,已用inode
块组描述符表(GDT):
1、当前系统有多少块组, 块组的起始位置,块组名
磁盘分区的逻辑组成部分:
目录表组成部分
inode组成部分:
ext3与ext2的区别:
日志文件系统(journal file system)
文件系统管理:
1、重新创建文件系统
/proc/filesystems :查看当前内核所支持文件系统类型
mkfs:make file system
-t filesystemtype /dev/sdb2
mkfs.ext4 /dev/sdb2
mke2fs命令:管理ext系列文件系统
-j:创建ext3类型文件系统
-b BLOCK_SIZE:指定块大小, 默认为4096,可用取值为:1024,2048,4096
-b 2048 /dev/sdb2(使用方法)
-L LABEL:指定分区卷标
-m #:指定预留给超级用户的块数百分比
-i 用于指定为多少字节的空间创建一个inode,默认为8192,这里给出的数值应该为块大小的 2n^倍
-n 指定要创建inode的个数
-F:强制格式化
-E:用于指定额外的文件系统属性
blkid命令:
查询或查看磁盘设备的相关属性
UUID
TYPE
LABEL
e2label:查看或定义卷标
e2label 设备文件,卷标
tune2fs :调整文件系统的相关属性
-j:不损害原有数据,将ext2升级为ext3
-L LABEL:设定或修改卷标
-m #:指定预留给超级用户的块数百分比
-r #:指定预留给超级用户的块数
-o:设定默认挂载选项
acl
-c #:指定挂载多少次进行自检,0或-1表示关闭此功能
-i #:每挂载使用多少天后进行自检,0或-1表示关闭此功能
-l:显示超级块中的信息 tune2fs -l /dev/sda1
dumpe2fs:显示文件属性信息
-h 只显示超级块信息
fsck:检查并修复linux文件系统
-t FSTYPE :指定文件系统类型
-a:自动修复
e2fsck:专用检查并修复linux文件系统
-f 强制选项
-p 自动修复
挂载:将新的文件系统关联至当前根文件系统
卸载:将某文件系统从当前根文件系统的关联关系移除
mount:
mount 设备 挂载点
设备:设备文件:/dev/sda5
卷标:LABEL=""
UUID:UUID=""
挂载点:目录
要求:
1、此目录没有被其它进程使用
2、目录得事先存在
3、目录中的原有的文件将会暂时隐藏
挂载完成后,要通过挂载点访问对应文件系统上的文件
卸载:
umount 设备
umount 挂载点
卸载注意事项:
1、挂载的设备没有进程使用;
mount [options] [-o options] DEVICE MOUNT_POINT
-a:表挂载/etc/fstab文件示中定义的所有文件系统
-n:默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件,使用-n 选项意味着挂载设备时,不把信息写入此文件
-t FSTYPE:指定正在挂载设备上的文件系统的类型,不使用些选项时,mount会调用blkid命令获取 对应文件系统的类型
-r:只读挂载
-w:读写挂载
-o:指定额外的挂载选项,也即指定文件系统启用的属性;
async:异步写入
atime,在高访问的时候,可以关闭atime功能
netdev,在启动如果连接不上网络映射的盘, 就停止挂载其网络系统
remount 重新挂载当前文件系统
ro:挂载为只读
rw:读写挂载
mount -o remount,ro /dev/sdb1 重装挂载并以只读方式
mount -o remount,sync /mnt 以同步的方式重装挂载设备(异步与同步写入文件,异步可以提升性 能,默认也是异步挂载设备)
mount -o loop /mnt/name.iso /mnt 挂载ISO文件
stat /mnt 查看挂载点的基本信息
fuser 命令:验证进程正在使用的文件或套接字,也可用于正在使用的目录
-v 查看
fuser -v /mnt/data1
-k 杀死
-m 指定杀死类型为挂载设备
fuser -km MOUNT_POINT:终止正在访问此挂载点的所有进程
swap分区:
虚拟内存
X86:32bit
虚拟地址,线性地址
free:查看物理内在和交换空间的使用情况
创建交换分区:
1、先使用fsmk分割一个分区,并将分区类型调整为swap类型(82)
2、mkswap /dev/sda8(格式化写入文件系统)
-L LABEL
3、swapon /dev/sda8 (启用sda8的交换分区)
-a 启用所有的交换设备,定义在/etc/fstab文件中的交换设备
4、swapoff /dev/sda8 (关闭sda8的交换分区
dd命令:
dd if=数据来源 of=数据存储目标,bs=数据大小(默认为字节,可以使用1M格式) count=数量
dd if=/etc/inittab of=/root
dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1(备份MBR)
dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1(还原MBR)
cat /dev/cdrom > /root/shel5.iso
dd if=/dev/zero of=/var/swapfile2 seek=1023 bs=1M count=1 创建一个假的1024M文件,真实大 小为1M空间
文件系统的配置文件/etc/fstab
os在初始时,会自动挂载此文件中定义的每个文件系统
格式如下:
1、要挂载的设备(LABEL,UUID,设备文件)
2、挂载点
3、文件系统类型
4、挂载选项,默认为defaults
5、转储频率(多长时间才完全备份,0表示不做,1表示每天,2表示每隔一天)
6、文件系统检测次序(一般情况,只有根为1,0表示不检查)