1、FHS标准(filesystem hierarchy standard)
why? –> 为了规范,还有为了linux的发展
重点 –> 规范每个特定目录下应该要放置什么样的数据
what? –> 定义了三层目录下应该放置什么数据{
1. / 根目录:放置与开机系统有关的数据
2. /usr (unix software rescource): 与软件的安装执行有
关数据
3. /var :与系统运行过程有关的数据
}
根目录不要放在非常大的分区,应该越小越好,一是提升性能,二是不容易发生问题
2、FHS定义根目录下应该有那些子目录{
/bin 系统有很多的执行文件,一般用户都可以使用,单用户模式下
能够操作的命令
/boot 放置开机会使用到的文件,包括linux内核文件以及开机菜单,
配置文件
/dev 放置设备以及接口设备文件 {
/dev/null 类似一个黑洞 作用:禁止标准错误
禁止标准的输出
/dev/zero 也是一个伪文件,用来临时交换文件
/dev/hd* –>IDE设备 硬盘
/dev/sd* –>SCSI设备
/dev/tty[0-63] –>虚拟终端
/dev/ttys –>串口
/dev/ram* –>内存
/dev/lp –>并口
}
/etc 系统主要的配置文件是放在这个目录里面,账号,密码,
各种服务的起始文件,组名。一般的用户都是可以查询
的,只有root权限才能修改。FHS建议不要放置
可执行文件(binary)在这个目录中。比较重要的{
inittab –>runlevel的默认配置就在这里
init.d –>所有服务的默认启动脚本都是放在这里的
}
/home 这里系统默认的用户主文件夹,主要你的个人数据,
/home/用户名
/lib 放置开机会用到的函数库,以及在/bin或者/sbin下面的
命令会调用的函数库。
/lib/modules ->放置内核相关的模块(驱动程序)
/media 媒体的英文,下面放置的可删除的设备,比如光驱,软驱
/misc 杂项驱动放置的地方
/mnt 挂载某些额外设备的地方,比如u盘
挂载是指讲一个设备挂接一个已存在的目录,通过访问这
个目录来访问设备
/net 跟网络有关,网络目录的一个挂载点
/opt 放置第三方软件的目录,比如自己安装的java,realplay等
/root 系统管理员的主文件夹
/proc 这个一个虚拟文件系统,放置的数据都是在内存里面,比如
系统的内核,进程,本身不占硬盘空间。
/sbin 只有系统管理员才能用,其他用户只能查询,设置系统环境
的命令,修复,还原系统等这些命令、**和/bin的区别{
功能来说:/sbin 属于基本的系统,shutdown,reboot,
启动系统,修复系统。
/bin 一些普通的基本命令,如ls,chmod
用户的权限来说:/sbin 下面的命令通常只有管理员可
以运行
/bin 管理员和一般用户都可以用
}
/selinux 这个目录的数据也是在内存的,不会占用硬盘容量,他是
linux的内核的重要的外挂之一。
/srv service的缩写,是些网络服务启动之后需要用到的数据目录
比如:www,ftp
/tmp 类似临时文件夹,任何人都可以访问,所以不要将重要的数
据放到这个目录下面
/lost+found 当文件系统发生错误的时候,会将一些丢失的文件片
段放这个目录。比如非法关机,这个目录里面就会放
这些文件。
/sys 和proc类似,也是一个虚拟文件系统,主要记录与内核相关的
一些信息,包括:目前已经加载的内核模块和内核检测到的硬
件设备信息。
/usr 这个是unix操作系统软件资源所放置的目录,不是用户的数
据,这点注意下。 对于开发者而言,不要自行新建目录在
这个下面。系统默认的软件都是放置在这个/usr下面。类
似windws的c:\window + c:\program files 这2个目录的
结合体。
/var 这个目录在运行以后才会逐渐占用硬盘容量。缓存文件,登陆
文件,某些软件运行所产生的文件,像数据库文件等等。
}
3、需要注意的是:
根目录和系统开机有关,根目录和哪些目录不能放到不同的分区{
/etc 配置文件
/bin 执行文件
/dev 设备文件
/lib 执行文件所需要的函数库和内核所需要的模块
/sbin 系统执行文件
}
4、绝对路径和相对路径
a/b/c/d/e windows/java/jre/tolls.jar
windows/java2/jre2/tools2.jar