对于Linux 在了解其使用过程之前,需要先了解其系统文件目录的作用。
为什么要了解其文件目录呢?这个需要明白一句神奇的化:linux中万物皆文件。
上面那句话为什么会被linux用户经常挂在嘴边,这个需要了解一些linux或者说unix的设计思路。
- 程序应该小而专一,让程序尽可能的小,专注与某一项任务上,而不是开发哪些看起来有用,但是大多数与索要参与的事情没有什么关系。
- 程序的必须考虑其性能,这个是上一点提出,但是还有一点也很重要,那就是程序的可以移植性,比如shell和perl,python等脚本比C语言有更好的移植性。
- 一切皆文件,因为linux中进行使用文本文件存储数据,避免使用二进制,因文本文件可读性强,而且有很多工具可以处理grep等
- 任何的程序都需要考虑批处理,尽量避免出现用户交互或界面。
现在通过命令查看一下根目录下的文件目录(展示系统为centos7)
目录 | 作用 |
---|---|
/ | 这个是linux中根目录, |
bin | 为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。 |
boot | 英语 boot 表示“启动”,包含与 Linux 启动密切相关的文件 |
dev | 简单的说就是:存放外设的文件。dev这个目录包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口,但是没有入口。必须通过挂载的方式对他们进行访问。 |
etc | 存放配置文件,比如账户密码,ip地址等信息 |
home | 普通用户的文件,以/home/$username的方式存放 |
lib | 英语 library 的缩写,表示“库”,包含被程序所调用的库文件。例如 .so 结尾的文件,在 Windows 下这样的库文件是以 .dll 结尾的; |
lib64 | 因为我的系统是64位所以有这个库 |
media | 英语 media 表示“媒体”。当一个可移动的外设(比如 USB 盘、SD 卡、DVD、光盘等等)插入电脑时,Linux 就可以让我们通过 media 的子目录来访问这些外设中的内容。 |
mnt | 英语 mount 的缩写,表示“挂载”。有点类似 media,但一般用于临时挂载一些装置 |
opt | 用户安装第三方的软件 |
proc | 是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。 |
root | 管理员家目录 |
run | 这个文件下面的东西是系统运行时候需要的,不能随便删除,但是重启的时候就会抛弃,下次系统运行又会重新生成 |
sbin | 英语 system binary 的缩写,表示“系统二进制文件”。比起 bin 目录多了一个前缀 system,所以包含的是系统级的重要可执行程序; |
srv | 英语 service的缩写,表示“服务”。包含一些网络服务启动之后所需要取用的数据 |
sys | 英文system的缩写,表示系统文件 |
tmp | 英语 temporary 的缩写,表示“临时的”。普通用户和程序存放临时文件的地方 |
usr | 英语 Unix Software Resource 的缩写,表示“Unix 操作系统软件资源”(也是个历史遗留的命名)。这个目录是最庞大的目录之一。有点类似 Windows 中的 C:\Windows 和 C:\Program Files 这两个文件夹的集合。在这里面安装了大部分用户要调用的程序;存放库文件、文档、命令、用户数据等 |
var | 英语 variable 的缩写,表示“动态的,可变的”。通常包含程序的数据,比如一些 log(日志)文件,记录电脑中发生了什么事 |