W systemie macOS w domyślnym uruchomionym terminalu bash
mogę wpisać:
open -a Firefox http://www.wikipedia.org
aby otworzyć adres URL w przeglądarce Firefox lub innej przeglądarce. Działa również w celu uruchomienia programu, np. open -a maps
I otwarcia pliku w domyślnym programie, np open file.pdf
.
Jak mogę zrobić to samo na Ubuntu w domyślnym terminalu GNOME, również działającym bash
? Wiem, że mogę otworzyć plik lub adres URL xdg-open /path/to/file
i mogę otworzyć domyślną przeglądarkę za pomocą sensible-browser
. Czy Ubuntu ma ogólne polecenie otwierania plików, aplikacji lub plików w określonych aplikacjach?
Pracuję bash
na obu komputerach, 3.2.57(1)-release
macOS i 4.4.19(1)-release
Ubuntu.
command-line
miguelmorin
źródło
źródło
open -a Firefox http://www.wikipedia.org
? Nie można zrobićfirefox http://www.wikipedia.org
? Wydaje się, że jest to bezużyteczna funkcjaopen
, gdy chodzi o otwieranie programówbash
.bash: firefox: command not found
. Ten sam błądFirefox
co w nazwie programu.bash
działa dokładnie tak samo; to Firefox, który jest zainstalowany inaczej niż na Ubuntu. W systemie macOS można na przykład uruchomić/Applications/Firefox.app/Contents/MacOS/firefox-bin
z wiersza polecenia.Firefox.app
Jest to specjalny rodzaj folderu, który zawiera nie tylko plik wykonywalny, ale pliki, które w systemie Linux może być rozproszone w różnych/usr/bin/
,/usr/lib
,/etc
itp katalogów. Finder wie, jak uruchomić rzeczywistą aplikację, na przykład po dwukrotnym kliknięciuFirefox.app
.open
jest sposobem na „uruchomienie” specjalnego folderu z linii poleceń.bash
działa inaczej: firefox jest instalowany jako aplikacja OS X (Firefox.app
) i nie ma go w zwykłej PATH. Innym powodem do użyciaopen -a
jest to, że właściwie uruchamia uruchamianą aplikację, zamiast czekać na jej zakończenie.&
Odpowiedzi:
Możesz w szczególności użyć nazwy żądanego programu (jeśli można go użyć jako narzędzia wiersza poleceń).
Na przykład adresy URL:
PDF:
Zdjęcia:
Teksty:
Wideo / muzyka:
Jeśli chcesz, aby program był uruchamiany odłączony od terminala, wolę to w ten sposób:
Na przykład:
Pamiętaj, że zawsze możesz przekierować wyjścia jak zwykle, np .:
źródło
eog picture.jpg
również dla obrazów, jeśli masz zainstalowany gnome-desktop :)open
do innego programu. Dlaczego nie wywołać bezpośrednio innego programu? Jaką użytecznośćopen
dodaje? Ta odpowiedź odzwierciedla naturalną czynność otwierania określonych aplikacji.open
na macOS działa zarówno do otwierania plików i folderów w domyślnej aplikacji, jak i w określonych aplikacjach. Wygląda na to, że oryginałbash
poszedł inną ścieżkąxdg-open
dla plików i nazw aplikacji dla reszty.open
w MacOS jest to, że uruchamia aplikację odłączoną od konsoli, z której jest uruchamiana, tzn. Jeśli konsola się zamknie, aplikacja pozostanie włączona. W systemie Ubuntu należy użyćnohup
polecenia, aby uzyskać takie samo zachowanie. (ponieważ poprzedzanie każdego polecenia poleceniem nohup i przekierowywanie wyjścia dla każdego uruchamianego polecenia staje się męczące, bardziej sensowne może być zdefiniowanie niestandardowego skrótu)