Otwieranie pliku z terminala

30

Kiedy chcemy otworzyć aplikację lub plik z terminala, wpisujemy, powiedzmy,

okular file.dvi

Spowoduje to otwarcie aplikacji, ale także pokazuje status aplikacji. Nie możemy zamknąć terminala, ponieważ to zabija proces. Niestety, jeśli próbujesz na przykład utworzyć plik LaTeX, potrzebujesz jednej karty dla edytora tekstu, jednej dla pliku dvi i tak dalej. A jeśli próbujesz otworzyć wszystkie okna z terminala, możesz o tym zapomnieć. Staram się korzystać z terminala tak często, jak to możliwe, i chociaż mam Yakuake, nadal mam problem z tyloma zakładkami i sprawdzaniem, które z nich mają aplikację, którą zabiłem i tak dalej.

Czy istnieje sposób na otwarcie aplikacji / pliku z terminala, aby status nie był wyświetlany i natychmiast wyświetlał monit, abyśmy mogli go użyć do otwarcia większej liczby aplikacji?

zwłaszcza tipsy
źródło
Biorąc pod uwagę twoje prośby, dotyczące braku wyświetlania danych wyjściowych, przeglądarka nie jest procesami potomnymi terminala itp., Wydaje się idealnym kandydatem, gdy po prostu używasz skrótu klawiaturowego, aby otworzyć przeglądarkę, lub np. Grun, aby również przekazać nazwę pliku , byłoby bardziej odpowiednie niż trzymanie się terminala.
jmetz
Nie mam nic przeciwko temu, że nie widzę żadnych wyników ... Mam na myśli to, że muszę mieć otwartych wiele terminali / kart dla wielu aplikacji. Wybrana przeze mnie odpowiedź idealnie odpowiada wszystkim moim preferencjom.
tipsy

Odpowiedzi:

51
xdg-open file.dvi

xdg-openotworzy dowolny plik z domyślną aplikacją. Jako bonus możesz zamknąć terminal bez zabijania aplikacji.

Ponieważ xdg-openjest to dość długa nazwa, umieściłem dla niej alias .bashrc:

alias open='xdg-open'
Mihai Capotă
źródło
Słodkie! To jest najlepsze, nawet lepsze niż to, które wybrałem! I dostaniesz odznakę „Odrodzenie” :)
zwłaszcza typsy
Proste niesamowite!
Yugal Jindle
Chcę tylko zaznaczyć, że ponieważ tak naprawdę nie uruchamia to programu, oznacza to, że możesz otworzyć plik bez tworzenia nowej instancji tego programu. Oznacza to, że możesz otworzyć plik, który zostanie automatycznie otwarty w już otwartej instancji aplikacji.
Arc676,
jeśli niedawno przeniosłeś się z Maca na Linuksa, prawdopodobnie dobrym pomysłem jest zrobienie tego alias open="xdg-open"
Pedro Luz,
16
okular file.dvi &

wystarczy dodać, &aby polecenie działało jako osobny proces.

użytkownik827992
źródło
Łał! Doskonały! Zabawne ... szukałem w Google hasła „otwórz z terminala bez wyświetlania statusu”, nigdy nie myślałem, że zachowuje się jak osobny proces! Niestety, mówi, że muszę czekać 8 minut, więc ...
zwłaszcza tipsy
14

okular file.dvi &> /dev/null &byłoby trochę lepiej. W ten sposób program nie pisze do terminala.

Jeśli korzystasz tylko z okular file.dvi &tego programu, program będzie nadal raportował rzeczy na terminalu, często w trakcie pracy

josinalvo
źródło
6

Z, powiedzmy, evince file.pdf &zamknięcie terminala nadal zamyka proces, tak że jest to proces potomny terminala i nie jest od niego niezależny; nohup evince file.pdf &pozwoli ci zamknąć terminal bez zamykania programu, ponieważ nohup oznacza, że ​​wszelkie sygnały zakończenia procesu (zawieszenia) będą ignorowane. Możesz także odrzucić proces w podobny sposób, zobacz tę dyskusję tutaj .

Społeczność
źródło
Dzięki, nie wiedziałem tego. Używam Yakuake i nigdy go nie zamykam, więc nie stanowi to problemu. Ale zawsze warto wiedzieć takie rzeczy.
tipsy
Właśnie zredagowałem mój post - zobacz różnicę
Przepraszam - zapomniałem umieścić & na końcu :)
tipsy
1
Kiedy próbuję evince file.pdf &, nie zabija tego procesu, gdy
wychodzę
1
Po uruchomieniu procesu potomnego należy on do procesu macierzystego. W tym przypadku evince jest procesem potomnym należącym do terminala. Dlatego po zamknięciu terminalu również zamyka procesy potomne. nohup rozdziela tę własność, więc jest to, czego użyć, jeśli chcesz zamknąć terminal. Jednak domyślnie nohup tworzy plik nohup.out w folderze domowym. Jeśli nie chcesz tego pliku, użyj przekierowania w następujący sposób:nohup evince file.pdf &>/dev/null &
Paddy Landau