如何打开特定的应用程序,如macOS`open -a`?


14

在macOS的默认终端上运行bash,我可以输入:

open -a Firefox http://www.wikipedia.org

使用Firefox或其他浏览器打开URL。它还可以启动一个程序,例如open -a maps,并在默认程序中打开一个文件,例如open file.pdf

如何在还运行默认GNOME终端的Ubuntu上做同样的事情bash?我知道可以使用打开文件或URL xdg-open /path/to/file,也可以使用打开默认浏览器sensible-browser。Ubuntu是否具有通用命令来打开文件,应用程序或特定应用程序中的文件?

bash同时3.2.57(1)-release在macOS和4.4.19(1)-releaseUbuntu的两台计算机上运行。


我从未使用过Mac,所以您能告诉我为什么使用Mac open -a Firefox http://www.wikipedia.org吗?你不能firefox http://www.wikipedia.org吗?这似乎是一个无用的功能open,当打开程序时正是bash
JoL

1
macOS上的Bash的工作方式不同,例如,您的命令给出了error bash: firefox: command not found。与Firefox程序名称相同的错误。
miguelmorin

3
bash工作原理完全相同;Firefox的安装方式与Ubuntu的安装方式不同。例如,在macOS上,您可以从命令行运行/Applications/Firefox.app/Contents/MacOS/firefox-binFirefox.app是一种特殊的文件夹中包含不只是可执行文件,但文件在Linux中可能的各种分散有关/usr/bin//usr/lib/etc,等目录。例如,当您双击时,Finder便知道如何运行实际的应用程序Firefox.appopen是一种从命令行“运行”特殊文件夹的方法。
chepner

4
它的bash工作原理不同:firefox作为OS X应用程序(Firefox.app)安装,并且不在常规PATH上。使用的另一个原因open -a是,它可以正确地使启动的应用程序后台运行,而不是等待它退出。
亚历克

Answers:


10

您可以专门使用所需程序的名称(如果它可以用作命令行工具)。

例如,网址:

firefox duckduckgo.com
chromium-browser askubuntu.com

PDF:

evince foo.pdf
okular bar.pdf

图片:

gpicview foo.png
feh bar.jpeg

文字:

gedit foo.txt
mousepad /etc/config
leafpad bar.xml

视频/音乐:

mpv  foo.mp3
vlc  bar.mp4

如果您希望程序从终端分离运行,那么我更喜欢这样做:

nohup program args &

例如:

nohup firefox askubuntu.com &

请记住,您始终可以像往常一样重定向输出,例如:

nohup firefox duckduckgo.com &> /dev/null &

2
eog picture.jpg如果您已安装gnome-desktop,也可以用于图像:)
Videonauth

1
@Videonauth是的,或者其他任何工具;)
Ravexina

2
@BaptisteCandellier我不知道open要调用另一个程序。为什么不直接调用另一个程序?会open增加什么用处?这个答案反映了打开特定应用程序的自然选择。
JoL

1
我同意@BaptisteCandellier,并且open在macOS上,可以在默认应用程序和特定应用程序中打开文件和文件夹。似乎原始文件的bash路径与其他xdg-open文件的路径和应用程序名称不同。
miguelmorin

2
open在MacOS中,另一件事是与启动运行的控制台分离的应用程序启动,即,如果关闭控制台,该应用程序将保持打开状态。在Ubuntu上,需要使用nohup命令来获得相同的行为。(由于给每个命令加上nohup前缀,并且为您运行的每个命令重定向输出
都很
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.