📄 0230filesystem.htm
字号:
<br><font size="-1" color="#ffffff" face="SimSun">/dev/hda3              497861     37525    434632  8% /disk1</font><br><font size="-1" color="#ffffff" face="SimSun">none                    31220         0    31220   0% /dev/shm</font><br><font size="-1" color="#ffffff" face="SimSun">/dev/hda5              101089      4127     91743  5% /proxy1</font><br><font size="-1" color="#ffffff" face="SimSun">/dev/hda6              101089      4127     91743  5% /proxy2</font><br><font size="-1" color="#ffffff" face="SimSun">/dev/hda2             1004052     38360    914688  5% /var</font><br><font size="-1" color="#ffffff" face="SimSun">/dev/fd0                 1423      1405       19  99% /mnt/floppy</font></td></tr></tbody></table><font color="#ff0000">说明</font><font color="#000000">:</font><br>这是用来显示目前磁盘空间的指令!需要注意的是,由于我们的档案或者是外挂的磁盘都是加在『/ 』底下,所以当根目录没有空间的时后,嘿嘿!你的 Linux 系统大概就是挂了吧~<font color="#000066">(说个笑话!当初我们系上有个研究生在管理 Sun 的工作站,是别研究室的,他的硬盘明明有好几GB ,但是就是没有办法将几 MB 的数据 copy 进去,他就去跟老板讲说机器坏了!嘿!明明才来维护过几天而已为何会坏了!结果老板将维护商叫来骂了2 小时左右吧!后来,维护商发现原来硬盘的『总空间』还有很多,只是某个扇区填满了,偏偏该研究生就是要将数据copy 去那个扇区!呵呵!后来那个研究生就被命令『再也不许碰 Sun 主机』了~~)</font>当然啰!你可以将你的数据放置在加挂的硬盘中,那么如何知道目前哪一个磁盘还有多少空间呢?!<br> <br>这里要请大家再复习一下,我们的硬盘扇区规划中, primary 扇区每一颗硬盘只允许4 个,其它的就放置在 Extended 扇区中了!而,硬盘的代号与 IDE 的插槽是有关系的!如果忘记了,那就回去<a href="http://linux.vbird.org//linux_basic/0150installredhat.php#harddisk">安装Linux</a> 那一章复习一下吧!好了!假设我只有一棵硬盘,且放在 IDE 的 mater,那么我的硬盘就是 /dev/hda 啰!而在这颗硬盘中的分割扇区就可以由 /dev/hda1开始向上加!<br> <br>OK,那么使用 df -k 之后,出现的上面的数据中,可以知道我的硬盘更分为/dev/hda1, /dev/hda2, /dev/hda3, /dev/hda5 与 /dev/hda6 ,咦! /dev/hda4跑去哪里了!呵呵!其实 /dev/hda4 通常就是 Extended 扇区啦!而后面的 /dev/hda5,/dev/hda6 等扇区就是由 /dev/hda4 所切出来的!所以 /dev/hda5 + /dev/hda6= /dev/hda4 !当然,如果还有没有显示出来的,例如 Swap ,则 /dev/hda4 还有可能更大呦!<br>那么来解释一下上面的数据吧!<ul><li><font color="#000099">Filesystem</font>:说的是扇区啦!另外,如果你有加挂软盘的话,那么就 会出现如上表中最后一行啰!</li><li><font color="#000099">1k-blocks</font>:说明底下的数字单位是 1KB 呦!如果你使用<font color="#000066">df -m </font>则这一栏会出现 1M-blocks 啰!</li><li><font color="#000099">Used</font> :顾名思义,就是使用掉的硬盘空间啦!</li><li><font color="#000099">Available</font> :也就是剩下的磁盘空间大小;</li><li><font color="#000099">Use%</font><font color="#3333ff"> </font>: 就是磁盘的使用率啦!如果使用率高达90% 以上时,最好需要注意一下了,免得容量不足造成系统问题(例如最容易被灌爆的/var/spool/mail 这个放置邮件的磁盘!)。</li><li><font color="#000099">Mounted on </font>:就是磁盘挂载的目录所在啦!例如/dev/hda5 是挂载在 /proxy1 底下,而 /var 是 /dev/hda2 这个扇区啰!</li></ul>另外,需要注意的是,有的时后某些系统会出现 /proc 这个扇区,但是里面的东西都是0 ,不要紧张! /proc 的东西都是 Linux 系统所需要加载的系统数据,而且是挂载在『<font color="#000066">内存当中</font>』的,所以当然没有占任何的硬盘空间啰!<br> <br><hr width="100%"><li><a name="du"></a><b><font color="#000099" face="SimSun">du</font></b></li><br><font color="#ff0000">语法</font>:<table bgcolor="#000000" border="1" cols="1" width="750"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root ]# </font><font color="#ffff00">du [-abckms] [目录名称]</font></font><br><font size="-1" color="#ffffcc" face="SimSun">参数说明:</font><br><font size="-1" color="#ff9900" face="SimSun">[目录名称]可以省略,如果省略的话,表示要统计目前所在目录的档案容量</font><br><font size="-1" color="#ff9900" face="SimSun">-a  :全部的档案与目录都列出来!默认值是指列出目录的值!</font><br><font size="-1" color="#ff9900" face="SimSun">-b  :列出的值以 bytes 输出</font><br><font size="-1" color="#ff9900" face="SimSun">-c  :最后加总 total !</font><br><font size="-1" color="#ff9900" face="SimSun">-k  :列出的值以 KB 输出</font><br><font size="-1" color="#ff9900" face="SimSun">-m  :列出的值以MB 输出</font><br><font size="-1" color="#ff9900" face="SimSun">-s  :只列出最后加总的值!</font><br><font size="-1" color="#ffffcc" face="SimSun">范例:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]#</font><font color="#ffff00"> du -m   </font><font color="#ffffff"></font><font color="#ff9900"><==列出 /root 底下的目录与档案所占的容量以MB 输出</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# </font><font color="#ffff00">du -s /home </font><font color="#ff9900"><==将/home 底下的目录与档案的容量加总后输出,这里只会输出总容量!</font></font></td></tr></tbody></table><font color="#ff0000">说明</font><font color="#000000">:</font><br>在 Windows 底下可以使用档案总管来管理你的磁盘,在 Linux 底下也可以轻易的以du 来知道目前磁盘的档案容量耶!在预设的情况下,容量的输出是以 KB 来设计的,如果你想要知道目录占了多少MB ,那么就使用 -m 这个参数即可啰!而,<b><font color="#000066">如果你只想要知道该目录占了多少容量的话,呵呵,使用 -s 就可以啦</font></b>!</blockquote></blockquote><p><br></p><hr size="2" width="100%"><img src="0230filesystem_files/penguin-m.gif" alt="" nosave="" align="middle" height="34" width="25"><a name="linkfiles"></a><font size="+1" color="#000099">连结档的介绍:</font><blockquote><font color="#000000">什么是连结档呢?其实连结档有点类似 Windows底下的『快捷方式』!也就是很多的连结档案( link file )其实都指向同一个来源档案(source file )!不过,在所有的档案类型当中,连结档算是比较难理解的一部份了!因为连结档还分成Hard link 与 symbolic link 两种,这两种连结档在架构上是完全不一样的咚咚,底下就来好好的谈一谈先!</font><br><font color="#000000"> </font><blockquote><hr size="2" width="100%"><b><font color="#000066">Hard Link</font></b>:</blockquote><ul>在前一节当中,我们提到档案的读取方式为:(1)先由一层一层的目录取得档案相关的关连数据,(2)再到对应的inode 取得档案的属性,以及档案内容数据所在的 Block ,(3)最后到 Block area取得档案的资料。那么 hard link 怎么制作档案的连结呢?!很简单, Hard Link只是在某个目录下新增一个该档案的关连数据而已!<br> <br>举个例子来说,我的 /home/vbird/crontab 为一个 hard link 的档案,他连结到/etc/crontab 这个档案,也就是说,其实 /home/vbird/crontab 与 /etc/crontab是同一个档案,只是有两个目录( /etc 与 /home/vbird )记录了 crontab 这个档案的关连数据罢了!也就是说,我由/etc 的 Block 所记录的关连数据可知道 crontab 的 inode 放置在 A 处,而由/home/vbird 这个目录下的关连数据, contab 同样也指到 A 处的 inode !所以啰,crontab 这个档案的 inode 与 block 都没有改变,有的只是有两个目录记录了关连数据。<br> <br>一般来说,<b><font color="#000066">使用 hard link 设定连结文件时,磁盘的空间与inode 的数目都不会改变!由上面的说明来看,我们可以知道, hard link 只是在某个目录下的block 多写入一个关连数据,所以当然不会用掉 inode 与磁盘空间啰!</font></b>(注:其实可能会改变的,那就是当目录的Block 被用完时,就可能会新加一个 block 来记录,而导致磁盘空间的变化!不过,一般hard link 所用掉的关连数据量很小,所以通常不会改变 inode 与磁盘空间的大小喔!)<br> <br>由于 hard link 是在同一个 partition 上面进行数据关连的建立,所以 hardlink 是有限制的:<br> <ol><li><font color="#000099">不能跨 Filesystem;</font></li><li><font color="#000099">不能 link 目录。</font></li></ol> </ul><blockquote><hr size="2" width="100%"><b><font color="#000066">Symbolic Link</font></b>:</blockquote><blockquote><font color="#000000">相对于 hard link , Symbolic link 可就好理解多了,基本上,他就是在建立一个独立的档案,而这个档案会让数据的读取指向他link 的那个档案内容!由于只是利用档案来做为指向的动作,所以,当来源档被删除之后,symboliclink 的档案会『开不了』,会一直说『无法开启某档案!』。这里还是得特别留意,这个Symbolic Link 与 Windows 的快捷方式可以给他划上等号,由 Symbolic link 所建立的档案为一个独立的新的档案,所以会占用掉inode 与 block 喔!</font></blockquote></blockquote><blockquote><font color="#000000">由上面的说明来看,似乎 hard link 比较安全,因为即使某一个目录下的关连数据被杀掉了,也没有关系,只要有任何一个目录下存在着关连数据,那么该档案就不会不见!举上面的例子来说,我的/etc/crontab 与 /home/vbird/crontab 指向同一个档案,如果我删除了 /etc/crontab这个档案,该删除的动作其实只是将 /etc 目录下关于 crontab 的关连数据拿掉而已,crontab 所在的 inode 与 block 其实都没有被变动喔!不过,不幸的是,由于Hard Link 的限制太多了,包括无法做『目录』的 link ,所以在用途上面是比较受限的!反而是Symbolic Link 的使用方面较广喔!好了,说的天花乱坠,看您也差不多快要昏倒了!没关系,实作一下就知道怎么回事了!要制作连结档就必须要使用ln 这个指令呢!</font><br><font color="#000000"> </font></blockquote><blockquote><ul><hr width="100%"><li><a name="ln"></a><b><font color="#000099" face="SimSun">ln</font></b></li><br><font color="#000000"> </font><br><font color="#000000">特别留意,底下的案例中,我们是将系统的设定文件copy 到 /root/test 底下进行测试用的,请不要在 /etc/ 底下做,未来我们的工作目录都会在/root/test 底下进行,这有个好处,是可以让您清楚的知道,这是用来 test 用的啦!</font></ul></blockquote><blockquote><blockquote><font color="#ff0000">语法</font>:<table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root @test
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -