Linux桌面/usr/share详解

张开发
2026/4/4 1:23:15 15 分钟阅读
Linux桌面/usr/share详解
/usr/share是 Linux 桌面系统中一个极其核心的目录遵循FHS文件系统层次结构标准。它的核心定位是存储架构无关的、只读的、应用程序之间共享的数据。简单理解如果把系统比作一家公司/usr/share就是公司的“公共资料室”里面放着各个部门应用程序都能查阅的、不涉及机器底层细节如 CPU 架构的通用文档、图片、配置模板等。核心特征架构无关 (Architecture-independent)里面的文件都是文本、图片、音频、配置文件等不包含需要针对 x86、ARM 等不同 CPU 编译的二进制库文件那些通常在/usr/lib。因此这个目录可以在不同硬件架构的 Linux 系统之间直接挂载共享。只读 (Read-only)在正常使用中应用程序和用户不应修改这里的文件。这是所有用户共享的系统级数据。用户自己的配置或数据应放在/etc系统配置或~/.local/share用户级私有数据。共享 (Shareable)里面的内容可以被网络中多台 Linux 主机共享如通过 NFS 挂载而不会引起冲突。为什么 Linux 桌面用户需要了解它当你使用 Linux 桌面时你看到、用到的大部分非程序本身的东西都来自这里应用菜单条目你从“开始菜单”启动 Firefox、LibreOffice 等程序其图标、名称、启动命令等信息就来自这里。图标和主题你更换的整套图标、光标主题、GTK/Qt 程序界面样式都存放在此。字体系统全局可用的字体文件。帮助文档绝大多数命令行工具如ls,grep的man手册页以及很多 GUI 应用的帮助文件。关键子目录详解桌面用户视角下面是最常用、最重要的子目录子目录用途典型内容举例applications/桌面菜单项 (.desktop 文件)firefox.desktop,org.gnome.Shell.desktop。每个文件定义了一个程序在菜单中的显示方式。你可以在这里复制一个.desktop文件到~/.local/share/applications/并修改以自定义菜单项。icons/系统全局图标集Adwaita/,Papirus/,hicolor/。包含应用程序图标、文件类型图标、状态图标等。themes/桌面环境主题Adwaita/,Yaru/,Breeze/。控制窗口边框、控件按钮、滚动条的外观。fonts/系统全局字体truetype/,opentype/。安装新字体到~/.local/share/fonts/仅对当前用户生效放到/usr/share/fonts/需 root 权限对所有用户生效。backgrounds/系统默认壁纸gnome/,kde/。发行版或桌面环境自带的壁纸图片。sounds/系统全局音效登录、注销、错误提示等声音文件如.ogg,.wav。doc/程序的详细文档firefox/,bash/子目录内含README,CHANGELOG,copyright等。通常是纯文本或 HTML 格式。man/传统 Unix 手册页man1/用户命令,man8/系统管理命令。man ls命令读取的就是这里man1/ls.1.gz文件。locale/本地化语言翻译zh_CN/,en_US/等子目录。包含应用程序的界面文字翻译.mo文件。这是你能看到中文界面的根本原因。glib-2.0/schemas/GSettings 架构org.gnome.desktop.background.gschema.xml。定义了 GNOME/GTK 程序的配置项dconf的结构。pixmaps/遗留的像素图文件一些老旧的、不遵循图标规范的 X11 应用程序会在此存放图标.xpm文件。mime/MIME 类型定义packages/子目录下的.xml文件。定义文件扩展名如.pdf与 MIME 类型如application/pdf及默认打开程序的关联。applications/(已提及但重要)菜单入口补充kde4/,gnome/等子目录可能包含针对特定环境的入口但顶层是主要位置。与/usr/local/share和~/.local/share的区别/usr/share由包管理器如apt,dnf管理的系统级共享数据。不要手动修改这里否则下次软件更新会覆盖你的更改。/usr/local/share本地编译安装的软件./configure make make install且未指定--prefix会默认将数据放这里。它由系统管理员你手动管理不受包管理器控制。~/.local/share当前用户的私有数据相当于/usr/share的用户级版本。你安装的 Flatpak 应用数据、Steam 游戏存档、用户级字体和图标都在这。日常自定义应该优先使用这里无需sudo。一个日常操作示例手动调整菜单项假设你想隐藏 GNOME 菜单里的“帮助”条目通常文件是gnome-help.desktop先查看系统级文件内容只读参考cat /usr/share/applications/gnome-help.desktop将它复制到用户目录覆盖系统设置cp /usr/share/applications/gnome-help.desktop ~/.local/share/applications/编辑用户副本添加一行Hiddentrue保存。nano ~/.local/share/applications/gnome-help.desktop重启桌面或注销重登菜单项就消失了。系统级文件保持不变下次 GNOME 更新也不会把你的修改覆盖掉——因为用户目录优先级更高。总结/usr/share是系统的“共享只读数据库”存放图标、主题、翻译、文档、菜单定义等通用数据。它的设计目标是节省空间避免重复、便于共享、架构无关。作为用户通常只需读取它不要直接修改。需要定制时优先使用~/.local/share进行覆盖。磁盘占用这个目录可能相当大几个 GB。如果清理空间不要随意删除这里的内容应通过包管理器卸载软件。手动删除可能会导致程序运行异常。理解了这个目录你就掌握了 Linux 桌面“在哪里找图标”、“为什么菜单里会有那个程序”、“语言翻译文件在哪”等一系列问题的钥匙。

更多文章