linux-系统默认目录说明
很多目录是看着眼熟,但是不知道用来干什么的,了解清楚每个目录的作用在开发开发功能、定位问题都致关重要。
比如从网下安装了一个二进制的工具,这个工具安装在哪个目录下?
比如wget在哪个目录下可以找到?
挂载了USB设备,去个目录下读文件?
SSH-KEY 在哪个目录下?
等等,都需要对系统目录有一个基本了解。
系统目录
/ 根目录
每一个文件和目录都是从根目录开始的
root用户具有该目录下的写权限。
/root
是root 用户的主目录,这与/.不一样
/bin 用户二进制文件
bin即,binary。
二进制文件,就是可执行文件,说白就是可执行的程序,一般以命令形式执行。
用户的可执行文件一般放在这里。
存储linux系统自有的所有命令,可以cd bin去查看,里面有比如cp、ls这样系统命令。
就连 cd 这个命令也是在bin下面的。
常用的可执行文件
/bin 如:bash、cat、ls、cd、rm、touch
/usr/bin 主要放置应用程序工具的必备执行文件,如:c++、g++、gcc、ncftp
/sbin 系统二进制文件
就像/bin一样,/sbin 同样包含二进制可执行文件。
sbin 全称:system bin
说白了就是一堆工具所需要的命令,bin里装的都是内核所需要命令。sbin里的命令在就像是用yum安装工具后的工具命令的存放处。
/sbin 系统管理的必备程序,如:iptables、reboot、fdisk、ifconfig
/usr/sbin 主要放置网路管理的必备程序,例如: dhcpd、httpd、imap、inetd、lpd、named
/etc 系统配置
包含: 系统配置、一些服务配置、帐号密码、应用配置。
我装了httpd配置也在这里。
也包含了用于启动/停止单个程序的启动和关闭shell脚本。
例如:
/etc/profile 系统变量、环境变量
/etc/resolv.conf
/etc/logrotate.conf
/dev
装所有的硬件设备的目录
dev命名规则
xx 磁盘类型
y 第几个接口
N 分区编号
举例:
/dev/xxyN 规则
/dev/hda //hd 表示IDE硬盘 a表示第一个接口
/dev/hdb //hd 表示IDE硬盘 b表示第一个接口
/dev/sdb //sd 表示SCSI硬盘 b表示第二个接口
abcd 表示插在主板上的哪个接口
扩展分区不能直接使用,是用必拆分出更多的逻辑分区,扩展分没有个数限制。
N表示分区
主分区、扩展分区 1-4编号
逻辑分区 从5开始算第一个编号
理解:以树型结构来理解:
|-----hda1主分区 //相当于C:
|----------hda2 扩展分区 //相当于windows 中的扩展分区
|----------------hda5 逻辑分区 //相当于D:
|----------------hda6 逻辑分区
|----------------hdaN 逻辑分区
例
/dev/hda6 主板的第一个接口的和一个逻辑分区
/tmp
包含系统和用户创建的临时文件。
当系统重新启动时,这个目录下的文件都将被删除。
/var变量文件目录
这个目录下可以找到内容可能增长的文件
这包括:
- 系统日志文件(/var/log);
- 包和数据库文件(/var/lib);
- 电子邮件(/var/mail);
- 打印队列(/var/spool);
- 锁文件(/var/lock);
- 多次重新启动需要的临时文件(/var/tmp);
/proc 文件系统
Linux 内核提供的一种伪文件系统,可以在运行时访问内核内部数据结构、改变内核设置的机制
这个文件系统只能存在于内存当中,不占用外部空间。它以文件系统的方式为访问系统内核数据提供接口。
作用:
1.用户和程序可以通过proc得到系统信息,并可以改变内核的某些参数。
三个重要的子目录:
net、scsi、sys。
- sys目录是可写的,通过他可以攸 改内核的参数。
- net、scsi、依赖于内核,如果内核不支持则sisc目录不存在
- 以数字命名的目录是系统的进程目录。是以pid号为目录名。它们是读取进程信息的接口。
- self目录则是读取进程本身的信息接口,是一个link。
测了一下,比如查看系时间:
cd /proc/uptime //有个白色文件说明是文本文件
vi uptime //查看到系统运行的时间,是以豪秒计算的。
几乎所有跟系统相关的东西都可以被查到。
/usr 存放应用程序的目录
/usr/bin 应用程序的存放目录。
yum 就装在bin这个目录下。
说明:应用程序和命令是不同的概念。
子目录说明:
/usr/bin 普通应用,包含用户的二进制文件如果在bin中找不到用户的二进制程序文件,可以到这里找。
/usr/sbin 服务器应用s表示server,包含系统的二进制文件,同要可以来这找sbin中没有的文件
/usr/bin 包含了/usr/bin 和 /usr/sbin用到的库
/usr/etc 配置
用了一段时间后,发现一般开发都把应有装在 /usr/local 这个目录下。
/usr目录的由来,看了网上的分析很有意思。
大部分观点认为:
usr 是 unix system resources 的缩写;
usr 是 user 的缩写;
usr 是 unix software resources 的缩写。
但是这错的,user目录的真身是/home。
现代的/usr 只是纯粹的存放用户的各种应用程序。
/boot 引导加载程序文件
内核的initrd、vmlinux、grub文件位于/boot下。
系统内核、引导文件、GRUB或LILO
/opt 可选的附加应用
应该是 options 的缩写
opt代表可选的。
包含从个别厂商的附加应用程序。
附加应用程序应该安装在/opt/或者/opt/的子目录下。
/mnt 挂载目录
临时安装目录,系统管理员可以挂载文件系统。
什么叫临时安装?
我自己的理解是,不是随系统启时加载的硬件,比如,移动硬盘,U盘,投影仪等。这windows下添加设备的过程是自动化的,在linux下需要手动添加。
mmt = mount 的缩写
挂载的设备会在/mnt下多也一个设备目录,里面包含了设备文件。
/media 多媒体
可移动媒体设备
用于挂载可移动设备的临时目录。
举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;