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)