zoukankan      html  css  js  c++  java
  • [Linux] linux文件系统学习

    linux系统支持很多种文件系统。

    1. 如何确认当前系统挂载了哪些文件系统?
    使用mount命令可以查看当前系统上已经挂载了哪些文件系统,

    lqt@lqt-ThinkPad-T420:~$ mount
    /dev/sda1 on / type ext4 (rw,errors=remount-ro) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) none on /sys/fs/fuse/connections type fusectl (rw) none on /sys/kernel/debug type debugfs (rw) none on /sys/kernel/security type securityfs (rw) udev on /dev type devtmpfs (rw,mode=0755) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755) none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880) none on /run/shm type tmpfs (rw,nosuid,nodev) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

    通过如下命令也可以实时的查看当前系统上挂在的文件系统

    lqt@lqt-ThinkPad-T420:~$ cat /proc/mounts
    rootfs / rootfs rw 0 0
    sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
    proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
    udev /dev devtmpfs rw,relatime,size=4022676k,nr_inodes=1005669,mode=755 0 0
    devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
    tmpfs /run tmpfs rw,nosuid,relatime,size=1612588k,mode=755 0 0
    /dev/disk/by-uuid/f38fd44a-b1b5-4636-970e-826dba3c398d / ext4 rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered 0 0
    none /sys/fs/fuse/connections fusectl rw,relatime 0 0
    none /sys/kernel/debug debugfs rw,relatime 0 0
    none /sys/kernel/security securityfs rw,relatime 0 0
    none /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
    none /run/shm tmpfs rw,nosuid,nodev,relatime 0 0
    binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0

    2. linux ext2文件系统?
    ext2文件系统分区是由inode以及block这两个部分组成,
    其中inode用来存储文件的属性信息;而block区域则用来存储实际的文件内容。
    因为这个原因,所以可能会存在两个比较极端的情况:
    磁盘中的文件size都很小,造成了磁盘上的inode都被用完但是block区域却仍然有大量剩余从而造成磁盘空间浪费;
    磁盘上的文件size都很大,造成了磁盘上放了为数不多的几个文件后block区域就被用完从而造成inode空间的浪费。
    ext2文件系统由于缺少日志系统,从而给系统管理带来不便,所以在ext3文件系统中增加了日志系统,即:
    ext3 = ext2 + 日志系统

    3. 关于inode的一点说明?
    常规情况下,一个inode即对应着一个文件。
    但是由于硬连接的存在(硬链接是一个inode,但是block中有文件内容的多份copy),所以也是有特例的存在。
    正式inode与block的划分,从而让创建文件的硬链接和软连接提供了可能。
    另外inode结构是不包含文件名信息的。

    4. VFS?
    linux提供了VFS,这让应用程序编程变得简单,因为应用程序不用去考虑不同文件系统的差异。

    5. 为什么在同一个文件系统中move会很快,而在不同文件系统中move会很慢呢?
    因为在同一个文件系统中copy,不需要move block区域中的数据区,而只需要修改inode信息;
    而在不同文件系统中move,不但要修改inode信息,同时block区域中存放的文件信息也必须要
    copy到另一个文件系统中。

    6. 伪文件系统?
    伪文件系统是从内存中创建的文件系统。一旦系统断电文件系统中的内容就会丢失。

    7. 如何查看文件系统的使用情况?
    (1)使用df命令可以帮助我们实现这一需求,

    lqt@lqt-ThinkPad-T420:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sda1       458G  122G  314G  28% /
    udev            3.9G  4.0K  3.9G   1% /dev
    tmpfs           1.6G  1.1M  1.6G   1% /run
    none            5.0M     0  5.0M   0% /run/lock
    none            3.9G  472K  3.9G   1% /run/shm

    (2)使用stat命令进行查看,利用-f选项来查看指定文件所在的文件系统信息,

    lqt@lqt-ThinkPad-T420:~$ stat /dev
      File: `/dev'
      Size: 4360          Blocks: 0          IO Block: 4096   directory
    Device: 5h/5d    Inode: 1025        Links: 16
    Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2014-08-06 17:58:17.344020754 +0800
    Modify: 2014-08-06 12:00:37.641852226 +0800
    Change: 2014-08-06 12:00:37.641852226 +0800
     Birth: -

    8. 如何确认当前系统中可以支持哪些文件系统?
    使用cat /proc/filesystems可以查看,
    其中第一列nodev表示该类型文件不需要挂载在一个块设备上,否则就需要挂在一个块设备上;
    第二列表示当前系统中支持的文件系统类型。

    lqt@lqt-ThinkPad-T420:~$ cat /proc/filesystems 
    nodev    sysfs
    nodev    rootfs
    nodev    bdev
    nodev    proc
    nodev    cgroup
    nodev    cpuset
    nodev    tmpfs
    nodev    devtmpfs
    nodev    debugfs
    nodev    securityfs
    nodev    sockfs
    nodev    pipefs
    nodev    anon_inodefs
    nodev    devpts
        ext3
        ext4
    nodev    ramfs
    nodev    hugetlbfs
    nodev    ecryptfs
        fuseblk
    nodev    fuse
    nodev    fusectl
    nodev    pstore
    nodev    mqueue
    nodev    binfmt_misc
        vfat

    9. 如何加载一个文件系统?
    方法一:由于系统启动时会通过读取/etc/fstab来配置那些固定的文件系统,所以针对那些
    需要固定加载的文件系统,我们可以在/etc/fstab中配置好;
    方法二:系统启动后,根据需要,自行加载文件系统。

    lqt@lqt-ThinkPad-T420:~$ cat /etc/fstab
    # /etc/fstab: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    proc            /proc           proc    nodev,noexec,nosuid 0       0
    # / was on /dev/sda1 during installation
    UUID=f38fd44a-b1b5-4636-970e-826dba3c398d /               ext4    errors=remount-ro 0       1
    # swap was on /dev/sda5 during installation
    UUID=e60359f1-99ef-4b52-b081-f76f90e590fb none            swap    sw              0       0
    
    none /tmp_fs tmpfs nodev 0 0

     

  • 相关阅读:
    php字符串常用函数
    调试心得总结
    搜索查询简单的网页摘要生成
    OFFICE三线表的制作
    阶段性总结20130613
    url查重bloom过滤器
    Linuxvim常用命令
    不打开文件操作db时,如果遇到和窗体交互,不会提示文档未锁,但同样需要锁定当前文档,代码如下
    样条曲线
    不用遍历得到btr中同一类型的实体 CAD2009 vs2008及以上
  • 原文地址:https://www.cnblogs.com/0616--ataozhijia/p/3894461.html
Copyright © 2011-2022 走看看