在centos中,最顶层的目录称作根目录, 用/表示。/目录下用户可以再创建目录,但是有一些目录随着系统创建就已经存在,接下来重点介绍几个常用目录。
/bin(binary)包含了许多所有用户都可以访问的可执行文件,如 ls, cp, cd 等。这里的大多数程序都是二进制格式的,因此称作bin目录。
/dev(设备文件) 通常挂载在devtmpfs文件系统上,里面存放的是设备文件节点。通常直接和内存进行映射,而不是存在物理磁盘上。值得一提的是其中有几个有趣的文件,它们是虚拟设备。
- /dev/null是可以用来销毁任何输出的虚拟设备。你可以用>重定向符号将任何输出流重定向到/dev/null来忽略输出的结果。
- /dev/zero是一个产生数字 0 的虚拟设备。无论你对它进行多少次读取,都会读到 0。
- /dev/ramdom是一个产生随机数的虚拟设备。读取这个文件中数据,你会得到一个随机数。你不停地读取这个文件,就会得到一个随机数的序列。
/etc(配置文件),/etc名字的含义是and so on……,也就是“等等及其他”,Linux 用它来保管程序的配置。比如说mysql通常会在/etc/mysql下创建配置。再比如说/etc/passwd是系统的用户配置,存储了用户信息。
/proc(process,进程和内核文件) 存储了执行中进程和内核的信息。比如你可以通过/proc/1122目录找到和进程1122关联的全部信息,目录中重要文件信息如下:
- /proc/cpuinfo 存放处理器( c p u )的信息,如c p u的类型、制造商、型号和性能等。
- /proc/devices 当前运行的核心配置的设备驱动的列表。
- /proc/dma 显示当前使用的d m a通道。
- /proc/filesystems 核心配置的文件系统信息。
- /proc/interrupts 显示被占用的中断信息和占用者的信息,以及被占用的数量。
- /proc/ioports 当前使用的i / o端口。
- /proc/kcore 系统物理内存映像。与物理内存大小完全一样,然而实际上没有占用这么多内存;它仅仅是在程序访问它时才被创建。/proc/kmsg 核心输出的消息。
- /proc/ksyms 核心符号表。
- /proc/loadavg 系统“平均负载。
- /proc/meminfo 各种存储器使用信息,包括物理内存和交换分区( s w a p )。
- /proc/modules 存放当前加载了哪些核心模块信息。
- /proc/net 网络协议状态信息。
- /proc/self 存放到查看/proc 的程序的进程目录的符号连接。
- /proc/stat 系统的不同状态
- /proc/uptime 系统启动的时间长度。
- /proc/version
/sbin(super binary系统二进制) 和/bin类似,通常是系统启动必需的指令,是系统管理员专用的二进制代码存放目录。
/tmp(临时文件) 用于存放应用的临时文件,通常用的是tmpfs文件系统。因为tmpfs是一个内存文件系统,系统重启的时候清除/tmp文件,所以这个目录不能放应用和重要的数据。
/var (Variable data file,可变数据文件) 用于存储运行时的数据,每个系统是特定的,即不通过网络与其他计算机共享。比如日志通常会存放在/var/log目录下面。再比如应用的缓存文件、用户的登录行为等,都可以放到/var目录下,/var下的文件会长期保存。其中:
- /var/lib 系统正常运行时要改变的文件.
- /var/local 存放/usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock 。
- /var/lock 锁定文件.许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件.其他程序注意到这个锁定文件,将不试图使用这个设备或文件.
- /var/log 各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息. /var/log 里的文件经常不确定地增长,应该定期清除.
- /var/run 保存到下次引导前有效的关于系统的信息文件.例如, /var/run/utmp 包含当前登录的用户的信息.
- /var/spool mail, news, 打印队列和其他队列工作的目录.每个不同的spool在/var/spool 下有自己的子目录,例如,用户的邮箱在/var/spool/mail 中.
- /var/tmp 比/tmp 允许的大或需要存在较长时间的临时文件. (虽然系统管理员可能不允许/var/tmp 有很旧的文件.)
/boot(启动) 目录下存放了 Linux 的内核文件和启动镜像,通常这个目录会写入磁盘最头部的分区,启动的时候需要加载目录内的文件。
/opt(Optional Software,可选软件) 通常会把第三方软件安装到这个目录。以后你安装软件的时候,可以考虑在这个目录下创建。
/root(root 用户家目录) 为了防止误操作,Linux 设计中 root 用户的家目录没有设计在/home/root下,而是放到了/root目录。
/home(家目录) 用于存放用户的个人数据,比如用户kevin的个人数据会存放到/home/kevin下面。并且通常在用户登录,或者执行cd指令后,都会在家目录下工作。 用户通常会对自己的家目录拥有管理权限,而无法访问其他用户的家目录。
/media(媒体) 自动挂载的设备通常会出现在/media目录下。比如你插入 U 盘,通常较新版本的 Linux 都会帮你自动完成挂载,也就是在/media下创建一个目录代表 U 盘。
/mnt(Mount,挂载) 我们习惯把手动挂载的设备放到这个目录。比如你插入 U 盘后,如果 Linux 没有帮你完成自动挂载,可以用mount命令手动将 U 盘内容挂载到/mnt目录下。
/srv(Service Data,,服务数据) 通常用来存放服务数据,比如说你开发的网站资源文件(脚本、网页等)。不过现在很多团队的习惯发生了变化, 有的团队会把网站相关的资源放到/www目录下,也有的团队会放到/data下。总之,在存放资源的角度,还是比较灵活的。
/usr(Unix System Resource) 包含系统需要的资源文件,通常应用程序会把后来安装的可执行文件也放到这个目录下,比如说vim编辑器的可执行文件通常会在/usr/bin目录下,区别于ls会在/bin目录下
- /usr/bin/ 后期安装的一些软件的运行脚本
- /usr/sbin中会包含有通常系统管理员才会使用的指令。
- /usr/lib目录中存放系统的库文件,比如一些重要的对象和动态链接库文件。
- /usr/share目录下主要是文档,比如说 man 的文档都在/usr/share/man下面。