NAME

edix_shell - Description du shell unix et de son rôle sous edix

PREAMBULE

Le shell tient une place essentielle sur la plateforme edstar(7f). Vous êtes donc invité, de façon indépendante, à consulter les ressources disponibles afin de vous former plus solidement que vous ne le ferez en suivant seulement nos pages de manuel. Ces ressources externes sont nombreuses et de qualité.

DESCRIPTION

Le shell unix (voir edix_unix(7f)) est un interpréteur de commandes. Vous saisissez des commandes dans un terminal, c'est à dire dans une interface en ligne de commande : voir edix_terminal(7f). Ces commandes sont interprétées par le système d'exploitation de votre ordinateur qui réalise les actions correspondantes : le shell est donc le langage de l'interface utilisateur d'un système d'exploitation de la famille unix.

Les commandes essentielles sont peu nombreuses. En ce sens, il est facile d'accéder au premier niveau du langage shell. C'est à ce premier niveau de langage que nous essayons de nous restreindre dans la pratique proposée sous edix(7f).

Le travail des développeurs d'edix (voir edix_developpeurs(7f)) consiste pour l'essentiel à écrire des scripts shell pour le déploiement et la maintenance du système d'exploitation. Ces scripts vont bien au delà du premier niveau du langage shell. Si vous souhaitez approfondir votre maîtrise du shell, vous pouvez donc vous engager, petit à petit, de plus en plus profondément dans les gestes d'administration du système, en commençant par les mises à jour (voir edix_mise_a_jour(7f)), puis en apprennant à faire évoluer edix (voir edix_fille(7f)), tout en consultant (et en co-écrivant) le livre d'informatique système dont une part significative est consacrée au shell (voir edix_co_ecriture(7f)).

LE FICHIER .BASHRC

à écrire

LES COMMANDES ESSENTIELLES

Résumé des commandes essentielles

pwd afficher l'adresse du répertoire de travail actuel
ls lister le contenu d'un répertoire
cd changer de répertoire
mkdir créer un répertoire
cp copier
mv déplacer (ou changer de nom)
rm effacer

Les symboles à connaître pour utiliser les commandes

/ le répertoire racine
~ le répertoire personnel (typiquement /home/etudiant)
. le répertoire courant (par exemple /home/etudiant/votre_nom/TP1)
.. le répertoire précédent (par exemple /home/etudiant/votre_nom)
\ suite de la commande à la ligne suivante

pwd

La commande pwd vous permet d'afficher l'adresse du répertoire dans lequel vous êtes (print working directory).

Par exemple, si vous venez de vous connecter en tant qu'étudiant, alors la commande

etudiant:~ $ pwd

renverra l'adresse du répertoire personnel de l'utilisateur etudiant qui est

/home/etudiant

ls

La commande ls vous permet de lister le contenu d'un répertoire (list).

Par exemple, lister le contenu du répertoire /home/etudiant/votre_nom :

etudiant:~ $ ls /home/etudiant/votre_nom

Si vous souhaitez afficher les caractéristiques des fichiers listés :

etudiant:~ $ ls -l /home/etudiant/votre_nom

Si vous souhaitez afficher les fichiers cachés :

etudiant:~ $ ls -a /home/etudiant/votre_nom

Si vous souhaitez afficher les fichiers cachés avec leurs caractéristiques :

etudiant:~ $ ls -la /home/etudiant/votre_nom

Si vous savez que vous êtes dans le /home/etudiant/votre_nom, il n'est pas nécessaire de préciser l'adresse :

etudiant:~ $ ls etudiant:~ $ ls -l etudiant:~ $ ls -la

cd

La commande cd vous permet de changer de répertoire (change directory).

Par exemple, aller dans le répertoire /home/etudiant/votre_nom :

etudiant:~ $ cd /home/etudiant/votre_nom

ou

etudiant:~ $ cd ~/votre_nom

Si vous savez que vous êtes dans le répertoire /home/etudiant, vous pouvez simplement donner le nom du répertoire local :

etudiant:~ $ cd ~/votre_nom

Si vous savez que vous êtes dans le répertoire TP1 qui est sous votre_nom, vous pouvez utiliser le symbole du répertoire précédent :

