Prise de contact avec Unix : Différence entre versions

De Wicri Manuel
imported>Jacques Ducloy
imported>Jacques Ducloy
(Objectifs de ce module)
 
(31 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
Ce module a pour objet de familiariser l'utilisateur avec l'utilisation élémentaire d'Unix (appel de commandes et manipulations simples de fichiers). En effet la génération de [[serveur d'exploration|Serveurs d'exploration]] s'effectue avec le langage de commande d'Unix.
+
{{Exploration corpus, header
 +
|module=Prise de contact avec Unix
 +
|suivant=Prise de contact avec le langage C
 +
}}
 +
Ce module a pour objet de familiariser l'utilisateur avec l'utilisation élémentaire d'Unix (appel de commandes et manipulations simples de fichiers). En effet la génération de [[serveur d'exploration|Serveurs d'exploration]] s'effectue avec le langage de commande d'[[Unix]].
 +
==Objectifs de ce module==
 +
La création d'un serveur d'exploration et de sa plateforme associée s'effectue à l'aide de commandes Unix. On trouvera donc sur le réseau de nombreux exemples de suites de commande Unix pour réaliser une opération.
 +
 
 +
Par exemple, la génération d'un serveur sur la recherche au Kazakhstan (accessible sur [[wicri-europe.fr:Serveur d'exploration sur la recherche au Kazakhstan|Wicri/Europe]]) se fait à l'aide de tables. Une page est par exemple dédiée à la génération des données ([[wicri-europe.fr:Wicri:KazakhstanV1/Paramètres, data]]). Cette page contient des scripts tels que :
 +
<pre>
 +
sh KazakhstanV1/bin/AreaReset.sh
 +
ExplorAreaInit -d KazakhstanV1
 +
sh KazakhstanV1/bin/AreaCreateData.sh
 +
</pre>
 +
 
 +
Ce wiki donne accès à un exemple de Serveur d'exploration sur Rabelais, avec des pages contenant d'autres exemples de shell.
 +
Voir notamment :
 +
