I./ Le shell Bash, c'est quoi!
Si vous n'êtes pas habitué à utiliser une distribution linux, vous ne savez sans doute pas ce qu'est le shell tout court !
Habitué à windows ? Dites vous que le shell, c'est un peu comme l'invite de commande, mais en beaucoup beaucoup plus puissant.
En effet, tout ce que vous voulez faire sur votre système GNU/Linux peut être fait en ligne de commandes.
Tout ? Tout ! Tout ce que vous voulez, tout ce dont vous rêvez, et tout ce à quoi vous ne pensiez même pas en utilisant votre ordinateur.
Alors Bash, c'est quoi ?
C'est un ensemble d'outils cohérent vous permettant d'appréhender au mieux le shell. Il en existe d'autres. A ce sujet, vous pouvez lire le tutoriel rédigé par Smurf sur zsh, qui est un autre shell.
Maintenant que vous en savez un peu plus sur le shell Bash, apprenons à nous en servir.
En dernière partie, nous vous montrerons un exemple de configuration de votre shell afin qu'il corresponde au mieux à vos besoins et à vos envies les plus folles !
II./ Quelques commandes utiles.
Sur la majorité des distributions, Bash est le shell par defaut. Pour vous en persuader, tapez cette commande dans votre shell :
cat /etc/passwd | grep
Voici le resultat de la commande en ce qui me concerne :
vercingetopif:x:1000:1000:vercingetopif,,,:/home/vercingetopif:/bin/bash
Ainsi, vous pouvez voir que mon nom d'utilisateur est vercingetopif, que mon uid est 1000, mon dossier personnel se trouve dans /home/vercingetopif/, et que mon shell par defaut est bien bash. Vous venez de taper votre premier commande dans un shell. Si Bash est le votre par defaut, bravo ! Sinon, pour changer votre interpréteur de commande, tapez la commande : chsh Vous devez alors mettre lorsqu'on vous le demande : /bin/bash
Voici maintenant une liste non exhaustive de commandes souvent utilisées. Sachez que ces commandes sont les mêmes sur tous les interpréteurs de commande GNU/Linux. Les différences entre les différents shell seront au niveau de la complétion automatique plus ou moins performantes, de la configuration qui peut être plus ou moins avancée, ou de la gestion de petite choses inutiles donc indispensables !
cd :
Permet de se déplacer dans un répertoire.
cd /home/moa/Documents vous place dans le sous répertoire de votre dossier personnel, placé lui même dans le dossier home qui est à la racine du système.
ls :
Liste les fichiers d'un repertoire.
ls : liste le répertoire courant
ls /home/moa : liste le répertoire moa, dans home
ls -l : affiche sous forme de liste
ls -h : affiche les valeurs numériques de taille de fichier sous forme Humaine (avec une unité "lisible" : Ko, Mo, Go, To...)
ls -a : affiche les fichiers cachés
ls --color : affiche le résultat avec une couleur différentes suivant le type d'objet (fichier, dossier, etc...)
ls -R : affiche le contenu du dossier de façon récursive : les sous dossiers seront eux aussi listés.
touch :
Crée un fichier vide.
touch un_texte.txt : crée un fichier vide nommé un_texte.tx
rm :
Supprime un fichier.
mkdir :
Permet de créer un répertoire.
rmdir :
Supprime un répertoire.
Si celui-ci n'est pas vide, on peut ajouter l'attribut -f (force).
Pour supprimer un repertoire, on peut aussi faire : rm -rf mon_dossier_a_jeter
cat :
Permet d'afficher le contenu d'un fichier.
cat monfichier
tail :
Affiche les dernière lignes d'un fichier. Par défaut, le nombre de lignes affichées est 10.
tail /var/log/auth.log : affiche les dernières lignes du fichier auth.log
tail -f /var/log/auth.log : affiche en continu le fichier, les changements sont affichés. Pratique pour faire défiler ses logs.
tail -n 50 /var/log/auth.log : affiche les 50 dernières lignes du fichier
grep :
Recherche une chaine de caractère.
ls -lh Musique | grep Nightwish : liste tout ce qui comporte la chaine "Nightwish" dans le dossier Musique, et donne le résultat sous forme de liste, avec une unité lisible.
cat monfichier | grep linux : affiche toute les lignes du fichier "monfichier" contenant la chaine "linux"
| : le pipe
Permet de rediriger la sortie de la commande afin de faire un traitement autre (exemple ci-dessus avec la commande grep)
find :
Permet de chercher un fichier.
find /home/moa/Documents/ -name rapport.odt : recherche mon rapport dans mes documents (chercher de façon récursive).
Options :
-iname : ne s'occupe pas de la différence majuscule/minuscule.
-amin n : dernier accès au fichier il y a n minutes. Pour l'utiliser, il faut utiliser les opérateurs + et - pour spécifier si le fichier a été accédé il y a plus ou moins n minutes. Sinon, il faut donner le nombre exact!
-cmin n : dernière modification du fichier il y a n minutes. Même remarque pour les opérateurs + et -.
-ctime n : dernier changement de statut du fichier il y n*24 heures. Même remarque pour les opérateurs + et -.
-group mon_groupe : fichier appartenant au groupe mon_groupe.
-user moa : fichier dont l'utilisateur est moa.
-size n : fichier utilisant n unité d'espace. On peut utiliser les suffixes suivants pour changer l'unité : c (octet), w (deux octets), k (Ko), M (Mo), G (Go).
-type : type de fichier : d (repertoire), f (fichier), l (liens symbolique),
wc :
Affiche le nombre de lignes, de mots et d’octets d’un fichier.
Options :
-l : affiche le nombre de lignes.
-w : affiche le nombre de caractères.
-c : affiche le nombre d'octets.
Astuces : vous pouvez rediriger la sortie de la commande ls afin de connaitre le nombre de fichiers dans un dossier : ls | wc -l
Il existe bien d'autres commandes qu'il vous appartiendra de découvrir. Pour cela, n'hesitez pas à chercher sur internet, il existe des sites entiers dédiés aux commandes shell.
III./ Personnaliser son bashrc
Voici sans doute la partie la plus attendue : comment configurer son bashrc.
Tout d'abord, vérifiez que vous ayez un bashrc présent à la racine de votre dossier personnel.
Si ce n'est pas le cas, créez en un : touch ~/.bashrc
Ensuite, regardez les options présentée ci-dessous, et choisissez celles que vous désirez !
Vous remarquerez que certaines parties ne sont pas traduites, car elles correspondent aux valeurs par défaut de mon bashrc.
Exemple de bashrc (Cliquez pour faire apparaitre le fichier)
A venir : faire des scripts en bash