进入Linux系统,我们就是畅游在各种目录文件中,毕竟Linux是“文件系统”,文件的存放就是在目录下面,那我们了解下“Linux中各目录(文件夹)作用详解”还是十分有必要的。其实刚刚接触Linux时,我就在这方面下了一些功夫,也记住了一部分目录的广泛作用,但随着一段时间没用Linux,该忘的不该忘的都差不多忘了,重新捡起来虽然快很多,但也很费时间。这样还不如花时间整理出一篇这方面的文章,方便复习巩固,专制“健忘”!!

首先从根目录下讲起,毕竟一切来源就是根目录。

一、根目录下各目录详解

目录名解析
/bin二进制可执行命令。该目录下存放着普通用户的命令
/boot启动Linux的核心文件
/data用户用于存放日志等数据的目录
/dev系统的设备文件,即设备的驱动程序
/etc系统所有的配置文件都在这个目录中
/home用户主目录的基点
/lib存放着和系统运行相关的库文件
/lost-found这个目录平时是空的,当系统非正常关机而留下的“无家可归”的文件便会储存在这里
/media存放着可移除的设备,比如软盘,光盘
/misc储存着一些特殊的字符的定义
/mnt挂载目录,是系统管理员临时安装文件的系统安装点
/net存放着和网络相关的一些文件
/opt(option : 自由选择)主要给源码安装软件时选择的安装目录位置
/proc存放着用户与内核的交互信息
/root超级用户的目录
/sbin系统的管理命令,这里存放的是系统管理员使用的程序
/selinux主要用来加固操作系统,提高系统的安全性
/srv系统启动服务时可以访问的数据库目录
/sys管理设备文件
/tmp临时文件,重启后自动清空
/var某些大文件的溢出区,比如各种服务的日志文件
/usr最大的目录,存放着应用程序和文件

根目录下各目录作用的简单了解,能方便我们对Linux系统的理解和运用,后面会随着学习深入,会继续添加其他一些目录的作用解析。

二、进程目录下各目录详解

这是我在自己服务器上随意找的一个进程实例如下:

[root@localhost proc]# cd /proc/1558
[root@localhost 1558]# ll
total 0
dr-xr-xr-x   2 jira jira 0 Nov 30 21:15 attr
-rw-r--r--   1 jira jira 0 Nov 30 21:15 autogroup
-r--------   1 jira jira 0 Nov 30 21:15 auxv
-r--r--r--   1 jira jira 0 Nov 27 19:03 cgroup
--w-------   1 jira jira 0 Nov 30 21:15 clear_refs
-r--r--r--   1 jira jira 0 Nov 27 19:05 cmdline
-rw-r--r--   1 jira jira 0 Nov 27 19:03 comm
-rw-r--r--   1 jira jira 0 Nov 30 21:15 coredump_filter
-r--r--r--   1 jira jira 0 Nov 30 21:15 cpuset
lrwxrwxrwx   1 jira jira 0 Nov 30 21:15 cwd -> /usr/jira/bin
-r--------   1 jira jira 0 Nov 30 21:15 environ
lrwxrwxrwx   1 jira jira 0 Nov 27 19:02 exe -> /usr/jira/jre/bin/java
dr-x------   2 jira jira 0 Nov 24 15:08 fd
dr-x------   2 jira jira 0 Nov 30 21:15 fdinfo
-rw-r--r--   1 jira jira 0 Nov 30 21:15 gid_map
-r--------   1 jira jira 0 Nov 30 21:15 io
-r--r--r--   1 jira jira 0 Nov 30 21:15 limits
-rw-r--r--   1 jira jira 0 Nov 30 21:15 loginuid
dr-x------   2 jira jira 0 Nov 30 21:15 map_files
-r--r--r--   1 jira jira 0 Nov 30 21:15 maps
-rw-------   1 jira jira 0 Nov 30 21:15 mem
-r--r--r--   1 jira jira 0 Nov 30 21:15 mountinfo
-r--r--r--   1 jira jira 0 Nov 24 15:29 mounts
-r--------   1 jira jira 0 Nov 30 21:15 mountstats
dr-xr-xr-x   5 jira jira 0 Nov 30 21:15 net
dr-x--x--x   2 jira jira 0 Nov 30 21:15 ns
-r--r--r--   1 jira jira 0 Nov 30 21:15 numa_maps
-rw-r--r--   1 jira jira 0 Nov 30 21:15 oom_adj
-r--r--r--   1 jira jira 0 Nov 30 21:15 oom_score
-rw-r--r--   1 jira jira 0 Nov 30 21:15 oom_score_adj
-r--r--r--   1 jira jira 0 Nov 30 21:15 pagemap
-r--------   1 jira jira 0 Nov 30 21:15 patch_state
-r--r--r--   1 jira jira 0 Nov 30 21:15 personality
-rw-r--r--   1 jira jira 0 Nov 30 21:15 projid_map
lrwxrwxrwx   1 jira jira 0 Nov 30 21:15 root -> /
-rw-r--r--   1 jira jira 0 Nov 30 21:15 sched
-r--r--r--   1 jira jira 0 Nov 30 21:15 schedstat
-r--r--r--   1 jira jira 0 Nov 30 21:15 sessionid
-rw-r--r--   1 jira jira 0 Nov 30 21:15 setgroups
-r--r--r--   1 jira jira 0 Nov 30 21:15 smaps
-r--r--r--   1 jira jira 0 Nov 30 21:15 stack
-r--r--r--   1 jira jira 0 Nov 24 15:07 stat
-r--r--r--   1 jira jira 0 Nov 30 21:14 statm
-r--r--r--   1 jira jira 0 Nov 27 19:59 status
-r--r--r--   1 jira jira 0 Nov 30 21:15 syscall
dr-xr-xr-x 197 jira jira 0 Nov 24 15:07 task
-r--r--r--   1 jira jira 0 Nov 30 21:15 timers
-rw-r--r--   1 jira jira 0 Nov 30 21:15 uid_map
-r--r--r--   1 jira jira 0 Nov 30 21:15 wchan
[root@localhost 1558]# 

