Le shell interprète une ligne de commande. Une commande lance un programme qui peut être :
Une ligne de commande comporte le nom de la commande suivi de paramètres séparés par des espaces. Si le paramètre est précédé d'un tiret ou d'un double tiret, il s'agit d'une option. Un simple tiret est utilisé pour un format court, un double tiret pour un format plus explicite. Par exemple, les deux commandes ci-dessous sont équivalentes.
$ date -u $ date --utc
Sous Linux, il existe de nombreux shells, le shell Bash étant l'un des plus courants. Pour savoir quel shell est utilisé sur le système, il suffit d'afficher la variable d'environnement $SHELL.
echo $SHELL
La liste de tous les interpréteurs de commandes disponibles sur votre système est contenue dans le fichier /etc/shells.
cat /etc/shells
Naturellement, il est possible de changer de shell. On utilise la commande chsh -s [shell] [utilisateur] pour cela. Il est nécessaire de se déconnecter et de se reconnecter pour que le changement soit pris en compte.
Par exemple, pour l'utilisateur paul :
chsh -s /bin/bash paul
Une commande du shell Bash peut être :
Certaines commandes ont une implémentation interne et une implémentation externe. Dans ce cas, la commande interne est exécutée en priorité.
echo est une commande interne :
$ type echo echo est une primitive du shell
ls est une commande externe :
$ type ls ls est /bin/ls
pwd est une commande interne :
$ type pwd pwd est une primitive du shell
Mais elle possède aussi une implémentation externe :
$ ls -l /bin/pwd -rwxr-xr-x 1 root root 31472 mars 2 2017 /bin/pwd
$ ls --help $ man ls $ man -L fr ls
On indique l'emplacement de la commande :
$ /bin/pwd /home
Pour lancer une commande ou un programme et reprendre la main si le processus reste en cours d'exécution, on rajoute le symbole & à la fin de la commande.
$ /usr/bin/linssid &
pwd | Indique le répertoire courant. |
---|---|
ls | Liste les fichiers et les répertoires du répertoire courant. |
cd NomRep | Change de répertoire (NomRep). |
cd .. | Remonte au niveau supérieur. |
cd / | Remonte à la racine de l’arborescence. |
cd /usr/local/src | Utilise un chemin absolu. |
cd ../local/src | Utilise un chemin relatif (exemple en partant de usr). |
mkdir NomRep | Permet de créer un répertoire nommé NomRep. |
touch NomFichier.txt | Permet de créer un fichier vide nommé NomFichier.txt. |
rm NomFichier.txt | Supprime le fichier nommé NomFichier.txt. |
rmdir NomRep | Supprime le répertoire vide nommé NomRep. |
cp Source Destination | Copie un fichier, Source et Destination peuvant contenir des chemins en absolus ou en relatifs. |
mv AncNom NouvNom | Renomme un fichier. |
mv Source Destination | Déplace un fichier, Source et Destination peuvant contenir des chemins en absolus ou en relatifs. |
cat NomFichier | Affiche le contenu d’un fichier sans l’éditer. |
---|---|
vi NomFichier | Edite un fichier existant ou créer un nouveau fichier et l’édite. |
Cette commande est très rapide! Elle utilise une base de données contenant la liste des fichiers existants. L'exemple ci-dessous affiche les emplacements des fichiers dont le nom contient la chaîne de caractères "linSSID". L'option "-i" permet de ne pas différencier les minuscules des majuscules.
locate -i linSSID
Si le fichier a été créé récemment, il faut, au préalable, réactualiser la base de données :
updatedb
Cette commande effectue une recherche au sein de l’arborescence. Elle est assez lente si le nombre de dossiers à parcourir est important. Elle possède diverses options permettant une recherche fine. Dans l'exemple ci-dessous, on cherche dans le dossier /home le fichier nommé "NomFichier". L'option "-iname" permet de ne pas différencier les minuscules des majuscules
find /home -name NomFichier find /home -iname NomFichier
Cette commande permet de localiser une commande du système. Exemple :
which echo
grep -n "une chaîne" fichier.txt | Indique les numéros de ligne du fichier "fichier.txt" où se trouvent les caractères "une chaîne". |
---|---|
grep "une chaîne" * 2> /dev/null | Cherche "une chaîne" dans tous les fichiers du répertoire courant. |
grep -r "une chaîne" . 2> /dev/null | Cherche "une chaîne" dans tous les fichiers du répertoire courant et ses sous-répertoires. |
2> /dev/null évite de signaler tous les répertoires.
L'installation de programmes fonctionne différemment d'une distribution Linux à l'autre... La commande apt-get s'applique aux distributions Linux utilisant le système de paquets de Debian.
Afin d'installer la dernière version d'un programme, il est recommandé de mettre à jour la liste des paquets disponibles :
apt-get update
On utilise ensuite la commande apt-get install pour installer un paquet. Il est possible d'en installer plusieurs en même temps. Par exemple, pour mettre les pages de manuel en français, on installe les paquets manpages-fr, manpages-fr-extra et manpages-fr-dev avec la commande
apt-get install manpages-fr manpages-fr-extra manpages-fr-dev
La commande wget permet de télécharger des fichiers en utilisant les protocoles ftp ou http.
La commande ci-dessous récupère :
$ wget -r -l1 http://www.truc.fr/machin
La commande ci-dessous récupère les images avec l'extension jpg.
$ wget -r -l1 -Ajpg http://www.truc.fr/machin/chose.html
clear | Efface l'écran du terminal. |
---|---|
whoami | Indique l'utilisateur connecté. |
man commande | Lance le manuel correspondant à commande. |
more | Utilisé avec le signe | (AltGr + 6) permet d’afficher le résultat d’une commande page par page. |
less | Idem more, mais possibilité de remonter au début de l’affichage. |
grep | Utilisé avec le signe | permet de faire une sélection dans le résultat d’une commande. |
ps –e | grep NomProc | Permet d’afficher la liste des processus démarré avec le nom NomProc. |
uname -a | Affiche des informations sur la machine (nom, noyau...). |
dmesg | Affiche les messages de diagnostic. |
kill -9 PID | Permet de tuer l'application ayant le numéro PID. |
df -h | Affiche l'espace disponible par partition. |
tar xzvf archive.tar.gz tar xjvf archive.tar.bz2 | Permet de décompresser des fichiers. |
tar czvf archive.tar.gz NomDossier tar cjvf archive.tar. bz2 NomDossier | Permet de compresser les fichiers du dossier NomDossier. |
chown NouveauProprio NomFichier | Modifie le propriétaire d'un fichier, utiliser -R pour une modification récursive des sous-répertoires. |
---|---|
chgrp NouveauGroupe NomFichier | Modifie le groupe propriétaire d’un fichier. |
chmod [a, u, g, o] [+,-] [r ,w ,x ] NomFichier | Change les droits d'accès d'un fichier ou d'un répertoire si vous en êtes le propriétaire ou root. |
ifconfig | Affiche l’état des interfaces réseaux et leurs adresses IP. |
---|---|
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 | Configure l'interface eth0 avec l’adresse 192.168.1.1 et le masque 255.255.255.0 |
ping @ip | Permet de vérifier le fonctionnement de la liaison IP. |
netstat – i | Affiche l’état des connexions réseaux. |
arp -a | Affiche un tableau avec les correspondances IP/MAC par interface. |
route – n | Affiche la table de routage. |
route add default gw 192.168.1.254 eth0 | Configure la passerelle par défaut en 192.168.1.254 pour l’interface eth0. |
route add -net <network> netmask <netmask> gw <adresse_passerelle> eth0 | Ajout d'une route spécifique pour l’interface eth0. |
route del -net <network> netmask <netmask> gw <adresse_passerelle> eth0 | Suppression d'une route spécifique pour l’interface eth0. |
/etc/init.d/networking stop|start|restart | Stoppe, lance ou relance les interfaces réseaux. |