La plupart des utilisateurs Mac considèrent probablement que le Terminal est un truc mystérieux où il faut parfois inscrire quelques fromules magiques pour corriger un couac du Mac ou améliorer un détail. Mais pour les unixiens pure souche, c'est la première fenêtre qu'ils ouvrent et ils y font presque tout.

Déjà, Mac OS X a eu la très très sage idée d'inclure tous les outils GNU auxquels nous sommes habitués. Plutôt que de vouloir tout refaire à leur sauce, ils ont pris ce qui était déjà bon dans la communauté. Résultat, sur Solaris, on se fait chier à installer bash, gcc, lsof et autres outils indispensables, à forcer le shell par défaut sur bash plutôt que l'ignoble sh; sur Mac, c'est déjà là.

Ensuite, les développeurs de Mac OS étant des geeks unixiens, ils ont bouffé de la ligne de commande par milliers d'heures. Ils ont donc fait Terminal. Celui qui a un jour utilisé le bash de Cygwin sous Windows sait que la console dans laquelle ça tourne pue mais grave de grave. Redimensionnement uniquement en vertical, pas de tabs, pas de menus, copier-coller pourrave... Terminal fait tout ça bien et les thèmes permettent de travailler confortablement et/ou d'assigner des couleurs à où on travaille: le serveur de production en rouge, celui de dev en vert, ...

Et pour ceux qui ne comprennent pas l'intérêt de la ligne de commande quand on a une interface graphique correcte, imaginez que avez un répertoire avec des dizaines de librairies Java dans des tas de répertoires. Vous voulez trouver lequel contient la classe pour laquelle vous avez un ClassNotFoundException. En interface graphique, vous cherchez après un programme qui fait ça ou vous le codez vous-mêmes. En ligne de commande:

mkdir cat
for i in `find . -name *.jar`; do FNAME=`echo $i |sed -e 's;/;_;g' -e 's/^.//'` ; unzip -t $i > cat/$FNAME ; done
Ca compose un répertoire avec le catalogue de vos librairies. Ensuite, un simple:
grep org.hibernate.foo.Bar *
donne la réponse souhaitée en un centième de seconde.