下面列出一些进程目录下常见的目录并解析:

目录名解析
cmdline启动当前进程的完整命令,但僵尸进程目录中的此文件不包含任何信息
cwd指向当前进程运行目录的一个符号链接
environ当前进程的环境变量列表,彼此间用空字符(NULL)隔开;变量用大写字母表示,其值用小写字母表示
exe指向启动当前进程的可执行文件(完整路径)的符号链接,通过/proc/N/exe可以启动当前进程的一个拷贝
fd这是个目录,包含当前进程打开的每一个文件的文件描述符(file descriptor),这些文件描述符是指向实际文件的一个符号链接
limits当前进程所使用的每一个受限资源的软限制、硬限制和管理单元;此文件仅可由实际启动当前进程的UID用户读取(2.6.24以后的内核版本支持此功能)
maps当前进程关联到的每个可执行文件和库文件在内存中的映射区域及其访问权限所组成的列表
mem当前进程所占用的内存空间,由open、read和lseek等系统调用使用,不能被用户读取
root指向当前进程运行根目录的符号链接;在Unix和Linux系统上,通常采用chroot命令使每个进程运行于独立的根目录
stat当前进程的状态信息,包含一系统格式化后的数据列,可读性差,通常由ps命令使用
statm当前进程占用内存的状态信息,通常以“页面”(page)表示
status与stat所提供信息类似,但可读性较好,每行表示一个属性信息
task目录文件,包含由当前进程所运行的每一个线程的相关信息,每个线程的相关信息文件均保存在一个由线程号(tid)命名的目录中,这类似于其内容类似于每个进程目录中的内容;(内核2.6版本以后支持此功能)

三、/etc文件系统

/etc目录包含各种系统配置文件,这里说明一些常见的,其他的可能就是你一看就知到是属于哪个程序的配置文件,因为往往各个程序的配置文件名称与程序名很相似。

目录名解析
/etc/rc或/etc/rc.d或/etc/rc?.d启动、或改变运行级时运行的脚本或脚本的目录。
/etc/passwd用户数据库,其中的域给出了用户名、真实姓名、用户起始目录、加密口令和用户的其
他信息。
/etc/shadow在安装了影子( s h a d o w )口令软件的系统上的影子口令文件。影子口令文件将/ e t c / p a s s wd文件中的加密口令移动到/ e t c / s h a d o w中,而后者只对超级用户( r o o t)可读。这使破译口令更困难,以此增加系统的安全性。
/etc/group类似/etc/passwd ,但说明的不是用户信息而是组的信息。包括组的各种数据。
/etc/fdprm软盘参数表,用以说明不同的软盘格式。可用setfdprm 进行设置。更多的信息见s e t f d p r m的帮助页。
/etc/fstab指定启动时需要自动安装的文件系统列表。也包括用swapon -a启用的s w a p区的信息。
/etc/inittabinit 的配置文件。
/etc/issue包括用户在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息。具体内容由系统管理员确定。
/etc/magic“f i l e”的配置文件。包含不同文件格式的说明,“f i l e”基于它猜测文件类型。
/etc/motdm o t d是message of the day的缩写,用户成功登录后自动输出。内容由系统管理员确定。常用于通告信息,如计划关机时间的警告等。
/etc/mtab当前安装的文件系统列表。由脚本( s c r i t p )初始化,并由mount 命令自动更新。当需要一个当前安装的文件系统的列表时使用(例如df 命令)。
/etc/login.defslogin命令的配置文件。
/etc/printcap类似/etc/termcap ,但针对打印机。语法不同。
/etc/profile 、/ e t c / c s h . l o g i n、/etc/csh.cshrc登录或启动时b o u r n e或c shells执行的文件。这允许系统管理员为所有用户建立全局缺省环境。
/etc/securetty确认安全终端,即哪个终端允许超级用户( r o o t )登录。一般只列出虚拟控制台,这样就不可能(至少很困难)通过调制解调器( m o d e m )或网络闯入系统并得到超级用户特权。
/etc/shells列出可以使用的shell。chsh命令允许用户在本文件指定范围内改变登录的shell。提供一台机器f t p服务的服务进程ftpd 检查用户shell是否列在/etc/shells 文件中,如果不是,将不允许该用户登录。
/etc/termcap终端性能数据库。说明不同的终端用什么“转义序列”控制。写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从/etc/termcap中查找要做的工作的正确序列。这样,多数的程序可以在多数终端上运行。

四、/dev文件系统

五、/usr文件系统

六、/var文件系统

七、/proc文件系统

附:
more命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
语法:
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames…]

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