web-dev-qa-db-fra.com

Ouvrir un fichier depuis le terminal

Lorsque nous voulons ouvrir une application ou un fichier à partir du terminal, nous tapons, par exemple,

okular file.dvi

Cela ouvre l'application, mais affiche également le statut de l'application. Nous ne pouvons pas fermer le terminal, car cela tue le processus. Malheureusement, si vous essayez par exemple de créer un fichier LaTeX, vous aurez besoin d’un onglet pour l’éditeur de texte, d’un autre pour le fichier dvi, etc. Et si vous essayez d’ouvrir toutes les fenêtres du terminal, vous pouvez l’oublier. J'essaie d'utiliser le terminal autant que possible, et même si j'ai Yakuake, c'est toujours un problème d'avoir autant d'onglets et de voir laquelle de ces applications possède une application que j'ai tuée, etc.

Alors, y a-t-il un moyen d'ouvrir une application/un fichier depuis le terminal pour que l'état ne soit pas affiché et donne immédiatement l'invite afin que nous puissions l'utiliser pour ouvrir plus d'applications?

27
asymptotically
xdg-open file.dvi

xdg-open ouvrira n'importe quel fichier avec son application par défaut. En prime, vous pouvez fermer le terminal sans tuer l'application.

Comme xdg-open est un nom assez long, j'ai mis un alias pour cela dans .bashrc:

alias open='xdg-open'
47
Mihai Capotă
okular file.dvi &

ajoutez simplement un & pour que votre commande soit exécutée en tant que processus séparé.

16
user827992

okular file.dvi &> /dev/null & serait un peu mieux. De cette façon, le programme n'écrit pas sur le terminal.

Si vous utilisez seulement okular file.dvi &, le programme signalera toujours des choses sur le terminal, souvent au milieu de votre travail.

14
josinalvo

Avec, par exemple, evince file.pdf &, la fermeture du terminal fermera toujours le processus, de sorte qu'il s'agira toujours d'un processus enfant du terminal et ne sera pas indépendant de celui-ci; Nohup evince file.pdf & vous permettra de fermer le terminal sans fermer le programme car Nohup signifie que tout signal de fermeture (blocage) du processus sera ignoré. Vous pouvez également désavouer un processus de la même manière, voir cette discussion ici .

6
user76204