EEIJ

Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux


Sommaire


Conforme à XHTML 1.0 Strict Conforme à CSS!

On se lasse de tout, sauf de comprendre.
Attribué à Virgile.

Quelques commandes de base en bash

Historique

5 mars 2012 : Création de cette page, encore en construction.
28 août 2012 : Restructuration et quelques compléments.

Difficulté

Pour : un esprit logique et curieux.

 Introduction

Vous ne trouverez toujours pas, ici, un cours complet sur les commandes bash, mais quelques éléments que j'utilise fréquemment et dont les explications sont disséminées sur tout l'internet.

Convention. Afin de ne pas rallonger la ligne de commande, je n'indique plus l'invite devant le nom de la commande.

 Commandes relatives aux répertoires

Pour mémoire, man Nom_de_la_commande pour avoir plus de détails.

Le répertoire courant

Pour savoir dans quel répertoire vous vous trouvez :
pwd qui donne, par exemple : /var/ftp/pub/utilitaires

Le répertoire racine et l'arborescence

Arborescence

Le répertoire racine est à la base de tous les autres. Il est désigné par le caractère /
Les autres répertoires sont tous rattachés à ce répertoire racine, directement ou par des répertoires intermédiaires.
Ils sont désignés comme dans l'exemple ci-dessus : /var/ftp/pub/utilitaires
L'image ci-contre montre le début de l'arborescence du système de fichiers de Mageia.
Chaque utilisateur dispose d'un répertoire personnel. Il est placé dans le répertoire /home. Exemple/home/paiiou

Répertoire racine personnel

Par convention, ce répertoire personnel (racine de tous les autres répertoires personnels) est désigné par : ~

Chemin relatif et chemin absolu

Cette notion est très importante.
Le chemin permet de localiser l'emplacement d'un répertoire.
Dans l'exemple /var/ftp/pub/utilitaires, le nom du répertoire débute par /. C'est ce que l'on appelle le chemin absolu, c'est le chemin par rapport au répertoire racine.
Il est également possible de localiser un répertoire donné par rapport au répertoire courant. C'est le chemin relatif.
Un exemple est donné dans les paragraphes Le contenu d'un répertoire et Changer de répertoire

Le contenu d'un répertoire

Pour lister le contenu du répertoire courant ou d'un répertoire quelconque :
ls (répertoire courant) ou
ls Documents (avec chemin relatif) ou ls /var/ftp/pub/utilitaires (avec chemin absolu).
Cette commande peut comporter des options : man ls ou ls --help pour les connaître.

Changer de répertoire

La commande cd permet d'accéder à un autre répertoire, en précisant le chemin relatif ou le chemin absolu :
cd Documents ou cd /var/ftp/pub/utilitaires

Pour accéder au répertoire parent (celui qui est juste au-dessus) :
cd ..
et pour accéder au répertoire racine personnel :
cd ~

Créer un répertoire

La commande mkdir permet de créer un nouveau répertoire, en précisant le chemin relatif ou le chemin absolu :
mkdir Documents ou mkdir /var/ftp/pub/utilitaires
L'option -p permet de créer l'ensemble des répertoires intermédiaires s'ils n'existent pas encore.

Attention, il faut être root (administrateur) pour créer des répertoires en dehors de son espace personnel.

Supprimer un répertoire

La commande rmdir permet de un supprimer répertoire vide, en précisant le chemin relatif ou absolu :
rmdir Documents ou rmdir /var/ftp/pub/utilitaires

La commande rm -r permet de supprimer répertoire et son contenu, en précisant le chemin relatif ou absolu :
rm -r Documents ou rm -r /var/ftp/pub/utilitaires

Attention, il faut être root (administrateur) pour supprimer des répertoires en dehors de son espace personnel.

Haut

 Commandes relatives aux fichiers

Pour mémoire, man Nom_de_la_commande pour avoir plus de détails.

Créer un fichier vide

Pour créer un fichier, dans le répertoire courant ou en précisant le chemin d'accès, relatif ou absolu :
touch Nom_du_fichier ou touch chemin/Nom_du_fichier
Si d'aventure le fichier Nom_du_fichier existe déjà, seul son horodatage (date et heure du fichier) sera modifié, le contenu restant intact.

Lire le contenu d'un fichier texte

Pour lire le contenu d'un fichier texte, dans le répertoire courant ou en précisant le chemin d'accès, relatif ou absolu,
cat Nom_du_fichier ou cat chemin/Nom_du_fichier

Lire le contenu d'un long fichier texte

