Bagaimana cara membuka aplikasi tertentu seperti macOS `open -a`?

14

Pada macOS di Terminal default yang berjalan bash, saya bisa mengetik:

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

untuk membuka URL dengan Firefox, atau browser lain. Ini juga berfungsi untuk meluncurkan program, misalnya open -a maps, dan untuk membuka file di program default, misalnya open file.pdf.

Bagaimana saya bisa melakukan hal yang sama pada Ubuntu di Terminal GNOME default juga berjalan bash? Saya tahu bahwa saya dapat membuka file atau URL xdg-open /path/to/file, dan saya dapat membuka browser default dengan sensible-browser. Apakah Ubuntu memiliki perintah umum untuk membuka file, aplikasi, atau file dalam aplikasi tertentu?

Saya berjalan bashdi kedua mesin, 3.2.57(1)-releasedi macOS dan 4.4.19(1)-releasedi Ubuntu.

miguelmorin
sumber
Saya tidak pernah menggunakan Mac, jadi bisakah Anda memberi tahu saya alasan Anda menggunakannya open -a Firefox http://www.wikipedia.org? Tidak bisa Anda lakukan firefox http://www.wikipedia.org? Sepertinya fitur yang tidak berguna open, ketika membuka program adalah intinya bash.
JoL
1
Bash pada macOS bekerja secara berbeda, mis. Perintah Anda memberikan kesalahan bash: firefox: command not found. Kesalahan yang sama dengan Firefoxsebagai nama program.
miguelmorin
3
bashbekerja persis sama; Firefox yang diinstal berbeda dari pada Ubuntu. Di macOS, Anda bisa, misalnya, menjalankan /Applications/Firefox.app/Contents/MacOS/firefox-bindari baris perintah. Firefox.appadalah jenis khusus dari folder yang berisi bukan hanya executable, tapi file yang di Linux mungkin berserakan di berbagai /usr/bin/, /usr/lib, /etc, dll direktori. Finder tahu cara menjalankan aplikasi yang sebenarnya ketika Anda, misalnya, klik dua kali Firefox.app. openadalah cara untuk "menjalankan" folder khusus dari baris perintah.
chepner
4
Ini tidak bashbekerja secara berbeda: firefox diinstal sebagai aplikasi OS X ( Firefox.app) dan tidak ada pada PATH biasa. Alasan lain untuk menggunakannya open -aadalah bahwa aplikasi ini benar-benar latar belakang aplikasi yang diluncurkannya, alih-alih menunggu sampai keluar.
Alex

Jawaban:

10

Anda dapat secara khusus menggunakan nama program yang Anda inginkan (jika itu dapat digunakan sebagai alat baris perintah).

Misalnya, url:

firefox duckduckgo.com
chromium-browser askubuntu.com

PDF:

evince foo.pdf
okular bar.pdf

Gambar-gambar:

gpicview foo.png
feh bar.jpeg

Teks:

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

Video / Musik:

mpv  foo.mp3
vlc  bar.mp4

Jika Anda ingin program dijalankan terpisah dari terminal maka ini adalah cara yang saya sukai untuk melakukannya:

nohup program args &

Sebagai contoh:

nohup firefox askubuntu.com &

Ingatlah bahwa Anda selalu dapat mengarahkan output seperti biasa, misalnya:

nohup firefox duckduckgo.com &> /dev/null &
Ravexina
sumber
2
eog picture.jpguntuk gambar juga jika Anda telah menginstal gnome-desktop :)
Videonauth
1
@ Videoonauth Ya, atau jenis alat lainnya;)
Ravexina
2
@BaptisteCandellier Saya tidak bisa menelepon openuntuk menelepon program lain. Mengapa tidak langsung menghubungi program lain? Kegunaan apa yang openditambahkan? Jawaban ini mencerminkan hal alami yang harus dilakukan untuk membuka aplikasi spesifik.
JoL
1
@BaptisteCandellier Saya setuju, dan openpada macOS berfungsi baik untuk membuka file dan folder di aplikasi default dan di aplikasi tertentu. Tampaknya yang asli bashmelanjutkan jalur yang berbeda dengan xdg-openuntuk file dan nama aplikasi untuk yang lain.
miguelmorin pada
2
Hal lain yang berbeda tentang opendi MacOS adalah bahwa ia meluncurkan aplikasi yang terlepas dari konsol yang dijalankannya, yaitu jika konsol ditutup, aplikasi akan tetap menyala. Di Ubuntu kita perlu menggunakan nohupperintah untuk mendapatkan perilaku yang sama. (karena mengawali setiap perintah dengan nohup dan mengarahkan ulang output untuk setiap perintah yang Anda jalankan akan melelahkan, mungkin lebih masuk akal untuk menentukan pintasan khusus)
undercat memuji Monica