软连接和/.desktop图标

两者区别

创建桌面图标和创建软连接的方式有不同的用途和应用场景,以下是它们的主要区别:

1. 软连接(符号链接)

  • 作用:软连接(ln -s 命令)本质上是文件系统中的快捷方式,它为文件或目录创建一个指向目标文件的链接。通过软连接,用户可以使用不同的路径来访问同一个文件或目录。
  • 应用场景
    • 用于命令行中简化对某个文件或可执行程序的路径访问。例如,你可以通过软连接将 /opt/myapp/myapp_executable 映射到 /usr/local/bin/myapp,使得你可以通过命令 myapp 来运行程序,而不需要输入完整路径。
    • 主要用于命令行和文件系统级别的操作,无法直接创建带图形界面或图标的可视化快捷方式。
  • 特点
    • 无图形界面,纯粹是文件系统中的一个链接。
    • 用于命令行或脚本的便捷操作。
    • 只适用于终端或脚本中调用程序,而不涉及桌面图标、应用菜单等图形界面元素。

2. 桌面图标(.desktop 文件)

  • 作用.desktop 文件是一种定义应用程序启动方式的文件,通常用于 Linux 桌面环境。它不仅可以指向一个可执行文件,还可以包含应用的图标、名称、描述等信息。通过它,用户可以在桌面或应用菜单中图形化地启动应用程序。
  • 应用场景
    • 用于在桌面环境下为应用程序创建图标或快捷方式,例如将应用程序显示在 Ubuntu 的应用菜单、启动器、桌面等地方。
    • 允许通过图形界面启动程序,而不是通过命令行。
    • .desktop 文件可以定义更多的行为,如是否在终端运行、传递特定参数、设置图标等。
  • 特点
    • 主要用于图形化的桌面环境,允许用户通过鼠标点击图标来启动应用程序。
    • 可以设置图标、名称、描述、类别等信息,用户体验更友好。
    • 可以配置应用程序是否运行在终端、是否使用特定的图标等。

主要区别总结

特性 软连接 桌面图标(.desktop 文件)
作用 创建文件或目录的快捷方式,用于简化命令行操作 为应用程序创建桌面快捷方式,允许在图形界面中启动应用
应用场景 文件系统、命令行中的快捷方式 桌面环境、应用菜单中的图标,图形化启动应用程序
使用方式 通过终端命令执行 通过点击桌面图标或应用菜单启动
图标支持 无图标支持,只是文件路径的指向 支持图标显示,可以自定义图标、描述、应用类别等
是否需要图形界面 不需要,完全依赖于命令行或文件系统的路径操作 需要图形界面环境,用于桌面或应用菜单中的应用程序快捷方式
可执行文件的配置选项 只能指向文件或目录,没有其他配置选项 可以配置是否使用终端、参数传递、应用程序分类、图标等

何时使用软连接?

  • 当你主要通过命令行使用应用程序时,软连接是一个方便的方式。它可以让你在终端中使用简短命令,而无需输入完整路径。

何时使用桌面图标(.desktop 文件)?

  • 当你希望在桌面、应用菜单或启动器中图形化启动应用程序时,应该使用 .desktop 文件。它适用于日常用户需要通过点击图标的方式启动应用程序的场景。

两者可以结合使用,比如为命令行用户创建软链接,同时为图形化用户提供 .desktop 文件,这样既方便终端操作,也方便图形界面使用。


示例

当然,以下是分别使用软连接和 .desktop 文件的示例,以帮助你更清楚地理解两者的区别和用途。

1. 软连接的示例

场景:假设你安装了一个应用程序 myapp,它的可执行文件位于 /opt/myapp/myapp_executable。你希望在终端中直接使用 myapp 命令来启动这个程序,而不需要输入完整路径。

步骤:

  1. 查找可执行文件的路径(假设它在 /opt/myapp/myapp_executable)。
  2. 创建软连接,将其链接到 /usr/local/bin/,方便在终端中使用:
1
sudo ln -s /opt/myapp/myapp_executable /usr/local/bin/myapp

结果:

  • 你现在可以直接在终端中通过输入 myapp 来启动这个应用程序,而不需要输入完整路径 /opt/myapp/myapp_executable
  • 软连接就是文件系统中的一个快捷方式,可以通过命令行快速访问应用程序。

验证:

可以运行以下命令查看软链接是否创建成功:

1
ls -l /usr/local/bin/myapp

你会看到输出类似于:

1
lrwxrwxrwx 1 root root 24 Sep 14 10:00 /usr/local/bin/myapp -> /opt/myapp/myapp_executable

这意味着 /usr/local/bin/myapp 现在指向 /opt/myapp/myapp_executable

2. 创建桌面图标的示例

场景:你希望为 myapp 创建一个图标,显示在桌面或应用菜单中,方便通过点击启动程序。同时,你希望这个图标有一个合适的名称和图标文件。

步骤:

  1. 首先,找到应用程序的可执行文件(例如 /opt/myapp/myapp_executable)和图标文件(例如 /opt/myapp/myapp_icon.png)。
  2. 创建 .desktop 文件。你可以使用文本编辑器创建一个新的 .desktop 文件:
1
gedit ~/.local/share/applications/myapp.desktop
  1. .desktop 文件中添加以下内容:
