Le shell Bash est une version améliorée du Shell Unix sh.
Les commandes shell permettent d'administrer une machine, un parc de machines, un réseau, des parcs de réseaux.
On peut regrouper les commandes shell dans des fichiers que l'on nomme des scripts.
Tous les administrateurs réseaux « unix like » Unix, BSD, Linux, Mac OS X, utilisent le shell pour gérer leurs réseaux et créer des scripts.
Le shell (mot anglais signifiant « coquille ») est un logiciel fournissant une interface pour un utilisateur. Le shell est l'interface utilisateur du système d'exploitation.
http://fr.wikipedia.org/wiki/Shell_(informatique) http://www.tuteurs.ens.fr/unix/shell/
Le guide avancé d'écriture des scripts bash : livre de référence traduit en français http://abs.traduc.org/abs-fr/
Si vous voulez installer un serveur GNU Linux, vous pourrez installer le noyau Linux et les paquets de base permettant de gérer avec le shell le serveur, ceci sans installer de serveur X c'est à dire sans interface graphique.
Le serveur pourra être entièrement géré à distance avec Secure Shell (SSH) shell sécurisé ou par page web http ou https.
Le shell peut se séparer en 2 parties.
cd : change directory, change de répertoire de travail.
cat : pour visualiser un fichier texte, par exemple la liste des dépots : cat /etc/apt/sources.list .
ls : liste des fichiers du répertoire de travail.
On verra des ls spécifiques ensuite lspci, lsusb, lshw …
grep : recherche de terme dans un fichier ou une liste.
find : recherche dans les répertoires, commande très puissante.
sort : tri d'un fichier ou flux ; tr : Traduire ou éliminer des caractères
cut : supprimer une partie de chaque ligne d'un fichier
sed : éditeur de flux, outil très puissant et complexe pour traiter des textes, fichiers, flux …
cmd_Unix.html
Exemple : on désire afficher le fichier .bashrc sans les lignes de commentaires commençant par #.
Avec sed le caractère | doit être protégé avec \
Sans précision l'entrée est le clavier et la sortie l'écran.
Exemple : vous avez fait une commande que vous souhaitez conserver
echo 'ma_commande ' >astuce.txt
va écrire ma_commande dans le fichier astuce.txt, s' il existait il est écrasé sinon il est créé (commande >) et il ne contiendra que ma_commande, pour les commandes, il faut mieux mettre des simples quotes ' car les expressions ne seront pas interprétées.
N'oubliez pas de mettre des commentaires avec par exemple après
echo « # explication de ma_commande blablabla » >> astuce.txt
>> ajoute la ligne # explication de ma_commande blablabla dans le fichier astuce.txt
Ici on peut utiliser les doubles quotes car les commentaires qui commencent par # ne sont pas interprétés.
La commande < fichier.txt redirige l'entrée fichier.txt vers la commande, très utile pour les commandes indirectes.
Exercice : exo1.html
Le tube, ou pipe permet de chaîner des processus de sorte que la sortie d'un processus (stdout) alimente directement l'entrée (stdin) du suivant.
Exemple : savoir si le paquet nano est installé.
La liste des paquets est donné par dpkg -l , grep nano permet de rechercher nano dans un fichier ou un flux,
dpkg -l |grep nano si la réponse est vide il n'est pas installé si il répond ii puis le nom du paquet, le paquet est installé.
Explication : on aurait pu le faire en deux parties
Ce sont les deux éditeurs de texte les plus puissants, chacun ayant ses avantages.
Chacun demande un minimum d'apprentissage pour la prise en main.
C'est un petit éditeur de texte simple très pratique pour travailler sans X.
la seule chose à connaître pour commencer : ^ = la touche contrôle.
Pour l'aide F1 ou ^G (Ctrl G)
Pour les PC avec interface graphique, on peut écrire un fichier avec un éditeur de texte graphique et utiliser le copier coller évidemment.
Il en existe plein gedit, kate, kwrite, mousepad mais aussi scite …
Pour toutes les commandes vous avez une aide qui se trouve dans les pages man .
Man grep : Une aide de 400 lignes sur la commande de recherche grep.
Sans oublier man bash et man bash-builtins pour les commandes internes.