* [[Serveur d'exploration sur Rabelais]]
 +
 
 +
Plus simplement, dans le domaine de la santé et des sciences de la vie, ile est possible de créer un serveur en une seule commande unix (plus quelques manipulations).
 +
 
 +
Le but de cette page est d'aider le lecteur à comprendre ce type de directives pour qu'il soit capable de les adapter à ses propres besoins.
 +
 
 
==Prise de contact avec le shell d'Unix==
 
==Prise de contact avec le shell d'Unix==
  
Ligne 23 : Ligne 45 :
 
</source>
 
</source>
 
va écrire <code>coucou</code>, suivi d'un saut de ligne, sur la ligne courante.
 
va écrire <code>coucou</code>, suivi d'un saut de ligne, sur la ligne courante.
 +
 +
Dans l'exemple donné au paragraphe [[#Objectifs de ce module|« objectifs »]], la ligne  « <code>sh KazakhstanV1/bin/AreaReset.sh</code> » provoque un effacement de la plateforme avant une nouvelle génération. La commande <code>sh</code> (shell) va lancer le shell contenu dans le fichier <code>KazakhstanV1/bin/AreaReset.sh</code>.
 +
 +
Les paragraphes qui suivant détaillent les mécanises de désignation de fichiers.
 +
 +
==La hiérarchie des fichiers Unix==
 +
===Chemins absolus===
 +
 +
L'espace disque d'Unix est organisé en une hiérarchie de répertoires (directories) qui contiennent d'autres répertoires ou des fichiers. Tous ces éléments partent d'une racine unique (root).
 +
 +
Pour désigner un fichier ou un répertoire, on utilisera un chemin (path). Un chemin sera dit absolu s'il part de la racine, un tel chemin commencera toujours par un caractère « barre de fraction (slash) ».
 +
 +
La commande «ls» permet d'obtenir la liste des éléments repérés par un chemin. Par exemple pour obtenir les répertoires les plus proches de la racine, il suffit de faire :
 +
 +
<source lang="sh">
 +
ls /
 +
</source>
 +
On obtient ainsi une liste de répertoires avec notamment « bin » qui contient des programmes publics et « user » qui constitue la base de la gestion des usagers. Pour explorer la liste des usagers, on peut continuer à utiliser la commande ls avec un premier niveau de répertoire, par exemple :
 +
 +
<source lang="sh">
 +
ls /users
 +
</source>
 +
===Répertoires de travail, chemins relatifs===
 +
 +
En cours de session, l'utilisateur travaille à partir d'un répertoire privilégié nommé « working directory » ou répertoire courant. Au démarrage d'une session shell, l'utilisateur est en fait positionné sur un répertoire propre à l'usager (home directory). Il peut ensuite se déplacer en utilisant des commandes telles que cd (change directory).
 +
 +
Une commande (<code>'''[[pwd]]'''</code>) - print working directory) permet de connaître ce répertoire. Par exemple, en début de session, en tapant :
 +
 +
<source lang="sh">
 +
pwd
 +
</source>
 +
on obtient l'adresse absolue du « home directory » (par exemple <code>/users/martin</code>
 +
 +
Il est possible de créer de nouveaux répertoires par la commande mkdir (make directory). Dans la suite de ce paragraphe nous allons construire une hiérarchie de répertoires  :
 +
<center>
 +
{| style="bgcolor:yellow;"
 +
|—
 +
|<pre>
 +
  home directory
 +
----------------+                Japon
 +
                | TestDir        +--------
 +
                +--------+      |
 +
                |        | Asie  |
 +
                        +-------+ Inde
 +
                        |      +---------
 +
                                         
 +
                       
 +
</pre>
 +
|}
 +
</center>
 +
Dans un premier temps, on construit un répertoire nommé TestDir. Par précaution, on effectue une commande « <code>'''[[cd (Unix)|cd]]'''</code> » qui, sans paramètre, positionne l'espace de travail sur le « home directory ».
 +
 +
<source lang="sh">
 +
cd
 +
mkdir TestDir
 +
</source>
 +
 +
Pour créer la fin de l'arborescence on va se placer sur Corpus et créer les derniers répertoires.
 +
 +
<source lang="sh">
 +
cd TestDir
 +
mkdir Asie
 +
mkdir Asie/Japon
 +
mkdir Asie/Inde
 +
cd Asie
 +
ls
 +
</source>
 +
 +
Pour effacer un répertoire vide, il faut utiliser la commande rmdir.
 +
 +
Exemple :
 +
cd
 +
ls
 +
mkdir Test1
 +
ls
 +
rmdir Test1
 +
ls
 +
 +
Exercice : effacer la hiérarchie TestDir.
 +
 +
==Variables d'environnement==
 +
Comme dans la plupart des environnement de programmation le shell permet la manipulation de variables. Elles sont repérées par des symboles précédés du caractère dollar ($). Pour la lisibilité des shells, elles sont souvent constituées de caractères en majuscules, par exemple $A, $B ou $DILIB.
 +
 +
;Connaissance des variables d'environnement:
 +
Pour connaître les variables d'environnement utilisables, il suffit de faire :
 +
env
 +
Le shell imprime  une liste dans laquelle on trouvera par exemple USER et sa valeur.
 +
 +
;Affichage et utilisation d'une variable d'environnement:
 +
Pour utiliser une variable, dans les cas simples, il suffit de la nommer en préfixant par le caractère dollar, exemple :
 +
<source lang="sh">
 +
echo Bonjour $USER
 +
</source>
 +
;Création ou affectation d'une variable d'environnement:
 +
Cette possibilité ne sera pas utilisée dans les premiers modules de formation. Nous nous limitons ici à un exemple.
 +
<source lang="sh">
 +
AGE=17
 +
</source>
 +
permet d'affecter la valeur 30 à la variable $AGE.
 +
 +
On peut ainsi l'utiliser ainsi :
 +
<source lang="sh">
 +
echo on n\'est pas sérieux quand on a $AGE ans
 +
</source>
 +
 +
==Voir aussi==
 +
* [[Prise de contact avec le langage C]]

Version actuelle datée du 25 juillet 2020 à 07:21

Ce module a pour objet de familiariser l'utilisateur avec l'utilisation élémentaire d'Unix (appel de commandes et manipulations simples de fichiers). En effet la génération de Serveurs d'exploration s'effectue avec le langage de commande d'Unix.

Objectifs de ce module

La création d'un serveur d'exploration et de sa plateforme associée s'effectue à l'aide de commandes Unix. On trouvera donc sur le réseau de nombreux exemples de suites de commande Unix pour réaliser une opération.

Par exemple, la génération d'un serveur sur la recherche au Kazakhstan (accessible sur Wicri/Europe) se fait à l'aide de tables. Une page est par exemple dédiée à la génération des données (wicri-europe.fr:Wicri:KazakhstanV1/Paramètres, data). Cette page contient des scripts tels que :

sh KazakhstanV1/bin/AreaReset.sh
ExplorAreaInit -d KazakhstanV1
sh KazakhstanV1/bin/AreaCreateData.sh

Ce wiki donne accès à un exemple de Serveur d'exploration sur Rabelais, avec des pages contenant d'autres exemples de shell. Voir notamment :

Plus simplement, dans le domaine de la santé et des sciences de la vie, ile est possible de créer un serveur en une seule commande unix (plus quelques manipulations).

Le but de cette page est d'aider le lecteur à comprendre ce type de directives pour qu'il soit capable de les adapter à ses propres besoins.

Prise de contact avec le shell d'Unix

Le système Unix est piloté par un langage de commande nommé « shell ». Plus exactement, plusieurs langages de commandes sont généralement disponibles sur une installation, par exemple :

  • le shell standard ou « Bourne shell » (sh)
  • le C shell (csh), dont la syntaxe est plus proche du C

Dans ce chapitre, nous resterons à un niveau de généralité compatible avec ces différentes versions.

Une session shell est une suite d'appels de commandes, avec ou sans paramètres. Par exemple, la commande :

date

donne l'heure à l'opérateur.

Pour en savoir plus sur cette commande, on peut appeler la commande man avec comme paramètre date pour en obtenir le mode d'emploi, exemple :

man date

Une autre commande utile est la commande echo qui écrit simplement la zone paramètre sur la sortie standard (écran). Ainsi la commande :

 echo coucou

va écrire coucou, suivi d'un saut de ligne, sur la ligne courante.

Dans l'exemple donné au paragraphe « objectifs », la ligne « sh KazakhstanV1/bin/AreaReset.sh » provoque un effacement de la plateforme avant une nouvelle génération. La commande sh (shell) va lancer le shell contenu dans le fichier KazakhstanV1/bin/AreaReset.sh.

Les paragraphes qui suivant détaillent les mécanises de désignation de fichiers.

La hiérarchie des fichiers Unix

Chemins absolus

L'espace disque d'Unix est organisé en une hiérarchie de répertoires (directories) qui contiennent d'autres répertoires ou des fichiers. Tous ces éléments partent d'une racine unique (root).

Pour désigner un fichier ou un répertoire, on utilisera un chemin (path). Un chemin sera dit absolu s'il part de la racine, un tel chemin commencera toujours par un caractère « barre de fraction (slash) ».

La commande «ls» permet d'obtenir la liste des éléments repérés par un chemin. Par exemple pour obtenir les répertoires les plus proches de la racine, il suffit de faire :

ls /

On obtient ainsi une liste de répertoires avec notamment « bin » qui contient des programmes publics et « user » qui constitue la base de la gestion des usagers. Pour explorer la liste des usagers, on peut continuer à utiliser la commande ls avec un premier niveau de répertoire, par exemple :

ls /users

Répertoires de travail, chemins relatifs

En cours de session, l'utilisateur travaille à partir d'un répertoire privilégié nommé « working directory » ou répertoire courant. Au démarrage d'une session shell, l'utilisateur est en fait positionné sur un répertoire propre à l'usager (home directory). Il peut ensuite se déplacer en utilisant des commandes telles que cd (change directory).

Une commande (pwd) - print working directory) permet de connaître ce répertoire. Par exemple, en début de session, en tapant :

