215 votes

Comment puis-je raccourcir l'invite de ma ligne de commande (bash) ?

Actuellement, c'est le cas :

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$

En dehors de renommer ma machine et la structure des répertoires...

Comment je pourrais faire en sorte que ce soit quelque chose de plus comme :

michael:controllers$

301voto

ish Points 134738

Pour le modifier uniquement pour l'instance actuelle du terminal

Il suffit d'entrer PS1='\u:\W\$ ' et appuyez sur la touche Entrée.


Pour le changer "définitivement"

Dans votre ~/.bashrc , trouvez la section suivante :

if \[ "$color\_prompt" = yes \]; then
    PS1='${debian\_chroot:+($debian\_chroot)}\\\[\\033\[01;32m\\\]\\u@\\h\\\[\\033\[00m\\\]:\\\[\\033\[01;34m\\\]\\w\\\[\\033\[00m\\\]\\$ '
else
    PS1='${debian\_chroot:+($debian\_chroot)}\\u@\\h:\\w\\$ '
fi

Retirer le @\h et remplacer le \w avec une majuscule \W pour qu'il devienne :

if \[ "$color\_prompt" = yes \]; then
    PS1='${debian\_chroot:+($debian\_chroot)}\\\[\\033\[01;32m\\\]\\u\\\[\\033\[00m\\\]:\\\[\\033\[01;34m\\\]\\W\\\[\\033\[00m\\\]\\$ '
else
    PS1='${debian\_chroot:+($debian\_chroot)}\\u:\\W\\$ '
fi

Sauvegardez, quittez, fermez le terminal et lancez-en un autre pour voir le résultat.


Des tonnes d'options supplémentaires !

  • Voir aquí pour un mode d'emploi plus complet, avec beaucoup plus d'options
  • Voir cette réponse pour l'utilisation d'un minuscule script Python pour configurer l'invite de sorte que le raccourcissement ne se produise que lorsque vous êtes profondément dans une structure de répertoire.

149voto

boom Points 1236

Exécutez ce code dans le terminal actuel

PROMPT_DIRTRIM=3

Maintenant, l'invite bash n'affichera que les 3 derniers noms de répertoire. Vous pouvez choisir 1 pour afficher uniquement le répertoire actuel. Plus d'informations sont disponibles dans la documentation GNU .

L'effet :

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 

Si vous voulez le rendre permanent, ajoutez la ligne suivante à ~/.bashrc au début :

PROMPT_DIRTRIM=3

ou un autre nombre supérieur à zéro.

24voto

unwastable Points 241

C'est le paramètre d'invite que je préfère :

ajouté dans ~/.bashrc

PS1='[\u@\h \W]\$ '    

ça ressemble à ça :

[user@hostname dirname]$

(avec un espace après le $ signe)

8voto

Rajeev Jayaswal Points 221

Personnellement, je préfère voir uniquement le dossier en cours dans l'invite bash. Je peux le faire avec la commande suivante :

PS1='\W\$ '

Si vous voulez qu'il prenne effet après chaque démarrage, ajoutez la commande ci-dessus dans votre ~/.bashrc.

2voto

Allie Carver Points 29

Je me rends compte que c'est très vieux, mais comme personne n'a suggéré de créer un alias, je me suis dit que j'allais le poster. Utilisation de Séquences d'échappement de l'invite Bash J'ai fait un alias shorten

Sur ~/.bash_aliases Ici, vous remarquerez la variable $Blue pour définir la couleur de l'invite, que vous pouvez omettre ou modifier selon vos préférences. J'efface également le terminal lorsque j'appelle shorten.

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

Pour obtenir la chaîne d'invite souhaitée par l'OP :

alias shorten='PS1="$USER:\W$ "'

J'ai des couleurs définies dans ~/.bashrc copié-collé de https://wiki.archlinux.org/index.php/Color_Bash_Prompt . D'ailleurs, qu'est-ce qui se passe avec les couleurs du code Ansi ? Je suis confus rien qu'en les regardant.

Blue='\e[0;34m'         # Blue

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