Öffnen einer Datei vom Terminal

30

Wenn wir eine Anwendung oder eine Datei vom Terminal aus öffnen möchten, geben wir beispielsweise Folgendes ein:

okular file.dvi

Dies öffnet die Anwendung, zeigt aber auch den Status der Anwendung an. Wir können das Terminal nicht schließen, weil es den Prozess abbricht. Wenn Sie beispielsweise eine LaTeX-Datei erstellen möchten, benötigen Sie eine Registerkarte für den Texteditor, eine für die DVI-Datei usw. Und wenn Sie versuchen, alle Fenster vom Terminal aus zu öffnen, können Sie es vergessen. Ich versuche, das Terminal so oft wie möglich zu verwenden, und während ich Yakuake habe, ist es immer noch eine Mühe, so viele Registerkarten zu haben und zu sehen, welche von denen eine Anwendung haben, die ich getötet habe und so weiter.

Gibt es eine Möglichkeit, eine Anwendung / Datei über das Terminal zu öffnen, sodass der Status nicht angezeigt wird und sofort die Aufforderung angezeigt wird, damit wir damit weitere Anwendungen öffnen können?

bemerkenswert
quelle
In Anbetracht Ihrer Anforderungen, dass keine Ausgabe angezeigt wird, der Viewer kein untergeordneter Prozess des Terminals ist usw., ist dies ein idealer Kandidat, wenn Sie einfach eine Tastenkombination zum Öffnen des Viewers verwenden oder z. B. grun verwenden, um auch den Dateinamen einzugeben , wäre besser geeignet, als an einem Terminal festzuhalten.
Jmetz
Es macht mir nichts aus, keine Ausgabe zu sehen ... Es macht mir nichts aus, wenn mehrere Terminals / Tabs für mehrere Anwendungen geöffnet sind. Die Antwort, die ich gewählt habe, passt perfekt zu meinen Vorlieben.
Bemerkenswerterweise

Antworten:

51
xdg-open file.dvi

xdg-openöffnet jede Datei mit ihrer Standardanwendung. Als Bonus können Sie das Terminal schließen, ohne die Anwendung zu beenden.

Da xdg-openes sich um einen ziemlich langen Namen handelt, habe ich einen Alias ​​für ihn eingefügt .bashrc:

alias open='xdg-open'
Mihai Capota
quelle
Süss! Dies ist das Beste, noch besser als das, das ich ausgewählt hatte! Und du bekommst ein '
Revival'
Einfach genial!
Yugal Jindle
Ich möchte nur darauf hinweisen, dass Sie die Datei öffnen können, ohne eine neue Instanz des Programms zu erstellen, da das Programm dadurch nicht ausgeführt wird. Dies bedeutet, dass Sie eine Datei öffnen können und diese automatisch in der bereits geöffneten Instanz der App geöffnet wird.
Arc676
Wenn Sie kürzlich von Mac zu Linux gewechselt sind, ist es wahrscheinlich eine gute Idee, dies zu tun alias open="xdg-open"
Pedro Luz
16
okular file.dvi &

Fügen Sie einfach einen hinzu &, damit Ihr Befehl als separater Prozess ausgeführt wird.

user827992
quelle
Wow! Perfekt! Witzig ... Ich habe in Google nach "Vom Terminal aus öffnen, ohne den Status anzuzeigen" gesucht und nie gedacht, dass es sich wie ein separater Prozess verhält. Leider heißt es, dass ich 8 Minuten warten muss, also ...
insbesondere
14

okular file.dvi &> /dev/null &wäre ein bisschen besser. Auf diese Weise schreibt das Programm nicht in das Terminal.

Wenn Sie nur okular file.dvi &das Programm verwenden, werden die Dinge immer noch auf dem Terminal gemeldet, oft mitten in Ihrer Arbeit

josinalvo
quelle
6

Mit, sagen wir, evince file.pdf &das Terminal schließen , wird immer noch nahe den Prozess, so dass es immer noch ein Kind - Prozess des Terminals ist und keine Unabhängigkeit davon; nohup evince file.pdf &Damit können Sie das Terminal schließen, ohne dass das Programm geschlossen wird, da nohup bedeutet, dass alle Signale für das Schließen (Auflegen) des Prozesses ignoriert werden. Sie können einen Prozess auch auf ähnliche Weise ablehnen. Weitere Informationen hierzu finden Sie hier .

Gemeinschaft
quelle
Danke, das wusste ich nicht. Ich benutze Yakuake und schließe es nie, also ist es kein Problem. Aber es ist immer nützlich, solche Dinge zu wissen.
InsbesondereTipsy
Ich habe gerade meinen
Entschuldigung - ich hatte vergessen, das & am Ende zu setzen :)
insbesondere
1
Wenn ich es versuche evince file.pdf &, wird der Prozess nicht
abgebrochen
1
Wenn Sie einen untergeordneten Prozess starten, gehört dieser zum übergeordneten Prozess. In diesem Fall ist evince der untergeordnete Prozess, der zum Terminal gehört. Wenn Sie das Terminal schließen, werden daher auch die untergeordneten Prozesse geschlossen. nohup trennt diese Eigentümerschaft. Sie können diese also verwenden, wenn Sie das Terminal schließen möchten. Standardmäßig erstellt nohup jedoch eine Datei nohup.out in Ihrem Basisordner. Wenn Sie diese Datei nicht möchten, verwenden Sie die Umleitung wie folgt:nohup evince file.pdf &>/dev/null &
Paddy Landau