软连接和/.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
命令来启动这个程序,而不需要输入完整路径。
步骤:
- 查找可执行文件的路径(假设它在
/opt/myapp/myapp_executable
)。 - 创建软连接,将其链接到
/usr/local/bin/
,方便在终端中使用:
1 |
|
结果:
- 你现在可以直接在终端中通过输入
myapp
来启动这个应用程序,而不需要输入完整路径/opt/myapp/myapp_executable
。 - 软连接就是文件系统中的一个快捷方式,可以通过命令行快速访问应用程序。
验证:
可以运行以下命令查看软链接是否创建成功:
1 |
|
你会看到输出类似于: 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
创建一个图标,显示在桌面或应用菜单中,方便通过点击启动程序。同时,你希望这个图标有一个合适的名称和图标文件。
步骤:
- 首先,找到应用程序的可执行文件(例如
/opt/myapp/myapp_executable
)和图标文件(例如/opt/myapp/myapp_icon.png
)。 - 创建
.desktop
文件。你可以使用文本编辑器创建一个新的.desktop
文件:
1 |
|
- 在
.desktop
文件中添加以下内容:
1 |
|
保存并关闭文件。
赋予
.desktop
文件执行权限:
1 |
|
结果:
- 你现在可以在 Ubuntu 的应用菜单中搜索
MyApp
,并通过图标启动它。 - 如果你希望将图标显示在桌面上,还可以将
.desktop
文件复制到桌面:
1 |
|
验证:
- 在应用菜单中搜索
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 |
|
通常 PATH
中包含
/usr/local/bin
,所以将应用程序或其软链接放到这个目录中后,系统能够自动找到它。
例如,$PATH
通常可能包含类似以下路径:
1 |
|
如果将软链接放在
/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
变量中,确保了你可以在终端中方便地访问和运行程序。 - 这样做可以保持系统的整洁和安全,避免本地安装的软件与操作系统自带的核心软件发生冲突。
通过这种方式,用户可以在不破坏系统核心文件的情况下,自由安装和使用自己的软件。