Ceci est une ancienne révision du document !
Commandes GNU/Linux : mémo simplifié
le système GNU/Linux Debian possède toutes les applications graphiques nécessaires pour accomplir vos tâches quotidiennes, alors pourquoi utiliser la ligne de commande ?
c'est plus rapide
les options ne sont pas toutes présentes dans les interfaces graphiques
utiliser la commandes directement sans surcouche graphique économise les ressources
ça facilite l'apprentissage du système GNU/Linux Debian
la commande ultime: man
naviguer dans les répertoires
commande | action |
pwd | affiche le répertoire courant |
cd rep | se place dans le répertoire rep |
cd | se place dans le répertoire de l'utilisateur ~/ |
cd .. | se place dans le répertoire parent |
ls rep | liste les fichiers du répertoire rep |
ls -a | ls avec les fichiers cachés |
ls -l | ls avec les droits d'accès |
actions sur les fichiers/dossiers
commande | action |
mv source cible | deplace le fichier source vers cible |
cp source cible | copie le fichier source vers cible |
cp -R source cible | copie le répertoire source vers cible |
ln source lien | créer un lien fort de source vers lien |
ln -s source lien | créer un lien symbolique de source vers lien |
touch file | créer le fichier file ou met à jour sa date de modification |
mkdir rep | créer un repertoire rep |
mkdir -p rep/rep2 | mkdir avec création des dossiers parents si nécessaire |
rm file | supprime le fichier file |
rm -f file | supprime le fichier file protégé en écriture |
rmdir rep | supprimer un répertoire vide |
rm -R rep | supprime un répertoire |
du -h file ou rep | affiche la taille du fichier file ou du répertoire rep |
afficher/comparer les fichiers
commande | action |
wc fichier | compte le nombre de lignes, de mots, d'octets de fichier |
cat fichiers | concatène les fichiers |
more fichier | affiche fichier page après page. 'Espace'=page suivante, 'Entrée'=ligne suivante, 'u'=remonter |
less fichier | affiche fichier avec une navigation Left/Right/Up/Down/PageUp/PageDown |
head -n x fichier | affiche les x premières lignes de fichier |
tail -n x fichier | affiche les x dernières lignes de fichier |
tail -f fichier | affiche la dernière ligne de fichier au fur et à mesure qu'il se remplit |
diff file1 file2 | affiche les différences entre deux fichiers texte |
diff -u file1 file2 | affiche les différences au format utilisé par patch |
cmp file1 file2 | compare deux fichiers binaires |
cmp file1 file2 n N | compare deux fichiers, file1 à partir du nième octet, et file2 à partir du Nième |
utilisateurs
commande | action |
whoami | affiche le login de l'utilisateur |
who | affiche les utilisateurs connectés |
id | afficher les uid, gid et groupes de l'utilisateur |
id user | afficher les uid, gid et groupes de user (root only) |
finger user | affiche les informations de user |
write user | afficher un message sur le terminal de user |
tty | afficher le nom de son terminal |
su - sudo | passer en mode administrateur |
passwd | changer le mot de passe de l'utilisateur courant |
adduser | ajouter un utilisateur |
deluser | supprime un utilisateur |
addgroup | ajoute un groupe |
delgroup | supprime un groupe |
processus
commande | action |
ps | afficher les processus de l'utilisateur rattachés à un terminal |
ps ax | afficher tous les processus |
ps aux | afficher tous les processus en indiquant les utilisateurs |
pstree | afficher les processus dans une arborescence |
top | afficher un tableau de bord des processus les plus gourmands |
kill signal pid | tuer un processus en utilisant son pid |
pkill signal nom | tuer un processus en utilisant le nom du programme |
signaux utilisés par kill/pkill
signal | action |
-1 (HUP) | recharger le fichier de configuration du processus |
-2 (INT) | interrompre le processus |
-3 (QUIT) | quitter le processus |
-9 (KILL) | tuer le processus (à eviter, tenter -15 avant) |
-15 (TERM) | terminer le processus proprement |
-18 (STOP) | geler le processus |
-20 (CONT) | reprendre l'exécution d'un processus gelé |
tâches périodiques (cron)
commande | action |
crontab -l | liste les tâches de l'utilisateur |
crontab -e | editer les tâches de l'utilisateur |
crontab -e -u user | editer les tâches de user (root only) |
syntaxe de crontab
le fichier crontab est composé de commandes comprenant 5 champs temporels, un nom d'usager si il s'agit du fichier de configuration principal et d'une commande à exécuter.
les 5 champs temporels:
m minutes (0-59)
h heures (0-23)
dom numéro du jour du mois (1-31)
mon numéro du mois (1-12)
dow numéro du jour de la semaine (0-7 avec dimanche = 0 & 7)
les types de variables:
exemples:
crontab | action |
0 5 * * * commande | exécute commande tous les jours à 5h00 |
*/5 * * * * commande | exécute commande toutes les 5 minutes |
10 22 * * 2/2 commande | exécute commande un mardi sur deux à 22h10 |
53 21 * * 1-5 commande | exécute commande du lundi au vendredi à 21h53 |
36 18 10,20 * * commande | exécute commande les 10 et 20 du mois à 18h36 |
0 12 20 7 * commande | exécute commande tous les 20 juillet à 12h00 (anniversaire) |
matériel
commande | action |
lsusb | liste les périphériques de type usb connectés |
lspci | liste les périphériques de type pci connectés |
cat /proc/cpuinfo | affiche les informations processeur |
cat /proc/partitions | affiche les partitions montées |
exemples: (sources: linuxtrack)
commande | action |
lspci | grep -i vga | cut -d: -f3 | afficher le modèle de sa carte graphique |
lspci | grep -i network | cut -d: -f3 | afficher le modèle de sa carte wifi |
lspci | grep -i audio | cut -d: -f3 | afficher le modèle de sa carte son |
réseau
commande | action |
hostname | affiche le nom d'hôte de la machine |
ping machine | envoie un ping à une machine |
traceroute machine | fait un traceroute vers machine |
netstat | affiche l'usage du réseau pas les processus |
netstat -a | netstat avec l'affichage des processus serveurs |
lsof | liste détaillée de l'usage des fichiers et du réseau |
ifconfig | affiche la configuration des interfaces réseaux |
ifconfig interface IP masque | configure une interface réseau |
route | affiche la table de routage |
curl ifconfig.me | vérifier son IP publique |
ip address show eth0 | grep "inet " | tr -s " " ":" | cut -d: -f3 | vérifier son IP locale pour eth0 |
/sbin/ifconfig eth0 | grep "inet " | tr -s " " ":" | cut -d: -f4 |
ip address show eth0 | grep "inet " | tr -s " " ":" | tr -s "/" ":" | cut -d: -f3 |
permissions
format classique des droits et permissions d'un dossier/fichier: prenons l'exemple du dossier source de wmfs
┌─[arp@thinkdeb]─[~]
└─|$ ls -l /home/arp/wmfs/wmfs
total 64
-rwxr-xr-x 1 arp arp 2449 Apr 1 18:05 configure
-rw-r--r-- 1 arp arp 1528 Apr 1 18:05 COPYING
drwxr-xr-x 3 arp arp 4096 Apr 1 18:05 debian
-rw-r--r-- 1 arp arp 2128 Apr 1 18:05 Makefile.in
-rw-r--r-- 1 arp arp 22 Apr 1 18:05 README
drwxr-xr-x 2 arp arp 4096 Apr 1 18:05 scripts
drwxr-xr-x 2 arp arp 4096 Apr 1 18:05 src
-rw-r--r-- 1 arp arp 12741 Apr 1 18:05 wmfs.1
-rw-r--r-- 1 arp arp 117 Apr 1 18:05 wmfs.desktop
-rw-r--r-- 1 arp arp 1320 Mar 26 16:26 wmfs-gdb.log
-rw-r--r-- 1 arp arp 8629 Apr 1 18:05 wmfsrc
les permissions: -rwxr-xr-x ou drwxr-xr-x
le premier caractère correspond au type d'objet. les suivants se lisent par groupe de trois et définissent respectivement les droits accordés:
label | type d'objet |
- | fichier |
d | répertoire |
l | lien |
s | socket |
p | fifo |
c | device (mode caractère) |
b | device (mode block) |
label | type de droits |
- | pas d'accès |
r | accès en lecture |
w | accès en écriture |
x | accès en exécution pour les fichiers, traversée pour les dossiers |
s | bit set-UID (user), bit set-GID (groupe) |
t | sticky bit: impossible d'effacer les fichiers des autres |
S | bit set-UID sans les droits d'exécution |
T | sticky bit sans droits de travesée |
changer les droits et permissions
commande | action |
chown user fichier | change le propriétaire de fichier à user |
chgrp groupe fichier | change le groupe de fichier à groupe |
chmod mode fichier | change les droits d'accès au fichier |
le mode de chmod peut être sous la forme groupe(s)+droit(s) ou sous la forme octale SUGO/UGO
la forme groupe(s)+droit(s): ou
groupe=
u pour user,
g pour groupe et
o pour others.
$ chmod ugo+rx $HOME/repertoire ## permet à tous de lister (lire) et traverser le répertoire
$ chmod go-rwx $HOME/repertoire/fichier ## retire tous les droits à tous sauf au propriétaire du fichier
la forme octale SUGO où:
S : 1 (sticky-bit), 2 (set-GID) ou 4 (set-UID)
U,G et O : 1 (exécutable), 2 (écriture), 4(lecture). on additionne les formes par chiffre pour obtenir un mode octal à 4 chiffres.
$ chmod 1750 $HOME/repertoire ## le propriétaire et le groupe peuvent lire et traverser le répertoire, seul le propriétaire peut y écrire ou l'effacer.
$ chmod 660 $HOME/fichier ## le fichier est accessible au propriétaire et au groupe en lecture et écriture
recherche
commande/option | action |
locate motif | recherche des fichiers dont le nom correspond au motif |
updatedb | mettre à jour la base de données de locate |
find chemin options | recherche les fichiers correspondant aux options dans chemin |
find -name motif | recherche sur le nom du fichier. ex: find -name '*.html' |
find -type f/d/l | recherche par type où f=fichier, d=répertoire et l=lien |
find -exec cmd | exécute la commande cmd à tous les fichiers trouvés |
exemple: trouver toutes les images avec l'extension png dans le dossier images de l'utilisateur et les copier dans le dossier tmp ( '{}' représente les fichiers trouvés).
find $HOME/pics -name '*.png' -exec cp {} $HOME/tmp/ \;
archives
les commandes utilisées possèdent bien plus d'options que celles présentées ici, je vous invite à consulter les manuels concernés.
format | compression | extraction |
.tar.bz2, .tbz2 | tar -cvjf archive.tar.bz2 repertoire | tar xvjf |
.tar.gz, .tgz | tar -cvzf archive.tar.gz repertoire | tar xvzf |
.bz2 | bzip2 fichiers | bunzip2 |
.rar | - | unrar x |
.gz | gzip fichiers | gunzip |
.tar | tar -cvf archive.tar fichiers | tar xvf |
.zip | zip -r archive.zip fichiers | unzip |
.Z | compress fichiers | uncompress |
.7z | 7z a fichiers | 7z x |
.xz | xz -z repertoire | unxz |
kernel
diverses infos sur le noyau linux utilisé
commande | description |
cat /proc/version | version du noyau Linux utilisé, son nom, la version du compilateur utilisé. |
uname -r | version du noyau utilisé. |
dpkg -l | grep -Ei "linux-headers|linux-image" | liste les noyaux installés sur votre machine. |