如何从终端启动GUI 应用程序
我们都知道如何通过双击图标或单击 Dock 中的应用程序从 GUI 启动应用程序,并且有很多方法可以做到这一点,而且它们都相对较快。不过,如果您在命令行上花费了相当多的时间,那么能够直接从那里启动 Mac 应用程序也很好。此外,终端有相当一部分应用程序以基于文本的模式运行,但也许您想在 Mac OS X GUI 应用程序 TextWrangler 中编辑文本文件,而不是基于文本的 nano 或 vim。
我们将演示如何从 MacOS X 的命令行启动任何图形化 Mac 应用程序,包括如何使用 GUI 应用程序从命令行打开特定文件,以及如何编辑和打开如果有必要,那些具有根访问权限的文件。
从命令行打开Mac OS X应用程序
启动MacOS gui应用程序的终端命令被恰当地称为“打开”,这是它最简单的工作方式:
open -a ApplicationName
这将打开定义的名为“ApplicationName”的应用程序。
但开放远比这强大得多。如果您只是在命令提示符下键入“打开”,您将返回基本的帮助文件,其中包含有关如何使用各种标志和语法正确使用该命令的详细信息。
虽然打开命令存在于所有版本的Mac OS X 中,但功能会有所不同,具体取决于Mac 运行的MacOS/Mac OS X 版本。尽管如此,在现代版本中,您将看到以下内容:
$ open 用法:open 帮助:Open 从shell 打开文件。默认情况下,使用该文件的默认应用程序打开每个文件。如果文件是 URL 形式,则文件将以 URL 形式打开。选项:-a 使用指定的应用程序打开。 -b 使用指定的应用程序包标识符打开。 -e 使用 TextEdit 打开。 -t 使用默认文本编辑器打开。 -f 从标准输入读取输入并使用 TextEdit 打开。 -F --fresh 全新启动应用程序,即不恢复窗口。保存的持久状态丢失,不包括无标题文档。 -R, --reveal 在 Finder 中选择而不是打开。 -W, --wait-apps 阻塞,直到使用的应用程序关闭(即使它们已经在运行)。 --args 所有剩余的参数都在 argv 中传递给应用程序的 main() 函数而不是打开。 -n, --new 打开应用程序的一个新实例,即使一个实例已经在运行。 -j, --hide 启动隐藏的应用程序。 -g, --background 不将应用程序带到前台。-h, --header 在头文件位置搜索与给定文件名匹配的头文件,并打开它们。
换句话说,示例简单的命令语法可能如下所示,使用位于路径“/file/to/open”的文件打开“ApplicationName”:
open -a ApplicationName /file/to/open
您会注意到您不需要应用程序名称的完整路径,但您需要文件名的完整路径。
对于那些在命令行环境中有经验的人来说,用法很可能是不言自明的,但是对于终端的新手来说,不要太困惑,它很容易使用,我们'我会解释。例如,如果您想使用 TextWrangler 编辑 /etc/motd 以更改您的每日消息,但您讨厌命令行编辑器 nano 和 vi,请输入以下内容:
$ open -a TextWrangler /etc/motd
现在您可以在熟悉的GUI 中编辑这些文件。 open 足够聪明,知道当你应用 -a 标志时,你正在启动一个应用程序,所以你不需要输入它的完整路径。显然,它仍然需要您正在编辑的文件的完整路径。
打开命令还有许多其他用途,而不仅仅是编辑文本文件,所以请发挥您的想象力并发挥创意。 open 对于在 shell 脚本中使用它的系统管理员可能特别有用,也许可以在预定的时间启动特定的 GUI 应用程序。
另外值得注意的是,如果您启动的应用程序名称中有空格,您需要在每个单词后添加一个反斜杠,打开 Adobe Photoshop CS 将如下所示:
$ 打开-a Adobe\ Photoshop\ CS
从命令行以root身份启动GUI应用程序
如果您需要以root身份编辑文件,您甚至可以使用open命令使用sudo打开文件,例如:
sudo open -a TextEdit /tmp/magicfile
这会将目标文件作为root用户启动到所需的应用程序中,赋予root用户编辑和修改文件的完全权限,这对于编辑许多系统文件非常有帮助。当然,如果您不知道自己在做什么,请不要修改任何系统文件。
为频繁启动的GUI应用程序创建外壳别名
所以重复输入一个完整的命令,或者一遍又一遍地输入所有命令,是不是很痛苦,对吧?好吧,让我们通过为经常启动的应用程序分配别名来简化它。我们将以前面提到的 Adobe Photoshop 应用程序为例,因为文件名很长,因此我们将使用 Mac OS X 默认 Bash shell 执行此操作:
First launch the profile or .bash_profile into a text editor:
$ nano .profile
或者
$ open -e .profile
忽略此文件中的任何其他内容(它也可能为空),将以下内容添加到新行:
"alias photoshop=open -a Adobe\ Photoshop\ CS"
这会创建一个别名,因此“open -a Adobe\ Photoshop CS”命令现在缩写为“photoshop”。保存 .profile,您就上路了!您几乎可以将 alias 命令与 open 一起用于任何操作,只需确保为尚不存在的命令选择一个别名即可。
如您所见,打开命令非常方便,如果您在Mac OS X 中对它有任何其他重要用途,请务必在评论中告诉我们。