Outils pour utilisateurs

Outils du site


les_commandes_de_base_sous_linux

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

les_commandes_de_base_sous_linux [2014/12/21 19:42] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Commandes de base sur GNU/Linux ======
 +
 +===== Introduction =====
 +Ce guide a été créé pour répertorier les commandes de base utilisées dans une console. Elles sont communes à toutes les distributions GNU/Linux. Il est plus simple de les apprendre car, tout peut arriver. Et oui, il suffit d'un plantage de l'​interface graphique pour se retrouver avec un mode console forcé. Et là, ces commandes peuvent bien servir.
 +Avec ça, il faut garder en tête que certaines commandes nécessitent d'​être en super utilisateur pour être utilisées tout comme certaines commandes peuvent avoir des options. Le schéma à utiliser lorsque l'on veut utiliser une commande avec son option est :
 +  nomdelacommande -option1 -option2
 +Enfin, pour en savoir plus sur une commande, il suffit de taper dans une console:
 +  man nomdelacommande
 +Note : Pour quitter un manuel en console, on appuie sur **q**
 +
 +===== 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** |
 +| comp //file1 file2// | compare deux fichiers binaires |
 +|comp //file1 file2// **n N**| compare deux fichiers, //file1// à partir du **n**ième octet, et //file2// à partir du **N**iè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:
 +  ***x,y** liste de valeurs
 +  ***x-y** intervalle de valeurs
 +  *** * ** toute la valeur
 +  ***/n** période
 +**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: [[http://​www.linuxtrack.com/​t1175-Commandes-d-informations-utiles-a-connaitre.htm?​q=commandes|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 des droits et permissions ====
 +format classique des droits et permissions d'un dossier/​fichier:​ prenons l'​exemple du dossier source de [[http://​wmfs.info|wmfs]].\\
 +<​code>​
 +┌─[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
 +</​code>​
 +//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**:​
 +    *au propriétaire du fichier/​dossier
 +    *au groupe propriétaire du fichier/​dossier
 +    *aux autres utilisateurs
 +
 +^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.<​code>​$ 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</​code>​
 +  *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.
 +  *<​code>​$ 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</​code>​
 +
 +===== 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).<​code>​ find $HOME/pics -name '​*.png'​ -exec cp {} $HOME/tmp/ \;</​code>​
 +
 +===== 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. |
 +
 +
 +===== Liens =====
 +[[commande:​commande:​|Utiliser la ligne de commande]]\\
 +[[http://​fr.wikipedia.org/​wiki/​Commandes_unix|Commandes Unix]] (Français)\\
 +[[http://​www.roesler-ac.de/​wolfram/​acro/​Cmd.htm|Acronymes Unix]] (Anglais)\\
 +[[http://​quebecos.com/​index.php?​option=com_openwiki&​Itemid=49&​id=commandes_par_ordre_alphabetique|Source]] (Français)\\ \\ 
  
les_commandes_de_base_sous_linux.txt · Dernière modification: 2014/12/21 19:42 (modification externe)