Éléments de syntaxe.
Les commandes présentées dans les sections qui suivent sont introduites juste après un message d'invite qui dépend de la configuration du shell utilisé. Celui-ci est représenté par un signe dollar $. Il ne doit donc pas être tapé.
Le caractère dièse # marque le début d'un commentaire qui se termine en fin de ligne. Il n'est pas nécessaire de le recopier pour exécuter la commande.
Exemple :
 $ pwd # affiche le répertoire courant
Pour tester cette commande, il suffit d'entrer .
Les lignes qui ne sont pas marquées du signe dollar indiquent ce que la commande précédente doit/peut afficher.
Par ailleurs, il existe deux opérateurs de concaténation des commandes :
pwd (print working directory).
Affiche le répertoire courant.
 $ pwd
 /home/alex
id.
Affiche les informations relatives à l'utilisateur connecté.
 $ id
 uid=1000(alex) gid=1000(alex) groupes=20(dialout), 24(cdrom), 25(floppy), 29(audio), 44(video), 46(plugdev), 106(netdev), 109(powerdev), 1000(alex)
passwd.
Permet de changer son mot de passe
 $ passwd
 Changing password for alex
 (current) UNIX password:
 Enter new UNIX password:
 Retype new UNIX password:
 passwd : le mot de passe a été mis à jour avec succès
cd (change directory).
Pour se placer dans un répertoire
 $ cd . # . désigne le répertoire courant
 $ cd .. # .. désigne le répertoire parent
 $ cd / # / désigne le répertoire racine
 $ cd /tmp # désigne le répertoire tmp appartenant à la racine
 $ cd tmp # désigne le répertoire tmp du répertoire courant
 $ cd ../tmp # désigne le répertoire tmp du répertoire parent du répertoire courant
 $ cd ~ # permet de revenir dans son répertoire de travail (home directory)
 $ cd # idem
Connecté en root, la commande cd m'amène au répertoire /root qui est le répertoire de travail de l'utilisateur root.
Connecté avec l'utilisateur "alex", cd m'amène au répertoire de travail de l'utilisateur "alex", à savoir /home/alex.
ls (list sorting).
Liste les fichiers d'un répertoire
 $ ls # liste les fichiers non cachés du répertoire courant 
 $ ls -l # (l : long) : liste détaillée des fichiers du répertoire courant 
 $ ls -a # (a : all) : liste tous les fichiers, y compris les fichiers cachés
On peut combiner plusieurs options, l'ordre n'est pas important. Les quatre commandes suivantes sont identiques :
 $ ls -a -l
 $ ls -l -a
 $ ls -la
 $ ls -al
Lister de façon détaillée (-l) tous les fichiers, même cachés (-a), les plus récents (-t) en derniers (-r), avec leur taille en kilo-octets (-k) lisible facilement avec les unités K pour Kilo, M pour Mega, G pour Giga(-h).
 $ ls -lartkh
Pour ne lister que les sous-dossiers :
 ls -d */
cat (con"cat"enate).
Affiche le contenu d'un fichier ou de plusieurs fichiers concaténés sur la sortie standard (l'écran)
 $ cat /etc/crontab # affiche le contenu du fichier /etc/crontab
 $ cat /etc/cron.daily /etc/cron.weekly # concatène les deux fichiers et affiche leur contenu
Pour que les modifications de fichiers s'ajoutent en temps réel sur la sortie standard, utiliser :
 tail -f /etc/crontab
mkdir (make directory).
Permet de créer un répertoire
 $ mkdir rep1 # crée un répertoire rep1 dans le répertoire courant
 $ mkdir /rep1 # tente de créer un répertoire rep1 à la racine,
 # le système refuse car je ne suis pas connecté en root
Exercice : je suis dans le répertoire "/var/log", je souhaite créer un répertoire "rep2" dans le répertoire "/home/alex", comment faire ?
J'ai trois possibilités :
 $ mkdir ../../home/alex/rep2 # on utilise un adressage relatif à la position où je suis : 
 # on remonte dans l'arborescence jusqu'à la racine puis 
 # on redescend jusqu'au répertoire alex)
 $ mkdir /home/alex/rep2 # on utilise un adressage absolu en partant de la racine
 $ mkdir ~/rep2 # on utilise ~ pour désigner le répertoire de travail
