title: Introduction au shell tags: shell bash author: "Geoffrey Preud'homme"
date: 2016-01-06 11:33:35+01:00
Introduction au shell
Le shell, c'est le programme qui fait le pont entre la console, le truc avec des écritures blanches sur fond noir, et les programmes du systme d'exploitation. Mais ici je vais utiliser (à tort) « shell » comme un mot un peu fourre-tout pour console, shell (le vrai), et les programmes.
Pourquoi manipuler les programmes du système avec un vieux truc pas agréable à regarder et compliqué à utiliser alors qu'on a des belles interfaces graphiques ? Trois raisons :
- On peut les éxécuter à distance (avec SSH par exemple) plus simplement et plus facilement qu'avec une solution lourde de partage d'écran (comme VNC par exemple)
- C'est programmable. Vous passerez moins de temps à chercher et construire la commande pour renommer des images selon leur lieu et date de prise de vue qu'à les renommer à la main ou trouver un programme qui fasse exactement ça sur le net, si tenté qu'il existe.
- C'est la classe quoi ! Ok vous passez pour un geek mais vous avez le swag ! (Bon ok, ça fait que deux raisons)
Ah, on me signale dans mon oreillette que j'ai déjà passé trop de temps à blablater sur la théorie, passons tout de suite à la pratique.
Commandes usuelles
(garnies avec leurs exemples)
cd dossier
,cd ..
: changer de dossierpwd
: savoir dans quel dossier on estls
: lister le contenu du dossiercat fichier
afficher le contenu du fichierless fichier
afficher le contenu du fichier de manière plus pratique (touches :g
: aller au début du fichier,G
à la fin,/
puis du texte puis entrée : chercher dans le fichier,n
prochaine occurence du texte,N
précédente occurence,q
quitter)grep pattern fichier
cherche la ligne qui contientpattern
dansfichier
touch fichier
: créer un fichier vide (utilité++)cp a b
copier le fichiera
vers un fichierb
cp -r a b
copier le dossiera
vers un fichierb
mv a b
déplacer le fichiera
vers un fichierb
rm fichier
supprimer le fichierzip
,unzip
manipuler des fichiers.zip
rm -r dossier
supprimer le dossier et son contenu (faites gaffe avec ça)mkdir dossier
créer un dossierfind Dossier -type f -name lol
trouve tous les fichier qui s'appellentlol
dansDossier
wget http://leclubinfocestcool.fr
récupérer et enregister une page webcurl http://leclubinfocestcool.fr
récupérer et afficher une page webssh
se connecter sur une autre machine (voir le tuto)startx -- :1
démarrer une session graphique (aka le saint Graal des PC bloqués car coupés électriquement)gcc -c main.c -o main
compiler un fichier Ceject
faire sortir une technologie assez agée d'une technologie plus récentelpstat -a
: lister le nom des imprimantes (bonne chance pour trouver la salle)lpr -P Gutenberg fichier.pdf
: imprimer sur Gutenberg (méthode non reconnue par le service info :P)wakeonlan adressemac
: réveiller un PC éteint (la liste des adresses mac des PC de Polytech est sur le Twiki, mais allez pas vous attirer les foudres du service info, surtout que je vous apprend comment faire des boucles après X) )nano fichier
: éditer un fichier texte, de manière plutôt intuitivevim fichier
: éditer un fichier texte quand on est barbu (pour ce sortir de ce merdier : Échap, :, q, !, Entrée) (vous pouvez aussi utiliser les mêmes touches que dansless
)emacs fichier
: éditer un fichier quand on est un autre type de barbu (pour ce sortir de ce merdier : Ctrl+X, Ctrl+C) (je vous cache pas qu'il y a une petite guéguérre type guerre de religions entre les éditeurs :D)history
: voir la liste des commandes qu'on a tapé dans le shellhistory -c
: effacer son historique de shell-pr0nexit
oulogout
: dire bye bye- (on en avait dites d'autres à la réu, mais je les ai oubliées)
On terminera par le St-Graal des programmes systèmes, le man
(vous pouvez aussi utiliser les mêmes touches que dans less
). Quand on vous dit d'appliquer le protocole RTFM, c'est ici qu'il faut chercher.
La puissance du bash
Le shell utilisé sur les PC de Poly est bash, et croyez-moi, on peut faire achement de choses avec, même si la syntaxe est assez déroutate pour le moins qu'on puisse dire.
Les pipes
Quand un programme sort du texte, vous pouvez le passer au programme suivant pour peu qu'il sache quoi en faire
ls Documents | grep banane
donne la liste des fichiers dans le dossier Documents dont le nom contientbanane
cat fichier | sort | uniq -d
lit le fichier, le trie pour finalement afficher les lignes en double
Les redirections vers un fichier
ls Documents > fichier
enregistre les noms des fichiers dans le dossier Documents dans le fichierfichier
(s'il n'existe pas, il est crée, s'il existe, il est écrasé)echo "Hmmm, pastèque" >> fichier
rajoute la ligne « Hmmm, pastèque » dans le fichierfichier
Les variables
fruit=orange
,prefere="le piment"
,i=0
assigner une variablefind . -name $fruit
,echo "J'aime $prefere"
[TO BE CONTINUED]