J'ai récemment installé 12.04.
Quand j'essaie de modifier un fichier avec gedit, je ne peux pas utiliser le terminal tant que je n'ai pas fermé le fichier en cours d'édition ou que j'ai ouvert un nouveau terminal. Mais je ne pense pas avoir eu ce problème avec 11.04, cependant je n'en suis pas sûr.
Y a-t-il un moyen d'éviter cela et d'utiliser le même terminal tout en éditant des fichiers.
Réponses
Trop de publicités?Réponse courte
Dans le terminal non réactif :
- Appuyez sur Ctrl+Z.
- Tapez
bg
et appuyez sur entrée. - Tapez
disown
et appuyez sur entrée.
Réponse longue
Dans le terminal non réactif, appuyez sur Ctrl+Z, cela va "mettre en pause" le processus (ou "job") et vous rendre le contrôle de la console. Cependant, vous remarquerez que gedit
devient non réactif et vous ne pouvez pas l'utiliser.
Supplémentaire : si vous le souhaitez, vous pouvez exécuter la commande
jobs
, vous verrez qu'elle affichera Stopped pour la commandegedit
, c'est pourquoi vous ne pouvez pas l'utiliser.
Pour que le job s'exécute avec succès en arrière-plan (c'est-à-dire rendre gedit
réactif à nouveau), exécutez la commande bg
(signifiant background). Vous pourrez maintenant utiliser gedit
, tout en ayant toujours l'invite de commande pour vous.
Supplémentaire : maintenant, si vous exécutez la commande
jobs
, vous verrez qu'elle affichera Running.
Vous pouvez contourner tout cela dès le départ. Lorsque vous lancez gedit
depuis le terminal, ajoutez un &
à la fin de la commande, donc quelque chose comme ceci gedit /chemin/vers/fichier &
. Cela lancera gedit
en arrière-plan dès le départ (vous devrez peut-être appuyer sur Entrée quelques fois pour récupérer le contrôle de la console).
Supplémentaire : si vous suiviez ces notes supplémentaires, vous avez peut-être remarqué que la deuxième fois que vous avez fait
jobs
, vous avez pu voir que bash avait ajouté un&
à la fin de la commandegedit
.
Une fois que vous aurez pris l'habitude de ce système, vous remarquerez que si vous fermez le terminal, gedit se terminera également, sans même de boîte de dialogue de confirmation. Pour éviter que cela ne se produise, exécutez disown
, ce qui détachera le processus gedit du terminal, le supprimant de la liste renvoyée par jobs
.
Vous pouvez utiliser le nohup
pour éviter que l'interface graphique ne soit attachée à un terminal :
nohup mupdf some.pdf &
Cela vous permettra de fermer le terminal à partir duquel vous lancez, sans que le programme ne se ferme.
Vous devez également noter que la commande nohup créera un fichier avec la stdout
et la stderr
de la commande que vous exécutez. Si vous voulez éviter cela, ajoutez >/dev/null
avant le &
.
nohup mupdf some.pdf >/dev/null &
Vous pouvez également utiliser la commande disown
. C'est particulièrement utile lorsque vous avez déjà lancé le processus que vous ne voulez plus attacher au terminal.
La procédure de base, si je me souviens bien, ressemble à ceci :
$ > firefox #Oops
Ctrl + z #Mettre le processus en pause
$ > bg #Envoyer le processus à l'arrière-plan
$ > disown #Détacher le processus le plus récemment lancé ou arrêté
$ > exit #Terminal fermé !
Remarquez que disown est spécifique à bash
.
De man gedit
:
-b, --background Exécute gedit en arrière-plan.
Ainsi, si vous exécutez gedit
avec l'option -b
, il démarrera en arrière-plan:
gedit -b [NOM-FICHIER]
De plus, vous pouvez créer un alias pour gedit -b
(voir ici comment créer un alias permanent):
alias gedit='gedit -b'
Désormais, à l'avenir, vous pourrez utiliser gedit [NOM-FICHIER]
normalement et il démarrera en arrière-plan.
- Réponses précédentes
- Plus de réponses