Calvin et Hobbes dans le Terminal

Deux minutes de recherches intenses afin d’obtenir un titre accrocheur… Ça, c’est fait :)

Tout d’abord, non, votre Terminal n’accueillera pas une chouette image de ma bande dessinée préférée à chaque lancement. Raté.

Dans un précédent article, Greggouille vous avait présenté motd. Le principe : ajouter un « message of the day » au lancement du Terminal. Il est cependant possible d’améliorer ce message, en l’actualisant à chaque lancement.

L’idée est de se baser sur fortune-mod, et d’y placer une série de citations provenant de Calvin et Hobbes. A vous de trouver quelque chose qui vous tente plus si cela vous chante, la procédure sera pratiquement identique ;)

calvin-terminalPour faciliter l’installation, vous aurez besoin de MacPorts.

On commence par installer fortune, un générateur de citations/texte/plein de trucs… Ouvrez le Terminal, et tapez la commande suivante:

sudo port install fortune

Vous pourrez vérifier que l’installation s’est bien déroulée en tapant la commande suivante (oui, simplement ;) ) :

fortune

fortune-launch

Ensuite, on va récupérer les citations qui nous intéressent, et les placer au bon endroit. Il faut savoir que ces citations sont juste stockées dans un fichier texte, et que Fortune se construit un dictionnaire sur base de ces fichiers. Pour éviter que ce dictionnaire ne soit reconstruit à chaque démarrage, on va le compiler dans un fichier de données. Et ce sera ce fichier-là qui sera chargé par Fortune.

Commençons par récupérer le mod Calvin & Hobbes pour Fortune : NetMeister.org

On décompresse l’archive directement depuis le Finder, puis on déplace son contenu (normalement un fichier calvin et un fichier calvin.dat) dans le répertoire /opt/local/share/games/fortune

Créez un nouveau fichier intitulé Makefile directement dans le dossier /opt/local/share/games/fortune. Cela nous permettra de recréer les dictionnaires de Fortune pour tous les nouveaux fichiers textes.

Ouvrez ce fichir Makefile et copiez/collez-y le texte suivant :

POSSIBLE += $(shell ls -1 | egrep -v ‘\.dat|README|Makefile’ | sed -e ‘s/$$/.dat/g’)

all: ${POSSIBLE}

%.dat : %
@strfile $< $@

On rend ensuite ce fichier exécutable grâce à la commande

sudo chmod a+x Makefile

Et finalement on lance la génération des dictionnaires grâce à la commande make

sudo-make-fortune

On peut finalement tester l’installation et la configuration en lançant Fortune sur le fichier Calvin :fortune-calvinEt pour finir, on doit demander au Terminal de charger une citation de Fortune lorsqu’il se lance. Pour cela, plutôt que de passer par motd, comme expliqué dans un article précédent, on va modifier le fichier ~/.profile. Ce fichier est en fait chargé par le Terminal à chaque nouvelle session ( = chaque fois qu’une nouvelle fenêtre du Terminal est démarrée)

Ouvrez ce fichier avec votre éditeur préféré, puis copiez-y la ligne suivante : /opt/local/bin/fortune calvin (à la fin du fichier par exemple)

MacFuse

MacFuse

MacFuse est un moteur de systèmes de fichiers. Comprenez qu’il s’agit d’un système simple à installer et qui permet d’ajouter des fonctionnalités de lecture/écriture vers des systèmes de fichiers non reconnus nativement par votre système d’exploitation. Petit cas concret : vous avez envie d’écrire des fichiers sur une partition NTFS, mais Leopard ne vous permet qu’un accès en lecture seule. Solution? Installer MacFuse pour la gestion des systèmes de fichiers, puis installer le plugin pour l’écriture vers des partitions NTFS. Simple, non?

Si on regarde plus loin, on a la possibilité d’utiliser des systèmes de fichiers provenant d’à peu près n’importe où : disque local, disque réseau, Internet, … Tout passe par une couche d’abstraction gérée par MacFuse, et qui finalement fait « comme si » tous ces fichiers se trouvaient sur votre disque, à portée de souris.

FUSE : File-system in USEr space

