如何通过在 macOS 中仅输入名称来从终端运行应用程序?

如何通过在 macOS 中仅输入名称来从终端运行应用程序?

我想在 macOS 中像在 Linux 上一样简单地运行应用程序:只需在终端中输入应用程序的名称。最好的方法是什么?

例如:我刚刚安装了 Atom Nightly,想从终端使用“atom”或“atom-nightly”之类的命令运行它。

别名对此有用吗alias atom="/Applications/Atom\ Nightly.app"?奇怪的是,我收到一些权限被拒绝的错误。

最快的方法是什么?(我真的很感激不必为安装的每个应用程序都这样做)。

答案1

我建议你使用:

alias atom="open -a Atom\ Nightly"

open -a $APPNAME命令可以智能地根据用户可见的名称来查找 GUI 应用程序。

macOS GUI 应用程序被打包为“.app 包”或“程序包”,它们实际上是特殊的目录层次结构。传统的 Unix shell(如 bash 或 zsh)要求您调用的文件是可执行文件;要么是 shell 脚本,要么是可执行机器代码二进制文件;您无法执行目录。因此,如果您想从命令行调用 GUI 应用程序,则必须调用其隐藏在 .app 包内的实际可执行文件,通常是这样的:

/Applications/Atom\ Nightly.app/Contents/MacOS/Atom\ Nightly

您收到权限被拒绝错误的原因是您要求您的 shell 执行一个目录,但该目录是不可执行的(目录上的“x”权限位表示它是可遍历的,但这超出了该问题的范围)。

请注意,只有当 shell 位于 GUI 会话中时,例如在终端仿真器应用中运行的 shell,才能从 shell 启动 GUI 应用。它无法从与任何 GUI 会话无关的 shell 启动,例如当您从其他计算机通过 SSH 连接到 Mac 时。

答案2

为什么不使用 Spotlight?
按 Cmd/Space,开始输入,选择正确的名称后按回车键 [如果不想单击,可以使用箭头键。] 如果名称中没有很多带有“atom”的东西,则可能需要按 4 或 5 次键才能从操作系统中的任何位置打开它。

我没有 Atom Nightly,但这里有一个 FaceTime 的示例,每个人都有。从开始到结束 5 个按键,Cmd/Space、F、A、C、Return。

在此处输入图片描述

无需预编程或别名。使用系统本来的功能,而不是构建复杂的黑客程序,这需要更长的时间,而且需要为每个应用程序执行。

相关内容