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

mig*_*rin 14 command-line

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

open -a Firefox http://www.wikipedia.org
Run Code Online (Sandbox Code Playgroud)

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

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

bash在两台机器3.2.57(1)-release上运行,在 macOS 和4.4.19(1)-releaseUbuntu 上。

Rav*_*ina 11

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

例如,网址:

firefox duckduckgo.com
chromium-browser askubuntu.com
Run Code Online (Sandbox Code Playgroud)

PDF:

evince foo.pdf
okular bar.pdf
Run Code Online (Sandbox Code Playgroud)

图片:

gpicview foo.png
feh bar.jpeg
Run Code Online (Sandbox Code Playgroud)

文字:

gedit foo.txt
mousepad /etc/config
leafpad bar.xml
Run Code Online (Sandbox Code Playgroud)

视频/音乐:

mpv  foo.mp3
vlc  bar.mp4
Run Code Online (Sandbox Code Playgroud)

如果您希望程序与终端分离运行,那么这是我更喜欢的方式:

nohup program args &
Run Code Online (Sandbox Code Playgroud)

例如:

nohup firefox askubuntu.com &
Run Code Online (Sandbox Code Playgroud)

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

nohup firefox duckduckgo.com &> /dev/null &
Run Code Online (Sandbox Code Playgroud)

  • 如果您安装了 gnome-desktop,也可以将`eog picture.jpg` 用于图像:) (2认同)
  • @BaptisteCandellier 我不明白调用`open` 来调用另一个程序的意义。为什么不直接调用其他程序呢?`open` 有什么用处?这个答案反映了打开特定应用程序的自然行为。 (2认同)
  • MacOS 中“open”的另一个不同之处在于它启动与运行它的控制台分离的应用程序,即如果控制台关闭,应用程序将继续运行。在 Ubuntu 上,需要使用 `nohup` 命令来获得相同的行为。(由于为每个命令添加 nohup 前缀并为您运行的每个命令重定向输出会很累,因此定义自定义快捷方式可能更有意义) (2认同)