Linux文件与目录管理

  1. 查找文件有三个命令:分别是find,wheries,locate

    wheries:针对特殊路径查找
     -l:列出whereis会去查询的几个主要目录
    locate:已经建立的数据库 /var/lib/mlocate里查找
    find:查找文件(时间,权限都可以作为查询条件)
    
  2. 目录与文件的权限意义

    1. 目录:

      1. r:具有读取目录结构列表的权限
      2. w:具有改动该目录结构列表的权限
      3. x:用户能否进入该目录成为工作目录
    2. 文件:

      1. r:读取此文件的实际内容
      2. w:编辑、新增或是修改该文件的内容
      3. x:该文件具有可以被系统执行的权限
  3. 文件与文件系统的解压缩

    1. 打包命令:tar。将多个文件结合为一个文件,没有压缩功能
    2. 常见的压缩命令:gzip,bzip2,xz。通常,搭配tar命令一起使用
    3. tar常用选项与参数
    tar [-z] -j [-J] [cv] [-f 待建立的新文件名] filename
    -c:建立打包文件,可搭配-v来查看过程中被打包的文件名
    -v:在压缩/解压缩的过程中,将正在处理的文件名显示出来
    -x:解包,解压缩的功能,可以搭配-C特定目录解压
    -C:用在解压缩,特定目录解压缩
    -z:gzip解压缩
    -j:bzip2解压缩
    -J:xz解压缩
    -p:保留备份数据的原本权限与属性
    -P:保留绝对路径
    
  4. 目录配置依据——FHS

    1. 定义三层目录下放置数据

      1. /(root,根目录):与启动系统有关
      2. /usr(unix software resource):与软件安装/执行有关
      3. /var(variable):与系统运行过程有关
    2. 通常定义为四种交互作用的形态

      可分享(shareable)不可分享(unshareable)
      不变(static)/usr(软件存放处)/etc(配置文件)
      /opt(第三方辅助软件)/boot(启动与内核文件)
      可变动(variable)/var/mail(用户邮箱)/var/run(程序相关)
      /var/spool/news(新闻组)/var/lock(程序相关)

FHS定义目录

第一部分:FHS要求必须要存在的目录
目录应放置文件内容
/bin存放执行文件的目录,但/bin比较特殊。因为/bin放置的是在单人维护模式下还能够使用的命令。在/bin下的命令可以被root与一般账号使用,主要有:cat、chmod、chown、date、mv、mkdir、cp、bash等命令
/boot主要在放置启动会使用到的文件,包括Linux内核文件以及启动选项与启动所需配置文件等
/dev任何设备与接口设备都是以文件的形式存在于这个目录当中
/etc系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的启动文件等。一般来说,这个目录下的个文件属性是可以让一般用户查看的,但是只有root有权利修改。FHS建议不要放置可执行文件(binary)在这个目录中。比较重要的文件有:/etc/modprobe.d/、/etc/passwd、/etc/fstab、/etc/issue等。另外FHS还规范几个重要的目录最好要存在/etc/目录下:1. /etc/opt:这个目录在放置第三方辅助软件/opt的相关配置文件 2./etc/xml/:与XML格式有关的各项配置文件
/lib系统的函数库非常多,而/lib放置的则是在启动时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库而已。
/media放置的是可删除的设备,包括软盘、光盘、DVD等设备都暂时挂载于此
/mnt如果你想要暂时挂载某些额外的设备,一般建议你可以放置到这个目录当中
/opt第三方辅助软件放置的目录
/run系统启动后所产生的各种信息
/sbinLinux有非常多的命令是用来设置系统环境的,这些命令只有root才能够用来设置系统,其他用户最多只能用来查询而已。放在/sbin下面的为启动过程中所需要的,里面包括了启动、修复、还原系统所需要的命令。至于某些服务器软件程序,一般则放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统执行文件(system binary),则放置到/usr/local/sbin当中了。常见的命令包括:fdisk、fsck、ifconfig、mkfs等
/srvsrv可以视为service的缩写,是一些网络服务启动之后,这些服务所需要使用的数据目录,常见的服务例如WWW、FTP等。举例来说,WWW服务器需要的网页数据就可以放置在/srv/www/里面。不过,系统的服务器数据如果尚未要提供给因特网任何人浏览的话,默认还是建议放置到/var/lib下面即可
/tmp这是让一般用户或是正在执行的程序暂时放置文件的地方。这个目录是任何人都能够存取的,所以你需要定期地清理一下。
/usr第二层 FHS 设置
/var第二层 FHS 设置,主要为放置变动性的数据

/user的意义与内容

  1. 根据 FHS 的基本定义,/usr 里面放置的数据属于可分享与不可变动( shareable,static )
目录应放置文件内容
/usr/bin/所有一般用户能够使用的命令都放在这里。目前新的Centos 7 已经将全部的用户命令放置于此,而使用链接文件的方式将 /bin 链接至此。
/usr/lib/基本上,与 /lib 功能相同,所以 /lib 就是链接到此目录中的
/usr/local/系统管理员在本机安装自己下载的软件(非发行版默认提供者),建议安装到此目录,这样会比较便于管理
/usr/sbin/非系统正常运行所需要的系统命令,最常见的就是某些网络服务器软件的服务命令( daemon )。不过基本功能与 /sbin 也差不多,因此目前 /sbin 就是链接到此目录中的
/usr/share/主要放置只读的数据文件,当然也包括共享文件,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据,因为几乎都是文本文件。在此目录下常见的还有这些子目录:/usr/share/man: 在线帮助文件 ;/usr/share/doc:软件的说明文档; /usr/share/zoneinfo:与时区有关的时区文件

/var的意义与内容

  1. 如果说/usr是安装时会占用较大硬盘容量的目录,那么 /var 就是在系统运行后才会渐渐占用硬盘容量的目录
目录应放置文件内容
/var/cache/应用程序本身运行过程中会产生的一些缓存
/var/lib/程序本身执行的过程中,需要使用到的数据文件放置的目录
/var/lock/某些设备或是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该设备时,就可能产生一些错误的状况,因此就得要将该设备上锁(lock),以确保该设备只会给单一软件所使用
/var/log/这是日文文件放置的目录,里面比较重要的文件有 /var/log/messages、/var/log/wtmp(记录登录信息)等
/var/mail放置个人电子邮箱的目录
/var/run/某些程序或是服务启动后,会将它们的PID放置在这个目录下,至于PID的意义我们会在后续章节提到,与 /run 相同,这个目录链接到 /run 目录
/var/spool这个目录通常放置一些队列数据,所谓的队列就是排队等待其他程序使用的数据,这些数据被使用后通常都会被删除。