L'un de mes conseils préférés sur le terminal Mac OS X consiste à ajouter le dernier processus en cours d'exécution dans le titre du terminal à l'aide du code suivant dans votre .bashrc .
trap 'printf "\033]0; `history 1 | cut -b8-` \007"' DEBUG
Maintenant, je cherche à personnaliser mon invite Bash par défaut en quelque chose de plus fonctionnel. Quels sont quelques exemples utiles d'invite du shell?
J'ai un script
~/bin/setprompt
exécuté par my.bashrc
, qui contient:Ce script définit l'invite sur le nom d'hôte suivi par
:)
si la dernière commande a réussi et:(
si la dernière commande a échoué.la source
Cependant, c'est le plus génial que j'aie jamais vu:
Donner un coup de feu. Cela donne de bonnes informations, mais cela entraînera une augmentation de la charge sur vos boîtes simplement en appuyant sur Entrée à l'invite!
la source
Je suis fan de l'invite bash Cygwin par défaut:
ou sans couleurs:
ressemble à:
la source
J'aime inclure le temps dans le mien. Me donne une sorte de construit
time
autour de mes commandes:Bien qu'après en avoir vu quelques-uns, cela me donne envie de rendre le mien un peu plus intelligent!
la source
Voici le mien (faites défiler vers la droite pour voir un morceau plus intéressant):
Voici le résultat:
Quand je suis dans un dépôt Git :
J'ai choisi d'utiliser plusieurs sauts de ligne et la "règle horizontale" pour faciliter la numérisation des tampons, et les longs chemins ne poussent donc pas le curseur trop loin vers la droite.
la source
Dans ksh:
Dans mon .profile, j'ai défini le var suivant (donc ce var n'est défini qu'une seule fois par session, peu importe le nombre de 'su' que je fais:
Dans mon .kshrc j'ai:
Je deviens root avec l'alias suivant, plutôt que "su" (kroot est un utilisateur root avec un shell ksh au lieu de sh (solaris) ou bash (linux):
J'ai également défini ces deux fonctions:
et enfin à la fin du .kshrc j'ai:
Tout cela me donne par défaut un réglage automatique de la fin de mon invite pour indiquer si je suis root (et à mon tour si j'ai un parent root), le répertoire de travail actuel, le nom d'hôte et l'état de sortie du dernier processus. sprompt supprime le nom d'hôte, réduit le chemin d'accès uniquement au nom de base et supprime les espaces:
Les alias root / me sont bourne de l'administration pré-sudo sur Solaris et les vieilles habitudes sont mortes. Je doute que quiconque appliquerait exactement la même chose de nos jours. Les fonctions de changement rapide et le statut existant continuent d'être très précieux pour moi.
la source
J'ai une invite qui est simple, mais utilise des couleurs pour donner des informations supplémentaires:
La couleur du nom d'hôte (drewble, dans ce cas) est différente sur chaque machine - lorsque j'obtiens une nouvelle machine sur laquelle je travaille, je choisis une couleur arbitraire pour cette machine. De cette façon, lorsque j'ai beaucoup de terminaux ouverts, il est facile de dire dans quelle machine ils sont SSHed et réduit les erreurs que je fais en étant sur la mauvaise machine. De plus, lorsque je le fais
sudo -s
, je mets le nom d'hôte dans toutes les majuscules et colorie le côlon en rouge, encore une fois, cela réduit les erreurs en indiquant clairement que vous agissez en tant que root. Le chemin (mon répertoire personnel,~
dans ce cas) est en vert clair, ce qui permet de séparer les lignes de sortie; si quelque chose crée beaucoup de sortie, il est facile de faire défiler vers le haut et de voir où la sortie a commencé.la source
Ce n'est pas une invite de shell, mais c'est une personnalisation qui peut correspondre à l'esprit de ce que vous demandez.
J'ai défini la variable d'environnement suivante:
De cette façon, si j'ai plusieurs terminaux ouverts via l'écran ou autre chose, je ne perdrai pas l'historique lorsqu'ils s'encombreront mutuellement.
la source
Cela affiche:
Avec 'hostname' en vert si le dernier code retour de la commande exécutée était '0' et en rouge s'il était> '0'.
la source
Semblable à la réponse du chaos , j'aime un peu
ce qui me donne
En incluant l'utilisateur / hôte sur la première ligne, je peux facilement copier toute cette ligne de chemin lorsque j'utilise SCP ou rsync pour envoyer des fichiers dans ce répertoire.
la source
Pour bash j'aime
PS1 = "\ h \ d \ t \ w \ n \ u>"
ce qui se traduit par:
myserver lun sept 07 07:43:11 / u08
root>
Vous obtenez donc le nom d'hôte, la date et l'heure, le chemin complet, puis le nom d'utilisateur sur une nouvelle ligne, avec l'invite. C'est pour minimiser le retour à la ligne en profondeur dans les répertoires. Je suis dans et hors des boîtes toute la journée, donc tout ce que je peux faire pour rester droit est bon. J'ai également mis du mastic pour tout enregistrer. Je peux revenir en arrière et regarder les journaux et voir exactement ce que je faisais quand. Également pratique pour déterminer les séquences d'événements dans plusieurs fenêtres de terminal à la fois.
la source
Mon invite normale est
Cela me donne l'utilisateur actuel, le répertoire actuel de l'hôte actuel ( sans remplacer $ HOME par ~), la
screen
fenêtre actuelle et le dernier retour d'erreur. Étant donné que j'ai normalement 16 fenêtres d'écran ou plus ouvertes, il est utile de connaître la fenêtre actuelle.la source
Mon invite zsh:
Normalement, c'est rouge et blanc avec le répertoire courant en rose. Si root, c'est gris plus foncé avec le nom d'hôte en rouge. Si ce
$?
n'est pas 0, le% final est affiché en rouge.la source