Linux文件与目录管理
-
查找文件有三个命令:分别是find,wheries,locate
wheries:针对特殊路径查找 -l:列出whereis会去查询的几个主要目录 locate:已经建立的数据库 /var/lib/mlocate里查找 find:查找文件(时间,权限都可以作为查询条件)
-
目录与文件的权限意义
-
目录:
- r:具有读取目录结构列表的权限
- w:具有改动该目录结构列表的权限
- x:用户能否进入该目录成为工作目录
-
文件:
- r:读取此文件的实际内容
- w:编辑、新增或是修改该文件的内容
- x:该文件具有可以被系统执行的权限
-
-
文件与文件系统的解压缩
- 打包命令:tar。将多个文件结合为一个文件,没有压缩功能
- 常见的压缩命令:gzip,bzip2,xz。通常,搭配tar命令一起使用
- tar常用选项与参数
tar [-z] -j [-J] [cv] [-f 待建立的新文件名] filename -c:建立打包文件,可搭配-v来查看过程中被打包的文件名 -v:在压缩/解压缩的过程中,将正在处理的文件名显示出来 -x:解包,解压缩的功能,可以搭配-C特定目录解压 -C:用在解压缩,特定目录解压缩 -z:gzip解压缩 -j:bzip2解压缩 -J:xz解压缩 -p:保留备份数据的原本权限与属性 -P:保留绝对路径
-
目录配置依据——FHS
-
定义三层目录下放置数据
- /(root,根目录):与启动系统有关
- /usr(unix software resource):与软件安装/执行有关
- /var(variable):与系统运行过程有关
-
通常定义为四种交互作用的形态
可分享(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 | 系统启动后所产生的各种信息 |
/sbin | Linux有非常多的命令是用来设置系统环境的,这些命令只有root才能够用来设置系统,其他用户最多只能用来查询而已。放在/sbin下面的为启动过程中所需要的,里面包括了启动、修复、还原系统所需要的命令。至于某些服务器软件程序,一般则放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统执行文件(system binary),则放置到/usr/local/sbin当中了。常见的命令包括:fdisk、fsck、ifconfig、mkfs等 |
/srv | srv可以视为service的缩写,是一些网络服务启动之后,这些服务所需要使用的数据目录,常见的服务例如WWW、FTP等。举例来说,WWW服务器需要的网页数据就可以放置在/srv/www/里面。不过,系统的服务器数据如果尚未要提供给因特网任何人浏览的话,默认还是建议放置到/var/lib下面即可 |
/tmp | 这是让一般用户或是正在执行的程序暂时放置文件的地方。这个目录是任何人都能够存取的,所以你需要定期地清理一下。 |
/usr | 第二层 FHS 设置 |
/var | 第二层 FHS 设置,主要为放置变动性的数据 |
/user的意义与内容
- 根据 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的意义与内容
- 如果说/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 | 这个目录通常放置一些队列数据,所谓的队列就是排队等待其他程序使用的数据,这些数据被使用后通常都会被删除。 |