l'option -p permet de créer le(s) répertoire(s) parent(s).
 $ mkdir -p rep1/rep2 # crée un répertoire parent rep1 si il n'existe pas,
 # et crée dans rep1 un répertoire rep2
rmdir (remove directory).
Supprimer un répertoire vide
 $ rmdir rep1
cp (copy).
Copier un fichier
 $ cp /etc/passwd /tmp # copie le fichier /etc/passwd dans le répertoire /tmp
 $ cp /etc/passwd /tmp/nouveaunom # copie le fichier /etc/passwd dans le répertoire /tmp 
 # et le renomme en "nouveaunom"
Attention, si le fichier destination existe déjà, il sera remplacé sans demande de confirmation !
Options courantes : 
 -i : si le fichier destination existe, demande confirmation avant de remplacer le fichier
Copier un dossier (avec son contenu).
 cp -Rf mondossier /tmp
rm (remove).
Effacer un fichier
 $ rm lefichier # efface le fichier "lefichier"
Attention, le fichier est effacé et sans demander confirmation !
Options courantes : 
 -i : demande confirmation avant d'effacer le fichier
 -f : ne demande pas de confirmation (annule -i)
 -r : supprime les répertoires récursivement
Exemples.
 rm -rf tmp
 find /var/log* -mtime +2 -exec rm {} \;
mv (move).
Déplacer ou renommer des fichiers
 $ mv [Option] Source Destination(répertoire)
 $ mv [Option] Répertoire Source
 $ mv fichier_source fichier_cible # déplacer fichier_source dans fichier_cible
 $ mv fichier1 fichier2 # renomme le fichier fichier1 en fichier2
 # Attention si fichier2 existe, son contenu sera écrasé et 
 # remplacé par celui de fichier1
Par précaution, on utilise l'option -i qui permet d'être averti par le système avant l'écrasement du fichier destination si celui-ci existe.
 $ mv -i fichier1 fichier2 # demande la confirmation avant d'effacer la destination
 $ mv rep1/fic1 rep2/fic2 # déplace le fichier fic1 situé dans le répertoire "rep1"
 # sous le nouveau nom fic2 situé dans le répertoire rep2
 $ mv rep1 rep2 # déplace le répertoire rep1 dans le répertoire rep2
 # si rep2 n'existe pas, renomme rep1 en rep2
ln (link).
La commande ln permet de créer des liens, c'est à dire des raccourcis vers des fichiers ou des répertoires.
 ln -s "destination" "nom_du_lien"
Exemple
 $ ln -s prog1.0 monprogramme
Cette commande crée le lien suivant :
 lrwxrwxrwx 1 alex alex 7 2007-10-26 14:25 monprogramme -> prog1.0
find : recherche par nom de fichier.
Par exemple pour trouver tous les fichiers .log dans le dossier courant récursivement :
 find . -name "*.log"
grep : recherche par contenu de fichier.
Par exemple pour trouver tous les fichiers qui contiennent "mon texte" dans le dossier courant récursivement :
 grep -r "mon texte" .
En regex en ignorant la casse :
 grep -rPi "[a-z_]+" .

Le système d'exploitation GNU-Linux/Les shells

Shell veut dire "Coquille", qui entoure le noyau. C'est un interpréteur de commandes qu'on utilise pour lancer des commandes ou programmer une suite de commandes. L'utilisateur discute avec le Shell, qui discute avec le noyau, qui à son tour discute avec le matériel. Originellement le shell est utilisé sous Unix, il s'est répandu depuis avec différentes versions, la forme la plus simple est sh.
Les versions connues :
Le shell est constitué de petits shells spécifiques à chaque travail, chacun ayant un fichier de configuration stocké dans le répertoire /home de chaque utilisateur, lequel peut les modifier à sa convenance :
Fichiers de configuration spécifiques au shell Bash :
Autres fichiers liés au Bash

Le système d'exploitation GNU-Linux/La complétion

« L'art de la saisie des commandes ultra rapide ». 
À chaque fois que vous tapez une commande, Linux vous aide à compléter votre commande en appuyant sur la touche .
Tapez le début de votre commande et en appuyant sur la touche , Linux vous la complète ou vous propose les différentes possibilités pour la compléter, à défaut vous aurez droit à un petit bip, s'il existe un trop grand nombre de propositions, Linux vous affiche ce nombre.
exemple :

Le système d'exploitation GNU-Linux/Les jokers