linux系统因为其高效、直接的底层操作而被很多代码开发者使用,谈及linux,大家普遍的印象就是黑乎乎的终端命令行,后来基于linux系统开发出来的具有可视化桌面的ubuntu版本,让大家的使用体验兼顾了windows系统的直观性可linux系统代码开发的便捷性。
那么linux系统中各个文件夹名字中存放的都是什么东西呢?本文就来汇总一下。
文件夹名字解释
1,/bin和/sbin :可执行文件或者可执行文件的链接(类似快捷方式)
bin是Binary的缩写。cp, chmod, cat 等常用命令存放在这里。 sbin 是System Binary的缩写,这里存放的命令可以对系统配置进行操作。普通用户可以通过这些命令查看系统状态,但是如果想修改,需要sudo授权,如ifconfig, iptables。
2,/boot:系统启动需要的文件
如grub文件夹,是常见的开机引导程序。
3,/deb:设备文件
dev是device的缩写。在linux中,所有东西都是以文件的形式存在的,包括硬件设备。如鼠标键盘
4,/etc:程序的配置信息
这个目录比较常见,存放很多程序配置信息,如apt, 在/etc/apt中存放这对应的配置,比如说镜像列表。如果想修改一些系统程序的配置,大多数要到/etc目录下寻找。
5,/lib,程序依赖文件仓库
Library的缩写,类似于Windows放dll文件的库,包含bin,sbin中可执行程序的依赖。
6,/media,用户信息媒介
这里会有一个以你用户名命名的文件夹,里面是自动挂载的设备,如U盘,移动硬盘,网络设备等。
7,/mnt,和设备挂载相关的文件夹,一般为空
media是系统自动挂载设备的地方,这里是你手动挂载设备的地方
8,/opt,Option的缩写,用户操作存放的文件
这个文件夹的使用比较随意,一般来说我们自己在浏览器上下载的软件,安装在这里比较好。当然,包管理工具下载的软件也可能被存放在这里
9,/proc,正在运行程序的状态信息
process的缩写。这里的文件大多用数字命名,数字就是Process ID(PID)。
这里的文件并不是真正的文件,而是程序和内核交流的一些信息,比如可以查看当前操作系统的版本,或者查看CPU的状态: cat /proc/version, head /proc/cpuinfo
10,/root,管理员或超级用户的目录
11,/run和/sys,用来存储某些程序的运行时信息和系统需要的一些信息。
比如,修改显卡的亮度,sudo vim /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness
但是,这个数据是存储在内存中,一旦重启,/run
和 /sys
目录的信息就会丢失,所以这里不能用来保存任何文件。
12,/srv,存放服务数据
service的缩写。对于桌面版 Linux 系统,这个文件夹一般是空的,但是对于 Linux 服务器,Web 服务或者 FTP 文件服务的资源可以存放在这里。
13,/tmp,存放程序的临时文件
temporary的缩写。临时文件可能起到很重要的作用。比如经常听说某同学的 Word 文档崩溃了,好不容易写的东西全没了,Linux 的很多文本编辑器都会在 /tmp
放一份当前文本的 copy 作为临时文件,如果你的编辑器意外崩溃,还有机会在 /tmp
找一找临时文件抢救一下。
当然,tmp
文件夹在系统重启之后会自动被清空,如果没有被清空,说明系统删除某些文件失败,也许需要你手动删除一下。
14,/usr,存放非系统必须的资源,存放用户添加的一些资源
usr
是 Universal System Resource 的缩写,这里存放的是一些非系统必须的资源,比如用户安装的应用程序。
/usr
和 /usr/local
目录中又含有 bin
和 sbin
目录,也是存放可执行文件(命令),但和根目录的 bin
和 sbin
不同的是,这里大都是用户使用的工具,而非系统必须使用的。
比如说 /usr/bin
中含有我通过包管理工具安装的应用程序 Chrome 浏览器和 goldendict 字典的可执行文件。
15,/var,存放日志信息,不能自动删除
var
是 variable
的缩写,这个名字是历史遗留的,现在该目录最主要的作用是存储日志(log)信息,比如说程序崩溃,系统异常等等信息都会记录在这里。
16,/home,用户的家目录
普通用户的家目录。在桌面版的 Linux 系统中,用户的家目录会有下载、视频、音乐、桌面等文件夹,这些没啥可说的,我们说一些隐藏的比较重要的文件夹(Linux 中名称以 .
开头就是隐藏文件)。
其中 .cache
文件夹存储应用缓存数据,.config
文件夹存储了一部分应用程序的配置,比如说我的 Chrome 浏览器配置就是那里面。但是还有一部分应用程序并不把配置储存在 .config
文件夹,而是自己创建一个隐藏文件夹,存放自己的配置文件等等信息,比如你可以看到 Intellij 的配置文件就不在 .config
中。
最后说 .local
文件夹,有点像 /usr/local
,里面也有 bin
文件夹,也是存放可执行文件的。比如说我的 python pip 以及 pip 安装的一些工具,都存放在 ~/.local/bin
目录中。但是,存在这里的文件,只有该用户才能使用。
这就是为什么,有时候普通用户可以使用的命令,用 sudo 或者超级用户却被告知找不到该命令。因为有的命令是特定用户家目录里的,被添加到了该用户的 PATH
环境变量里,他可以直接用。你超级用户想用当然可以,但是得写全绝对路径才行。
使用技巧
如果修改系统配置,就去 /etc
找,如果修改用户的应用程序配置,就在用户家目录的隐藏文件里找。
你在命令行里可以直接输入使用的命令,其可执行文件一般就在以下几个位置:
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
/usr/local/sbin
/home/USER/.local/bin
/home/USER/.local/sbin
如果你写了一个脚本/程序,想在任何时候都能直接调用,可以把这个脚本/程序添加到上述目录中。
如果某个程序崩溃了,可以到 /val/log
中尝试寻找出错信息,到 /tmp
中寻找残留的临时文件。
设备文件在 /dev
目录,但是一般来说系统会自动帮你挂载诸如 U 盘之类的设备,可以到 /media
文件夹访问设备内容。
来自:Linux 文件系统都是什么鬼 :: labuladong的算法小抄