pwd

on obtient l'adresse absolue du « home directory » (par exemple /users/martin

Il est possible de créer de nouveaux répertoires par la commande mkdir (make directory). Dans la suite de ce paragraphe nous allons construire une hiérarchie de répertoires  :

  home directory 
----------------+                 Japon
                | TestDir        +--------
                +--------+      |
                |        | Asie  |
                         +-------+ Inde
                         |       +---------
                                           
                         

Dans un premier temps, on construit un répertoire nommé TestDir. Par précaution, on effectue une commande « cd » qui, sans paramètre, positionne l'espace de travail sur le « home directory ».

cd
mkdir TestDir

Pour créer la fin de l'arborescence on va se placer sur Corpus et créer les derniers répertoires.

cd TestDir
mkdir Asie
mkdir Asie/Japon
mkdir Asie/Inde
cd Asie
ls

Pour effacer un répertoire vide, il faut utiliser la commande rmdir.

Exemple :

cd
ls
mkdir Test1
ls
rmdir Test1
ls

Exercice : effacer la hiérarchie TestDir.

Variables d'environnement

Comme dans la plupart des environnement de programmation le shell permet la manipulation de variables. Elles sont repérées par des symboles précédés du caractère dollar ($). Pour la lisibilité des shells, elles sont souvent constituées de caractères en majuscules, par exemple $A, $B ou $DILIB.

Connaissance des variables d'environnement

Pour connaître les variables d'environnement utilisables, il suffit de faire :

env

Le shell imprime une liste dans laquelle on trouvera par exemple USER et sa valeur.

Affichage et utilisation d'une variable d'environnement

Pour utiliser une variable, dans les cas simples, il suffit de la nommer en préfixant par le caractère dollar, exemple :

echo Bonjour $USER
Création ou affectation d'une variable d'environnement

Cette possibilité ne sera pas utilisée dans les premiers modules de formation. Nous nous limitons ici à un exemple.

AGE=17

permet d'affecter la valeur 30 à la variable $AGE.

On peut ainsi l'utiliser ainsi :

echo on n\'est pas sérieux quand on a $AGE ans

Voir aussi