概念介绍
- tmpfs 是一种虚拟内存文件系统,是基于内存的文件系统。
- devtmpfs 的功用是在 Linux 核心 启动早期建立一个初步的 /dev,令一般启动程序不用等待 udev,缩短 GNU/Linux 的开机时间。
- 至于磁盘的档名部分,基本上,所有实体磁盘的档名都已经被模拟成 /dev/sd[a-p] 的格式,第一颗磁盘档名为 /dev/sda。 而分割槽的档名若以第一颗磁盘为例,则为 /dev/sda[1-128] 。除了实体磁盘之外, 虚拟机的磁盘通常为 /dev/vd[a-p] 的格式。 若有使用到軟体磁盘阵列的话,那还有 /dev/md[0-128] 的磁盘档名。
- /dev/sd[a-p][1-128]:为实体磁盘的磁盘档名;
- /dev/vd[a-d][1-128]:为虚拟磁盘的磁盘档名
- 至于 Linux 的正统档案系统则为 Ext2 (Linux second extended file system, ext2fs)这一个 每个 filesystem 都有独立的 inode / block / superblock 等资讯,这个档案系统要能够连结到目录树才能被我们使用。 将档案系统与目录树结合的动作我们称为 ‘挂载’
df 列出档案系统的整体磁盘使用量
1 2 3 4 5 6 7 8 9
| df [-ahikHTm] [目录或档名] 选项与参数: -a :列出所有的档案系统,包括系统特有的 /proc 等档案系统; -k :以 KBytes 的容量显示各档案系统; -m :以 MBytes 的容量显示各档案系统; -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; -H :以 M=1000K 取代 M=1024K 的进位方式; -T :连同该 partition 的 filesystem 名称 (例如 xfs) 也列出; -i :不用磁盘容量,而以 inode 的数量来显示
|
范例一:将系统内所有的 filesystem 列出来!
df
Filesystem:代表该档案系统是在哪个 partition ,所以列出装置名称;
1k-blocks:说明底下的数字单位是 1KB 呦!可利用 -h 或 -m 来改变容量;
Used:顾名思义,就是使用掉的磁盘空间!
Available:也就是剩下的磁盘空间大小;
Use%:就是磁盘的使用率啦!如果使用率高达 90% 以上时, 最好需要注意一下了,免得容量不足造成系统问题喔!(例如最容易被灌爆的 /var/spool/mail 这个放置邮件的磁盘)
Mounted on:就是磁盘挂载的目录所在啦!(挂载点啦!)
在显示的结果中你需要特别留意的是那个根目录的剩余容量! 因为我们所有的资料都是由根目录衍生出来的,因此当根目录的剩余容量剩下 0 时,那你的 Linux 可能就问题很大了。
du 评估档案系统的磁盘使用量(常用在推估目录所占容量)
范例一:列出目前目录下的所有档案容量
du
范例二:同范例一,但是将档案的容量也列出来
du -a
范例三:检查根目录底下每个目录所占用的容量 这个是最常用的功能
du -sm /*
参考: 鸟哥的私房菜
ln
使用 ln 如果不加任何参数的话,那么就是 Hard Link
Hard Link (实体连结, 硬式连结或实际连结)
透过档案系统的 inode 连结来产生新档名,而不是产生新档案
多个档名对应到同一个 inode 号码呢?有的!那就是 hard link 的由来
hard link 只是在某个目录下新增一笔档名连结到某 inode 号码的关连记录而已。
1 2 3 4 5 6 7 8
| [root@VM_71_28_centos test]# ll -i lntest 455414 -rw-r--r-- 1 root root 0 May 23 17:40 lntest [root@VM_71_28_centos test]# ln lntest lntest1 <= 创建一个硬的链接 [root@VM_71_28_centos test]# [root@VM_71_28_centos test]# [root@VM_71_28_centos test]# ll -i lntest lntest1 455414 -rw-r--r-- 2 root root 0 May 23 17:40 lntest 455414 -rw-r--r-- 2 root root 0 May 23 17:40 lntest1
|
1 2 3 4 5 6 7 8 9 10 11 12
| [root@VM_71_28_centos test]# clear [root@VM_71_28_centos test]# echo 'hello'>lntest1 <= 修改其中一个文件 [root@VM_71_28_centos test]# [root@VM_71_28_centos test]# cat lntest1 hello [root@VM_71_28_centos test]# cat lntest <= 两个文件都改变了 hello
[root@VM_71_28_centos test]# rm -f lntest1 <= 删除其中一个文件 [root@VM_71_28_centos test]# [root@VM_71_28_centos test]# cat lntest <= 另外一个文件还是存在的 hello
|
1 2 3 4 5 6 7
| [root@VM_71_28_centos test]# ln lntest lntest1 [root@VM_71_28_centos test]# cat lntest1 hello [root@VM_71_28_centos test]# rm -f lntest [root@VM_71_28_centos test]# cat lntest1 hello
|
- hard link 是有限制的:
- 不能跨 Filesystem;
- 不能 link 目录,可能导致搜索循环问题,比如 .. 上一层目录。所以不建议这样做
Symbolic Link (符号连结,亦即是捷径)
Symbolic link 就是在建立一个 独立的档案 ,而这个档案会让资料的读取指向他 link 的那个档案的档名
源文件删除后,会导致打开不了文件了。
1 2 3 4 5 6 7 8 9
| [root@VM_71_28_centos test]# touch slinktest [root@VM_71_28_centos test]# [root@VM_71_28_centos test]# ln -s slinktest slinktest1 [root@VM_71_28_centos test]# [root@VM_71_28_centos test]# ll -i slinktest slinktest1 455415 -rw-r--r-- 1 root root 0 May 23 17:54 slinktest <= inode是不同的 455416 lrwxrwxrwx 1 root root 9 May 23 17:54 slinktest1 -> slinktest <= 这里长度为9 是因为文件名长度为9
|
lsblk 列出系统上的所有磁盘列表
lsblk 可以看成‘ list block device ’的缩写,就是列出所有储存装置的意思
1 2 3 4 5 6 7 8 9 10
| [root@testserver1 /]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 3.7T 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot ├─sda3 8:3 0 1.2T 0 part /data3 ├─sda4 8:4 0 1.2T 0 part /data1 ├─sda5 8:5 0 1.2T 0 part /data2 ├─sda6 8:6 0 50G 0 part / └─sda7 8:7 0 7.8G 0 part [SWAP]
|
- NAME:就是装置的档名啰!会省略 /dev 等前导目录!
- MAJ:MIN:其实核心认识的装置都是透过这两个代码来熟悉的!分别是主要:次要装置代码!
- RM:是否为可卸载装置 (removable device),如光碟、USB 磁盘等等
- SIZE:当然就是容量啰!
- RO:是否为只读装置的意思
- TYPE:是磁盘 (disk)、分割槽 (partition) 还是只读内存 (rom) 等输出
- MOUTPOINT:就是前一章谈到的挂载点!
blkidblkid 列出装置的 UUID 等参数
1 2 3 4 5 6 7 8 9
| [root@testserver1 /]# blkid /dev/sda6: UUID="8eab240e-e26a-4244-b8ff-2cede227ab63" TYPE="ext4" PARTUUID="c1901736-b73f-4a75-981e-e4de2df426f0" /dev/sda2: UUID="0995c7e3-e9e3-4e9e-b42a-2753564d9a3d" TYPE="ext4" PARTUUID="05f4a19f-b882-406e-90be-eb4c893c3380" /dev/sda7: UUID="487a2745-138c-45e5-8c89-027b788c57de" TYPE="swap" PARTUUID="105ffff6-594d-4629-b147-79af76695c71" /dev/sda1: PARTUUID="2b902b92-5daa-4616-ade4-b10285d962ff" /dev/sda3: UUID="e64c20bc-d94a-4323-8a7a-f4db8fc82c3c" TYPE="ext4" PARTUUID="e4bebdda-35b1-4c08-b469-49cdc24d684a" /dev/sda4: UUID="2cf235f9-5c19-4c7f-bdc9-a157bea72723" TYPE="ext4" PARTUUID="7b3507a2-8799-4b8f-9ad4-e1e0154cf6fd" /dev/sda5: UUID="bfc8724d-8f66-4c7a-af12-a9ad8a7b2222" TYPE="ext4" PARTUUID="cefe2474-bebb-4d1e-a77b-1d9beb76463d"
|
parted 列出磁盘的分割表类型与分割资讯
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [root@testserver1 /]# parted /dev/sda print Model: ATA TOSHIBA HDWE140 (scsi) Disk /dev/sda: 4001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: pmbr_boot
Number Start End Size File system Name Flags 1 1049kB 2097kB 1049kB bios_grub 2 2097kB 1076MB 1074MB ext4 3 1076MB 1314GB 1313GB ext4 4 1314GB 2626GB 1313GB ext4 5 2626GB 3939GB 1313GB ext4 6 3939GB 3992GB 53.7GB ext4 7 3992GB 4001GB 8390MB linux-swap(v1)
|