Linux 文件系统(目录介绍)
Linux 文件系统(目录介绍)
Linux 系统大家一定不陌生,学习工作中肯定会和 Linux 打交道。不过谈及 Linux,给人的第一印象可能就是黑乎乎的命令行,乱七八糟的文件夹,甚至安装软件都不知道是怎么安装上去的。但是只要熟练了这些命令,会发现开发速度会快很多,而且可以在妹子面前炫耀。
言归正传,本文介绍一下 Linux 的文件系统(File System),介绍一下这些文件夹都是干什么的。
上图是 Linux 文件系统的一个整体结构,无论是什么 Linux 发行版,根目录/
基本上就是这些文件。不要害怕这么多文件夹,大部分都不需要你操心,只要大概了解它们是干啥的就行了。
/bin 和 /sbin
bin
是Binary
的缩写,存放着可执行文件或可执行文件的链接(类似快捷方式),如下图:
你可以看到cp
,chmod
,cat
等常用命令都在这里。注意不要被图标上的 TXT 字样误导了,Linux 不按后缀识别文件类型,/bin
目录中的文件都是可执行的二进制文件,而不是文本文件。
与/bin
类似的是/sbin
目录,System Binary 的缩写,这里存放的命令可以对系统配置进行操作。普通用户可能可以使用这里的命令查看某些系统状态,但是如果想更改配置,就需要sudo
授权或者切换成超级用户。
可以看到一些熟悉的命令,比如ifconfig
,iptables
。普通用户可以使用ifconfig
查看网卡状态,但是想配置网卡信息,就需要授权了。
/boot
这里存放系统启动需要的文件,你可以看到grub
文件夹,它是常见的开机引导程序。我们不应该乱动这里的文件。
/dev
dev
是device
的缩写,这里存放着所有的设备文件。在 Linux 中,所有东西都是以文件的形式存在的,包括硬件设备。
比如说,sda
,sdb
就是我电脑上的两块硬盘,后面的数字是硬盘分区:
鼠标、键盘等等设备也都可以在这里找到。
/etc
这个目录经常使用,存放很多程序的配置信息,比如包管理工具 apt:
在/etc/yum.repo.d
中就存放着对应的配置,比如说镜像列表(我配置的阿里云镜像):
如果你要修改一些系统程序的配置,十有八九要到etc
目录下寻找。
/lib
lib
是 Library 的缩写,包含 bin 和 sbin 中可执行文件的依赖,类似于 Windows 系统中存放dll
文件的库。
也可能出现lib32
或lib64
这样的目录,和lib
差不多,只是操作系统位数不同而已。
/media
这里会有一个以你用户名命名的文件夹,里面是自动挂载的设备,比如 U 盘,移动硬盘,网络设备等。
比如说我在电脑上插入一个 U 盘,系统会把 U 盘自动给我挂载到/media/fdl
这个文件夹里(我的用户名是 fdl),如果我要访问 U 盘的内容,就可以在那里找到。
/mnt
这也是和设备挂载相关的一个文件夹,一般是空文件夹。media
文件夹是系统自动挂载设备的地方,这里是你手动挂载设备的地方。
比如说,刚才我们在dev
中看到了一大堆设备,你想打开某些设备看看里面的内容,就可以通过命令把设备挂载到mnt
目录进行操作。
不过一般来说,现在的操作系统已经很聪明了,像挂载设备的操作几乎都不用你手动做,系统应该帮你自动挂载到media
目录了。
/opt
opt
是 Option 的缩写,这个文件夹的使用比较随意,一般来说我们自己在浏览器上下载的软件,安装在这里比较好。当然,包管理工具下载的软件也可能被存放在这里。
/proc
proc
是process
的缩写,这里存放的是全部正在运行程序的状态信息。
你会发现/proc
里面有一大堆数字命名的文件夹,这个数字其实是 Process ID(PID),文件夹里又有很多文件。
前面说过,Linux 中一切都以文件形式储存,类似/dev
,这里的文件也不是真正的文件,而是程序和内核交流的一些信息。比如说我们可以查看当前操作系统的版本,或者查看 CPU 的状态:
如果你需要调试应用程序,proc
目录中的信息也许会帮上忙。
/root
这是超级用户的家目录,普通用户需要授权才能访问。
区别一下 root 用户和根目录的区别哈,root 用户就是 Linux 系统的超级用户(Super User),而根目录是指 / 目录,整个文件系统的「根部」。
/run 和 /sys
用来存储某些程序的运行时信息和系统需要的一些信息。比如说下面这个路径有一个名为 brightness 的文件:
sudo vim /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight/brightness
里面存储着一个数字,是你的显卡亮度,你修改这个数字,屏幕亮度就会随之变化。
需要注意的是,这两个位置的数据都存储在内存中,所以一旦重启,/run
和/sys
目录的信息就会丢失,所以不要试图在这里存放任何文件。
/srv
srv
是service
的缩写,主要用来存放服务数据。
对于桌面版 Linux 系统,这个文件夹一般是空的,但是对于 Linux 服务器,Web 服务或者 FTP 文件服务的资源可以存放在这里。
/tmp
tmp
是temporary
的缩写,存储一些程序的临时文件。
临时文件可能起到很重要的作用。比如经常听说某同学的 Word 文档崩溃了,好不容易写的东西全没了,Linux 的很多文本编辑器都会在/tmp
放一份当前文本的 copy 作为临时文件,如果你的编辑器意外崩溃,还有机会在/tmp
找一找临时文件抢救一下。
当然,tmp
文件夹在系统重启之后会自动被清空,如果没有被清空,说明系统删除某些文件失败,也许需要你手动删除一下。
/usr
usr
是 Universal System Resource 的缩写,这里存放的是一些非系统必须的资源,比如用户安装的应用程序。
/usr
和/usr/local
目录中又含有bin
和sbin
目录,也是存放可执行文件(命令),但和根目录的bin
和sbin
不同的是,这里大都是用户使用的工具,而非系统必须使用的。
值得一提的是,如果使用 Linux 桌面版,有时候在桌面找不到应用程序的快捷方式,就需要在/usr/share/applications
中手动配置桌面图标文件
/var
var
是variable
的缩写,这个名字是历史遗留的,现在该目录最主要的作用是存储日志(log)信息,比如说程序崩溃,防火墙检测到异常等等信息都会记录在这里。
这是我的/var/log
目录,可以看到很多系统工具的 log 文件(夹):
日志文件不会自动删除,也就是说随着系统使用时间的增长,你的var
目录占用的磁盘空间会越来越大,也许需要适时清理一下。
/home
最后说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 文件系统(目录介绍)相关推荐
- Linux各目录介绍
Linux各目录介绍 本文中的内容主要参考http://www.tldp.org/并将其核心内容进行总结翻译,并提供对应原文给读者参考.tldp全程是The Linux Documentation P ...
- Linux文件系统类型介绍
Linux 把设备都当作文件一样来进行操作,这样就大大方便了用户的使用(在后面的 Linux 编程中可以更为明显地看出).在 Linux 下与设备相关的文件一般都在/dev 目录下,它包括两种,一种是 ...
- Linux 文件系统基本介绍
想想有多个搁板的冰箱,可用于存放各种物品. 这些货架帮助您按形状.大小.类型等组织杂货项目.相同的概念适用于文件系统,它是一种以人类可用的形式存储和组织任意数据集合的方法的体现. Linux 支持的不 ...
- 03.学习笔记-Linux下根目录介绍
本节对linux下的根目录进行详细介绍. /bin:可执行文件 用户命令 /boot:系统启动相关文件 /dev:设备文件 块设备:随机访问 字符设备:线性访问,按字符为单位 显示器和鼠标都是线性访问 ...
- linux各个目录介绍,Linux各目录及每个目录的详细介绍
作者:郎思呈 学号:16020188007 转载自https://blog.csdn.net/qq_39633973/article/details/85157900 [常见目录说明] 目录 /bin ...
- Linux主要目录介绍
1. /:根目录,一般根目录下只存放目录,在终端里输入/home,其实是在告诉电脑,先从/(即根目录)开始,再进入到home目录: 2. /bin,/user/bin:可执行的二进制文件的目 ...
- [ linux ] 文件系统和目录结构详解
昨天,有个小学弟了我一个linux面试题目,和她解答完之后我就想在C站开一个专栏,用于linux和windows的学习 我是这么想的,从linux入手,再写windows,最后总结常见区别 本文主要写 ...
- linux proc 目录清理_Linux文件及目录管理命令基础
目录 前言 下面是常用命令的介绍,这些命令都是以后会用到的,熟练掌握便是最终的目标. 第一章 Linux文件及目录管理命令基础 1.1 pwd: 显示当前所在位置的信息 [功能说明] 显示当前所在目录 ...
- Spark修炼之道(基础篇)——Linux大数据开发基础:第二节:Linux文件系统、文件夹(一)...
本节主要内容 怎样获取帮助文档 Linux文件系统简单介绍 文件夹操作 訪问权限 1. 怎样获取帮助文档 在实际工作过程其中,常常会忘记命令的使用方式.比如ls命令后面能够跟哪些參数,此时能够使用ma ...
最新文章
- 2018:数据科学20个最好的Python库
- 阿里云 FTP 无法读取目录问题
- 头条丨2017年人工智能现七大走向
- Dreamweaver 8的后台文件传输
- 父类没有异常,子类可以抛异常吗
- mongodb更新数据,查找相同的id,有重复的,就更新。
- SIGIR 2021|重新思考Attention在CTR预估中作用
- tcpdump -i eth0 -n -vvv src or dst port 443
- 登录注册的小项目对比.Net Core与 .Net Framework的一些区别
- Android之ndk中JNIENV env->NewStringUTF (*env)->NewStringUTF
- 鸿蒙系统的全面开源,华为:打造全球的操作系统,鸿蒙今日全面开源!
- markdown引入代码_将Swagger2文档导出为HTML或markdown等格式离线阅读
- eclipse项目的导入
- 计算机中丢失python27 dll_python27.dll
- VM14安装及使用环境配置
- 苹果计算机 win10,图文教程!苹果电脑和WIN10的完美融合井井有条的美
- Mathematica仿真竞争性Lotka-Volterra方程(3种群)
- Excel如何复制粘贴筛选后的单元格
- 小确幸BBS论坛-1-前期准备
- torch.cat()的类型转换
热门文章
- 申请ios开发者证书到获取p12文件及profiles文件
- STL源码剖析 RB-tree
- 计算机基础知识考试技巧,计算机二级考试Office应试技巧
- 通过ssh tunnel从外网访问内网kali
- 安卓系统高德怎么定位服务器,怎么使用高德地图定位和导航功能?
- 浙江大学远程教育计算机应用基础第4次,浙江大学远程教育计算机应用基础2013年秋-4.Excel知识题...
- 古人教你怎样识人不走眼
- 微信播放在服务器视频无法播放音乐,解决ios微信浏览器中audio和video音乐视频无法自动播放等问题...
- 修改hosts不必重启 立刻生效
- mysql 连续天数_mysql计算连续天数,mysql连续登录天数,连续天数统计