Question Comment puis-je raccourcir mon invite de ligne de commande (bash)?


Actuellement c'est:

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

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

Comment pourrais-je en faire quelque chose qui ressemble plus à:

michael:controllers$

148
2018-06-02 18:48


origine


askubuntu.com/questions/816068/… - nazar2sfive


Réponses:


Pour le changer uniquement pour l'instance de terminal actuelle

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


Pour le changer "en permanence"

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

if ["$ color_prompt" = yes]; puis
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $ '
autre
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u @ \ h: \ w \ $'
Fi

Retirer le @\h, et remplacer le \w avec une majuscule \W, pour que cela devienne:

if ["$ color_prompt" = yes]; puis
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] \ $ '
autre
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u: \ W \ $'
Fi

Enregistrez, quittez, fermez le terminal et démarrez-en un autre pour voir le résultat.


Tons plus d'options!

  • Voir ici pour un howto plus complet, avec beaucoup plus d'options
  • Voir cette réponse pour utiliser un script Python minuscule afin de définir l'invite afin que le raccourcissement ne se produise que lorsque vous vous trouvez dans une structure de répertoire.

213
2018-06-02 19:04



Vous pouvez également avoir beaucoup d'informations ... puis un retour chariot à la fin comme dans unix.stackexchange.com/q/88780/10043 - Michael Durrant
Y a-t-il un moyen de rendre cela mondial? En d'autres termes, si je demande à un autre utilisateur, ce paramètre est reporté, mais uniquement pour moi (c'est-à-dire pas pour l'utilisateur lorsqu'il utilise normalement son compte)? - ctote
Pour avoir un .bashrc partagé qui fonctionne à la fois sous Linux et OSX, je suis passé à unix.stackexchange.com/a/127800/10043 - Michael Durrant
c'est à dire. HOST='\033[02;36m\]\h' HOST=' '$HOST parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; } TIME='\033[01;31m\]\t \033[01;32m\]' LOCATION=' \033[01;34m\]pwd | sed "s # (/ [^ /] \ {1, \} / [^ /] \ {1, \} / [^ /] \ {1, \} /). * (/ [^ /] \ { 1, \} / [^ /] \ {1, \}) / \ {0,1 \} # \ 1_ \ 2 # g "' BRANCH=' \033[00;33m\]$(parse_git_branch)\[\033[00m\]\n\$ ' PS1=$TIME$USER$HOST$LOCATION$BRANCH PS2='\[\033[01;36m\]>' - Michael Durrant
mais voyez la réponse pour le code à utiliser. - Michael Durrant


Exécuter ce code dans le terminal actuel

PROMPT_DIRTRIM=3

Maintenant, l'invite bash affiche uniquement les 3 derniers noms de répertoire. Vous pouvez choisir 1 pour afficher uniquement le répertoire en cours. 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 faire de manière permanente, ajoutez la ligne suivante à ~/.bashrc au début:

PROMPT_DIRTRIM=3

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


83
2018-05-02 06:49



Juste un commentaire: Cela nécessite Bash 4. - Stefan Lasiewski
Nice ... J'ai ajouté un bach_alias pour cela (avec une fonction) promptdir() { PROMPT_DIRTRIM=$1; } juste pour rendre la vie plus facile ... - dgoosens


Ceci est mon paramètre d'invite préféré:

ajouté dans ~/.bashrc 

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

ça ressemble à ça:

[user@hostname dirname]$

(avec un espace après le $ signe)


15
2017-10-10 03:08



Comment pourrais-je ajouter un espace entre chaque mot? Puis-je le colorier? - Dani Springer


Personnellement, je préfère ne voir que le dossier actuel 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 à votre ~ / .bashrc.


6
2018-05-20 11:01





Je me rends compte que c'est super vieux, mais personne n'a suggéré de créer un pseudonyme que je pensais publier. En utilisant Séquences d'échappement rapides J'ai fait un alias shorten 

Dans ~/.bash_aliases Vous remarquerez ici la variable $ Blue pour définir la couleur d'invite que vous pouvez omettre ou modifier en fonction des préférences. Je supprime également le terminal lors de l'appel du raccourci.

alias c='clear'

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

Pour atteindre la chaîne d'invite souhaitée de l'OP:

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

J'ai des couleurs définies dans ~/.bashrccopier et coller à partir de https://wiki.archlinux.org/index.php/Color_Bash_Prompt. Sur une note de côté, quel est le code couleur ansi? Je suis confus juste en le regardant.

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

1
2017-10-26 21:03



Un guide étape par étape serait très utile car je ne sais pas comment accéder à .bash_aliases. Merci - Kayote
"." le préfixe indique un répertoire ou un fichier caché. Le tilde "~" est une forme abrégée de la variable $ HOME. Donc, "~ / .bash_aliases" est juste la forme abrégée de "/home/$USER/.bash_aliases". Pour ouvrir ".bash_aliases", vous pouvez ouvrir un terminal et taper "gedit /home/$USER/.bash_aliases" ou "gedit ~ / .bash_aliases" ou dans votre répertoire personnel, tapez ctrl-h pour afficher les fichiers cachés et ouvrir le fichier directement. . J'espère que cela pourra aider. Vous souhaiterez peut-être également effectuer une recherche sur Google pour trouver des alias utiles. - Allie Carver