etudiant:~ $ cd ..

mkdir

La commande mkdir vous permet de créer un répertoire (make directory).

Par exemple, créer un répertoire TP1 dans le répertoire /home/etudiant/votre_nom :

etudiant:~ $ mkdir /home/etudiant/votre_nom/TP1

Si vous que vous êtes dans le répertoire /home/etudiant/votre_nom

etudiant:~/votre_nom $ mkdir TP1

cp

La commande cp vous permet de copier un fichier ou un répertoire (copy).

Par exemple, pour copier le fichier /home/etudiant/votre_nom/quatre_plus_un_parallelise/run.sh en /home/etudiant/votre_nom/quatre_plus_un_parallelise/test.sh :

etudiant:~ $ cp /home/etudiant/votre_nom/quatre_plus_un_parallelise/run.sh /home/etudiant/votre_nom/quatre_plus_un_parallelise/test.sh

Si vous êtes dans le répertoire /home/etudiant/votre_nom/quatre_plus_un_parallelise, vous pouvez plus simplement écrire :

etudiant:~/votre_nom/quatre_plus_un_parallelise $ cp run.sh test.sh

Vous pouvez aussi recopier ce fichier dans un autre répertoire, en conservant son nom. Par exemple pour recopier run.sh dans le répertoire /tmp :

etudiant:~ $ cp /home/etudiant/votre_nom/quatre_plus_un_parallelise/run.sh /tmp/

Cela créera un fichier dont l'adresse absolue est /tmp/run.sh.

Pour copier un répertoire, vous devez indiquer à la commande cp que vous souhaitez recopier récursivement le contenu du répertoire, notamment les répertoires qui sont dans ce répertoire, etc. Pour cela on utilise l'option -r. Par exemple, pour recopier le répertoire /home/etudiant/votre_nom/quatre_plus_un_parallelise en un nouveau répertoire qui portera le nom test dans le répertoire /home/etudiant/votre_nom :

etudiant:~ $ cp -r /home/etudiant/votre_nom/quatre_plus_un_parallelise /home/etudiant/votre_nom/test

Pour recopier ce même répertoire dans le répertoire /tmp :

etudiant:~ $ /home/etudiant/votre_nom/quatre_plus_un_parallelise /tmp/

Cela créera un répertoire dont l'adresse absolue sera /tmp/quatre_plus_un_parallelise.

mv

La commande mv vous permet de déplacer un fichier ou un répertoire ; elle permet aussi de changer le nom d'un fichier ou d'un répertoire (move).

Par exemple, pour déplacer le fichier /home/etudiant/votre_nom/quatre_plus_un_parallelise/test.sh en /home/etudiant/votre_nom/test.sh :

etudiant:~ $ mv /home/etudiant/votre_nom/quatre_plus_un_parallelise/test.sh /home/etudiant/votre_nom/test.sh

Comme dans cette exemple le nom est inchangé (seulement l'adresse), vous pouvez ne donner que le répertoire de destination :

etudiant:~ $ mv /home/etudiant/votre_nom/quatre_plus_un_parallelise/test.sh /home/etudiant/votre_nom/

Si vous êtes dans le répertoire /home/etudiant/votre_nom/quatre_plus_un_parallelise, vous pouvez écrire plus simplement

etudiant:~ $ mv test.sh /home/etudiant/votre_nom/

ou encore

etudiant:~ $ mv test.sh ..

rm

La commande rm vous permet d'effacer un fichier ou un répertoire (remove).

Par exemple, pour effacer le fichier /home/etudiant/votre_nom/quatre_plus_un_parallelise/test.sh :

etudiant:~ $ rm /home/etudiant/votre_nom/quatre_plus_un_parallelise/test.sh

Si vous êtes dans le répertoire /home/etudiant/votre_nom/quatre_plus_un_parallelise, vous pouvez écrire plus simplement

etudiant:~ $ rm test.sh

LA NORME POSIX

à écrire

LES SCRIPTS SHELL

à écrire

VOIR AUSSI

edix(7f), edix_co_ecriture(7f), edix_developpeurs(7f), edix_fille(7f), edix_mise_a_jour(7f), edix_terminal(7f), edix_unix(7f)