Linux文件系统相关操作

本文带来Linux文件系统相关操作,主要介绍虚拟目录树、文件元数据以及df、mount、umount相关命令。

虚拟目录树的各个目录用途

目录 用途
/ 虚拟目录的根目录。通常不会在这里存储文件
/bin 二进制目录,存放许多用户级的GNU工具
/boot 启动目录,存放启动文件
/dev 设备目录,Linux在这里创建设备节点
/etc 系统配置文件目录
/home 主目录,Linux在这里创建用户目录
/lib 库目录,存放系统和应用程序的库文件
/media 媒体目录,可移动媒体设备的常用挂载点
/mnt 挂载目录,另一个可移动媒体设备的常用挂载点
/opt 可选目录,常用于存放第三方软件包和数据文件
/proc 进程目录,存放现有硬件及当前继承的相关信息
/root root用户的主目录
/sbin 系统二进制目录,存放许多GNU管理员级工具
/srv 服务目录,存放本地服务的相关文件
/sys 系统目录,存放系统硬件信息的相关文件
/tmp 临时目录,可以在该目录中创建和删除临时工作文件
/usr 大量用户级的GNU工具和数据文件都存储在这里
/var 可变目录,用以存放经常变化的文件,比如日志文件

文件元数据

输入ll -i会发现:

第一列表示inode

第二列,有10个字符

  • 第一个字符表示文件类型,有-表示文件,l表示链接,d表示目录
  • 后面9个字符,3个为一组,分别表示拥有者、用户组、others的权限,r表示读,w表示写,x表示执行,b开始块设备文件,c表示字符设备文件

第三列现在先忽略

第四列表示所属者

第五列表示用户组

第六列:

  • 文件所在行的数字表示文件的大小,目录所在的行数字那列一般显示4096(并不是所里面的文件有4096byte大小)

第七列:文件创建时间或文件最后一次的修改时间

第八列:文件或目录名

相关命令

df

显示文件系统的磁盘使用情况统计

输入df显示以下信息:

1
2
3
4
5
[root@layne laydir]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 18375548 3570988 13871136 21% /
tmpfs 502204 0 502204 0% /dev/shm
/dev/sda1 198337 27804 160293 15% /boot
  • 第一列指定文件系统的名称
  • 第二列指定一个特定的文件系统1K-块,1K是1024字节为单位的总内存,这里1837554K表示总共的磁盘容量(sda相当于windows下的卷)
  • 第三列表示已经使用的磁盘容量
  • 第四列表示空闲的磁盘容量
  • 第五列是以百分比的形式显示已经使用的磁盘容量
  • 第六列是磁盘挂载的路径

df也可以显示磁盘使用的文件系统信息,输入df 文件名(或目录名) 即可显示该文件或目录所使用的磁盘信息:

1
2
3
[root@layne laydir]# df ln1
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 18375548 3570988 13871136 21% /

上面就显示ln1使用磁盘情况,可以看到,ln1使用的是sda3的磁盘。

加上-h(–human-readable )表示使用人类可读的格式(预设值是不加这个选项的…)

1
2
3
4
5
[root@layne laydir]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 3.5G 14G 21% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 194M 28M 157M 15% /boot

mount

用于挂载Linux系统外的文件。

现在,我们试着将光驱挂载到/mnt目录

首先,查看光驱(cdrom)的文件:

1
2
3
4
5
6
7
8
[root@layne laydir]# ll /dev | grep cd
lrwxrwxrwx 1 root root 3 Feb 7 10:15 cdrom -> sr0
lrwxrwxrwx 1 root root 3 Feb 7 10:15 cdrw -> sr0
lrwxrwxrwx 1 root root 3 Feb 7 10:15 scd0 -> sr0
crw-rw---- 1 root cdrom 21, 1 Feb 7 10:15 sg1
brw-rw---- 1 root cdrom 11, 0 Feb 7 10:15 sr0
[root@layne laydir]# ll /mnt
total 0

可以看到,cdrom是sr0的软链接文件,而sr0是块设备文件。

然后,我们通过mount /dev/cdrom /mnt挂载光驱:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@layne laydir]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@layne laydir]# ll -i /mnt
total 82
1863 -r--r--r-- 1 root root 14 Nov 29 2013 CentOS_BuildTag
3264 dr-xr-xr-x 3 root root 2048 Nov 29 2013 EFI
1871 -r--r--r-- 1 root root 212 Nov 28 2013 EULA
1874 -r--r--r-- 1 root root 18009 Nov 28 2013 GPL
3648 dr-xr-xr-x 3 root root 2048 Nov 29 2013 images
3584 dr-xr-xr-x 2 root root 2048 Nov 29 2013 isolinux
1984 dr-xr-xr-x 2 root root 40960 Nov 29 2013 Packages
1889 -r--r--r-- 1 root root 1354 Nov 28 2013 RELEASE-NOTES-en-US.html
3392 dr-xr-xr-x 2 root root 4096 Nov 29 2013 repodata
1907 -r--r--r-- 1 root root 1706 Nov 28 2013 RPM-GPG-KEY-CentOS-6
1911 -r--r--r-- 1 root root 1730 Nov 28 2013 RPM-GPG-KEY-CentOS-Debug-6
1902 -r--r--r-- 1 root root 1730 Nov 28 2013 RPM-GPG-KEY-CentOS-Security-6
1897 -r--r--r-- 1 root root 1734 Nov 28 2013 RPM-GPG-KEY-CentOS-Testing-6
1915 -r--r--r-- 1 root root 3380 Nov 29 2013 TRANS.TBL

可看到,光驱已经挂载到/mnt目录下,这是/mnt下的文件就是光驱里面的文件。

注意,如果/mnt没有显示任何文件,可能是文件还没有刷新出来,尝试cd到别的目录,然后再次查看/mnt下的文件。

通过df -h查看文件系统的磁盘使用情况:

1
2
3
4
5
6
[root@layne laydir]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 3.5G 14G 21% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 194M 28M 157M 15% /boot
/dev/sr0 398M 398M 0 100% /mnt

umount

卸载掉挂载的分区

注意卸载/mnt时,当前目录不能在/mnt下面,否则报出如下图所示提示:

现在我们卸载挂载到/mnt下的光驱:

1
2
3
4
5
6
7
8
[root@layne laydir]# umount /mnt
[root@layne laydir]# ll -i /mnt
total 0
[root@layne laydir]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 3.5G 14G 21% /
tmpfs 491M 0 491M 0% /dev/shm
/dev/sda1 194M 28M 157M 15% /boot