Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.
5 mars 2012 : Création de cette page, encore en construction.
28 août 2012 : Restructuration et quelques compléments.
Pour : un esprit logique et curieux.
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.
Pour mémoire, man Nom_de_la_commande pour avoir plus de détails.
Pour savoir dans quel répertoire vous vous trouvez :
pwd qui donne, par exemple : /var/ftp/pub/utilitaires
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
Par convention, ce répertoire personnel (racine de tous les autres répertoires personnels) est désigné par : ~
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
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.
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 ~
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.
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.
Pour mémoire, man Nom_de_la_commande pour avoir plus de détails.
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.
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
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 :
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.
Pour mémoire, man Nom_de_la_commande pour avoir plus de détails.
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.
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.
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.
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.
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.
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.
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.
Jocker | Usage | Exemple | Signification |
---|---|---|---|
* | remplace 0, 1 ou plusieurs caractères | ls *.doc | liste tous les fichiers .doc |
? | remplace 1 caractère | ls *.do? | liste tous les fichiers .doc et .dot, par exemple |
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 sont >, >>, < et |
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 :
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
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.