1
2
3
4
5
6
7
8
9
[Desktop Entry]
Version=1.0
Name=MyApp
Comment=This is my custom application
Exec=/opt/myapp/myapp_executable # 应用程序的实际路径
Icon=/opt/myapp/myapp_icon.png # 图标文件路径
Terminal=false # 不需要在终端中运行
Type=Application
Categories=Utility; # 类别,可根据需要选择
  1. 保存并关闭文件。

  2. 赋予 .desktop 文件执行权限:

1
chmod +x ~/.local/share/applications/myapp.desktop

结果:

  • 你现在可以在 Ubuntu 的应用菜单中搜索 MyApp,并通过图标启动它。
  • 如果你希望将图标显示在桌面上,还可以将 .desktop 文件复制到桌面:
1
cp ~/.local/share/applications/myapp.desktop ~/Desktop/

验证:

  • 在应用菜单中搜索 MyApp
  • 双击桌面上的图标,应用程序将启动。

对比总结:

特性 软连接示例 桌面图标示例
目的 在命令行中方便运行应用程序 在桌面或应用菜单中方便启动应用程序
操作系统级别 文件系统(终端和路径操作) 桌面环境(图形用户界面)
创建命令 sudo ln -s /opt/myapp/myapp_executable /usr/local/bin/myapp 编辑并创建 .desktop 文件,赋予执行权限
启动方式 在终端中输入 myapp 点击桌面或应用菜单中的图标
是否支持图标 不支持图标,仅支持命令行使用 支持图标,可以在桌面、应用菜单中显示自定义图标
适合的用户 终端用户、开发者、需要频繁通过命令行启动程序的用户 图形界面用户、希望通过点击图标方便启动应用的普通用户

这两个方法可以结合使用,例如: - 为终端用户创建一个软链接,方便通过命令行快速启动程序。 - 为桌面用户创建一个 .desktop 文件,提供友好的图形化启动方式。


说明

在 Ubuntu 及其他类 Unix 系统中,通常将软链接(符号链接)放到 /usr/local/bin 目录有几个重要原因。这个做法涉及到文件系统的组织、环境变量和可执行文件的查找机制。

1. /usr/local/bin 是用户本地安装软件的标准目录

/usr/local/bin 是 Linux 系统中一个专门用来存放用户自己安装的软件或脚本的目录,而不是操作系统包管理器(如 apt)管理的软件。其主要目的包括: - 分离系统软件和用户自定义软件:系统自带的核心程序通常位于 /bin/usr/bin 等目录,而 /usr/local/bin 是为本地用户安装的软件或脚本准备的,不会被系统包管理器覆盖或删除。 - 避免系统升级影响:如果用户将自己的程序放在 /usr/bin/bin,在系统升级时可能会被系统文件覆盖。而 /usr/local/bin 被保留用于本地用户操作,系统升级不会动这个目录里的文件。

2. /usr/local/bin 在系统的 PATH 环境变量中

PATH 是 Linux 系统中的一个环境变量,存放着系统在终端中查找可执行文件的目录。当你在终端中输入命令时,系统会从 PATH 列出的目录中按顺序查找该命令对应的可执行文件。如果你将软链接放到 PATH 中的某个目录(如 /usr/local/bin),用户可以直接在终端中运行该程序,而无需输入完整路径。

可以通过以下命令查看 PATH 变量的内容:

1
echo $PATH

通常 PATH 中包含 /usr/local/bin,所以将应用程序或其软链接放到这个目录中后,系统能够自动找到它。

例如,$PATH 通常可能包含类似以下路径:

1
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

如果将软链接放在 /usr/local/bin,就无需输入绝对路径,可以直接通过命令名运行程序。

3. 方便命令行调用

将软链接放在 /usr/local/bin 中后,用户可以直接在终端中输入程序名称,而不必输入程序的完整路径。例如,如果你的程序可执行文件位于 /opt/myapp/myapp_executable,而你创建了一个软链接到 /usr/local/bin/myapp,则只需输入 myapp 即可运行该程序,而不需要每次都输入 /opt/myapp/myapp_executable

4. 遵循文件系统层次标准(FHS)

Linux 系统通常遵循 文件系统层次标准(FHS, Filesystem Hierarchy Standard)。根据 FHS 规范: - /bin/usr/bin:用于存放操作系统自带的程序和包管理器安装的软件。系统的核心工具和程序都放在这些目录中。 - /usr/local/bin:这是专门为用户安装的程序、脚本或工具准备的目录,通常用于非操作系统提供的、用户自定义安装的软件。它可以看作是 "本地"(local)空间,供管理员或用户自行管理。

因此,遵循这种标准,可以帮助管理员和开发者更好地组织系统中的应用程序,确保系统升级和维护的安全性与一致性。

5. 权限管理

通常,系统目录(如 /bin/usr/bin)是只读的,只有超级用户(root)可以对其进行写操作。相反,/usr/local/bin 通常为系统管理员和某些用户提供写权限,便于用户安装自定义程序和脚本,而不会影响系统的核心文件。

总结:

  • 将软链接放在 /usr/local/bin 是一种惯例和最佳实践,因为该目录是专门为用户安装的本地程序保留的,它在 PATH 变量中,确保了你可以在终端中方便地访问和运行程序。
  • 这样做可以保持系统的整洁和安全,避免本地安装的软件与操作系统自带的核心软件发生冲突。

通过这种方式,用户可以在不破坏系统核心文件的情况下,自由安装和使用自己的软件。


软连接和/.desktop图标
http://example.com/2024/09/14/软连接和-desktop图标/
作者
JunBin Liang
发布于
2024年9月14日
许可协议