L’avantage d’un système comme FUSE est de pouvoir créer des systèmes de fichiers sans avoir à toucher au noyau du système. Pour la petite histoire, tous les appels vers les fichiers ou répertoires (en fait tous les appels vers le filesystem ;) ) passent par le noyau. Le noyau s’occupe d’initialiser tous les modules correspondant à votre matériel au démarrage de l’ordinateur, charge les modules de gestion spécifiques au processeur (pour la gestion d’énergie par exemple…), les systèmes de fichiers (HFS+, NFS, NTFS, EXT3, …). Pour un système Unix/Linux, cela implique donc que pour pouvoir gérer un nouveau système de fichiers, il faille soit attendre que ce système soit géré par le noyau, soit patcher le noyau pour que celui-ci le gère. Sur Mac, c’est un peu différent puisque les sources du noyau ne sont pas accessibles. Il n’est donc pas possible pour l’utilisateur de se dire « J’ai besoin de telle fonctionnalité, elle n’est pas disponible dans le noyau, c’est pas grave : je vais aller prendre tel patch, et refaire mon propre noyau avec les fonctionnalités dont j’ai besoin! ». Raté. C’est pas aussi facile…

C’est là qu’apparaît réellement l’intérêt de FUSE : à partir d’un module du noyau (FUSE), il permettra de gérer tout plein de nouveaux systèmes de fichiers sans toucher au noyau. Une belle couche d’abstraction :) FUSE permet donc de créer un système de fichiers virtuel. Pour reprendre l’explication trouvée sur Wikipedia, un système de fichiers traditionnel doit principalement sauvegarder et retrouver des données, alors qu’un système de fichiers virtuel ne stocke pas les données lui-même. Il agit comme une vue ou une traduction d’un système de fichiers existant ou d’un périphérique de stockage. On peut donc partir d’à peu près n’importe quoi, du moment qu’on a une sorte de contrôleur permettant de transformer ce n’importe quoi en ce qu’on voudrait. Ce contrôleur est le plugin FUSE pour le système de fichiers.

Structure de FUSE (origine Wikipedia)

Structure de FUSE (source Wikipedia)

Concrètement, on a déjà les applications suivantes :

  • FTPFS : gestion des fichiers à partir d’une connexion FTP. A partir du moment où vous possédez un serveur sur lequel vous connecter, vous aurez accès au contenu de ce serveur directement depuis le Finder. Vous aurez alors la possibilité d’accéder à vos fichiers sans vous préoccuper de la couche « FTP », puisque le comportement se rapprochera d’un comportement local.
  • SSHFS : idem que pour le système de fichier précédent. La connexion à un système de fichiers SSH est un peu complexe, pour peu qu’on l’utilise en console (que le puristes ne me lancent pas de cailloux ou de pavés…)
  • NTFS-3G : le module principal pour cet article, puisqu’il permet l’écriture sur des volumes NTFS sans grosses pertes de performances :)
  • GMailFS pour utiliser votre espace de stockage GMail comme un disque local

Et la liste est longue… ;)

Installation

Rien de plus facile : le téléchargement se fait à partir du site officiel. Et pour l’installation, on suit les étapes.

macfuseinstallationUn petit redémarrage sera nécessaire à la fin de l’installation pour que FUSE soit pris en compte.

ntfs3g

Le module NTFS-3G est téléchargeable à cette adresse. L’installation est tout aussi facile (et nécessite un petit redémarrage. Faites d’une pierre deux coups…)

ntfs3g-volume

Et voilà. Rien de bien compliqué pour quelque chose de finalement assez utile et efficace ;)

Résumé de la semaine du 24 au 30 novembre

De nouveau, pas grand chose à se mettre sous la dent cette semaine. Du coup, on va parler un peu d’autre chose ;)

Divers

