Un terminal mac os x plus sexy

utilities-terminal 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:
image-30

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:
image-32

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

On obtient alors ceci:
image-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:
image-35

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.

Tags: , ,

A propos de l'auteur

Développeur web spécialisé Symfony, il est avant tout passionné de web tout simplement. Il aime les défis et farfouiller dans le code de Symfony ou Doctrine. Fondateur du blog, il exerce chez Autrement.

Vous avez aimé ce billet? Faites le savoir!

  • Delicious
  • Twitter
  • Technorati Favorites
  • FriendFeed
  • Google Bookmarks
  • Share

45 Réponses

  1. Micka 6 février 2009 à 14 h 13 min #

    Bien ce tuto, je vais peut-être utiliser un peu plus mon terminal mac OS maintenant qu’il est customisé ;-)

  2. dompom 22 février 2009 à 22 h 59 min #

    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 :(

  3. Tim 24 février 2009 à 11 h 21 min #

    \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

  4. dexter86 2 avril 2009 à 17 h 03 min #

    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

  5. dexter86 2 avril 2009 à 20 h 02 min #

    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…

  6. Tim 8 avril 2009 à 13 h 13 min #

    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?

  7. dexter86 10 avril 2009 à 19 h 26 min #

    oui en fait, la coloration ,ne fonctionne pas, sauf au niveau de l’invite de commande.
    que faut il que je fasse ?

  8. dexter86 10 avril 2009 à 21 h 06 min #

    en fait ca marche, j’ai fait export ls=’ls –color=auto »

    et c’est cool !!!

  9. Tim 11 avril 2009 à 13 h 57 min #

    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 ^^

  10. zanoni 7 juin 2009 à 22 h 45 min #

    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

  11. Tim 8 juin 2009 à 12 h 42 min #

    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

  12. zanoni 8 juin 2009 à 15 h 45 min #

    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

  13. Tim 8 juin 2009 à 16 h 55 min #

    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

  14. zanoni 8 juin 2009 à 17 h 25 min #

    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

  15. Tim 8 juin 2009 à 19 h 10 min #

    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 ;)

  16. zanoni 8 juin 2009 à 20 h 14 min #

    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

  17. Tim 9 juin 2009 à 14 h 09 min #

    Ah bien content que ca fonctionne!

    Merci à toi pour tes encouragements ;)

  18. Thibault 20 juin 2009 à 14 h 10 min #

    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.

  19. Tim 21 juin 2009 à 18 h 08 min #

    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

    echo $PATH
    

    dans un terminal

  20. Fl4t 26 septembre 2009 à 22 h 45 min #

    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é.

  21. Tim 28 septembre 2009 à 21 h 18 min #

    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!

  22. mogito 19 octobre 2009 à 14 h 06 min #

    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.

  23. rtournelle 20 octobre 2009 à 8 h 30 min #

    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 « Lépard ».

    Une idée ?

  24. Tim 20 octobre 2009 à 21 h 04 min #

    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 ;)

  25. darwiin 7 mars 2010 à 17 h 14 min #

    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 ?

  26. darwiin 7 mars 2010 à 17 h 17 min #

    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) ;)

  27. Tim 8 mars 2010 à 9 h 50 min #

    Ravi que tu ais trouvé la réponse ^^

  28. floppy84 31 mars 2010 à 10 h 59 min #

    un petit merci pour ce petit tuto sympa et utile.

  29. Adel 5 avril 2010 à 0 h 21 min #

    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 :(

  30. Tim 7 avril 2010 à 10 h 47 min #

    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

  31. Ronin 26 mai 2010 à 11 h 43 min #

    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 !

  32. Ronin 26 mai 2010 à 13 h 38 min #

    Problème résolut par une réinstallation de coreutils

  33. françois 1 juin 2010 à 1 h 15 min #

    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!

  34. françois 1 juin 2010 à 13 h 44 min #

    ok c’est bon pour moi, pb de gcc.

    merci encore!

  35. Antoine 1 juin 2010 à 18 h 49 min #

    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 ?

  36. Ulmya 5 juin 2010 à 23 h 52 min #

    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 !

  37. Tim 7 juin 2010 à 17 h 44 min #

    @Ulmya merci, ca fait tjrs plaisir ;)

    @Antoine Je pense que tu dois faire un selfupdate de port: sudo port selfupdate

  38. jlecour 30 juin 2010 à 14 h 26 min #

    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, … » ;-)

  39. justeungars 16 décembre 2010 à 12 h 48 min #

    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 ?

  40. Rigald 22 décembre 2010 à 0 h 06 min #

    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

  41. Lorenth 19 mai 2011 à 12 h 26 min #

    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

  42. Lorenth 19 mai 2011 à 13 h 56 min #

    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;)

  43. lucas 28 septembre 2011 à 1 h 43 min #

    salut ! merci pour ce tuto!
    mais…. ou est le fichier ~/.bash qui doit etre dans ~/ . merci

  44. Neric 4 janvier 2012 à 1 h 26 min #

    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?

  45. Neric 4 janvier 2012 à 8 h 29 min #

    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.


Laisser un message