Pour lire le contenu d'un long fichier texte, dans le répertoire courant ou en précisant le chemin d'accès, vous avez :
less Nom_du_fichier ou less chemin/Nom_du_fichier
et vous pouvez alors faire défiler le texte :

Effacer un fichier

Pour effacer un fichier, dans le répertoire courant ou en précisant le chemin d'accès :
rm Nom_du_fichier ou rm chemin/Nom_du_fichier efface sans rémission.
Une confirmation vous sera demandée si vous ajoutez l'option appropriée rm -i.

Haut

 Re-nommer, déplacer et copier un fichier ou répertoire

Pour mémoire, man Nom_de_la_commande pour avoir plus de détails.

Re-nommer un fichier ou un répertoire

Pour re-nommer un fichier ou un répertoire, dans le répertoire courant ou en précisant le chemin d'accès :
mv Nom1 Nom2 ou mv chemin/Nom1 chemin/Nom2 Le chemin doit évidemment rester le même.

Déplacer un fichier ou un répertoire

Pour déplacer un fichier ou un répertoire, dans le répertoire courant ou en précisant le chemin d'accès :
mv Nom /chemin/Nom ou mv chemin1/Nom chemin2/Nom Le chemin change, le nom reste le même.

Déplacer un fichier ou un répertoire, en changeant également le nom

Pour déplacer un fichier ou un répertoire, dans le répertoire courant ou en précisant le chemin d'accès :
mv Nom1 /chemin/Nom2 ou mv chemin1/Nom1 chemin2/Nom2 Le chemin et le nom changent.

Copier un fichier ou un répertoire sans son contenu

Pour copier un fichier ou un répertoire (sans son contenu), dans le répertoire courant ou en précisant le chemin d'accès :
cp Nom /chemin/ ou cp chemin1/Nom chemin2/ Le chemin change, le nom reste le même.

Copier un fichier ou un répertoire, en modifiant le nom

Pour copier un fichier ou un répertoire, dans le répertoire courant ou en précisant le chemin d'accès :
cp Nom /chemin/Nouveau_Nom ou cp chemin1/Nom chemin2/Nouveau_Nom Le chemin change, le nom aussi.

Copier un répertoire avec son contenu

Pour copier un répertoire avec son contenu, dans le répertoire courant ou en précisant le chemin d'accès :
cp -R Nom /chemin/ ou cp -R chemin1/Nom chemin2/ Le chemin change, le nom reste le même.

Haut

 Utiliser les jockers

Dans l'écriture des commandes, vous pouvez utiliser un caractère jocker, c'est-à-dire un caractère qui remplace un ou plusieurs caractères classiques.
Un exemple est plus parlant : copier depuis le répertoire courant, vers un autre répertoire, tous les fichiers qui ont l'extension .txt
cp *.txt /autre/repertoire/

Ici le jocker * est utilisé. * remplace n'importe quels caractères, quel qu'en soit le nombre.

JockerUsageExempleSignification
*remplace 0, 1 ou plusieurs caractèresls *.docliste tous les fichiers .doc
?remplace 1 caractèrels *.do?liste tous les fichiers .doc et .dot, par exemple
Haut

 Les redirections

Les flux de données

Sous les systèmes Unix, chaque processus possède trois descripteurs de flux :

Par défaut les deux flux de sortie sont envoyés sur le terminal de l'utilisateur (écran) et l'entrée prend ses données depuis le clavier.

Ces trois flux peuvent cependant être redirigés ailleurs que vers le clavier ou l'écran.
Par exemple, vous pouvez demander à un processus de diriger sa sortie standard vers un fichier, pour en garder une trace.

Les outils de redirection des flux

Les outils de redirection sont >, >>, < et |

Exemples de redirection des flux

Les numéros des descripteurs de flux sont utilisés pour définir quel flux doit être redirigé.
L'omission du numéro signifie que c'est la sortie standard ou l'entrée standard qui est redirigée.

Quelques exemples typiques :

Haut

 Les expansions, substitutions et calculs avec bash

On appelle couramment "expansion" le fait que bash remplace un élément par un autre élément (une substitution). Exemple, les variables :
nombre=3 la variable nombre prend la valeur 3
dans $nombre bash substitue la valeur de la variable au nom de la variable

Les expansions, substitutions et calculs avec bash Cliquez

Haut

 Regex, grep et sed

Deux commandes très utiles pour examiner le contenu d'un fichier et de modifier son contenu : grep et sed.
Ces deux commandes autorisent l'utilisation des expressions régulières ou Regex.

Les expressions régulières, grep et sed Cliquez