Pour les fans de Linux, Fedora est disponible en version 10! Tout plein de nouveautés dans tous les sens, comme à chaque nouvelle version (enfin généralement…), les principales se situant bien entendu au niveau du noyau qui passe en 2.6.27, GDM en version 2.24 (et pas 2.26…), Gnome 2.24 également, le support du système de fichiers EXT4, un nouveau thème baptisé Solar, un nouveau système de boot, « Plymouth » sensé améliorer la rapidité du démarrage, tout en le rendant entièrement graphique, une nouvelle version de Network Manager, le petit utilitaire pour les connexions réseaux (il est loin le temps de la configuration des cartes Wifi WPA2 en ligne de commande…).

Une bonne surprise est que Fedora est disponible pour les processeurs PowerPC, et est donc compatible avec tous les iBook, les PowerBook ou plus généralement les machines équipées de processeurs G3, G4 ou G5. Cela devient suffisamment rare que pour être signalé…

Ubuntu pour sa part continue sa roadmap bien tranquillement en vue de la sortie de la 9.04, Jaunty Jackalope. Une des plus grosse nouveautés pour cette distribution est l’effort de la communauté pour passer sous Mono 2.0. Mono, c’est l’équivalent du Framework .NET de Microsoft dans le monde libre.

Cette prochaine version devrait être disponible d’ici fin avril 2009, on a donc encore largement le temps pour les avoir les dernières nouveautés dans notre (ma?) distribution favorite.

Les Microsoft Days 2008 se sont clôturés et toutes les présentations sont disponibles. Mais si, mais si, ça vaut le coup de jeter un oeil ! ;)

Résumé de la semaine du 26 Octobre au 2 Novembre

Il est la, il est grand, il est beau, c’est le résumé de la semaine…

Snow Leopard commence a faire ses griffes
Comme nous avons du vous le dire, Apple a fournis aux développeurs une version de Snow Leopard. En voici quelques détails des nouveautés… 

Finder : c’est sans doute l’une des plus anciennes applications de Mac OS X. Elle a, de plus, très peu évoluée au cours des différentes versions de Mac OS X. Il est censé être totalement réécrit en Cocoa et bien que cela ne soit pas encore entièrement fait, ils ont bien avancés dans la réécriture…

Noyau 64-bits : Comme évoqué dans cet article Léopard supportera complètement le 64bits…

Correction Gamma : il semblerait que dans Snow Leopard, la correction gamma appliquée passe de l’habituel 1,8 à 2,2.

Microsoft Exchange : Apple annonce que Snow Leopard apportera un support des actions basiques dans les applications iCal, Mail et Carnet d’Adresses.

Grand Central :

Afin de pouvoir tirer au mieux parti des multi-coeurs voir d’associé GPU et CPU, Snow Leopard embarquera un module, Grand Central (en hommage à la gare “Grand Central Terminal” de New-York) permettant aux différentes application de profiter au mieux de l’architecture multi-coeurs et ce, de manière transparente, tant pour les programmeurs que pour les utilisateurs…

Compression HFS+ : afin de réduire la taille de certains fichiers (en lecture seule) utilisés dans son système et ses applications, Apple à développer un système de compression (rétro-compatible).

Il y a également de nombreuses autres nouveautés concernant le Terminal, le passage des Préférences Système et des panneaux des développeurs tiers en mode 64-bits, la possibilité d’exporter des flux Automator en tant que Services, le support des calendriers dans le nouvelles langues, l’utilisation d’OpenPAM et d’une nouvelle version d’OpenSSL, la généralisation de l’utilisation de Java 6 pour les applications et applets, modification plus ou moins profonde de TextEdit,… etc.

 

Open Office :

OpenOffice.org, disponible depuis le 13 octobre (et arrivé un peu plus tard en francais), a été téléchargée pas moins de cinq millions de fois. Ce chiffre n’inclut QUE les téléchargements depuis les serveurs d’Open Office, et ne recense pas les versions embarquées directement dans des distributions Linux ou autre… Très beau succès ! Bravo à eux !!!

 

En vrac :

 - Le nouvelle version de la distribution Linux grand public Ubuntu 8.10 est maintenant disponible. Elle apporte le support de la 3G, la possibilité d’installer Linux sur une clef USB et embarque Gnome 2.24.

 - Léopard a fêté son premier anniversaire ce lundi 26 Octobre… Bon anniversaire Chaton ! ;-)

