Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:bash [16/08/2010 02:38] martin_mtl |
doc:programmation:bash [08/11/2010 16:56] smolski |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Shell bash ====== | ||
+ | ===== Page en cours de réalisation. ===== | ||
+ | |||
+ | * Cette page nécessite des relectures et des améliorations. | ||
+ | * Des passages peuvent être simplifiés, restructurés, argumentés, illustrés. | ||
+ | * Un comité d'écriture/relecture peut être suggéré. | ||
+ | * Des liens dirigeant vers des pages internes/externes au wiki peuvent être ajoutées. | ||
+ | |||
+ | Lien au forum df : | ||
+ | * http://debian-facile.org/forum/viewtopic.php?pid=22578#p22578 | ||
+ | |||
+ | Rappel : lire le [[http://wiki.debian-facile.org/reglement|règlement interne]]. | ||
+ | |||
+ | |||
+ | ---- | ||
+ | \\ | ||
+ | |||
+ | Objet : Le shell bas\\ | ||
+ | Niveau requis : DEBUTANT\\ | ||
+ | Commentaires : //Instructions en mode texte utilisant l'interface en// [[manuel:ldc | ligne de commande]]. | ||
+ | |||
+ | ===== Le Shell ===== | ||
+ | |||
+ | Le Shell est un interpréteur (ou interface) de lignes de commande, ce programme fonctionne à partir d'instructions en mode texte saisies dans la/le [[manuel:terminal|console/terminal]]. | ||
+ | |||
+ | Il existe plusieurs shell, bien souvent par défaut, c'est le **Shell Bash** qui est utilisé. | ||
+ | |||
+ | Pour savoir quel shell vous utilisez, tapez : | ||
+ | <code bash> | ||
+ | user@debian-facile:~$ echo $SHELL | ||
+ | /bin/bash | ||
+ | </code> | ||
+ | Pour connaître la version de votre Shell Bash, tapez : | ||
+ | <code bash> | ||
+ | user@debian-facile:~$ bash --version | ||
+ | GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu) | ||
+ | Copyright (C) 2007 Free Software Foundation, Inc. | ||
+ | </code> | ||
+ | |||
+ | ===== Les commandes Linux ===== | ||
+ | |||
+ | * [[manuel:commande | Les commandes Linux]] | ||
+ | |||
+ | ===== Répertoires et chemins ===== | ||
+ | |||
+ | ==== TP01 - Répertoires et chemins par l'exemple. ==== | ||
+ | |||
+ | |||
+ | ==== Préparation du terrain ==== | ||
+ | |||
+ | Placez-vous dans un nouveau dossier créé pour l'occasion. Exemple : | ||
+ | <code bash> | ||
+ | $ cd | ||
+ | ~$ mkdir -p tmp/df_tp01/ | ||
+ | ~$ cd tmp/df_tp01/ | ||
+ | ~/tmp/df_tp01$ | ||
+ | </code> | ||
+ | |||
+ | On va maintenant créer les fichiers et dossiers qui nous servirons pour la | ||
+ | suite. | ||
+ | |||
+ | Voici pour la première partie //révision de bash// : | ||
+ | <code bash> | ||
+ | ~/tmp/df_tp01$ touch phaute_dorthografe | ||
+ | ~/tmp/df_tp01$ touch notes_temporaires | ||
+ | ~/tmp/df_tp01$ touch quisuisje | ||
+ | ~/tmp/df_tp01$ | ||
+ | </code> | ||
+ | |||
+ | ==== Le répertoire courant, ou répertoire de travail ==== | ||
+ | |||
+ | C'est ce qui est indiqué juste à gauche du ''$'' du prompt ''bash''. | ||
+ | <code bash> | ||
+ | ~/tmp/df_tp01$</code> | ||
+ | |||
+ | Vous pouvez l'afficher en tapant la commande ''pwd'' : | ||
+ | <code bash> | ||
+ | ~/tmp/df_tp01$ pwd | ||
+ | /home/captnfab/tmp/df_tp01 | ||
+ | </code> | ||
+ | |||
+ | On change de répertoire de travail avec [[commande:cd | la commande CD]]. | ||
+ | |||
+ | Le répertoire de travail est également stocké dans la variable ''$PWD'' du shell. | ||
+ | <code bash> | ||
+ | ~/tmp/df_tp01$ echo $PWD | ||
+ | /home/captnfab/tmp/df_tp01 | ||
+ | </code> | ||
+ | |||
+ | ==== Chemin relatif / chemin absolu ==== | ||
+ | |||
+ | Pour identifier de manière unique un fichier sur un ordinateur sous Linux, on | ||
+ | donne ce qu'on appelle un chemin vers le fichier. Ce chemin peut être : | ||
+ | * //absolu// | ||
+ | * ou //relatif//. | ||
+ | |||
+ | === Quelques chemins particuliers === | ||
+ | |||
+ | * ''..'' (deux points) désigne le répertoire parent d'un répertoire considéré | ||
+ | * ''.'' (un point) désigne le répertoire considéré | ||
+ | |||
+ | Exemples : | ||
+ | * ''/home/../var'' est un chemin pour le répertoire ''/var'' | ||
+ | * ''ls .'' liste le répertoire courant | ||
+ | * ''.././././.'' est un chemin vers le dossier parent, équivalent à ''..'' | ||
+ | |||
+ | === Chemin absolu === | ||
+ | |||
+ | Un **chemin absolu** est un chemin depuis la racine du système de fichier, ''/'' | ||
+ | |||
+ | Exemples de chemin //absolu// : | ||
+ | * ''/var/cache/apt/archives/'' qui est le dossier contenant les paquets téléchargés pour installation ou mise à jour par ''aptitude'', ou ''apt-get'', ou ''synaptic'' etc. | ||
+ | * ''/home/../var'' est aussi un chemin absolu puisqu'il donne le chemin depuis ''/'' | ||
+ | |||
+ | === Chemin relatif === | ||
+ | |||
+ | Un **chemin relatif** est un chemin depuis le **répertoire de travail** : ''$PWD'' | ||
+ | |||
+ | Exemple de chemin //relatif// : | ||
+ | * ''../../'' est un chemin relatif vers le dossier parent du dossier parent. | ||
+ | Si vous êtes toujours dans ''~/tmp/df_tp01/'', la commande | ||
+ | <code bash> | ||
+ | ls ../.. | ||
+ | </code> | ||
+ | doit vous lister votre //home//. | ||
+ | * ''./plouf/../tchac/'' est un chemin relatif vers le dossier ''$PWD/tchac'' | ||
+ | |||
+ | <note important>''Attention !'' : Virtuellement, un chemin relatif commence **toujours** par :''./''. \\ | ||
+ | Cependant, en règle générale, on peut l'omettre.</note> | ||
+ | |||
+ | Exemple | ||
+ | <code bash> | ||
+ | ls -lh quisuisje | ||
+ | </code> | ||
+ | |||
+ | Signifie en fait : | ||
+ | <code bash> | ||
+ | ls -lh ./quisuisje | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Ligne de commmande ===== | ||
+ | |||
+ | Vous avez déjà sûrement utilisé des commandes à partir des définitions présentes à la page [[manuel:commande|Les commandes Linux]]\\ | ||
+ | |||
+ | Voir : | ||
+ | * [[manuel:ldc | La ligne de commande]] | ||
+ | |||
+ | ===== Métacaractères ===== | ||
+ | |||
+ | Voir : | ||
+ | * [[commande:les_metacaracteres|Les Métacaractères]] | ||
+ | | ||
+ | |||
+ | ===== Alias ===== | ||
+ | |||
+ | Lorsque vous tapez plusieurs lignes de commande différentes et répétitives à la suite, il est intéressant de les rédiger toutes ensembles dans un seul texte (un [[commande:script]]) afin de les appeler d'un coup à l'aide d'un mot clé nommé : [[commande:alias|un alias]]. | ||
+ | |||
+ | Pour voir où et comment réaliser un tel script : | ||
+ | * [[bash:alias2|Réalisation d'un Script contenant des Alias]] | ||
+ | |||
+ | ===== Script ===== | ||
+ | |||
+ | Un **script** est la rédaction dans un fichier texte d'un ensemble de //commandes// et d'expressions régulières (caractères utilisés symboliquement) orientant les instructions données aux commandes. | ||
+ | |||
+ | Pour les DÉBUTANTS AVISÉS, voir là : | ||
+ | |||
+ | * [[scripts_bash | Des scripts à foison commentés en anglais]] |