首先谈谈要点把,讲讲我对Linux的文件结构的理解。linux文件结构
我们知道,linux和Windwos在文件结构上是不同的,linux下有一个/目录即根目录。打一个比方,如果在Windows下一直cd ..其最终是到D:/或是C:/这种磁盘根目录,而在linux下一直cd ..则是会到达/根目录。为什么会这样呢,我认为这里可能更多的是两者开放程度的不同。
在linux下,所有的设备,无论是外设还是内部设备都会抽象成为一个文件目录。比方说/dev目录下,可以看到甚至有cpu所抽象的目录,还有的文件夹代表内存等可能不是实体设备,只是在系统运行时用到的东西。所以说你可以想想,linux从/根目录开始的一棵文件树下,有着诸多分支,不同的分支代表的是不同的设备,我们将这种设备->目录的形式称为挂载。
既然所有的设备都将被挂载到文件目录下,那么硬盘肯定也不例外,也需要挂载到某个文件目录下。但是硬盘可能是所有的设备中比较特殊的,因为一般来说/根目录需要挂载一片磁盘空间中,因为除了我们前面所提到的硬件&虚拟设备,还有很多储存配置&操作系统所需的文件,既然是文件就需要储存空间,所以说一定要在/根目录下挂载一片磁盘的空间,除了挂在了其他硬盘空间的文件夹和其下面的目录,其他都没有挂载的目录文件默认储存在/根目录所挂载的磁盘空间下。
到此,我们了解了linux的文件目录结构,我们来探讨一下其与Windows的不同之处。我认为Windows的开发思路和Linux对用户的信任程度是不一样的,相较Linux,Windows对使用者更加的”不信任“,或是说更加小白。所以,Windows对于设备的管理对用户是不透明的,而是提供了可视化的操作系统接口,这样保证了Windwos下用户不会随意修改设备的信息&文件配置,更加安全。所以在Windwos的文件目录下,我们能接触到的最高一层的文件目录是根据挂载来的。
以上是对Windows&Linux文件目录结构的一些臆想,一家之言,不当之处欢迎纠正QAQ,秋梨膏。
接下来讲一下我遇到的实际问题,就是我在新建用户后系统为我这个用户默认分配的空间上挂载的不是我最大的那块磁盘,而是在根目录下。在下载了一些文件后我惊讶的发现我根目录爆满了QAQ?
上图可以看到,我的硬盘设备主要是一块200G和一块50G的空间,其中/根目录下挂载的是50G的磁盘空间,200G的磁盘空间挂载到了/data下。所以这里我希望根据我从前使用linux的习惯,将这200G的磁盘空间挂载到/home/username下。
首先是要解决根目录下挂载磁盘的爆满问题,直接把用户文件夹移动到/data就可以,其中配置文件可以不用管,因为整体迁移后再设置一下用户的默认启动目录就可以解决配置的问题:
mv /usr/ghs /data
完成后就是改变磁盘挂载的操作:
df -i //文件挂载查看,fdisk -l查看磁盘的情况 umount /home //保险起见要umount一下,取消/home的挂载 mount /dev/sdb /home // 改变挂载
在改变了挂载后要设置一下配置文件:
vi /etc/fstab //编辑fstab文件修改或添加,使重启后可以自动挂载
其中
/dev/sdb /data ext4 defaults 0 0 =》 /dev/sdb /home ext4 defaults 0 0
此时重启即可。
要修改登录后默认目录,可以用vim编辑器,打开/etc/passwd ,找到相应的用户,修改倒数第一个冒号前面的目录即可,如下图所示。