Domestiquer le Terminal (part1)…

Nous vous avons, à plusieurs reprises déjà, présenté des astuces nécessitant (ou pouvant nécessiter) de taper des commandes dans le terminal. Malheureusement le Terminal rebute souvent, sans doute à cause des commandes à retenir « par coeur ». Pourtant bon nombre d’entre elles, pour peu qu’on connaisse un minimum d’anglais, peuvent facilement être comprises, et donc retenues…

Dans cet article, premier d’une série d’une dizaine sans doute, nous allons vous présenter quatre commandes (c’est pas la mort quoi…), sans doute les plus utilisées, qui vous permettrons de vous familiariser avec le Terminal…

 

Le Terminal :
Commençons par ouvrir le terminal. Si vous ne le trouvez pas, cliquez sur la loupe en haut à droite de votre écran, Spotlight, et taper « terminal ». Une fois que Spotlight l’a trouvé, appuyez sur Enter pour le lancer. Un fenêtre apparaît alors avec, chez moi :

Minidingue:~ Sulley$

Comme nous pouvons le voir, la ligne commence par le nom de votre mac suivit de deux points. Ensuite vient un tilde (« ~ ») : ce tilde est en fait le symbole d’un répertoire, il signifie que vous êtes dans ce qu’on appelle votre Home Directory (c’est en fait le dossier qui porte votre nom/pseudo que l’on peut voir dans le menu de gauche du Finder). Pour finir, vient votre pseudo et le symbole « $« .

 

Les commandes :
Et voila, j’en sens déjà qui ont peur… Respirez profondément, tout va bien se passer ! Nous allons vous présenter 3 commandes simples mais efficaces et indispensables, pour commencer, qui vous aideront a appréhender le Terminal.

 

1) Le listing d’un dossier :
Vous êtes dans un dossier et vous aimeriez savoir ce qu’il y a dedans. Pour cela, rien de plus simple, il vous suffit de taper la commande ls. ls permet de LiSter le contenu du dossier dans lequel vous êtes, mais attention : le nom des dossiers que vous voyez dans le Finder (l’interface graphique de Mac OS) sont traduit dans la langue de votre système, avec la commande LS, vous pourrez voir les mêmes dossiers mais dont les nom ne sont pas traduits (e.g. « Téléchergements » -> « Downloads », « Séquence » -> « Movies », etc.).

Exemple :
Minidingue:~ Sulley$ ls
Desktop Incomplete Pando Packages Public
Documents Library Movies Pictures Sites
Downloads LimeWire Music Programming

Vous pouvez également ajouter des paramètres à cette commande. Ces paramètres forcent, ou permettent, de faire encore plus ou de faire la même chose mais avec plus de précision. Les deux paramètres j’utilise le plus sont « -a » et « -l ».

« -a » ( a pour « all »), fera que la commande <em>ls</em> listera en plus des dossiers dit visibles, tous les autres dossiers (invisibles et les dossiers systèmes).

« -l » (l pour « long ») vous affichera un liste détaillée : nom des fichier/dossier avec permission (qui peut lire, écrire, modifier, … le fichier), le propriétaire, le groupe auquel appartient le propriétaire, … etc.

Chez moi, par exemple, cela donne :
Minidingue:~ Sulley$ ls -a
. .bash_profile .lesshst Downloads Programming
.. .csh_history .swp Incomplete Public
.CFUserTextEncoding .cups .viminfo Library Sites
.DS_Store .dvdcss .wormux LimeWire
.Rhistory .emacs.d .xchat2 Movies
.Trash .gdb_history .xxtjfmerc Music
.Xcode .jIRC Desktop Pando Packages
.bash_history .jmol Documents Pictures


et

