LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

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 [2018/11/17 13:53] (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: 2018/11/17 13:53 (modification externe)