学习啦>学习电脑>操作系统>Linux教程>

linux文件系统怎么管理

春健分享

  Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/),节点为目录,而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时,我们从根目录出发,经过沿途各个目录,最终到达文件。那么linux文件系统怎么管理?下面跟着学习啦小编一起来了解一下吧。

  linux文件系统管理方法

  在linux中所有的东西都是文件

  Linux文件系统的组织方式称做Filesystem Hierarchy Standard(文件系统分层标准,简称FHS),即采用层次式的树状目录结构。在此结构的最上层是根目录"/"(斜杠),然后在此根目录下是其他的目录和子目录

  Linux与DOS及Windows一样,采用"路径"来表示文件或目录在文件系统中所处的层次。路径由以"/"为分隔符的多个目录名字符串组成,分为绝对路径和相对路径。所谓绝对路径是指由根目录"/"为起点来表示系统中某个文件或目录的位置的方法。例如如果用绝对路径表示图中第4层目录中的bin目录,应为"/usr/local/bin"。相对路径则是以当前目录为起点,表示系统中某个文件或目录在文件系统中的位置的方法。若当前工作目录是"/home",则用相对路径表示图中第4层目录中的bin目录,应为"hls/bin"或"./hls/bin",其中"./"表示当前目录,通常可以省略。

  Linux文件系统的组织与Windows操作系统不同。对于在Linux下使用的设备,不需要像Windows那样创建驱动器盘符,Linux会将包括本地磁盘、网络文件系统、CD-ROM和U盘等所有设备识别为设备文件,并嵌入到Linux文件系统中来进行管理。一个设备文件不占用文件系统的任何空间,仅仅是访问某个设备驱动程序的入口。Linux 系统中有两类特殊文件:面向字符的特殊文件和面向块(block)的特殊文件。前者允许I/O操作以字符的形式进行,而后者通过内存缓冲区来使数据的读写操作以数据块的方式实现。当对设备文件进行I/O操作时,该操作会被转给相应的设备驱动程序。一个设备文件是用主设备号(指出设备类型)和从设备号(指出是该类型中的第几个设备)来表示的,可以通过mknod命令进行创建。软盘、光盘和硬盘等典型设备文件在Linux系统中的表示方法。

  典型设备文件在Linux系统中的表示方法

  Linux文件名最长可允许256个字符,可以包括数字、字符,以及"."、"-"、"_"等符号。Linux文件名不像DOS或Windows由主文件名和扩展文件名两部分组成,Linux中没有扩展名的概念。Linux环境下,文件名对大小写敏感(Case Sensitive),例如test.txt与Test.txt会被识别成两个不同的文件,而DOS或Windows平台是不进行大小写区分的。

  文件系统的构成

  /usr/bin、/bin : -------------存放所有用户可以执行的命令

  /usr/sbin、/sbin : -----------存放只有root可以执行的命令

  /home :--------------------用户缺省宿主目录

  /proc :---------------------虚拟文件系统,存放当前内存镜像

  /dev :----------------------存放设备文件

  /lib :-----------------------存放系统程序运行所需的共享库

  /lost+foud :---------------存放一些系统出错的检查结果

  /tmp :---------------------存放临时文件

  /etc :-----------------------系统配置文件

  /var :----------------------包含经常发生变动的文件,如:邮件、日志文件、计划任务等

  /usr :----------------------存放所有命令、库、手册页等 类似于windows C盘下的WINDOWS目录

  /mnt :----------------------临时文件系统的安装点

  /boot :---------------------内核文件及自举程序文件保存位置

  用windows下我们习惯把安装的程序放在Program files目录下,在linux下面习惯放在/user/local下。

  查看文件命令

  查看分区使用情况:df

  查看文件、目录大小:du

  检测修复文件系统: fsck、e2fsck

  (单用户模式执行)

  判断文件类型:file

  df 查看linux磁盘分区情况

  在windows下查看我们硬盘的分区很简单,打开“我的电脑”就知道有几个盘,鼠标放到盘符上就显示磁盘的大小,那么在linux下如何查看呢,其实也非常简单,一个命令的事儿

  [root@bogon ~]# df -h

  Filesystem 容量 已用 可用 已用% 挂载点

  /dev/sda1 9.7G 3.3G 5.9G 37% /

  none 506M 0 506M 0% /dev/shm

  /dev/sda2 2.9G 37M 2.7G 2% /hzh

  /dev/sda5 6.2G 47M 5.9G 1% /web

  du 查看文件、目录的大小

  windows下查看文件、目录的大小右键--属性,linux我们使用du命令进行查看。

  root@fnngj-H24X:/hzh# du -h test.test   ------查看文件的大小

  4.0K test.test

  root@fnngj-H24X:/# du -sh /etc   ------查看目录的大小

  7.1M /etc

  file判断文件类型

  我们知道linux下的文件不是同过后缀名来确定类型的,如果刚好某个文件没有定义后缀名,我们可以通过file命令来查看后缀名。

  root@fnngj-H24X:/hzh# file test.test

  test.test: ASCII text

  添加磁盘、分区、格式化、挂载

  这是我们在玩linux服务器时会遇到的一个问题,根据初期的规划,你linux上了一块500GB的硬盘,过了一段时间,不够用了。怎么办?换一个1TB的硬盘,把系统重装一下,把原来的数据拷贝到新硬盘上。这种方式可以,但太笨。直接在原系统上加一块硬盘不就行了。我们现在需要知道的就是如何让新加的这块硬盘给我们工作。

  设置---根据图片的提示添加一块新的虚拟硬盘,嗯!这就是虚拟机的好处,可以帮我们模拟添加多块硬盘。呵呵

  划分分区(fdisk)

  创建文件系统(mkfs)

  尝试挂载(mount)

  写入配置文件(/etc/fstab)

  查看新添加分区的硬盘信息:

  [root@bogon ~]# dmesg | grep sdb    sdb是我们添加的第二块硬盘

  SCSI device sdb: 20971520 512-byte hdwr sectors (10737 MB)

  sdb: cache data unavailable

  sdb: assuming drive cache: write through

  SCSI device sdb: 20971520 512-byte hdwr sectors (10737 MB)

  sdb: cache data unavailable

  sdb: assuming drive cache: write through

  sdb: unknown partition table

  Attached scsi disk sdb at scsi0, channel 0, id 1, lun 0

  如果敲入dmesg | grep sdb命令没有任何信息,那问题就大了,你的系统没有识别新添加胡硬盘。

  对硬盘进行分区

  下面先看一下我们添加的第二块硬盘的一些信息。

  [root@bogon ~]# fdisk -l /dev/sdb

  Disk /dev/sdb: 10.7 GB, 10737418240 bytes

  255 heads, 63 sectors/track, 1305 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Disk /dev/sdb doesn't contain a valid partition table

  sdb中b表示第二块硬盘,如果想看我们第一块硬盘的信息,可以输入sda

  [root@bogon ~]# fdisk -l /dev/sda

  Disk /dev/sda: 21.4 GB, 21474836480 bytes

  255 heads, 63 sectors/track, 2610 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 * 1 1275 10241406 83 Linux

  /dev/sda2 1276 1657 3068415 83 Linux

  /dev/sda3 1658 1788 1052257+ 82 Linux swap

  /dev/sda4 1789 2610 6602715 5 Extended

  /dev/sda5 1789 2610 6602683+ 83 Linux

  下面开始真正的对硬盘进行分区

  [root@bogon ~]# fdisk /dev/sdb

  The number of cylinders for this disk is set to 2610.

  There is nothing wrong with that, but this is larger than 1024,

  and could in certain setups cause problems with:

  1) software that runs at boot time (e.g., old versions of LILO)

  2) booting and partitioning software from other OSs

  (e.g., DOS FDISK, OS/2 FDISK)

  Command (m for help): m   ----- 按m可以获得帮助信息

  Command action

  a toggle a bootable flag

  b edit bsd disklabel

  c toggle the dos compatibility flag

  d delete a partition -----删除分区

  l list known partition types

  m print this menu

  n add a new partition -----添加一个新的分区

  o create a new empty DOS partition table

  p print the partition table -----显示分区表

  q quit without saving changes -----不保存退出

  s create a new empty Sun disklabel

  t change a partition's system id -----改变文件系统类型

  u change display/entry units

  v verify the partition table

  w write table to disk and exit ----- 保存退出

  x extra functionality (experts only)

  ------------------------------------------------------添加第一个主分区--------------------------

  Command (m for help): p   ----- 显示分区表

  Disk /dev/sdb: 10.7 GB, 10737418240 bytes

  255 heads, 63 sectors/track, 1305 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  Command (m for help): n   ----- 添加新分区

  Command action

  e extended e是扩展分区

  p primary partition (1-4)   ----p是主分区,我们最多可以添加4个主分区

  p   ----- 按p表示我们要划分主分区

  Partition number (1-4): 1    -----给主分区的一个编号1

  First cylinder (1-1305, default 1):    -----这1到1305是指扇面,这个比较麻烦,不选择直接回车

  Using default value 1

  Last cylinder or +size or +sizeM or +sizeK (1-1305, default 1305): +5120M   ---- 这个地方我们要指定分区的大小,我们可以通过字节的方式来指定,国为我的硬盘是10G,我划分5G出来。

  Command (m for help): p   ----- 现在再来查看分区表

  Disk /dev/sdb: 10.7 GB, 10737418240 bytes

  255 heads, 63 sectors/track, 1305 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sdb1 1 623 5004216 83 Linux   ----- 划分的第一个主分区信息出来了

  -----------------------------------------------------添加第二个主分区---------------------------------

  Command (m for help): n   ----- 按n继续划分分区

  Command action

  e extended

  p primary partition (1-4)

  p    -----p再划一个主分区

  Partition number (1-4): 2   ----- 这里输入2表示第二个主分区

  First cylinder (624-1305, default 624):

  Using default value 624

  Last cylinder or +size or +sizeM or +sizeK (624-1305, default 1305):   ----- 我们要把剩余空间都给2,这里直接回车

  Using default value 1305

  Command (m for help): p   ----- 再来查看分区表

  Disk /dev/sdb: 10.7 GB, 10737418240 bytes

  255 heads, 63 sectors/track, 1305 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sdb1 1    623    5004216   83   Linux

  /dev/sdb2 624 1305    5478165    83   Linux   ----- 划分的两个分区都出来了

  指定磁盘的格式

  接下来要指这文件系统的类型,现在的window分FAT32和NTFS是两种比较常见的分区,那linux下面磁盘支持的格式就非常多了

  注:下面的操作不要退出fdisk模式

  Command (m for help): t    ----给分区指定表格

  Partition number (1-4): 1    ----我们选编号为1的主分区

  Hex code (type L to list codes): L   ---- 这里我们不知道编号,可用L来查看所有的分区格式

  83 Linux   -----这个也就是我们刚划分的两个主分区的格式。

  Hex code (type L to list codes): 83   ---- 如果不想改变原有格式直接输入83回车

  删除分区

  如果这时你发现自己的分区划分的不合理,想删除某一个分区,重新划分。

  注:下面的操作不要退出fdisk模式

  Command (m for help): d    ----删除分区

  Partition number (1-4): 2    ----这里选择删除第2个分区

  Command (m for help): P

  Disk /dev/sdb: 10.7 GB, 10737418240 bytes

  255 heads, 63 sectors/track, 1305 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/sdb1 1 63 506016 83 Linux   ---- 我们划分的两个分区只剩一个了

  保存退出

  当我们把分区分好以后,需要保存退出才能保存我们划分的分区。其它非正常退出都不能保存我们划好的分区。

  注:此处才是我们要退出fdisk模式的时候^_^

  Command (m for help): w  --w是保存退出,q是不保存退出

  The partition table has been altered!

  Calling ioctl() to re-read partition table.

  Syncing disks.

  磁盘格式话

  ok!分区已经完毕,下面是不是应该对硬盘进行一下格式化了

  [root@bogon ~]# mk   -- 输入mk,按两下tab键,你会看到linux下面有许多分区命令

  mkafmmap mkdosfs mkfs.ext2 mkisofs mktemp

  mkbootdisk mke2fs mkfs.ext3 mklost+found mkxauth

  mkcfm mkfifo mkfs.msdos mkmanifest mkzftree

  mkcramfs mkfontdir mkfs.vfat mknod mkzonedb

  mkdict mkfontscale mkhtmlindex mkSimNodeDir

  mkdir mkfs mkhybrid mksock

  mkdirhier mkfs.cramfs mkinitrd mkswap

  windwos下我们在格式化的时候,可以指定FAT32和NTFS,那么linux下流行的格式为ext2和ext3 ,这里我们对划分好的第1个分区进行格式化,选用ext3的格式

  [root@bogon ~]# mkfs.ext3 /dev/sdb1

  mke2fs 1.35 (28-Feb-2004)

  Filesystem label=

  OS type: Linux

  Block size=4096 (log=2)

  Fragment size=4096 (log=2)

  626496 inodes, 1251054 blocks

  62552 blocks (5.00%) reserved for the super user

  First data block=0

  Maximum filesystem blocks=1283457024

  39 block groups

  32768 blocks per group, 32768 fragments per group

  16064 inodes per group

  Superblock backups stored on blocks:

  32768, 98304, 163840, 229376, 294912, 819200, 884736

  Writing inode tables: done

  Creating journal (8192 blocks): done

  Writing superblocks and filesystem accounting information: done

  This filesystem will be automatically checked every 25 mounts or

  180 days, whichever comes first. Use tune2fs -c or -i to override.

  挂载分区

  OK!现在硬盘分区也分好了,也进行了格式化,下面要使用这个分区了。在使用的时候我们需要对其进行挂载。就像前面我讲的挂在光盘一样。使用mount命令。

  [root@bogon /]# mkdir /newsdb   -----我们在根目录下创建一个做挂载点的目录/newsdb

  [root@bogon /]# mount /dev/sdb1 /newsdb/   ---- 然后把格式化好的第1个分区/dev/sdb1 挂载到/newsdb目录下

  [root@bogon /]# df -h

  Filesystem 容量 已用 可用 已用% 挂载点

  /dev/sda1 9.7G 3.3G 5.9G 37% /

  none 506M 0 506M 0% /dev/shm

  /dev/sda2 2.9G 37M 2.7G 2% /hzh

  /dev/sda5 6.2G 47M 5.9G 1% /web

  /dev/sdb1 4.7G 42M 4.5G 1% /newsdb

看过“ linux文件系统怎么管理 ”的人还看了:

1.怎么修改Linux文件系统的权限

2.Linnux文件系统介绍

3.linux文件系统怎样初始化步骤

4.Linux中XFS文件系统使用指南步骤

5.Linux ext2/ext3文件系统详解

    646530