Minidingue:~ Sulley$ ls -l
total 0
drwx------+ 25 Sulley Sulley 850 25 oct 17:30 Desktop
drwx------@ 53 Sulley Sulley 1802 23 oct 20:35 Documents
drwx------+ 22 Sulley Sulley 748 25 oct 17:33 Downloads
drwxr-xr-x 4 Sulley Sulley 136 13 sep 17:36 Incomplete
drwx------+ 52 Sulley Sulley 1768 8 oct 11:14 Library
drwxr-xr-x 3 Sulley Sulley 102 3 mai 20:39 LimeWire
drwx------@ 14 Sulley Sulley 476 5 oct 21:55 Movies
drwx------@ 491 Sulley Sulley 16694 13 sep 17:36 Music
drwxr-xr-x 3 Sulley Sulley 102 8 oct 10:39 Pando Packages
drwx------+ 318 Sulley Sulley 10812 19 oct 12:59 Pictures
drwxr-xr-x 26 Sulley Sulley 884 29 jui 23:15 Programming
drwxrwxrwx+ 5 Sulley Sulley 170 18 aoû 20:01 Public
drwxr-xr-x+ 5 Sulley Sulley 170 18 nov 2007 Sites

 

2) Voyager sur votre Disque Dur
Maintenant que nous savons lister le contenu d’un dossier, il serait intéressant de pouvoir aller dans le dossier de son choix pour le lister, justement. Voyons donc comment changer de dossier. En anglais, on dit « Change Directory », la commande est donc : cd.

Après « cd », il faut préciser où vous souhaitez allez <u>à partir du dossier ou vous êtes</u>. En reprenant l’exemple ci-dessus, supposons que nous voulions aller dans le répertoire Dowloads.

Minidingue:~ Sulley$ cd Downloads/
ou
Minidingue:~ Sulley$ cd ./Downloads/ (le « . » indiquant le répertoire courant)

Petite astuce 1 : Une fois tapé une ou deux lettres du nom du dossier dans lequel vous souhaitez aller, appuyez sur la touche TAB (touche à la gauche de la touche A) et le Terminal complétera lui même le nom (à condition qu’il n’ait pas le choix entre plusieurs noms).

Petite astuce 2 : Vous n’êtes pas obligé de faire cela pas à pas, si vous connaissez un chemin complet, vous pouvez également le taper, par exemple : cd /Downloads/Films/Recents/incomplets/

Comme vu ci-dessus, le « . » représente le répertoire courant. Les « .. » eux, représente le répertoire parent. Pour remonter d’un niveau, il vous faut donc tapez la commande :

cd ..

Et voila, c’est aussi simple que cela.

 

3) Ou je suis ?
Voila, on s’amuse, on s’enflamme, on sait changer de dossier a foison et on finit par se perdre… On ne sait plus ou on est et ce, malgré l’aide (infime, certe, mais quand même) du terminal. Pas de panic… Si cela vous arrive, il vous suffit de taper la commande pwd pour Print Working Directory. Le terminal vous affichera alors le chemin complet de votre emplacement.

 

4) J’ai oublier comment s’utilise une commande…
Aaaah, en voila une commande qu’elle est pratique : man.
Man (pour « manuel ») est la commande qui permet d’avoir le manuel, le mode d’emploi, d’un commande. Si vous connaissez une commande, mais que vous ne savez plus comment vous en servir, il vous suffit de taper : man nom_de_la_commande. Une fois les informations recherchées trouvées, appuyer que la touche Q de votre clavier pour quitter le manuel.

 

Et voila. Avec ces 4 commandes vous savez déjà voyager au travers des répertoires, lister le contenu de ceux-ci et vous renseigner sur des commandes. On est évidement en droit de s’interroger sur l’utilité d’un Terminal quand on peut faire quasiment tout ce que l’on souhaite avec l’interface graphique de Mac OS X (j’ai nommé Finder), et l’on aurait raison. Sachez cependant que, comme nous l’avons vu dans cet article, le Finder ne montre pas tout : il cache les dossiers systèmes par exemple. Or nous aurions parfois besoin d’aller des ces répertoires et/ou ces fichiers pour supprimer ou modifier certaines choses. Finder nous donne l’impression de savoir tout faire, mais une fois que nous apprenons a connaitre notre mac, que nous savons ou vont se loger certains dossiers/fichiers de programmes que nous installons, … le terminal pour s’avérer non seulement un outil indispensable mais carrément une arme redoutable… Parce que, comme disait Judge Dredd : » Ici la loi, c’est lui ! » ;-)