540 votes

Couleurs des terminaux OS X

Je suis nouveau sur OS X, je viens d'acquérir un Mac après avoir travaillé pendant un certain temps avec Ubuntu Linux. Parmi les nombreuses choses que j'essaie de comprendre, il y a l'absence de couleurs dans ma fenêtre de terminal - comme celles qui s'affichent (sous Linux) lors de l'exécution de ls -la o git status ...

Je n'arrive pas à trouver comment activer les couleurs dans ma coquille.

10 votes

34 votes

Fermé comme "hors sujet" mais regardez les tags : osx, shell, terminal, couleurs ... il me semble que c'est tout à fait sur le sujet. Couvre OSX, c'est sur le shell, l'utilisation du terminal et veut ajouter des couleurs. Il faut éditer le profil bash, donc oui, je dirais que c'est sur le sujet.

14 votes

Clairement dans le sujet, il s'agit de scripting bash.

804voto

MartinVonMartinsgrün Points 4583

Voici une solution que j'ai trouvée pour activer le global couleurs des terminaux .

Modifiez votre .bash_profile (depuis OS X 10.8) - ou (pour 10.7 et antérieurs) : .profile o .bashrc o /etc/profile (selon la disponibilité) - dans votre répertoire personnel et ajoutez le code suivant :

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced

CLICOLOR=1 permet simplement de colorer votre terminal.

LSCOLORS=... spécifie comment colorer des éléments spécifiques.

Après l'édition .bash_profile lancer un terminal et forcer les changements en les exécutant :

source ~/.bash_profile

Ensuite, allez sur Terminal > Preferences cliquez sur le bouton Profiles et ensuite l'onglet Text et vérifiez Display ANSI Colors .

Vérifié sur Sierra (mai 2017).

21 votes

Je viens de le faire en l'ajoutant à .bash_profile et ça marche. Ça ne marchait pas quand je l'ai ajouté à .profile. Merci !

10 votes

Je viens d'éditer mon /etc/profile et ça marche comme sur des roulettes.

0 votes

@Krister Andersson : +1, j'ai édité la réponse. Merci.

136voto

4levels Points 1073

Vous pouvez utiliser la syntaxe basée sur Linux dans l'un de vos scripts de démarrage. Je viens de le tester sur une machine OS X Mountain Lion.

Par exemple, dans votre ~/.bash_profile

export TERM="xterm-color" 
export PS1='\[\e[0;33m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ '

Vous obtenez ainsi une jolie invite colorée. Pour ajouter la couleur ls vous pouvez ajouter alias ls="ls -G" .

Pour tester, il suffit d'exécuter un source ~/.bash_profile pour mettre à jour votre terminal actuel.

Remarque sur les couleurs : Les couleurs sont précédées d'une séquence d'échappement \e et définie par une valeur de couleur, composée de [style;color+m] et enveloppée dans un [] séquence. par exemple.

  • rouge = \[\e[0;31m\]
  • rouge gras (style 1) = \[\e[1;31m\]
  • coloration claire = \[\e[0m\]

J'ajoute toujours un schéma de couleurs légèrement modifié dans le .bash_profile de Root pour rendre le nom d'utilisateur rouge, afin de toujours voir clairement si je suis connecté en tant que Root (pratique pour éviter les erreurs si j'ai plusieurs terminaux ouverts).

Sur /root/.bash_profile :

PS1='\[\e[0;31m\]\u\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0;34m\]\w\[\e[0m\]\$ '

Pour tous mes comptes SSH en ligne, je m'assure de mettre le nom d'hôte en rouge, pour distinguer si je suis dans un terminal local ou distant. Il suffit de modifier le .bash_profile dans votre répertoire personnel sur le serveur. S'il n'y a pas de .bash_profile sur le serveur, vous pouvez le créer et il devrait s'afficher lors de la connexion.

Si cela ne fonctionne pas comme prévu pour vous, veuillez lire certains des commentaires ci-dessous, car je n'utilise pas très souvent MacOS

Si vous voulez faire cela sur un serveur distant, vérifiez si l'option ~/.bash_profile existe. Si ce n'est pas le cas, il suffit de le créer et il sera automatiquement créé lors de votre prochaine connexion.

2 votes

Comment modifier le bash_profile pour les comptes ssh en ligne ?

1 votes

J'aime PS1 mieux avec $PWD au lieu de \u comme tel : PS1=\[\e[0;31m\]$PWD\[\e[0m\]@\[\e[0;32m\]\h\[\e[0m\]:\[\e[0‌​;34m\]\w\[\e[0m\]\$

1 votes

Voici quelques explications supplémentaires sur les codes de l'invite : wiki.archlinux.org/index.php/Color_Bash_Prompt#Step_by_step .

46voto

NickWoodhams Points 1746

Les méthodes de MartinVonMartinsgrün et 4Levels confirmées fonctionnent très bien sur Mac OS X Mountain Lion.

Le fichier que je devais mettre à jour était ~/.profile.

Cependant, je ne pouvais pas laisser cette question sans recommander mon application préférée, iTerm 2 .

iTerm 2 vous permet de charger des schémas de couleurs globaux à partir d'un fichier. Il est très facile d'expérimenter et d'essayer un grand nombre de modèles de couleurs.

Voici une capture d'écran de la fenêtre iTerm 2 et des préférences de couleur. iTerm2 Color Preferences Screenshot Mac

Une fois que j'ai ajouté ce qui suit à mon fichier ~/.profile, iTerm 2 a pu remplacer les couleurs.

export CLICOLOR=1
export LSCOLORS=GxFxCxDxBxegedabagaced
export PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

Voici un excellent référentiel avec de belles présélections :

Schémas de couleurs iTerm2 sur Github par mbadolato

Bonus : Choisissez "Afficher/masquer l'iTerm2 à l'aide d'une touche de raccourci valable pour tout le système" et liez la touche avec BetterTouchTool pour un instant cacher/afficher le terminal avec un geste de la souris.

1 votes

ITerm2 plantait souvent sur mon système, alors je suis passé à oh-my-zsh. github.com/robbyrussell/oh-my-zsh . Il existe également des thèmes disponibles

0 votes

Hé ! S'il te plaît, change baskerville lien vers le bon. Il semble que ce soit un mauvais copier-coller.

0 votes

@NickWoodhams, quel est le thème de couleur que vous utilisez dans la capture d'écran ?

20voto

marcio Points 714

Si vous voulez que votre ls soit colorisé, vous devez éditer votre fichier ~/.bash_profile et ajouter la ligne suivante (si elle n'est pas déjà écrite) :

source .bashrc

Ensuite, vous modifiez ou créez le fichier ~/.bashrc et écrivez un alias pour la commande ls :

alias ls="ls -G"

Maintenant, vous devez taper source .bashrc dans un terminal s'il est déjà lancé, ou simplement ouvrir un nouveau terminal.

Si vous voulez plus d'options dans votre ls lisez simplement le manuel ( man ls ). Les options ne sont pas exactement les mêmes que dans un système GNU/Linux.

6 votes

Une meilleure option consiste à remplacer la définition de l'"alias" par "export CLICOLOR=" "". Cela a l'avantage de continuer à fonctionner même si vous changez de shell pendant une session de terminal (tant que les variables d'environnement sont héritées - les alias ne le sont pas).

4voto

William Rose Points 640

Vérifiez ce que $TERM donne : le mien est xterm-color et ls -alG donne alors une sortie colorisée.

0 votes

Bien, sur le capitan avec xterm-256color je n'obtiens aucune couleur. CLICOLOR y LSCOLORS ne change pas cela ) :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X