Linux目录配置

Linux目录配置

FHS标准(File System Hierarchy Standard)出现的主要目的是为了让用户了解到已经安装的软件通常被放置在哪个目录下,希望独立软件开发商、操作系统制作者以及想要维护系统的用户,都能够遵循FHS标准。简单来说,就是规范Linux每个目录应该放何种数据。通常来说,文件可以按照以下标准界定其性质:

可分享的不可分享的
不变的/usr(软件放置处)/etc(配置文件)
不变的/opt(第三方软件)/boot(开机与内核文件)
可变动的/var/mail (用户邮件信箱)/var/run (程序相关)
可变动的/var/spool/news (新闻组)/var/lock (程序相关)

可分享的意思是是否可以分享给其他系统挂载使用的目录,最简单的就是可执行文件和用户邮件等数据;不可分享的则是本机上运行的设备文件或者程序相关的socket文件;不变的,跟随Linux Distribution一起被放置的文件,如函数库、文件说明文档、系统管理员被指的主机配置文件。可变动的,经常改变的数据如登录文件、新闻组。

根目录是整个系统的起源,同时还与开机、还原和修复等操作有关,FHS建议根目录所在分区越小越好,因为不容易出错,且性能也很好。根目录下应该有如下子目录:

  • /bin 单用户维护模式仍可用的命令。属于系统命令,既可以被root用户使用,也可以被普通用户使用;
  • /boot 开机会使用到的文件,包括内核文件和开始会用到的配置;
  • /dev 任何设备都是以文件形式存在这个目录的,访问它等价于访问某个设备;如/dev/null /dev/zero /dev/tty /dev/lp* /dev/hd* /dev/sd*
  • /etc 系统的主要配置几乎都放在此目录,账号密码、服务起始文件。一般只能有root有权修改,FHS建议不要放置可执行文件,比较重要的文件/etc/modprobe.conf /etc/X11 /etc/fstab /etc/sysconfig /etc/networkfstab可以设置自动挂载
  • /home 系统默认的主文件夹(home directory)。当你创建一个账户时,默认的主文件夹都会被规范地放置在此处。一个小trick,我们可以使用~或者到某个用户目录下~yonghu1
  • /lib 放置开机时会用到的函数库以及/bin /sbin 下面会用到的函数库,/lib/module 则放置的时内核相关的驱动程序
  • /media 可以删除的设备,如软盘、光盘、DVD,/media/floppy /media/cdrom
  • /mnt 临时挂载的额外设备
  • /opt 第三方软件放置目录。也就是非发行版一起发布的系统,如KDE桌面管理系统就是第三方软件,安装在这里就可以啦,不过以前的Linux系统还是习惯放在/usr/local中
  • /root 系统管理员的主文件夹
  • /sbin Linux有很多命令只有root能够使用,用于设置环境,其他用户只能查询,/sbin下就是放置一些开机过程所需要的,包括开机修复和还原系统所需要的命令
  • /srv service,一些网络服务启动之后所需要的数据目录,常见的WWW /src/www/
  • /tmp 让一般用户用户或者是正在执行的程序暂时放置文件的地方。重要的数据不要放这里,FHS甚至要求开机时删除。

好了,上面列举了FHS标准定义的目录,除了上述目录,有些目录也被放在发行版中,也非常重要。

  • /lost+found 标准ext2/ext3 文件系统才会产生的一个目录,系统发生错误时将会把丢失的一部分片段放置在这个目录,如加装了一块硬盘到/disk,发生错误后会放在/disk/lost+found
  • /proc 虚拟文件系统,这个目录都放置在内存中,不占用空间,如内核、进程、外部设备状态、/proc/cupinfo 等;
  • /sys 与/proc相似,记录已经加载的内核与内核检测到的硬件设备信息,不占用内存

有些文件不能与根目录放置在不同分区,/etc /bin /lib /sbin,我们通常会在/home/下进行文件编辑、代码编写,开发过程中使用的头文件、库什么的放在什么地方呢?答案是:/usr

根据FHS规定,/usr放置的文件属性是:“不变的,可分享的”,可以由同一个局域网的其他用户使用,所有系统默认的软件(distribution发布者提供的软件)都会被放置在这个目录下(对应Ubuntu的apt get得到的?),现对其进行一个简单的说明:

  • /usr/X11R6/ X Windows 系统重要数据所放置的目录。
  • /usr/bin/ 绝大部分用户可使用的命令(注意/bin是与开机相关的)
  • /usr/include C/C++程序头文件和包含文件放置处
  • /usr/lib 各种应用软件的函数库、目标文件以及不被一般用户惯用的执行文件或脚本
  • /usr/sbin 非系统正常运行所需要的系统命令
  • /usr/local/ 系统管理员在本机自行安装的软件,他的用处在于你不想更新distribution的一个旧版本软件,你可以将这个软件更新在这里,这个目录下也有/bin /etc /include /lib子目录
  • /usr/share/ 文本文档,如/usr/share/man /usr/share/doc /usr/share/zoneinfo
  • /usr/src/ 一般源码放置处,内核源码则放在/usr/src/linux中

如果说,/usr是固定占用大硬盘容量的空间,那么/var则是随着系统的使用动态变化的文件。包括缓存、登录文件和某些软件所产生的文件,包括程序文件(lock file 和run file),或者例如MySQL数据库文件。

  • /var/cache/ 应用程序本身会产生的一些暂存文件
  • /var/lib/ 程序执行时使用到的数据文件,如MySQL数据库就放在在/var/lib/mysql,rpm则放在/var/lib/rpm
  • /var/lock/ 设备或者文件一次只能被一个程序访问,如果同时有两个我使用则会产生错误,用这个文件枷锁
  • /var/log 登录文件放置目录,比较重要的时 /var/log/message /var/log/wtmp记录登陆者信息
  • /var/run 某些服务或程序启动后,将会把他们的PID放置在这个目录下
  • /var/mail 个人电子邮箱目录
  • /var/spool 放置一些队列数据

PS:关于/etc下的重要文件说明

  • /etc/init.d/ 所有服务默认启动脚本是放在这个文件夹中的,文件夹的脚本是可以启动和关闭某项服务的,如:/etc/init.d/iptables start /etc/init.d/iptables stop
  • /etc/xinetd.d/ super daemon管理的各项服务配置目录
  • /etc/X11 X Window有关的各种配置文件,xorg.config这个对XServer的配置文件

[1] 鸟哥. 鸟哥的Linux私房菜,基础学习篇[M]. 人民邮电出版社, 2010.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值