Prise de contact avec Unix : Différence entre versions
imported>Jacques Ducloy (→Répertoires de travail, chemins relatifs) |
imported>Jacques Ducloy (→Objectifs de ce module) |
||
(8 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== | ==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. | 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. | ||
Ligne 13 : | Ligne 17 : | ||
Voir notamment : | Voir notamment : | ||
* [[Serveur d'exploration sur Rabelais]] | * [[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. | 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. | ||
Ligne 72 : | Ligne 78 : | ||
on obtient l'adresse absolue du « home directory » (par exemple <code>/users/martin</code> | 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 | + | 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> | <center> | ||
{| style="bgcolor:yellow;" | {| style="bgcolor:yellow;" | ||
|— | |— | ||
|<pre> | |<pre> | ||
− | home directory | + | home directory |
− | ----------------+ | + | ----------------+ Japon |
− | | | + | | TestDir +-------- |
− | +--------+ | + | +--------+ | |
− | | | | + | | | Asie | |
− | +-------+ | + | +-------+ Inde |
− | | +--------- | + | | +--------- |
Ligne 89 : | Ligne 95 : | ||
|} | |} | ||
</center> | </center> | ||
− | Dans un premier temps, on construit un répertoire nommé | + | 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"> | <source lang="sh"> | ||
cd | cd | ||
− | mkdir | + | mkdir TestDir |
</source> | </source> | ||
Ligne 99 : | Ligne 105 : | ||
<source lang="sh"> | <source lang="sh"> | ||
− | cd | + | cd TestDir |
− | mkdir | + | mkdir Asie |
− | mkdir Japon | + | mkdir Asie/Japon |
− | mkdir | + | mkdir Asie/Inde |
+ | cd Asie | ||
+ | ls | ||
</source> | </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== | ==Variables d'environnement== | ||
Ligne 129 : | Ligne 149 : | ||
echo on n\'est pas sérieux quand on a $AGE ans | echo on n\'est pas sérieux quand on a $AGE ans | ||
</source> | </source> | ||
+ | |||
+ | ==Voir aussi== | ||
+ | * [[Prise de contact avec le langage C]] |
Version actuelle datée du 25 juillet 2020 à 06: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.
Sommaire
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