Un terminal mac os x plus sexy
Quand on vient de l’univers Linux vers le monde merveilleux de la pomme, on est vite en manque de notre cher terminal, celui qui permet de faire tout ce qu’on veut rapidement et sans se heurter à une interface peu bavarde parfois.
Mais quel choc quand on a le malheur de lancer le terminal mac dans sa configuration de base:

Assez tristounet, aucune couleur et le panel de configuration est peu enclin à nous aider efficacement. Et pourtant, quand on sait que mac os x est construit sur une base unix, il serait dommage de se priver d’un terminal qui pourrait se révéler très utile, surtout pour un développeur comme moi.
On va donc se lancer dans un petit tuning de terminal.
Première étape, si vous ne l’avez pas déjà fait, il va falloir installer MacPort, pour ceux qui ne connaissent pas, c’est un gestionnaire de paquet un peu comme l’est APT pour debian/ubuntu.
Une fois MacPort dans la place, on va justement se servir de notre cher terminal et installer le paquet coreutils grâce à la ligne suivante:
sudo port install coreutils +with_default_names
Une fois l’installation complète (attention elle peut prendre un peu de temps), on va pouvoir commencer le tuning.
Première chose, le fond blanc n’est pas l’idéal surtout que les autres couleurs à notre disposition seront aussi assez claires. Il suffit pour ça d’aller dans les préférences du Terminal > Réglages > Fenêtre et changer la couleur d’arrière plan. Personnellement j’ai mis noir avec une transparence à 60%, moins flashy pour les yeux.
Voici un petit récap de mes autres paramètres à affiner selon vos souhaits:

On continue en éditant le profil de notre terminal grâce au fichier ~/.bash_profile. L’idéal serait de se faire la main avec VIM mais n’importe quelle éditeur ira très bien. A noter que si vous n’aviez jamais mis le nez dans le terminal, il est probable que le fichier n’existe pas. Aucun souci pour le créer.
Je vous met ici mon fichier, rien d’énorme juste des couleurs que je trouve agréables, le listing des couleurs disponibles est plus bas:
export PATH=/usr/local/mysql/bin:/sw/bin:/sw/sbin:/opt/local/bin:/opt/local/sbin:$PATH export MANPATH=/opt/local/share/man:$MANPATH # Couleurs du préfix du terminal NM="\[\033[0;38m\]" HI="\[\033[0;37m\]" HII="\[\033[0;36m\]" SI="\[\033[0;33m\]" IN="\[\033[0m\]" export PS1="$NM[ $HI\u $HII\h $SI\w$NM ] $IN" if [ "$TERM" != "dumb" ]; then export LS_OPTIONS='--color=auto' eval `dircolors ~/.dir_colors` fi # alias alias ls='ls $LS_OPTIONS -hF' alias ll='ls $LS_OPTIONS -lAhF' alias cd..="cd .." alias c="clear"
Puis le fichier ~/.dir_colors
# Below, there should be one TERM entry for each termtype that is colorizable TERM linux TERM linux-c TERM mach-color TERM console TERM con132x25 TERM con132x30 TERM con132x43 TERM con132x60 TERM con80x25 TERM con80x28 TERM con80x30 TERM con80x43 TERM con80x50 TERM con80x60 TERM xterm TERM xterm-color TERM xterm-debian # Below are the color init strings for the basic file types. A color init # string consists of one or more of the following numeric codes: # Attribute codes: # 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed # Text color codes: # 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white # Background color codes: # 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white NORMAL 00 # global default, although everything should be something. FILE 00 # normal file DIR 01;36 # directory LINK 01;37 # symbolic link. (If you set this to 'target' instead of a # numerical value, the color is as for the file pointed to.) FIFO 40;33 # pipe SOCK 01;35 # socket DOOR 01;35 # door BLK 40;33;01 # block device driver CHR 40;33;01 # character device driver ORPHAN 40;31;01 # symlink to nonexistent file # This is for files with execute permission: EXEC 01;35 # List any file extensions like '.gz' or '.tar' that you would like ls # to colorize below. Put the extension, a space, and the color init string. # (and any comments you want to add after a '#') # If you use DOS-style suffixes, you may want to uncomment the following: #.cmd 01;32 # executables (bright green) #.exe 01;32 #.com 01;32 #.btm 01;32 #.bat 01;32 .tar 01;31 # archives or compressed (bright red) .tgz 01;31 .arj 01;31 .taz 01;31 .lzh 01;31 .zip 01;31 .z 01;31 .Z 01;31 .gz 01;31 .bz2 01;31 .deb 01;31 .rpm 01;31 .jar 01;31 .dmg 01;31 # image formats .jpg 01;34 .png 01;34 .gif 01;34 .bmp 01;34 .ppm 01;34 .tga 01;34 .xbm 01;34 .xpm 01;34 .tif 01;34 .png 01;34 .mpg 01;34 .avi 01;34 .fli 01;34 .gl 01;35 .dl 01;35 # source code files .pl 00;33 .PL 00;33 .pm 00;33 .tt 00;33 .yml 00;33 .sql 00;33 .html 00;33 .css 00;33 .js 00;33
C’est déjà plus agréable mais il manque la geek touch. Pour arranger ça, on va rendre notre terminal accessible tout le temps, avec un style quake like.
Pour ce faire, première chose, installer SIMBL. Une application, qui permet ensuite de faire des plugins pour des applications cocoas (comme notre terminal). Une fois installé, téléchargez visor, un plugin SIMBL.
Voilà, killez votre terminal s’il est encore ouvert et quand vous le relancez, celui-ci ne s’ouvre pas mais un petit icone est apparu dans votre menubar:
![]()
Choisissez « Visor Preferences… », définissez le raccourci que vous souhaitez et testez! Voilà, plus besoin de fermer votre terminal, celui-ci se range dans votre menubar. Pour les sceptiques, une petite vidéo du résultat:
Attention, un petit bonus s’est caché dans ce billet.
48 Réponses
Laisser un message


