Linux随笔2

目录1.2 /usr目录的意义与内容 1.3 /var目录的意义与内容2. Linux文件系统中的文件元数据信息相关操作 3. Linux文件系统的符号链接与硬链接 4. 常用的文件管理命令 4.4 命令与文件查找相关的命令 5. 交互式与非交互式文本内容查找6.
1. Linux的目录配置与FHS()
由于Linux发行版众多,如果各个发行版都按照各自开发人员的习惯随意命名目录以及分配目录的作用,那么势必造成学习、交流和使用上的不便 。为此,就需要一个统一的目录配置标准来约束Linux的目录配置中的目录命名以及角色划分,而这个统一的目录配置标准就是大名鼎鼎的FHS()了,即文件系统分级标准 。
FHS标准指出,其主要目的是希望用户可以了解到已经安装的软件通常位于哪个目录,即该标准的重点是规范每个特定目录下应该存放什么数据,即该目录在系统中的角色是什么 。FHS依据目录使用的频繁与否以及是否允许用户随意修改,将目录划分为4种形态:
是否可变\是否可共享可共享()不可共享()
不可变()
/usr(用于存放软件等)
/etc(用于存放配置文件等)
/opt(第三方软件安装路径)
/boot(存放系统启动引导与内核文件)
可变的()
/var/mail(邮箱)
/var/run(程序运行相关资料)
/var/spool/news(新闻组,可以没有)
/var/lock(程序运行的进程锁)
关于上述四种形态,解释如下:
实际上,FHS针对目录树架构只是给出了3层目录种应该存放的内容,如下所示:
/ (root,根目录):与系统启动有关,也是文件系统挂载的最顶层目录/usr (Unix):与软件安装与执行有关/var ():与系统运行过程有关
而Linux目录配置将会基于上述三方面展开 。
1.1 根目录(/)的意义与内容
顾名思义,根目录衍生出了所有其他目录,而且与系统的启动、还原和修复等操作相关 。由于系统启动时需要特定的启动软件、内核文件、启动所需要的程序和库函数等文件,如果系统出现问题需要修复,那么根目录种需要包含能够修复文件系统的程序才行 。所以FHS标准要求根目录不要放在非常大的分区内,单独分区,确保其中不要存储太多的用户数据;而且应用程序安装的软件最好不要与根目录放在同一个分区中,保持根目录越小越好;另外,在分区根目录的时候,尽量将根目录分为LVM,这样方便以后对根目录进行必要的扩展 。
FHS对于根目录中应该包含那些目录,做了不同的要求,有些目录是必须要存在的,即便没有物理目录存在,也需要构建出链接目录;而对于另外一些目录,则是建议存在的目录,不做强制要求 。
1.1.1 FHS要求根目录中必须存在的目录
这部分目录的名字以及其角色作用,如下表所示:
目录应该存放的文件
/bin
系统有很多存放执行文件的目录,但是/bin比较特殊,其中包含了单用户模式下话能够被使用的命令 。在/bin目录下的命令可以被root用户以及一般用户使用,主要命令:cat, chmod, chown, date, mv, mkdir, cp, bash等
/boot
放置启动过程需要使用的文件,包括Linux内核文件以及启动选项与启动所需要的配置文件等 。Linux内核常用的文件名为:,如果使用的是grub2这个引导程序,那么在/boot目录下还会存在一个/boot/grub2/这个目录
/dev
Linux系统上的设备和接口设备都是以文件的形式存在于这个目录下的,通过读写这个目录下的某个文件,就相当于读写某个设备 。其中比较重要的文件有==/dev/null, /dev/zero, /dev/tty,/dev/loop*, /dev/sd*==等
/etc
系统主要的配置文件几乎都存在这个目录中,比如记录用户名和密码等信息的/etc/文件和各种服务的配置文件等等 。一般来说,这个目录的内容是可以被一般用户查看的,但是只有root用户有权限进行修改 。不要将可执行的二进制程序放置在这个目录中 。FHS标准还建议下面几个目录最好存在这个目录中: