当前位置: 首页 > news >正文

Linux 常用目录及其用途

在 Linux 系统中,文件的存放遵循一套约定俗成的标准,称为文件系统层次结构标准(FHS,Filesystem Hierarchy Standard)。这套标准帮助系统管理员和开发者保持一致,开发相关的文件(源代码、编译产物、下载包、安装的程序等)都有对应的推荐路径。


📁 Linux 常用目录及其用途

首先要知道,通常使用的文件夹有以下几类,

/ ├── bin # 存放普通用户和系统管理员都可以使用的基本命令(二进制文件)。 ├── boot # 存放启动加载器(如 GRUB)和 Linux 内核文件。 ├── dev # 设备文件,包括终端、磁盘、USB 等硬件设备对应的文件。 ├── etc # 系统配置文件(文本文件),几乎所有的系统配置都在这里。 ├── home # 普通用户的主目录,每个用户一个子目录,如 /home/username。 ├── lib # 存放 /bin 和 /sbin 中命令所需的共享库(类似 Windows 的 DLL)。 ├── lib64 # 64 位系统的共享库(在 64 位系统中,通常指向 /lib 或独立存在)。 ├── media # 挂载点,通常用于自动挂载可移动设备(如 U 盘、光盘)。 ├── mnt # 临时挂载点,管理员可以手动挂载文件系统到此目录。 ├── opt # 可选的第三方软件包,通常是大型商业软件或独立安装的程序。 ├── proc # 虚拟文件系统,以文件形式提供内核和进程信息(如进程列表、系统状态)。 ├── root # 超级用户(root)的主目录。 ├── run # 运行时数据,存放自系统启动以来的进程信息(如 PID 文件)。 ├── sbin # 系统管理员使用的系统管理命令(如 fdisk、ifconfig)。 ├── srv # 服务数据目录,存放系统提供的服务数据(如 FTP、Web 服务)。 ├── sys # 虚拟文件系统,与 proc 类似,但更侧重于设备和内核对象的信息。 ├── tmp # 临时文件目录,所有用户可读写,重启后可能被清空。 ├── usr # 用户软件资源,包含大多数用户级应用程序和文件。 └── var # 可变数据目录,存放日志、缓存等动态数据。

我们开发者常用的文件有usretchomeopttmpvar这几个。

📁/usr目录结构概览

/usr ├── bin/ # 大多数用户命令(非系统启动必需) ├── sbin/ # 系统管理命令(非系统启动必需) ├── lib/ # 应用程序的共享库 ├── libexec/ # 内部使用的辅助程序(不直接由用户调用) ├── include/ # C/C++ 头文件(用于开发) ├── share/ # 架构无关的共享数据(文档、图标、man 手册等) ├── src/ # 内核源码(可选安装) ├── local/ # 本地管理员安装的软件(类似 /usr 的子目录结构) └── games/ # 游戏相关文件(可选)

1、/usr/local– 本地手动安装的软件

当你从源代码编译安装软件时,通常将软件安装在此目录下。它模仿了/usr的结构,但专用于本地管理员安装的软件,不会被系统包管理器覆盖。

例如NginxRedis等软件安装到/usr/local下,可执行文件在/usr/local/bin,库文件在/usr/local/lib
手动解压的JDK可以放在/usr/local/java/,然后通过软链链接到/usr/local/bin

2、/usr/local/src– 本地编译源码存放处

当你从源代码编译安装软件时,可以将下载的源码包解压到这里,然后在此目录下执行./configure && make && sudo make install。安装完成后,源码可以保留或删除。下载的源码压缩包可以先放在~/Downloads,解压到/usr/local/src后进行编译。

3、/usr/lib– 应用程序的共享库

当你使用一键安装等方式时安装的node.jspythonjdk等都会安装在这个位置。

4、/usr/src– 源代码存放目录

通常用于存放内核源码或一些需要编译的系统级软件源码。普通开发者很少直接使用。