Bien ce tuto, je vais peut-être utiliser un peu plus mon terminal mac OS maintenant qu’il est customisé ;-)
carrement ..trop top Tim.. c’est total ce que je cherchais !!!!
(et je suis tombé sur ton blog par hasard .. via Google .. )
Par contre l’install du port coreutils .. me pete une erreur a l’install pfff :(
\o/
C’est vrai que ce billet est assez apprécié de google de ce que j’ai vu dans les stats ^^
Fait péter ton erreur pour coreutils si t’es toujours en galère
salut,
désolé de ressortir un (pas si) vieux (que ca) post, mais j’ai un pbm, avec l’install de coreutils, macport bloque tout le temps!
est-ce que l’installe est vraiment longue ?
defois je fais un petit ctrl-z pour recommencer
et quand je recommence j’ai ce message :
Waiting for lock on /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_ncursesw/work/.macports.ncursesw.state
une idée ?
merci
en fait c’est bon j’ai reussi l’installation , mais je vois où les couleurs doivent s’afficher…les types de fichiers ne se colorent pas…
Hello, petites vacances obligent j’ai pas pu répondre avant ;)
Tant mieux si l’installation a réussi, par contre, je n’ai pas saisi ton dernier message, la coloration des fichiers n’est pas correcte?
oui en fait, la coloration ,ne fonctionne pas, sauf au niveau de l’invite de commande.
que faut il que je fasse ?
en fait ca marche, j’ai fait export ls=’ls –color=auto »
et c’est cool !!!
En fait tu peux le mettre directement dans ton .bash_profile via les lignes que j’ai mises plus haut
if [ "$TERM" != "dumb" ]; then export LS_OPTIONS='--color=auto' eval `dircolors ~/.dir_colors` fi # alias alias ls='ls $LS_OPTIONS -hF'Et tu auras ton ls avec color=auto également mais ta solution fonctionne aussi parfaitement ;)
A toi les joies du terminal mac ^^
salut,
j ai un souci avec l installation de coreutils voici ma capture:
sudo port install coreutils +with_default_names
Password:
—> Fetching expat
—> Attempting to fetch expat-2.0.1.tar.gz from http://mesh.dl.sourceforge.net/expat
—> Verifying checksum(s) for expat
—> Extracting expat
—> Configuring expat
Error: Target org.macports.configure returned: configure failure: shell command » cd « /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_textproc_expat/work/expat-2.0.1″ && ./configure –prefix=/opt/local –mandir=/opt/local/share/man » returned error 77
Command output: checking build system type… i386-apple-darwin9.7.0
checking host system type… i386-apple-darwin9.7.0
checking for gcc… /usr/bin/gcc-4.0
checking for C compiler default output file name… configure: error: C compiler cannot create executables
See `config.log’ for more details.
Error: The following dependencies failed to build: gettext expat libiconv gperf ncurses ncursesw gmp
Error: Status 1 encountered during processing.
pouvez vous m aider merci d’avance . je precise que j ai installé préalablement MacPort
Hello,
Apparemment, macport essaye d’installer autre chose, qui doit être en cache ou je ne sais quoi et il plante sur une dépendance.
essaye déjà de mettre à jour macport:
sudo port -d selfupdate
puis tente un clean:
sudo port clean
Merci Tim pour ta prompte réponse,j ai suivi tes instructions mais voici le retour:
MacPorts installation is not outdated so it was not updated
DEBUG: Setting MacPorts sources ownership to root
gar13-3-82-240-83-164:~ zanoni$ sudo port clean
Can’t map the URL ‘file://.’ to a port description file (« Could not find Portfile in /Users/zanoni »).
Please verify that the directory and portfile syntax are correct.
To use the current port, you must be in a port’s directory.
(you might also see this message if a pseudo-port such as
outdated or installed expands to no ports).
donc apparemment macports est à jour, j ai un souci avec clean,j ai tout de même tenté l install de coreutils sans succès.
merci encore pour ton aide
Je viens de vérifier, et expat est en fait une dépendance de coreutils.
Donc normal qu’il essaie de l’installer :D
Le pkoi il ne veut pas me dépasse un peu par contre:
Tu peux déjà matter quelle version du gcc est installé sur ta machine?
gcc –version
re salut TIM
tout d ‘abord je débute avec bash petite expérience sur ubuntu et maintenant sur mac osx 10.5
mon problème pour répondre à ta question:
gcc -v
ou gcc –version
gcc commad not found
avec spotligth je trouve gccmakedep version 1.0.2
j espère ne pas abuser de ton temps et de ta patience
merci
Aucun souci, je fais des billets techniques, faut bien que j’assure derrière :p
Bon apparemment, le souci est assez simple, tu as pas GCC (compilateur utilisé pour « installer » l’application) d’installer.
J’aurais du le préciser en début de billet.
Le plus simple pour l’installer c’est soit de télécharger xcode soit de l’installer depuis ton CD d’install de Mac os X.
En l’occurrence ici tu n’as besoin que de GCC (tu va pouvoir choisir la listes des composants, pcq yen a pour 800mo quand même :p), donc tu peux te permettre de n’installer que lui.
Voilà, tiens moi au courant ;)
Un grand merci en effet j ‘en étais arrivé a la conclusion que je n ‘avais pas le compilateur gcc. leopard ne l ‘a pas par défaut je suis allé sur le site apple developer connection, après une rapide inscription j ai téléchargé xcode tool (assez lourd tu as raison). maintenant tout fonctionne
ma version gcc est 4.0.1
coreutils est installé en suivant tes conseils
encore bravo pour ton dévouement et la rapidité de tes interventions
Ah bien content que ca fonctionne!
Merci à toi pour tes encouragements ;)
Ce petit truc m’intéresse beaucoup mais lorsque je copie colle la ligne de commande sudo port il me dit command not found. Pourtant, j’ai bien installé le logiciel MacPorts.
Si y a encore de la consultation ici-bas, j’avoue que j’apprécierais un peu d’aide.
Hello,
c’est port ou sudo qu’il connait pas?
Pour port, il est normalement dans /usr/local/bin
S’il y est, vérifie que ton path inclus bien ce répertoire en faisant un
dans un terminal
J’ai copié ton bash_profile mais au lancement du terminal une erreur :
-bash: dircolors: command not found
Snow leopard user donc ta commande n’est peut-être plus d’actualité.
Hello Fl4t,
Je n’ai toujours pas eu l’occasion de tester sous snow leopard, mais je prendrais le temps dès que possible pour vérifier tout ça.
Merci de ta remarque!
Perso je suis sous snow leopard et je n’ai pas eu de problèmes, je regarderais ce soir la config exacte pour plus d’infos mais en tout cas ca fonctionne très bien.
Super.
Tout fonctionne sur léopard, à l’exception des accents dans les noms de fichiers qui ne s’affichent pas.
exemple:
« Léopard » s’affiche « LeÌpard ».
Une idée ?
Hello,
je n’ai jamais rencontré ce genre de souci. Mais ça doit venir d’un souci d’encodage. Faudrait investiguer du côté de lutf8 et consor ;)
Salut,
je rencontre un problème avec macports. J’arrive au stade suivant:
Computing dependencies for coreutils
Cleaning coreutils
Error: Port default not found
Est-ce que vous avez une idée ?
Je me réponds à moi même: j’ai pas fait de copier/coller, du coup j’ai manqué les « _ »… Avec la bonne option ça marche déjà mieux (+with_default_names) ;)
Ravi que tu ais trouvé la réponse ^^
un petit merci pour ce petit tuto sympa et utile.
Bonjour,
Moi aussi je me suis mis au quake-style mais je bute sur le problème de la coloration du terminal comme dexter, j’ai même la barre de défilement a droite du terminal qui est toujours présente !!
Pourtant j’ai suivi le tuto à la lettre :(
Merci floppy ;)
@Adel
Pour la barre, elle sera forcément présente, en tout cas moi je l’ai aussi : )
Pour les couleurs, dexter avait réussi avec une méthode, j’en propose une en dessous
Voir réponse
Bonjour à tous,
Tout d’abord merci beaucoup pour ce tuto. Par contre j’ai quelques problème sur Snow Léopard :
J’ai créer mes deux fichiers .bash_profile et .dir_colors dans ~/
Au lancement du terminal erreur :
-bash: dircolors: command not found
Ensuite les alias pour ls ne fonctionnent pas j’ai un retour d’erreur :
ls: illegal option — -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
Quelqu’un pourrait m’aider ?
Merci d’avance !
Problème résolut par une réinstallation de coreutils
Bonjour,
J’ai un petit problème qui est en fait le même que celui qu’à eut Ronin juste au dessus : (sous snow léopard aussi)
J’ai créer mes deux fichiers .bash_profile et .dir_colors dans ~/
Au lancement du terminal erreur :
-bash: dircolors: command not found
Ensuite les alias pour ls ne fonctionnent pas j’ai un retour d’erreur :
ls: illegal option — -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
Si vous avez une solution, je suis preneur!
Merci d’avance et félicitation pour ce tuto!
ok c’est bon pour moi, pb de gcc.
merci encore!
Bonjour,
Je rencontre un problème lors de l’installation (enfin tentative) de coreutils :
pc-res-c224:~ Antoine$ sudo port install coreutils +with_default_names
Warning: No index(es) found! Have you synced your source indexes?
Error: Port coreutils not found
Before reporting a bug, first run the command again with the -d flag to get complete output.
Une idée d’où vient le problème ?
Salut,
Je voulais te féliciter pour ton article.
Je connaissais déjà la customisation du terminal (je viens du monde linux) mais j’adore Visor :P Ultra pratique :)
Bonne continuation !
@Ulmya merci, ca fait tjrs plaisir ;)
@Antoine Je pense que tu dois faire un selfupdate de port: sudo port selfupdate
Après des années d’utilisation de MacPorts, pendant lesquelles j’ai souffert en installant des paquets (et oui, il installe toutes les dépendances, même si elles sont déjà fournies par Apple), j’ai décidé d’utiliser Homebrew : http://mxcl.github.com/homebrew/ C’est juste « trop bien ».
Seconde suggestion : utilisez Zsh.
C’est tout comme Bash, mais en mieux. Demandez à Tim combien de fois par semaine je lui dis : « ah, si tu utilisais Zsh, tu pourrais faire ça comme ça, … » ;-)
Salut,
Je dois être un boulet mais en suivant les instructions et les conseils dans les commentaires j’obtiens quand même :
-bash: dircolors: command not found
et si ls :
ls: illegal option — -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
un coup de main s’il vous plaît ?
Après une mise à jour de MacPort j’ai eu le même problème. dircolors ne fonctionnait plus.
Voilà la ligne à rajouter dans le fichier .bash_profile.
export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH
Salut,
J’ai exactement le même problème. Après avoir mis à jour MacPort, j’obtiens ça :
-bash: dircolors: command not found
et la commande ls ne fonctionne plus
ls: illegal option — -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
Des idées?
Merci d’avance
Ok je sors ^^’
J’avais oublié de réinstaller « coreutils » après avoir fait un clean complet lors de l’update de Macports.
Merci Rigald pour l’info;)
salut ! merci pour ce tuto!
mais…. ou est le fichier ~/.bash qui doit etre dans ~/ . merci
bonjour,
j’ai le problème suivant: ls: illegal option — -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
a priori ca ne vient pas du gcc (gcc 4.0.1).
par contre quelqu’un peut il détailler la procédure pour reinstaller coreutils sous Tiger?
ok résolu an ajoutant le chemin suivant /opt/local/libexec/gnubin dans le PATH inscrit dans .bash_profile.
D’après le site (http://hocuspokus.net/2008/01/a-better-ls-for-mac-os-x/)), l’option +with_default_names ne permet plus de réecrire la commande ls.
La solution était aussi dans les commentaires.
Merci pour ta page.
putain mais c’est pas vrai ça! on demande le telechargement de terminal et on tombe sur …une merde encore une de plus a croire que vous ne comprenez pas le français ou vous êtes completement abruti ou quoi!
Merci beaucoup Tim pour ce super tuto, très utile pour moi qui travaille à la fois sous mac et linux sans pour autant avoir aucune formation de bases en informatique
Je voulais dire que c’est super bien d’accord.
Mais après avoir effectué les modifs, je n’ai plus accès à la command fink.