Ouverture d'un fichier depuis le terminal

30

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

okular file.dvi

Cela ouvre l'application, mais montre également l'état de l'application. Nous ne pouvons pas fermer le terminal, car il 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, un 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 la peine d'avoir autant d'onglets et de voir lesquels ont une application que j'ai tuée et ainsi de suite.

Alors, existe-t-il un moyen d'ouvrir une application / un fichier à partir du terminal afin que l'état ne s'affiche pas et donne immédiatement l'invite afin que nous puissions l'utiliser pour ouvrir plus d'applications?

notammenttipsy
la source
Compte tenu de vos demandes, concernant le fait de ne voir aucune sortie, le visualiseur n'étant pas un processus enfant du terminal, etc., il semble être un candidat idéal pour utiliser simplement un raccourci clavier pour ouvrir le visualiseur, ou utiliser par exemple grun pour également passer le nom de fichier , serait plus approprié que de s'en tenir à l'utilisation d'un terminal.
jmetz
Cela ne me dérange pas de ne voir aucune sortie ... Cela me dérange d'avoir à ouvrir plusieurs terminaux / onglets pour plusieurs applications. La réponse que j'ai choisie convient parfaitement à toutes mes préférences.
notammenttipsy

Réponses:

51
xdg-open file.dvi

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

Puisqu'il xdg-opens'agit d'un nom assez long, je lui ai donné un alias .bashrc:

alias open='xdg-open'
Mihai Capotă
la source
Doux! C'est le meilleur, encore meilleur que celui que j'avais sélectionné! Et vous obtenez un badge 'Revival' :)
notammenttipsy
Génial simple!
Yugal Jindle
Je veux juste souligner que puisque cela n'exécute pas réellement le programme, cela signifie que vous pouvez ouvrir le fichier sans créer une nouvelle instance de ce programme. Cela signifie que vous pouvez ouvrir un fichier et il sera automatiquement ouvert dans l'instance déjà ouverte de l'application.
Arc676
si vous passez récemment de mac à linux, ce serait probablement une bonne idée de le faire alias open="xdg-open"
Pedro Luz
16
okular file.dvi &

ajoutez simplement un &pour que votre commande s'exécute en tant que processus séparé.

user827992
la source
Hou la la! Parfait! Drôle ... J'ai cherché sur Google pour "ouvrir depuis le terminal sans afficher le statut", je n'ai jamais pensé que cela se comportait comme un processus séparé! Malheureusement, cela dit que je dois attendre 8 minutes, alors ...
notammenttipsy
14

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

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

josinalvo
la source
6

Avec, disons, la evince file.pdf &fermeture du terminal fermera toujours le processus, de sorte qu'il est toujours un processus enfant du terminal et n'a aucune indépendance par rapport à celui-ci; nohup evince file.pdf &vous permettra de fermer le terminal sans que le programme ne se ferme car nohup signifie que tous les signaux de fermeture du processus (raccrochage) seront ignorés. Vous pouvez également renier un processus d'une manière similaire, voir cette discussion ici .

Communauté
la source
Merci, je ne le savais pas. J'utilise Yakuake, et je ne le ferme jamais, donc ce n'est pas un problème. Mais il est toujours utile de savoir de telles choses.
notammenttipsy
Je viens de modifier mon article - voyez la différence - cela fonctionnera maintenant
Désolé - j'avais oublié de mettre le & à la fin :)
notammenttipsy
1
Quand j'essaye evince file.pdf &, cela ne tue pas le processus quand je quitte le terminal ...
notammenttipsy
1
Lorsque vous démarrez un processus enfant, il appartient au processus parent. Dans ce cas, evince est le processus enfant appartenant au terminal. Par conséquent, lorsque vous fermez le terminal, il ferme également les processus enfants. nohup sépare cette propriété, c'est donc ce qu'il faut utiliser si vous souhaitez fermer le terminal. Cependant, par défaut, nohup crée un fichier nohup.out dans votre dossier personnel. Si vous ne voulez pas de ce fichier, utilisez la redirection comme suit:nohup evince file.pdf &>/dev/null &
Paddy Landau