📁/home用户个人工作区

  • 路径:/home/你的用户名/
  • 用途:存放个人文件、项目代码、配置文件、下载的临时安装包等。
  • 权限:该目录归你所有,无需sudo即可读写。
  • 推荐:
    • 个人开发的项目代码 →~/projects/~/workspace/
    • 临时下载的软件包(如.tar.gz)→~/Downloads/(用完可删)
    • 个人使用的脚本或小工具 →~/bin/(可手动加入PATH

📁/opt第三方软件包

  • 路径:/opt/jdk-17//opt/google/chrome/
  • 用途:用于存放独立的第三方软件,通常是商业软件或大型软件包。每个软件通常有自己独立的子目录,内部包含binlib等。
  • 权限:通常需要sudo
  • 推荐:
    • 从官方下载的预编译软件(如 JDK、Maven、Tomcat)→ 解压到/opt/软件名-版本/,然后创建符号链接/opt/软件名指向它,方便升级。
    • 阿里云扩展程序安装的 JDK 在/usr/lib/jvm,而不是/opt,因为它是通过包管理器安装的;但手动安装的 JDK 放在/opt也是很常见的做法。

📁/tmp/var/tmp临时文件

  • 用途:
    • /tmp:存放临时文件,重启后通常会被清空。
    • /var/tmp:存放持久性更强的临时文件,重启后保留,但可能被系统定期清理。
  • 推荐:
    • 编译过程中的临时文件、一次性脚本输出等可以放在/tmp
    • 不要将重要数据放在这两个目录下。

📁/var可变数据

  • 路径:/var/log(日志)、/var/lib(数据库/应用状态)
  • 用途:存放运行时的可变数据,如日志、数据库文件、缓存等。通常不需要直接操作,但了解这些有助于排查问题(如查看应用日志)。

🧩 开发文件的分类存放建议

文件类型推荐存放路径说明
个人项目代码~/projects/~/workspace/每个项目一个子目录,如~/projects/my-web-app/
从网上下载的安装包(如.tar.gz.deb~/Downloads/(临时)安装后可删除,节省空间
手动编译的软件源码/usr/local/src/软件名-版本/需要sudo,编译安装后源码可保留也可删除
通过包管理器安装的软件由系统自动管理,通常位于/usr/usr/lib不要手动修改其中的文件
手动安装的独立软件(如 JDK、Tomcat)/opt/软件名-版本/,然后软链接到/opt/软件名便于多版本共存和升级
编译安装的软件最终文件/usr/local/(二进制在/usr/local/bin,库在/usr/local/lib遵循 GNU 惯例
用户个人脚本或可执行文件~/bin/(需将~/bin加入PATH无需sudo即可使用
IDE 配置文件~/.config/~/.idea/通常是隐藏目录,无需手动管理
系统服务配置文件/etc/或其子目录(如/etc/nginx/需要sudo编辑

✅ 最佳实践总结

1、个人开发环境:优先使用~/下的目录(如~/projects~/Downloads),避免污染系统目录。
2、系统级软件:尽可能使用包管理器(yum/apt)安装,它们会自动将文件放到正确位置并处理依赖。
3、手动安装的软件

  • 如果需要系统所有用户使用,安装到/usr/local
  • 如果是独立软件包(如 JDK、IDE、数据库),安装到/opt
  • 源码编译的中间文件放在/usr/local/src

4、环境变量配置:对于手动安装的软件,记得将bin目录添加到PATH(在~/.bashrc/etc/profile中)。
5、保持整洁:定期清理~/Downloads中的旧安装包,避免磁盘空间浪费。

遵循这些约定,Linux 系统将保持清晰、易于维护,其他开发者也能快速找到需要的文件。

http://www.jsqmd.com/news/461608/

相关文章:

  • PWN手的成长之路--int_overflow
  • 盘点舟山资质齐全的工商注册企业,十大排名情况如何 - 工业设备
  • 云原生全球广域网架构深度科普:从单点集中到全域互联
  • 书是一个暗号,人类中的某一些靠这样的暗号,从茫茫人海中认出对方
  • Mysticbinary
  • 阿里云oss挂载
  • BeanFactory和FactoryBean区别
  • DP遍历避坑:索引遍历 vs 长度遍历,该怎么选?
  • 玩泥巴的|mudtools.cn
  • 网站视频下载工具VideoDownloadStudio
  • 分析2026年好用的双碳数字化源头厂家,大连地区哪家口碑好 - 工业品网
  • 初学者必读:快门速度的奥妙与应用指南
  • 抄书 2901️⃣天
  • 先扔个效果图镇楼。板子上电后打开串口助手,发送“0x55“直接回显,实测115200波特率下收发稳定。下面咱们掰开揉碎说代码实现
  • 记录 | 个人开发库推送至PyPi流程梳理(ChatGPT to Markdown 工具发布完整流程)
  • 软考高项通关实测:拒绝论文套路,3个月从焦虑到持证的真实备考经验
  • 2026年剖析唐山华冶钢管制造基本信息,看它为何受市场认可 - 工业品牌热点
  • 我把一个生产Bug的排查过程,交给AI处理——20分钟后我关掉了它
  • 2026年权威盘点:钢塑复合管行业TOP5机构,谁才是性价比
  • Linux内核SLUB调试功能
  • 【Agent Skills】教程!大模型入门到进阶,一套全解决(10)
  • 探讨双工位木纹转印机价格,华宜家在广东费用多少? - 工业设备
  • Docker单容器部署Dify
  • 什么是MIPI SoundWire
  • 28 超越默认:深入理解 Byte Buddy 的自定义 Assigner 与类型转换魔法
  • 2026年山东靠谱的管道支架制造厂排名揭晓 - myqiye
  • 总结国强和茂公司信誉、环保方面及物流配送,如何选择 - 工业推荐榜
  • 【Agent Skills】教程!大模型入门到进阶,一套全解决(11)
  • 告别工具堆砌!桌面智能体KeyVox全能AI助手,办公、创作、生活一站式搞定
  • 从删库到跑路→数据拯救师:测试工程师的涅槃转型