Académique Documents
Professionnel Documents
Culture Documents
Aide-mémoire
Unix pour
Mac OS X
Lancer le Terminal
Le Terminal se trouve, par défaut, dans le répertoire Applications
/ Utilitaires. Ne le confondez pas avec la console (qui se contente
de logger les messages d'erreur et/ou de déboguage).
vous avez une souris avec deux boutons, pomme-click puis Créer
un alias si vous avez une souris avec un seul bouton).
Si vous êtes curieux, vous pouvez essayer : ce n'est pas tous les
jours qu'on voit un Mac fonctionner en mode texte !
Un système multi-utilisateurs
Mac OS X est un système d'exploitation véritablement multi-
tâches et multi-utilisateurs. Il est dès lors possible de connecter
simultanément plusieurs utilisateurs (ou plusieurs fois le même
utilisateur) au système.
Remarque
Avant d'essayer de lancer vous-même plusieurs shells,
lisez la section page 28 sur le « complètement » automa-
tique, qui vous évitera bien des fautes de frappes.
L'utilisateur root
L'utilisateur root est quelque peu particulier puisqu'il représente
l'administrateur du système. L'administrateur a absolument tous
les droits sur le système. Dès lors, il peut, par exemple, modifier
ou supprimer n'importe quel fichier. Il est donc possible, en fai-
sant une fausse manœuvre, d'endommager le système de manière
irréversible.
Cela ne veut pas dire qu'il est impossible d'exécuter une com-
mande en tant que root (voir commande sudo, page 205) et certai-
nement pas non plus qu'il n'est pas possible de tout dérégler sans
être l'utilisateur root. Simplement, c'est une mesure de précau-
tion plutôt intelligente prise par Apple.
Remarque
Il n'est pas possible d'endommager physiquement l'ordina-
teur, donc il sera toujours possible, au pire, de réinstaller
Mac OS X en partant de zéro. Il serait toutefois dommage
que vous soyez amené à utiliser cette solution.
Le shell
Le shell est un programme utilisé pour lancer des commandes
UNIX ou, éventuellement, d'autres programmes (il est ainsi pos-
sible d'utiliser le shell pour lancer directement, par exemple,
iTunes depuis le nom d'un fichier mp3 – voir commande
open, p. 177).
Il existe une multitude de shells (sh, bash, csh, ksh, tcsh, etc.), cha-
cun disposant de ses particularités. Tous ces shells ont toutefois
évolué en reprenant bien souvent les caractéristiques les plus
intéressantes les uns des autres, si bien qu'aujourd'hui, sans être
identiques, ils se ressemblent tous.
Après le Bourne shell et ses variantes, le shell le plus utilisé sur les
systèmes UNIX est le C shell et ses variantes (qui proposent notam-
ment, lorsque l'on crée des scripts, des structures de programma-
tion proches du langage).
Le Tcsh est un shell basé sur le C shell, c'est le shell installé par
défaut sur Mac OS X.
Ne vous en faites pas si tout cela vous semble un peu confus ; nous
n'utiliserons que deux shells différents (tcsh et bash) et, de plus,
ils ont beaucoup de points communs.
Remarque
Rien n'empêche un utilisateur d'avoir le shell bash par
défaut et un autre utilisateur le shell tcsh. En effet,
chaque utilisateur a ses propres préférences (sauvegar-
dées dans divers fichiers de configuration).
Le Terminal 27
L'invite
Par défaut, l'invite que le shell propose lorsque vous êtes un utili-
sateur « normal » est le « % » (sous tcsh) ou le dollar « $ » (sous
bash). Lorsque vous êtes root, l'invite se transforme en dièse « # ».
bash-2.05a$
bash-2.05a$ tcsh
[speedster:~] pierre%
Le « complètement » automatique
Le shell est capable de compléter automatiquement les noms que
vous entrez, à l'aide de la touche <TAB>. Ainsi, vous n'avez qu'à
entrer les premières lettres d'un nom (nom d'une commande,
nom de fichier, nom de variable, etc.) et à appuyer sur la touche
<TAB> pour que le nom se complète. Voici un exemple illustrant
cette fonction du shell :
$ bun<tab>
$ bunzip2 ar<tab>
$ bunzip2 articles.bz2 <entrée>
lieu d'utiliser 22 frappes, vous n'en utilisez que huit, avec, de plus,
moins de risques de commettre des fautes !
$ ta<tab><tab>
tack tail talk tar
Remarques
– Cette fonction est tellement pratique que tous les utili-
sateurs habitués aux systèmes Unix y ont recours. Nous
vous conseillons d'ailleurs de l'essayer de suite afin que
vous ne l'oubliiez pas... Vous verrez : vous ne pourrez plus
vous en passer !
bash-2.05a$ <tab><tab>
30 Aide-mémoire Unix pour Mac OS X
L'historique
Les shell bash et tcsh gardent tous deux un historique des com-
mandes, ce qui veut dire qu'ils gardent la trace des dernières com-
mandes exécutées.
C'est très pratique, par exemple, pour corriger une ligne de com-
mande erronée :
Remarque
Tout comme pour la fonction de « complètement » automa-
tique, la fonction d'historique des shells est tellement pra-
tique que nous vous conseillons de l'essayer de suite, afin
que vous ne l'oubliiez jamais.
[pierre@speedster ~/ ] $ pwd
/Users/pierre
[pierre@speedster ~/ ] $ more .bashrc
echo "Bonjour le monde !"
[pierre@speedster ~/ ] $ bash
Bonjour le monde !
[pierre@speedster ~/ ] $ bash
Voir echo (p. 99), pwd (p. 189), bash (p. 66), .bashrc (p. 68)
32 Aide-mémoire Unix pour Mac OS X
bash-2.05a$ $<tab><tab>
ls -a -l
ou encore :
ls -al
34 Aide-mémoire Unix pour Mac OS X
Remarque
Il est possible de faire exécuter plusieurs commandes Unix
sur une seule ligne. Pour cela, il faut séparer les différentes
commandes par des points-virgules (« ; »). Par exemple :
root# cd /Users/pierre; ls
Lors de vos premiers pas avec le shell, il est peut-être plus prudent
de ne pas utiliser la commande sudo. Par la suite, si vous désirez
modifier le statut d'un compte utilisateur, rendez-vous dans
Préférences Système, Comptes (rubrique Système), Modifier utili-
sateur et cochez la case précisant que cet utilisateur doit pouvoir
administrer le compte.
Le Terminal 35
Remarque
Pour pouvoir cocher cette case, il faudra que vous utilisiez
un compte ayant l'autorisation d'administrer le système. Si
ce n'est pas le cas, fermez la session et connectez-vous
depuis un compte ayant ce privilège.
La substitution
Une substitution signifie que le shell remplace une expression
par son résultat (ou sa valeur). Il peut s'agir par exemple d'une
commande ou d'une variable. Cette substitution s'effectue avant
que le reste de la commande ne soit exécuté.
Donc, la commande :
pierre% ls -l /Users/pierre/Documents/filmFev2003.txt
/Users/pierre/Documents/filmJav2003.txt
/Users/pierre/Music/musiqueFilm01.txt
Remarque
Les substitutions, bien que parfois utiles lorsque l'on entre
une commande à l'invite, sont principalement utilisées
dans les scripts shells.
Le Terminal 37
Les permissions
Afin d'assurer le bon fonctionnement du système multi-utilisa-
teurs et la protection des informations, tous les fichiers sont dotés
de permissions d'accès.
pierre% ls -l Music/musiqueFilm01.mp3
-rwx-r-xr-x 1 pierre 1812830 Mar 12 17:50 Music/musiqueFilm01.mp3
Par exemple :
pierre% ls -l /Users/John/
.
drwx------ 5 carrera staff 170 Mar 11 14:16 Desktop
drwx------ 3 carrera staff 102 Mar 6 12:40 Documents
.
drwxr-x-r-x 4 carrera staff 170 Mar 6 12:40 Public
drwxr-x-r-x 4 carrera staff 170 Mar 6 12:40 Sites
.
pierre% ls /Users/John/Desktop
ls: : Permission denied
pierre% ls /Users/John/Public
travailDeGroupe1de2.txt
travailDeGroupe2de2.txt
L'on peut constater que, par défaut, Mac OS X autorise les diffé-
rents utilisateurs à consulter le répertoire Public de chaque utili-
sateur, mais que les autres répertoires sont privés.
Entrées standard
Les entrées d'un programme sont les données dont le programme
a besoin pour travailler. Ces entrées peuvent provenir de diffé-
rentes sources :
– du clavier ou de l'écran ;
– d'un fichier ;
– du système ;
pierre% date
Wed Mar 12 20:27:38 CET 2003
Sorties standard
Les sorties d'un programme sont le ou les résultats fournis par un
Le Terminal 41
- l'écran ;
- un fichier ;
- le système ;
- une autre commande.
symbole signification
< fichier utilise le fichier spécifié comme entrée standard
> fichier utilise le fichier spécifié comme sortie standard
>> fichier utilise le fichier spécifié comme sortie standard en
le complétant s'il existe déjà
2 fichier écrit les messages d'erreur dans le fichier spécifié
(sous bash uniquement)
Bash-pierre$ ls -z
ls: illegal option: -- z
Le Terminal 43
Remarque
Le symbole de redirection des sorties (>) est, dans la pra-
tique, plus souvent utilisé que le symbole de redirection
des entrées (<). Ceci est dû au fait que de nombreuses
commandes utilisent, par défaut, des fichiers comme
entrées. Il n'est donc pas nécessaire d'utiliser le symbole
de redirection. Par exemple :
est équivalent à :
more urgent.txt
Les tubes
Les tubes (pipe en anglais) sont une variété de redirection des
entrées/sorties : ils permettent de connecter des commandes . La
différence, technique, entre les tubes et les redirections (par
exemple « > ») est qu'au moyen des premiers, les données ne tran-
sitent pas par un fichier.
44 Aide-mémoire Unix pour Mac OS X
pierre$ ls / | less
Acrobat Reader 4.0
Adobe PhotoDeluxe 2.0
Applications
Applications (Mac OS 9)
ArcSoft PhotoBase
ArcSoft PhotoStudio
CanoScan Toolbox
Cleanup At Startup
Desktop (Mac OS 9)
Desktop DB
Desktop DF
Desktop Folder
:
Remarque
Le symbole « | » est vraiment très important lorsque l'on
utilise les commandes Unix. Il ne se trouve pas par défaut
sur votre clavier. Pour pouvoir l'entrer, il faut utiliser la
combinaison de touches suivante : <alt>+<L> . Il s'agit d'un
« L » majuscule, il faut donc combiner trois touches :
<alt> + <shift> + <l>.
Le Terminal 45
Remarque
Les redirections reflètent tout à fait la philosophie Unix :
plus les outils (commandes) sont simples, plus ils sont sûrs,
faciles à comprendre et faciles à utiliser. Dès lors, au lieu
d'écrire des tonnes de commandes pour répondre aux
besoins les plus divers des utilisateurs, on laisse la possi-
bilité à l'utilisateur de combiner des commandes simples,
afin de créer de nouvelles commandes, adaptées à ses
besoins.