Rendre les commandes du terminal OS X que je tape en gras

11

Je voudrais que les commandes que j'ai saisies (entrée) dans le terminal se démarquent de toutes les sorties.

Par exemple:

imac: ~ buster $ chmod -R gw myfolder
imac: ~ buster $ cd myfolder
imac: myfolder buster $ ls -l
total 0
drwxr-xr-x 9 root admin 306 avr 20 2010 bin
drwxr-xr-x 7 root admin 238 avr 20 2010 comprennent
drwxr-xr-x 73 administrateur root 2482 18 mai 17:16 lib
drwxr-xr-x 6 administrateur root 204 20 avril 2010 man
imac: myfolder buster $ echo Go Giants!
Allez les géants!

gras saute à l'esprit mais j'accepterais une couleur ou même mettre en évidence toute la ligne ...

Je suis sûr qu'il existe un moyen de le faire, mais ce n'est pas évident pour moi ...

Merci!

Meltemi
la source

Réponses:

9

Modifiez votre ~/.bash_profileou ~/.bashrc(voir le commentaire de Gilles ci-dessous) et ajoutez les lignes suivantes:

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${OFF}\u@\h:\w \$${BOLD}"
PS2="> ${BOLD}"
trap 'echo -ne "${OFF}" > $(tty)' DEBUG

Déplacez-vous ${BOLD}pour que la partie de l'invite soit également en gras. Si l'invite elle-même ne doit pas être colorée, vous avez besoin du ${OFF}préfixe PS1, sinon les lignes vides (en appuyant sur Entrée sans avoir écrit quelque chose) rendront l'invite suivante en gras (remerciements à @Jay, merci encore!)

Cela ajoute un piège de débogage pour désactiver le format gras, c'est donc tout un hack. Crédits (fonctionne sans tty de groupe sur OS X cependant).

C'est un peu un hack, alors utilisez-le à vos risques et périls.

Seule la définition de vos invites PS1/ PS2en gras serait plus facile et tout aussi visible:

BOLD="\[\033[1m\]"
OFF="\[\033[m\]"
PS1="${BOLD}\u@\h:\w \$${OFF}"
PS2="${BOLD}>${OFF} "
Daniel Beck
la source
1
Non ~/.bash_profile, mais ~/.bashrc(ou les deux, si vous ne faites pas la source .bashrcde .bash_profile). Ces paramètres doivent être définis pour chaque instance interactive de bash et .bash_profilesont en lecture seule par les shells de connexion.
Gilles 'SO- arrête d'être méchant'
Merci, modifiera ma réponse. Je n'ai pas bashrc, alors j'ai utilisé ce qui était là.
Daniel Beck
2
Je l'ai compris, mettez un $ {OFF} à l'avant: PS1 = "$ {OFF} \ u @ \ h: \ w \ $$ {BOLD}"
Jay
1
@Daniel: Il ne devrait pas y avoir de soulignement ~/.bashrc.
pause jusqu'à nouvel ordre.
1
Si j'utilise la flèche vers le haut quatre fois de suite, pour parcourir l'historique des commandes, les 3 premiers caractères de l'ancienne commande font partie de l'invite et il n'y a aucun moyen de les supprimer. Je ne peux pas les supprimer avec la touche de retour arrière.
Jay
2

J'ai eu un peu de mal avec les solutions ici lors de l'utilisation d'El Capitan (en particulier dans iTerm2 mais également dans l'ancien terminal). J'ai eu deux sortes d'erreurs:

  1. La possibilité de supprimer complètement mon invite bash en appuyant simplement sur espace puis sur retour arrière
  2. Les caractères indésirables trouvant leur chemin dans ma sortie bash, par exemple l'entrée pwdentraînerait

    \[\]/Users/home/Directory

    ou dans

    \e[0m/Users/home/Directory

Je propose la solution suivante, qui est vraiment un peu la même.

    BOLD="\033[1m"
    OFF="\033[m"
    PS1="${OFF}\u@\h :${BOLD}"
    PS2="> ${BOLD}"
    trap 'echo -ne "${OFF}" > $(tty)' DEBUG
stpasta
la source
Bon travail! Juste quelques différences mineures, mais je suis heureux que vous ayez découvert un moyen de travailler avec El Captain.
DrZoo