参考资料:linux
以docker拉取一个alpine镜像作为研究对象。
根目录
boot
开机时,BIOS ——> /boot引导程序 ——> /boot中系统内核
存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
home
用户总目录,内辖的各个文件夹就是各个用户的用户目录。通常挂载在一个单独的磁盘分区上。
root
root用户的用户目录,因为比较特殊,没有放在/home下,单独拉出来成立一个一级目录。
bin
Binaries,二进制文件,里面有很多常用命令,e.g.
note:看下环境变量,可以发现bin都放入了:
可以看到,除了根目录的bin,还有其他的bin目录:
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/bin是不同用户使用的命令存放目录。
/sbin
System bin,作用类似/bin ,也用于存储二进制文件。因为其中的大部分文件多是系统管理员使用的基本的系统程序,所以虽然普通用户必要且允许时可以使用,但一般不给普通用户使用。
usr
Unix Shared Resources,共享资源(不是user!),类似于 windows 下的 program files 目录,其中几个比较重要的文件夹。
- /usr/share
共享文件夹,可以看做普通的“文件夹”,如/usr/share/applications下存放的桌面快捷方式。 - /usr/lib
常用的动态链接库和软件包的配置文件 - /usr/include
linux下开发和编译应用程序所需要的头文件 - /usr/doc
linux文档 - /usr/man
帮助文档 - usr/src
系统相关源代码,/usr/src/linux版本名就是linux系统源代码 - /usr/local
其中的local的意思是指本地用户,因为在usr目录下,所以可以被不同用户共享(不同于/home/xxx/),其中的目录结构相当于一个usr目录的复刻,只是后者的子文件夹给系统用,而local文件夹给用户用。
这个目录是安装本地程序的一般默认路径,可以被不同用户共享。
其中的/usr/local/bin存放可执行程序(已经被放入Path),/usr/local/include存放了用到的头文件,/usr/local/lib存放了此软件的开发库(依赖包)
etc
Etcetera,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
opt
Optional,可选的文件目录,我们安装额外软件可以放在这个里面,如自定义的软件包或者第三方工具活或自己编译的软件包等。
dev
Devices,外部设备。note: Linux 中访问设备的方式和访问文件的方式是相同的。
如使用
sudo fdisk -l
查看磁盘使用情况时,显示的都是device下信息
lib
Library,共享库目录,这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
mnt
Mount,临时挂载目录,系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
proc
Process,进程有关文件
其中的信息来自内存,并不是磁盘(虽然ls -c会显示大小)。如
- cpuinfo
常使用的
cat /proc/cpuinfo
指令就是来自这里
media
挂载的媒体设备目录,一般外部设备挂载到这里,例如cdrom等。比如我们插入一个U盘,我们一般会发现,Linux自动在这个目录下建立一个disk目录,然后把U盘挂载到这个disk目录上,通过访问这个disk来访问U盘。
var
系统一般运行时要改变的数据,各种服务的日志文件如系统启动日志等。通常这些数据所在的目录的大小是要经常变化或扩充的。原来/var目录中有些内容是在/usr中的,但为了保持/usr目录的相对稳定,就把那些需要经常改变的目录放到/var中了。
/tmp
于存放各种临时文件,是公用的临时文件存储点
lost+found
这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里