Linux 目录结构
目录结构
在 Linux 里,一切皆文件。 我们今天一起来看看 Linux 的目录结构。
计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易。
文件系统使用文件和树形目录的抽象逻辑概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名即可。
在 windows 系统中,查看文件先进入相应的盘符,然后进入文件目录。
在 Linux 系统中,所有内容都是以文件的形式保存和管理的,即「一切皆文件」。普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。
Linux 的文件系统像一棵树(Windows 也一样),树干是 /
(根)目录,树枝是子目录,树枝后面还有树枝(子目录中还有子目录),树枝最后是树叶,目录的最后是文件。
Linux 只有一个根目录,而且文件和目录被组织成一个单根倒置树结构,此结构最上层是根目录,用 /
表示,如下图:
Linux 只有一个顶级目录:/
,路径描述的层次关系同样适用/
来表示,/home/geeksman/test.txt
,表示根目录下的 home 文件夹内有 geeksman 文件夹,内有 test.txt
以下是对这些目录的解释:
/bin
:bin 是 Binaries(二进制文件)的缩写, 这个目录存放着最经常使用的命令。/boot
:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev
:dev 是 Device(设备)的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。/etc
:etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。/home
:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,root 用户的 HOME 目录,在:/root
。/lib
:lib 是 Library(库)的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。/media
:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。/mnt
:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/
上,然后进入该目录就可以查看光驱里的内容了。/opt
:opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个 MySQL 数据库则就可以放到这个目录下。默认是空的。/proc
:proc 是 Processes(进程) 的缩写,/proc
是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root
:该目录为系统管理员,也称作超级权限者的用户主目录。/sbin
:s 就是 Super User 的意思,是 Superuser Binaries(超级用户的二进制文件)的缩写,这里存放的是系统管理员使用的系统管理程序。/sys
:这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs。sysfs 文件系统集成了下面 3 种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。该文件系统是内核设备树的一个直观反映, 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。/tmp
:tmp 是 Temporary(临时) 的缩写这个目录是用来存放一些临时文件的。/usr
:usr 是 Unix Shared Resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的program files
目录。/usr/bin
:系统用户使用的应用程序。/usr/sbin
:超级用户使用的比较高级的管理程序和系统守护程序。/usr/src
:内核源代码默认的放置目录。
/var
:var 是 Variable(变量)的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
学会使用命令帮助
在 Linux 终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助文档; Linux 系统内置的帮助文档很详细,通常能解决我们的问题,我们需要掌握如何正确的去使用它们;
- 在只记得部分命令关键字的场合,我们可通过
man -k
来搜索; - 需要知道某个命令的简要说明,可以使用
whatis
;而更详细的介绍,则可用info
命令; - 查看命令在哪个位置,我们需要使用
which
; - 而对于命令的具体参数及使用方法,我们需要用到强大的
man
。
whatis、info、man - 查看命令的说明
whatis
、info
和 man
的作用都是是查看命令的说明。区别是:
whatis
简要说明命令的作用;info
详细的说明文档;man
查询命令的说明文档
# 查看 ls 命令的简要说明
whatis ls
# 查看详细的说明
info ls
which、whereis - 查看路径
which
和 whereis
命令都是 Linux
操作系统下查找可执行文件路径的命令。
which
:查找系统 PATH 目录下的可执行文件。说白了就是查找那些我们已经安装好的可以直接执行的命令,比如which ls
注意,which 查找的可执行文件,必须是要在 PATH 下的可执行文件,而不能是没有加入 PATH 的可执行文件,即使他就是可执行文件,但是没有加入到系统搜索路径,他仍然无法被 which 发现。
whereis
:查找二进制(命令)、源文件、man 文件。与which
不同的是这条命令可以是通过文件索引数据库而非 PATH 来查找的,所以查找的面比which
要广。如果我们使用whereis ls
,不仅可以找到 ls 可执行文件的位置,还找到了其 man 帮助文件,可见其搜索范围比较广,不局限于 PATH。
clear - 清屏
如果你觉得当前的命令行窗口看起来很杂乱,可以使用 clear 命令,一键清空屏幕。