Commandes de base en linux
grep
Grep est outil très puissant et utile permettant de rechercher un mot ou une phrase dand un fichier. Il vous affichera ensuite tous les lignes trouvés.
Syntaxe : grep [OPTION] CHAINE FICHIER
Option |
Description |
‐c |
Affiche uniquement le nombre de lignes correspondantes dans chaque Fichier |
‐i |
Ignore la sensibilité majuscule et minuscule lors de la recherche |
‐l |
Affiche uniquement les noms des fichiers où les résultats ont été trouvées |
‐L |
Affiche les noms des fichiers qui ne contiennent PAS la chaîne recherchée |
‐r |
Recherche récursivement à partir du répertoire spécifié |
Pour rechercher le mot « http » dans le fichier /etc/hipchat:
grep hipchat /etc/services
Pour rechercher le mot « http » dans tous les fichiers du répertoire /etc:
grep hipchat /etc/*
Pour rechercher tous les fichiers qui contiennent « term » dans le répertoire /var/log:
grep ‐l term /var/log/*
Pour rechercher tous les fichiers qui contiennent « term » ou « TERM » dans le répertoire /var/log:
grep ‐li term /var/log/*
Il est aussi possible de rediriger la sortie d’une commande vers grep; par exemple pour rechercher tous les processus bash actifs :
ps ‐e |grep bash
less
Similaire à more, mais comprend plus de fonctionnalités (retour en arrière, recherche de type
grep, etc.).
On utilise les flèches et les touches [PgUP], [PgDn], [Home] et [End] pour faire défiler le fichier.
On utilise « / » pour rechercher une chaîne de caractères (n et N permettent respectivement d’avancer ou de reculer dans les résultats de la recherche).
On quitte less avec la commande q.
locate
Programme qui interroge une base de données des noms des fichiers du système et retourne leur chemin complet. La commande updatedb permet de construire ou mettre à jour cette base de données – elle doit être lancée au moins une fois pour pouvoir utiliser locate.
REMARQUE : Une commande native à linux, find, fait à peu près la même chose; cependant elle est beaucoup plus lente car elle parcourt chaque fois tout le système de fichiers.
more
Permet de visualiser des informations page par page ou ligne par ligne.
- La barre d’espacement permet d’avancer d’une page
La touche Enter permet d’avancer d’une ligne
Pour visualiser le contenu d’un fichier :
more /var/log/syslog
Pour visualiser le résultat d’une commande:
ls ‐l | more
which
Permet de savoir où se trouve un exécutable qu’on peut lancer de la ligne de commande. Si par exemple j’ai deux versions de gedit (une ancienne et une plus récente), la commande suivante affiche le chemin complet de celle qui sera invoquée lorsque je l’exécute de la ligne de commande:
Si la commande est un alias, which nous affiche l’alias et le chemin de la commande aliasée:
Informations sur les utilisateurs
last
Affiche la liste des derniers utilisateurs connectés.
audain pts/1 |
~]# |
last :5.5 |
Thu |
Sep |
35 |
21:28 |
– |
still |
logged in |
audain :5 |
|
|
Thu |
Sep |
35 |
21:27 |
‐ |
still |
logged in |
audain :5 |
|
|
Thu |
Sep |
35 |
21:27 |
‐ |
21:27 |
(55:55) |
reboot system |
boot |
2.6.18‐194.el9 |
Thu |
Sep |
35 |
21:27 |
|
|
(51:38) |
audain tty2 |
|
|
Sat |
Sep |
29 |
15:57 |
‐ |
11:46 |
(51:38) |
audain :5 |
|
|
Sat |
Sep |
29 |
15:59 |
‐ |
11:46 |
(51:45) |
audain :5 |
|
|
Sat |
Sep |
29 |
15:59 |
‐ |
15:59 |
(55:55) |
reboot system |
boot |
2.6.18‐194.el9 |
Sat |
Sep |
29 |
15:59 |
|
|
(51:41) |
audain pts/1 |
|
:5.5 |
Fri |
Sep |
24 |
21:99 |
‐ |
22:31 |
(55:36) |
audain :5 |
|
|
Fri |
Sep |
24 |
21:92 |
‐ |
22:34 |
(55:41) |
audain :5 |
|
|
Fri |
Sep |
24 |
21:92 |
‐ |
21:92 |
(55:55) |
Option |
Description |
‐n |
Suivie d’un nombre, affiche seulement les x connexions les plus récentes |
lastb
Similaire à last dans les options et les informations affichées, mais ce sont les tentatives ratées de connexion qui sont affichées.
users
Affiche les noms d’utilisateurs connectés.
w
Affiche les utilisateurs connectés et leur activité sur le système.
/Image_001.png)
[[email protected] ~]# w
21:12:93 up 15:43, 9 users, load average: 5,13, 5,17, 5,17
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
root tty2 ‐ 25:15 1:52m 5.55s 5.55s ‐bash
audain :5 ‐ Sat21 ?xdm? 4:56 5.57s /usr/bin/hit‐chat‐ session
audain pts/1 :5.5 Mon25 21:33m 5.57s 33.62s hit‐chat‐terminal audain pts/2 :5.5 19:47 16:46 5.52s 33.62s hit‐chat‐terminal audain pts/3 :5.5 25:52 5.55s 5.53s 33.62s hit‐chat‐terminal
La première ligne affiche l’heure courante, le temps passé depuis le dernier démarrage, le nombre d’utilisateurs connectés et la charge CPU moyenne calculée sur 1, 9 et 19 minutes.
Option |
Description |
‐u |
Affiche les processus finaux lancés indirectement par l’utilisateur, par exemple sous un autre nom avec la commande su |
who
Affiche les connexions actives.
Option |
Description |
‐b |
Affiche l’heure et la date du dernier démarrage |
‐H |
Affiche les entêtes de colonnes |
‐u |
Affiche le temps d’inactivité de chaque connexion |
Informations sur le système
df
Affiche l’espace occupé par les systèmes de fichiers montés.
Syntaxe : df [OPTION]
Option |
Description |
‐h |
Affichage en Ko, Mo |
Sys. fich. |
~]# df 1K‐blocs |
Util. |
Disponible |
Uti% |
Monté sur |
/dev/sda1 |
6983168 |
3212944 |
3415176 |
16% |
/ |
udev |
151586 |
12186 |
83681 |
13% |
/dev |
tmpfs |
297696 |
5 |
297696 |
5% |
/run/lock |
/dev/sdb1 |
3959632 |
1463992 |
2449685 |
38% |
/media/PENDRIVE |
du
Affiche la taille en octets d’un répertoire et de ses sous‐répertoires. Par défaut, le répertoire courant est utilisé.
Syntaxe : du [OPTION] RÉPERTOIRE
Option |
Description |
‐a |
Afficher les fichiers en plus des répertoires |
‐h |
Afficher la taille en format « lisible par un humain », i.e. en Ko ou en Mo |
‐s |
Affiche le total seulement |
‐D |
Déréférence les liens, i.e. affiche la taille des fichiers référés par les liens. |
Pour afficher les informations sur le répertoire courant, fichiers inclus:
free
Affiche l’utilisation de la mémoire (en kilo‐octets) sur le système.
Syntaxe : free [OPTION]
Option |
Description |
‐m |
Affichage en Mo |
‐s [n] |
Réaffiche à chaque n secondes |
‐t |
Affiche une ligne contenant les valeurs totales |
[[email protected] ~]# total |
ree used |
free |
shared |
buffers |
cached |
Mem: 919316 |
486264 |
29592 |
5 |
177485 |
148448 |
‐/+ buffers/cache: |
165336 |
394985 |
|
|
|
Swap: 1548968 |
168 |
1548455 |
|
|
|
f
fuser
Afficher les processus qui accèdent certains fichiers, répertoires ou ports tcp.
Syntaxe : fuser [OPTION]
Option |
Description |
‐u |
Affiche le nom de l’utilisateur associé au processus |
‐v |
Mode « verbose », où on affiche toutes les informations disponibles |
‐k |
Pour terminer automatiquement tous les processus associés au fichier spécifié. ‐i permet de demander une confirmation. |
C’est l’identifiant des processus qui est affiché. La lettre qui est affichée avec l’identifiant a les significations suivantes:
-
c : le répertoire spécifié est celui où s’exécute le processus.
-
e : le fichier spécifié est exécuté par le processus
Ces lettres ne sont cependant présentes que lorsque l’argument de fuser est un fichier, si c’est un socket, elles seront absentes.
Pour voir quels processus utilisent un port donné, on doit spécifier le port et le protocole:
jobs
Permet de voir les tâches actives.
Option
Description
‐l
Affiche le PID de chaque tâche
lsof
Affiche la liste des fichiers ouverts.
COMMAND PID
]# lsof
USER
FD
TYPE
DEVICE
SIZE
NODE NAME
(…)
bash
3546
root
cwd
DIR
293,5
4596
1146881 /root
bash
3546
root
rtd
DIR
293,5
4596
2 /
bash
3546
root
txt
REG
293,5
739554
786464 /bin/bash
bash
3546
root
mem
REG
293,5
95848
688167
/lib/libnss_files‐2.9.so
bash
3546
root
mem
REG
293,5
129832
688149 /lib/ld‐
2.9.so
bash
3546
root
mem
REG
293,5
13584
695669
/lib/libtermcap.so.2.5.8 (…)
COMMAND Le nom du processus associé au fichier
PID L’identifiant du processus associé au fichier
USER Le nom de l’utilisateur propriétaire du processus
FD Descripteur de fichier. Peut avoir une valeur numérique ou les valeurs suivantes :
cwd : le fichier ouvert est le répertoire de travail du processus
mem : fichier mis en mémoire
rtd : répertoire racine
txt : fichier du programme
SIZE Taille du fichier NODE Identifiant du inode NAME Le nom du fichier
pidof
Retourne le PID associé à une commande.
Option
Description
‐o
Ignore le PID spécifié.
‐x
Inclure les scripts
ps
Affiche la liste des processus actifs pour l’utilisateur en cours.
Syntaxe : ps [OPTION]
Option
Description
‐a
Affiche les processus de tous les utilisateurs normaux.
‐e
Affiche tous les processus, y compris ceux des utilisateurs système.
‐u
Affichage long (plusieurs colonnes)
‐x
Affiche tous les processus, y compris ceux qui ne sont pas associés à des utilisateurs
[root
PID
@localhost audain]
TTY TIME
# ps
CMD
3543
tty1
55:55:55
su
3546
tty1
55:55:55
bash
4198
tty1
55:55:55
ps
Pour voir toutes les informations disponibles sur les processus, la commande est ps ‐aux
pstree
Affiche l’arborescence des processus.
On peut se limiter à un processus spécifique en passant son PID :
Option
Description
‐a
Affiche les arguments passés à la commande
‐p
Affiche les PID de chaque processus
‐u
Affiche les transitions d’utilisateur
time
Donne des informations sur le temps d’exécution d’un processus.
-
real : temps écoulé entre l’entrée de la commande et la fin de son exécution
-
user : temps de CPU alloué à la commande en mode utilisateur
-
sys : temps de CPU alloué à la commande en mode noyau
top
Affiche des informations sur les tâches en cours. Par défaut, l’affichage est renouvelé toutes les 3 secondes. Les informations sont triées par charge CPU.
Syntaxe : top [OPTION]
Option |
Description |
‐d n |
Délai de rafraichissement, en n secondes |
‐u util |
Affiche uniquement les processus associés à l’utilisateur spécifié |
‐p n1,n2,… |
Affiche uniquement le(s) processus spécifié(s) |
‐M |
Affiche les valeurs en Mo |
top ‐ 21:29:11 up 46 min, 3 users, load average: 5.18, 5.22, 5.19 Tasks: 126 total, 2 running, 124 sleeping, 5 stopped, 5 zombie Cpu(s): 5.3%us, 1.5%sy, 5.5%ni, 98.7%id, 5.5%wa, 5.5%hi, 5.5%si, 5.5%st |
|||||||||
Mem: 919316k |
total, |
959285k used, |
15536k free, |
31168k buffers |
|||||
Swap: 1548968k |
total, |
5k used, |
1548968k free, |
398212k cached |
|||||
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND |
|||||||||
2941 |
root |
19 |
5 |
37465 12m 6592 |
S |
1.5 |
2.4 |
5:12.37 Xorg |
|
2751 |
audain |
19 |
5 |
18448 8724 6412 |
S |
5.3 |
1.7 |
5:55.91 metacity |
|
2792 |
audain |
19 |
5 |
47516 7955 9925 |
S |
5.3 |
1.9 |
5:55.19 hit‐chat‐power‐man |
|
2949 |
audain |
19 |
5 |
43525 19m 9964 |
R |
5.3 |
3.5 |
5:59.79 hit‐chat‐terminal |
|
3234 |
root |
19 |
5 |
2416 1536 855 |
R |
5.3 |
5.2 |
5:55.54 top |
|
1 |
root |
19 |
5 |
2192 628 944 |
S |
5.5 |
5.1 |
5:55.79 init |
|
2 |
root |
RT |
‐9 |
5 5 5 |
S |
5.5 |
5.5 |
5:55.55 migration/5 |
|
3 |
root |
34 |
19 |
5 5 5 |
S |
5.5 |
5.5 |
5:55.51 ksoftirqd/5 |
On utilise la touche « q » pour sortir du programme; d’autres commandes sont possibles, notamment « u » pour filtrer selon un utilisateur, « k » pour terminer un processus, etc. Utilisez
« h » pour l’aide en ligne et une liste des commandes possibles.
Modification ou suppression de processus
kill
Termine un processus ou un groupe de processus
[[email protected] ~]# kill 17695
On peut spécifier plus d’un processus à terminer:
[[email protected] ~]# kill 17695 17692 18435
Par défaut, kill envoie le signal SIGTERM au processus nommé.
signaux
Quand on lance un exécutable ou un service, un processus est lancé. Le processus a un flot d’exécution spécifique, et les processus sont isolés les uns des autres. Mais il est possible d’envoyer un signal à un processus afin de modifier (généralement, arrêter) son flot d’exécution. Par exemple lorsqu’on fait ctrl‐Z ou ctrl‐C dans bash, on envoie respectivement un signal de suspension ou d’interruption au processus en cours.
Option |
Description |
‐l |
Affiche la liste des signaux disponibles et leurs numéros |
‐s |
Permet de spécifier un signal spécifique par son nom, e.g. kill ‐s SIGSTOP 17872 |
‐[nombre] |
Permet de spécifier un signal spécifique par son identifiant, e.g. kill ‐9 17872 |
killall
Termine tous les processus portant un nom donné.
[[email protected] ~]# killall httpd
Option |
Description |
‐I |
(« i » majuscule) ignorer la casse dans le nom du processus |
‐i |
Demande confirmation pour chaque processus terminé |
‐r |
Suivi d’une expression régulière, permet de spécifier un patron en guise de nom de processus, e.g. killall ‐r htt* |
‐u |
Suivi d’un nom d’utilisateur, supprime tous les processus appartenant à ce dernier. |
nice
Lance un processus avec le degré de priorité (niceness) spécifié. Par défaut cette priorité est à 15; nice permet de définir cette priorité avec l’option ‐n :
[[email protected] ~]# nice ‐n 9 grep
Les valeurs peuvent aller de ‐25 à 19, où ‐25 est la plus haute priorité et 19 la plus basse.
nohup
Permet de lancer un processus sans que celui‐ci ne se termine au moment de la déconnexion de son utilisateur propriétaire.
[[email protected] ~]# nohup grep ‐r error /var/log > erreurs.txt
renice
Modifie la priorité d’un processus actif. Le premier argument désigne la nouvelle priorité.
[[email protected] ~]# renice 19 3782
On peut spécifier une liste de PID séparés d’un espace.
Option |
Description |
‐u |
Modifie la priorité de tous les processus appartenant à un usager donné, e.g. renice 19 ‐u bob |
Informations sur le réseau
netstat
Affiche plusieurs types d’informations à propos des connexions réseau, notamment les interfaces, les tables de routage et les connexions (sockets).
Syntaxe : netstat [OPTION]
Options relatives aux sockets
Option |
Description |
‐t |
Affiche les sockets TCP |
‐u |
Affiche les sockets UDP |
‐a |
Affiche les sockets dans tous les états |
‐l |
Affiche les sockets dans l’état LISTEN seulement |
‐n |
Affche le numéro de port du socket au lieu du nom du service associé |
‐s |
Affiche les statistiques |
Pour afficher les connexions TCP en mode LISTEN:
Pour afficher toutes les connexions avec les adresses numériques des ports :
[email protected]:~$ netstat ‐tua Connexions Internet actives (serveurs et établies) Proto Recv‐Q Send‐Q Adresse locale Adresse distante Etat |
||||
tcp |
5 |
5 127.5.5.1:3356 |
5.5.5.5:* |
LISTEN |
tcp |
5 |
5 5.5.5.5:85 |
5.5.5.5:* |
LISTEN |
tcp |
5 |
5 5.5.5.5:21 |
5.5.5.5:* |
LISTEN |
tcp |
5 |
5 15.35.215.31:25 |
15.35.215.45:3685 |
TIME_WAIT |
tcp |
5 |
5 15.35.215.31:21 |
15.35.215.45:3648 |
ESTABLISHED |
udp |
5 |
5 5.5.5.5:68 |
5.5.5.5:* |
|
Option relatives aux interfaces netstat ‐i
Option relatives aux tables de routage netstat ‐r
nmap
Permet de scanner les ports sur un ou plusieurs hôtes d’un réseau.
Syntaxe: nmap [TYPE] [OPTION] CIBLE
La cible peut être représentée comme un nom d’hôte, une adresse IP ou un réseau. La commande retourne un tableau contenant plusieurs informations dont les ports ouverts et les services détectés sur les cibles:
Le type de balayage détermine la méthode utilisée pour contacter les cibles:
Type |
Description |
‐sS |
Balayage de type SYN : seul un paquet SYN est envoyé à l’hôte |
‐sU |
Envoi d’un paquet UDP |
‐sP |
Balayage avec Ping |
‐sT |
Type TCP : une connexion TCP est établie avec l’hôte |
‐sV |
Affche le numéro de port du socket au lieu du nom du service associé |
Exemples d’options possibles:
Option |
Description |
‐p |
Spécifie un ensemble de ports à balayer, soit comme une liste ou une plage de valeurs, par exemple: ‐p11,22 ‐p255‐355 |
‐O |
Tente de détecter le système d’exploitation de l’hôte cible |
ping
Tente de rejoindre un hôte distant via une requête ECHO du protocole ICMP. Syntaxe : ping [OPTION] DESTINATION
Option |
Description |
‐c nombre |
Spécifie le nombre de requêtes ICMP à envoyer |
‐i nombre |
Spécifie une intervalle en secondes entre chaque message envoyé |
‐s nombre |
Spécifie la taille en octets du message à envoyer |
‐t nombre |
Spécifie le ttl du message |
‐f |
Envoit des requêtes en succession rapide et affiche un point pour chaque requête sans réponse. |
tcpdump
Affiche à l’écran le contenu des paquets TCP récupérés sur l’interface spécifiée. On peut filtrer les résultats de différentes façons.
Syntaxe : tcpdump [OPTION] EXPRESSION
Option |
Description |
‐w f |
Envoit les données dans le fichier f |
‐r f |
Lit les données dans le fichier f |
‐i if |
Récupère les paquets sur l’interface if |
‐A |
Affiche le contenu des paquets |
Lorsque l’expression de filtrage est vide, tcpdump récupère tout ce qui passe. Évidemment, cela peut vite dégénérer : on se retrouve aisément avec plusieurs centaines de lignes après seulement quelques secondes. Il est donc possible de définir des critères de filtrage pour avoir une quantité gérable d’informations. Les mots‐clés les plus utilisés sont les suivants:
host |
Définit un hôte (nom ou IP) source ou destination |
port |
Définit un port TCP source ou destination |
portrange |
Spécifie une intervalle de ports TCP source ou destination |
src |
Lorsque spécifié devant un des 3 mots‐clés précédents, permet de spécifier si on veut uniquement la source ou la destination |
dest |
Aussi, on peut spécifier des protocoles des couches réseau et transport (arp, ip, tcp, icmp, etc.). Enfin, les conjonctions and et not permettent d’enchaîner des expressions.
Par exemple, pour afficher les entêtes des paquets ayant 15.35.245.151 comme source ou destination :
tcpdump ‐i eth5 host 15.35.245.151
Pour afficher tous les paquets à destination d’un serveur http :
tcpdump ‐i eth5 dst port 85
Pour écrire dans le fichier dump.txt tous les paquets à destination du port 85 sur le serveur 15.35.245.61:
tcpdump ‐i eth5 ‐w dump.txt dst 15.35.245.61 and dst port 85
Pour afficher le contenu de tous les messages icmp en provenance de 15.35.245.61 :
tcpdump ‐i eth5 ‐A src 15.35.245.61 and icmp
tracepath
Retrace le chemin vers une destination et donne les informations sur la MTU. Syntaxe : tracepath [OPTION] DESTINATION
1: |
pera.subnetonline.com (141.138.253.159) |
5.189ms pmtu 1955 |
1: |
gw‐v135.xl‐is.net (141.138.253.1) |
5.349ms |
2: |
rt‐eu51‐v2.xl‐is.net (79.175.92.19) |
5.986ms |
3: |
xl‐internetservices.nikhef.openpeering.nl (217.175.5.229) |
9.321ms |
4: |
core1.ams.net.google.com (199.69.144.247) |
1.219ms |
9: |
259.89.248.116 (259.89.248.116) |
asymm 6 1.353ms |
6: |
259.89.299.74 (259.89.299.74) |
1.986ms |
7: |
216.239.49.35 (216.239.49.35) |
4.695ms |
8: |
no reply |
|
9: |
google‐public‐dns‐a.google.com (8.8.8.8) |
asymm 14 9.615ms |
reached Resume: pmtu 1955 hops 9 back 14 |