2 votes

Alias de gedit pour supprimer la sortie du terminal

Je suis connecté en SSH sur une carte intégrée (Jetson TK1 exécutant Ubuntu 14.04). J'utilise l'option -X pour pouvoir utiliser gedit pour modifier des fichiers texte. Lorsqu'il est exécuté à partir d'un terminal, gedit crache une tonne de données inutiles sur le terminal. Pour contourner cela, il suffit de taper

gedit [fichier] > /dev/null 2>&1 &

avec le dernier esperluette envoyant le processus à l'arrière-plan pour que je puisse continuer à utiliser le terminal. Cela devient fastidieux à taper à chaque fois, donc je veux définir un alias:

alias gedit="gedit $@ > /dev/null 2>&1 &"

cependant cela ne fonctionne pas. Après avoir défini l'alias (et pour le premier essai j'ai simplement défini directement sur la ligne de commande bash), en tapant

gedit [fichier]

Bash répond que

-bash: [fichier]: commande introuvable

et ouvre gedit avec un fichier texte sans titre. En enlevant l'esperluette finale dans la définition de l'alias, l'alias ouvre le fichier spécifié comme prévu, mais ne envoie pas gedit à l'arrière-plan. Qu'est-ce qui ne va pas?

0voto

Ingvald Points 373

Ma réponse est fortement basée sur ce post : http://ubuntuforums.org/showthread.php?t=2011495

Une alias ne fonctionne pas de cette manière, les arguments sont toujours passés à la fin de la commande. En utilisant votre alias comme exemple, gedit filename exécutera en réalité :

gedit $@ > /dev/null 2>&1 & filename

au lieu de

gedit filename > /dev/null 2>&1 &

Ce qui fait que bash pense que vous entrez une deuxième commande appelée filename.

Vous devez plutôt créer une fonction dans votre fichier ~/.bashrc, qui exécutera la commande gedit :

Le snippet suivant est une version légèrement modifiée du code de drmrgd

function gedit-bg() {
    if [ ! -n "$1" ]; then
        echo "USAGE: gedit-bg ";
    else
        ( gedit "$1" > /dev/null 2>&1 & );
    fi
}

Vous devrez vous reconnecter pour que le changement prenne effet, une fois que c'est fait, vous pouvez utiliser la méthode comme ceci :

gedit-bg filename

0voto

metrprof Points 1

Les avertissements de gedit sur le serveur que j'utilise pour les comptes d'étudiants sont très perturbants pour les étudiants. En modifiant un peu la réponse de Dan, les étudiants peuvent toujours taper gedit comme d'habitude. J'ai mis cela dans /etc/profile.d/custom.sh (sur Centos 7, mais cela devrait également fonctionner sur Ubuntu, ou dans le fichier .profile d'un utilisateur)

function gedit-bg() {
    if [ ! -n "$1" ]; then
        echo "UTILISATION: gedit ";
    else
        ( \gedit "$1" > /dev/null 2>&1 & );
    fi
}

alias gedit="gedit-bg"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X