LES COMMANDES PRINCIPALES

Introduction

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

Types de commandes

Commande interne, externe

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é.

Exemples

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

Remarques

Afficher de l'aide

$ ls --help
$ man ls
$ man -L fr ls

Forcer l'utilisation d'une commande externe

On indique l'emplacement de la commande :

$ /bin/pwd
/home

Lancer une commande en arrière-plan

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 &

Commandes sur les fichiers et répertoires

pwdIndique le répertoire courant.
lsListe les fichiers et les répertoires du répertoire courant.
cd NomRepChange de répertoire (NomRep).
cd ..Remonte au niveau supérieur.
cd /Remonte à la racine de l’arborescence.
cd /usr/local/srcUtilise un chemin absolu.
cd ../local/srcUtilise un chemin relatif (exemple en partant de usr).
mkdir NomRepPermet de créer un répertoire nommé NomRep.
touch NomFichier.txtPermet de créer un fichier vide nommé NomFichier.txt.
rm NomFichier.txtSupprime le fichier nommé NomFichier.txt.
rmdir NomRepSupprime 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 NouvNomRenomme un fichier.
mv Source Destination Déplace un fichier, Source et Destination peuvant contenir des chemins en absolus ou en relatifs.

Commandes sur les fichiers

cat NomFichierAffiche le contenu d’un fichier sans l’éditer.
vi NomFichierEdite un fichier existant ou créer un nouveau fichier et l’édite.

Effectuer une recherche

Recherche d'un fichier

locate

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

find

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

which

Cette commande permet de localiser une commande du système. Exemple :

which echo

Recherche d'une chaîne de caractères

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.

Remarque

2> /dev/null évite de signaler tous les répertoires.

Installer des programmes

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

Télécharger des fichiers

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

Commandes diverses

clearEfface l'écran du terminal.
whoamiIndique l'utilisateur connecté.
man commandeLance le manuel correspondant à commande.
moreUtilisé avec le signe | (AltGr + 6) permet d’afficher le résultat d’une commande page par page.
lessIdem more, mais possibilité de remonter au début de l’affichage.
grepUtilisé avec le signe | permet de faire une sélection dans le résultat d’une commande.
ps –e | grep NomProcPermet d’afficher la liste des processus démarré avec le nom NomProc.
uname -aAffiche des informations sur la machine (nom, noyau...).
dmesgAffiche les messages de diagnostic.
kill -9 PIDPermet de tuer l'application ayant le numéro PID.
df -hAffiche 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.

Commandes de changements de droits d'accès

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.

Commandes de configuration réseau

ifconfigAffiche l’état des interfaces réseaux et leurs adresses IP.
ifconfig eth0 192.168.1.1 netmask 255.255.255.0Configure l'interface eth0 avec l’adresse 192.168.1.1 et le masque 255.255.255.0
ping @ipPermet de vérifier le fonctionnement de la liaison IP.
netstat – iAffiche l’état des connexions réseaux.
arp -aAffiche un tableau avec les correspondances IP/MAC par interface.
route – nAffiche la table de routage.
route add default gw 192.168.1.254 eth0Configure 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|restartStoppe, lance ou relance les interfaces réseaux.