Initiation à la ligne de commande sous Linux et MacosX en

publicité
Initiation puredata/python, ArsLonga, automne 2005, vincent Rioux
Initiation à la ligne de commande sous Linux et MacosX en vue
d'utiliser Puredata.
Introduction
On rentre une ligne de commande par l'intermédiaire d'un terminal (par exemple
xterm ou gnome-terminal pour linux, /Applications/Utilitaires/Terminal ou iterm
pour osx). Un terminal offre une alternative à la combinaison gestionnaire de
fenêtres/pointeur(souris)/clavier. Pouvant être perçu comme obsolète il n'en offre
pas moins un certain nombre de caractéristiques qui sont difficilement
atteignables par un paradigme purement graphique :
Accès aux options de lancement des programmes.
Programmation de tâches complexes (e.g. successions de tâches).
Meilleure ergonomie en cas d'utilisation prolongée.
Définition d'un véritable environnement de travail au moyen d'alias, de variables,
etc.
Utilisation
aisée de la complétion (en appuyant sur la touche de tabulation
↦ ),
des expressions régulières (par exemple *.py désigne tous les fichiers finissant par
.py).
Meilleur contrôle de la machine (les ordinateurs et leurs programmes ne sont pas
réalisés graphiquement).
Le shell
Une fois un terminal lancé on peut connaître le type de langage de commande
disponible en tapant:
# echo $SHELL
echo est la commande unix la plus simple, elle affiche le contenu de ses
arguments.
$SHELL est une variable (le signe $, le spécifie) qui contient le type de shell par
défaut. Le shell (au sens de coque ou enveloppe entourant un noyau ou kernel) le
plus utilisé est le bash (bourne shell).
A chaque fois que l'on lance un terminal, un script d'initialisation est lu (pour le
bash, il s'agit du script ~/.bashrc).
Le signe tilde ~ désigne le compte utilisateur (ici toto) courant (home repertory),
par exemple ~/patchs est un raccourci pour /home/toto/patchs pour Linux et
/Users/toto/patchspour macosx.
cd, pwd, ls, arborescence de puredata, et spécificités de macosx
Les ordinateurs Macintosh sont désormais livrés avec un système d'exploitation dérivé
d'UNIX, dénommé FreeBSD et déposé en licence libre GPL.
Les applications MacOsx sont livrés dans des bundles une sorte de dossier
/4
Initiation puredata/python, ArsLonga, automne 2005, vincent Rioux
regroupant fichiers binaires, bibliothèques, documentation etc. et portant
l'extension .app . Tous les dossiers bundles ont une architecture commune.
Pour accéder à l'arborescence de Puredata il faut par exemple taper dans un
Terminal:
# cd /Applications/pd39.app/Contents/Resources/
# pwd
/Applications/pd39.app/Contents/Resources
# ls -lh
...
drwxr-xr-x
8 vincent vincent
272B 31 Aug 22:29 bin
drwxr-xr-x
11 vincent vincent
374B 8 Oct 04:44 doc
drwxr-xr-x
32 vincent vincent
1K 21 Oct 12:13 extra
...
cd veut dire change directory et permet de changer de répertoire courant.
pwd affiche le répertoire courant absolu (çàd partant de la racine de
l'arborescence unix donc commençant par un slash /).
ls liste les fichiers et répertoires présent dans le répertoire courant.
Il existe une syntaxe commune pour toutes les commandes de shell.
ls par exemple, peut prendre comme argument un répertoire (par défaut le
répertoire courant) et une série d'options (souvent indiqué par le préfixe - ou -- ).
Par exemple ls -lh ./ liste le répertoire courant en formant une liste (-l = liste) détaillé
des droits (écritures, lectures, ...) et donnant à la taille des fichiers une forme lisible
(-h = human-readable)
La syntaxe de chaque commande est documentée (en anglais et généralement
de façon quelque peu absconse) par la commande man.
# man ls
Le répertoire courant est aussi noté ./ , cette notation permettant d'accéder à des
fichiers ou répertoires de façon relative. Le répertoire juste au-dessus du répertoire
courant est noté ../, ainsi ~/../ pointe vers /home (linux) ou /Users (macosx).
Dans l'exemple précédent (la liste de l'arborescence de Pd) les répertoires les plus
importants sont soulignés.
Dans ./bin, on trouve l'exécutable pd (un fichier binaire directement interprétable
par le système d'exploitation)
# ls ./bin/
libPdTcl.dylib pd pd-watchdog pd.tk pdreceive pdsend
Dans ./extra, on trouve toutes les bibliothèques binaires que l'on doit charger à
/4
Initiation puredata/python, ArsLonga, automne 2005, vincent Rioux
l'initialisation de Pd. On les reconnaît à leur extension:
.pd_linux
pour linux
.pd_darwin
pour macosx
.dll
pour windows
Dans ./doc on trouve la documentation de Puredata et également les fichiers
d'aide rangés dans le répertoire ./doc/5.reference et noté help-nom_du_patch.pd
Les options de la commande ligne pd
L'option - - help ou -h (commune à la plupart des commandes unix) permet
d'afficher les options de la commande. Par exemple:
# ./bin/pd -h
affiche une liste assez fournie d'options diverses.
On retiendra notamment:
-audiodev no
-> indique la carte son à utiliser par son numéro
-mididev
-> idem pour la carte midi
no
-path
path1:path2
-> ajoute les répertoires path1 et path2 où sont situés
des abstractions, des patchs ou des extensions à utiliser. Ceci permet notamment
de maintenir des abstractions personnelles dans un répertoire distant de
l'arborescence interne de Puredata.
-helppath
path1
-> idem pour les répertoires de fichiers d'aide.
-lib
lib1:lib2
-> liste les bibliothèques ou extensions à charger.
Un appel typique de pd en commande ligne pourra prendre la forme suivante:
#/Applications/pd39.app/Contents/Resources/bin/pd -lib py:playlist:Gem -audiodev
2 -mididev 2 -path ~/mes_abstractions mon_patch.pd
On peut heureusement se passer d'avoir à taper toutes les informations contenues
dans ce type de commande en faisant appel aux alias.
.bashrc et définitions d'alias
Il existe un moyen relativement simple (en tout cas très utile) de configurer un
environnement personnel de commandes usuelles par le biais d'un fichier
dénommé ~/.bashrc qui s'exécute automatiquement à la création d'un nouveau
terminal ou d'un shell (par la commande bash).
Sur macox, il faut auparavant créer un fichier ~/.bash_profile
# touch ~/.bash_profile
/4
crée un fichier vide
Initiation puredata/python, ArsLonga, automne 2005, vincent Rioux
# open ~/.bash_profile
l'ouvre avec l'éditeur par défaut
à l'intérieur de ce fichier taper:
source ~/.bashrc
sauver et quitter
# touch ~/.bashrc
# open ~/.bashrc
Dans le fichier ~/.bashrc désormais ouvert vous pouvez indiquer les variables shell
et les alias dont vous voulez disposer, par exemple:
pd39='/Applications/pd39.app/Contents/Resources/bin/pd'
affecte à la variable pd39 la valeur qui correspond au chemin vers l'exécutable
puredata.
alias pd39=$pd39
définit l'alias pd39 correspondant simplement à la valeur de la variable $pd39.
alias pd39gem=$pd39' -lib Gem -helppath ~/gemdoc -noaudio '
définit l'alias pd39gem avec un série d'options.
mes_libs=' -lib py:Gem '
mes_paths=' -helppath ~/gemdoc -path ~/mes_abstractions '
alias pd39gem=$pd39$mes_libs$mes_paths
Ce dernier exemple démontre l'intérêt d'utiliser plusieurs variables pour la définition
d'un seul alias.
Attention: notez bien l'absence d'espace de part et d'autre du signe égal
(var='blabla'), le langage bash possédant une syntaxe contraignante.
Sauver
~/.bashrc une fois que vous avez créé de nouveaux alias
Lancer
la commande bash ou bien source ~/.bashrc
Vous
devez désormais pouvoir simplement utiliser vos alias comme de nouvelles
commandes
par exemple:
# pd39gem
mon_patch.pd
Il est vrai que toutes ces options sont accessibles via les menus de Puredata et
peuvent être prises en compte par défaut à chaque fois que l'on lance Pd, ceci dit,
il s'avère à la longue que la solution la plus souple demeure l'utilisation de la ligne
de commande...
Pour de plus amples informations concernant les commandes shell on pourra par
exemple se reporter à:
http://lea-linux.org/cached/index/Admin-admin_env-shell.html
/4
Téléchargement