Commandes de base

Coreutils : Les commandes basiques de Linux

Table des matières

console_baniere




Introduction



Dans cet article nous allons partir à la découverte des commandes des coreutils.
Ce sont toutes les commandes standard des systèmes Linux : (chmod, cp, dd, ls, sort, tr, head, wc, who,...)

Nous allons parcourir les principaux par type d'outil et citer un ou plusieurs exemples d'utilisation.

Les commandes sont triées par type de commande puis par ordre alphabétique.

Voici sur un système Red Hat 8 la liste des commandes :

Code TEXT :
/usr/bin/[
/usr/bin/arch
/usr/bin/b2sum
/usr/bin/base32
/usr/bin/base64
/usr/bin/basename
/usr/bin/cat
/usr/bin/chcon
/usr/bin/chgrp
/usr/bin/chmod
/usr/bin/chown
/usr/bin/cksum
/usr/bin/comm
/usr/bin/cp
/usr/bin/csplit
/usr/bin/cut
/usr/bin/date
/usr/bin/dd
/usr/bin/df
/usr/bin/dir
/usr/bin/dircolors
/usr/bin/dirname
/usr/bin/du
/usr/bin/echo
/usr/bin/env
/usr/bin/expand
/usr/bin/expr
/usr/bin/factor
/usr/bin/false
/usr/bin/fmt
/usr/bin/fold
/usr/bin/groups
/usr/bin/head
/usr/bin/hostid
/usr/bin/id
/usr/bin/install
/usr/bin/join
/usr/bin/link
/usr/bin/ln
/usr/bin/logname
/usr/bin/ls
/usr/bin/md5sum
/usr/bin/mkdir
/usr/bin/mkfifo
/usr/bin/mknod
/usr/bin/mktemp
/usr/bin/mv
/usr/bin/nice
/usr/bin/nl
/usr/bin/nohup
/usr/bin/nproc
/usr/bin/numfmt
/usr/bin/od
/usr/bin/paste
/usr/bin/pathchk
/usr/bin/pinky
/usr/bin/pr
/usr/bin/printenv
/usr/bin/printf
/usr/bin/ptx
/usr/bin/pwd
/usr/bin/readlink
/usr/bin/realpath
/usr/bin/rm
/usr/bin/rmdir
/usr/bin/runcon
/usr/bin/seq
/usr/bin/sha1sum
/usr/bin/sha224sum
/usr/bin/sha256sum
/usr/bin/sha384sum
/usr/bin/sha512sum
/usr/bin/shred
/usr/bin/shuf
/usr/bin/sleep
/usr/bin/sort
/usr/bin/split
/usr/bin/stat
/usr/bin/stdbuf
/usr/bin/stty
/usr/bin/sum
/usr/bin/sync
/usr/bin/tac
/usr/bin/tail
/usr/bin/tee
/usr/bin/test
/usr/bin/timeout
/usr/bin/touch
/usr/bin/tr
/usr/bin/true
/usr/bin/truncate
/usr/bin/tsort
/usr/bin/tty
/usr/bin/uname
/usr/bin/unexpand
/usr/bin/uniq
/usr/bin/unlink
/usr/bin/users
/usr/bin/vdir
/usr/bin/wc
/usr/bin/who
/usr/bin/whoami
/usr/bin/yes


Outils pour les fichiers



chcon



chcon permet de changer le contexte de sécurité SELinux d'un fichier :

Code BASH :
chcon -R -t httpd_sys_rw_content_t /server/www



chgrp



chgrp permet de changer le groupe propriétaire d'un fichier :

Code BASH :
chgrp users fichier.txt


L'option -R souvent utilisée permet de faire l'opération de manière récursive (dans le cas d'un répertoire)


chown



chown permet de cnager l'utilisateur d'un fichier :

Code BASH :
chown -R adrien /home/adrien


L'option -R souvent utilisée permet de faire l'opération de manière récursive (dans le cas d'un répertoire)


cp




cp permet de copier un fichier :

Code BASH :
cp fichier.txt copie_de_fichier.txt



dd



dd permet la copie brute d'un périphérique physique :

Code BASH :
dd if=/dev/sda1 of=/home/adrien/copie_brute_de_sda1


if et of indiquent respectivement les fichiers d'entrée et de sortie.
status=progress dans les versions récentes permettent d'afficher le suivi de l'opération.

Les options bs pour block size et count sont parfois utilisées, comme ici pour générer un fichier de 1 Go :

Code BASH :
dd if=/dev/urandom  of=1Go count=1024 bs=1M



df



df permet de montrer l'espace disque occupé par un système de fichiers monté :

Code BASH :
 df -h


Code TEXT :
Sys. de fichiers          Taille Utilisé Dispo Uti% Monté sur
devtmpfs                     10M       0   10M   0% /dev
tmpfs                       7,9G    352M  7,5G   5% /dev/shm
tmpfs                       7,9G    1,5M  7,9G   1% /run
/dev/mapper/rootvg-gentoo    84G     63G   17G  80% /
cgroup_root                  10M       0   10M   0% /sys/fs/cgroup
/dev/sda3                   975M    192M  717M  22% /boot
/dev/sda1                    99M    249K   99M   1% /boot/efi
/dev/mapper/rootvg-home     138G    104G   33G  77% /home
/dev/sdb1                   1,8T    1,8T   81G  96% /media/DATA
/dev/mapper/rootvg-vmssd     84G     35G   49G  42% /media/SSD
tmpfs                       1,6G     68K  1,6G   1% /run/user/1000
 


dir



dir liste les fichiers de la même manière que ls -Cb :

Code BASH :
dir /


Code TEXT :
bin   dev  home  lib64         media  opt   root    sbin     srv  tmp  var
boot  etc  lib     lost+found  mnt    proc  run    selinux  sys  usr


du



du permet de montrer l'espace disque occupé par un fichier ou un répertoire :

Code BASH :
du -h /boot/vmlinuz-5.10.109-gentoo-adrien


Code TEXT :
8,7M    /boot/vmlinuz-5.10.109-gentoo-adrien


L'option -h permet d'afficher la taille de manière humaine..

Pour un répertoire on utilisera l'option -s pour compter la totalité et ne pas avoir le détail des éléments :

Code BASH :
du -sh /home/adrien/Téléchargements


Code TEXT :
496M    /home/adrien/Téléchargements


--- install ----

install permet de copier un fichier et paramétrer ses attributs :

Code BASH :
install -m750 script.sh /usr/bin/monscriptperso



ln



ln permet de créer un lien (symbolique ou physique) vers un fichier :

Code BASH :
ln -s fic lien_vers_fic



ls



ls permet de lister les fichiers :

Code BASH :
ls -l /home


Code TEXT :
drwxrwxr-x  17 adeline nous  4096 27 sept.  2020 adeline
drwx-----x 101 adrien  nous 20480 18 juin  09:01 adrien
drwxr-xr-x   3    1002 1004  4096 11 avril  2019 invite
 


l'option -l est souvent utilisée pour afficher les informations de manière détaillée.
l'option -a affiche les fichiers cachés (commençant par le symbole point)
l'option -h permet d'afficher les tailles de manière plus lisible

Code BASH :
ls -lah /root


Code TEXT :
drwx------ 10 root root 4,0K 18 juin  11:51 .
drwxr-xr-x 21 root root 4,0K 10 mars  23:02 ..
-rw-------  1 root root  14K 18 juin  11:46 .bash_history
-rw-r--r--  1 root root  551  1 avril  2021 .bashrc
-rw-r--r--  1 root root 115K 23 janv.  2020 config-5.4.13-gentoo-adrien
drwxr-xr-x  6 root root 4,0K 26 janv.  2020 .cpan
-rw-r--r--  1 root root 1,8K 23 janv.  2020 fstab-gentoo
drwxr-xr-x  9 root root 4,0K 23 janv.  2020 portage-gentoo
-rw-------  1 root root  19K 18 juin  11:51 .viminfo
-rw-r--r--  1 root root  171 29 mai   23:11 .wget-hsts



mkdir



mkdir permet de créer un répertoire :

Code BASH :
mkdir dossier


L'option -p permet de créer l'arborescence complète :

Code BASH :
mkdir -p dossier/1/11/111



mkfifo



mkfifo permet de créer un tube nommé fifo sous forme de fichier :

Code BASH :
mkfifo monfifo


mktmp



mktemp permet de créer un nom unique pour un fichier temporaire :

Code BASH :
mktemp adrien.XXXX


Les XXXX sont les caractères joker utilisés pour la génération aléatoire

mv



mv permet de déplacer (ou renommer) un fichier :

Code BASH :
mv adrien adrien_new


rm



rm permet de supprimer un fichier :

Code BASH :
rm fichier.txt


L'option -i permet de demander confirmation avant suppression
L'option -r permet de supprimer de manière récursive (un répertoire par exemple)
L'option -f permet de ne demander aucune confirmation

rmdir



rmdir permet de supprimer un répertoire s'il est vide :

Code BASH :
rmdir dossier


shred



shred permet d’écraser le contenu d'un fichier :

Code BASH :
shred fichier.txt


Cette commande est abordée avec des exemples dans cet article : Effacer de manière sécurisée un disque dur )


sync



sync permet d'exécuter immédiatement les requêtes en écriture qui sont en attente :

Code BASH :
sync



touch



touch permet de créer un fichier vide ou modifier le timestamp d'un fichier :

Code BASH :
touch fichiervide


Définir la date de modification le 18 Juin 2022 à 17h50 :

Code BASH :
touch -t 2206181750  fichier



vdir



vdir liste les fichiers de la même manière que ls -lb :

Code BASH :
vdir /home


Code TEXT :
drwxrwxr-x  17 adeline nous  4096 27 sept.  2020 adeline
drwx-----x 101 adrien  nous 20480 18 juin  09:01 adrien
drwxr-xr-x   3    1002 1004  4096 11 avril  2019 invite
 


realpath



realpath affiche le chemin absolu d'un fichier, d'un lien symbolique :

Code BASH :
realpath lien_vers_fic


Code TEXT :
/root/fic




Outils pour le texte



base64



base64 permet d'encoder ou de décoder en base64 :

Pour encoder :
Code BASH :
echo coucou | base64


Pour décoder :
Code BASH :
echo Y291Y291Cg== | base64 -d


cat



cat permet d'afficher le contenu d'un fichier ou d'en concaténer plusieurs :

Code BASH :
cat /etc/group


cut



cut sélectionne une colonne dans un fichier :

Code BASH :
cut -d':' -f 1 /etc/passwd


L'option -d permet d'indiquer le champ de délimitation
L'option -f permet d'indiquer le numéro de colonne à sélectionner

head



head permet d'afficher les premières lignes d'un fichier :

Code BASH :
head -5 /etc/passwd


On peut utiliser l'option -n suivi d'un nombre ou -5 (ici avec le nombre 5) pour spécifier un nombre précis (par défaut 10)


md5sum



md5sum permet de calculer la somme md5 d'un fichier

Code BASH :
 md5sum /etc/passwd


Code TEXT :
5c7733be02112522e70bb8857b2141bb  /etc/passwd


nl



nl permet de numéroter les lignes d'un fichier :

Code BASH :
nl  /etc/shells 


Code TEXT :
     1    /bin/sh
     2    /bin/bash
     3    /usr/bin/sh
     4    /usr/bin/bash
 


paste



paste permet d'afficher sur la sortie standard les lignes correspondantes séparées par une tabulation :

Code BASH :
paste /etc/group /etc/gshadow


sha1sum



sha1sum permet de calculer la somme sha1 d'un fichier : (sha224sum, sha256sum, sha384sum, sha512sum)

Code BASH :
 sha1sum /etc/passwd


Code TEXT :
acbd59ff1f6df4189492c63299c3b04504435119  /etc/passwd


shuf



shuf permet de permuter de manière aléatoire les données du flux d'entrée :

Code BASH :
(echo 1; echo 2; echo 3; echo 4) | shuf


Code TEXT :
3
4
2
1
 


sort



sort permet de trier par ordre alphabétique les lignes d'un fichier (ou de l'entrée standard) :

Code BASH :
sort /etc/passwd


tac



tac permet d'afficher un fichier en inversant les lignes :

Code BASH :
tac /etc/group


tail



tail permet d'afficher les dernières lignes d'un fichier :

Code BASH :
tail -5 /etc/passwd


On peut utiliser l'option -n suivi d'un nombre ou -5 (ici avec le nombre 5) pour spécifier un nombre précis (par défaut 10)

tr



tr permet de changer un caractère particulier de l'entrée standard :

Code BASH :
echo coucou | tr c t


uniq



uniq permet de supprimer lignes doublons consécutives d'un fichier (souvent utilisé après sort)
Code BASH :
sort liste.txt | uniq


wc



wc permet de compter le nombre de lignes, de mots et de caractères d'un fichier :

Code BASH :
wc /etc/resolv.conf


L'option -l est souvent utilisée pour ne compter que les lignes :

Code BASH :
wc -l /etc/passwd



Outils pour le système




Outils pour les shells




[code=bash][/code]
[code=bash][/code]
[code=bash][/code]
[code=bash][/code]
[code=bash][/code]
[code=bash][/code]
[code=bash][/code]
[code=bash][/code]
[code=bash][/code]
[code=bash][/code]

Archives


arch


Cette commande affiche l'architecture de la machine :
Code BASH :
arch

Code TEXT :
i686

cat


Cette commande affiche le contenu d'un fichier :
Code BASH :
cat fichier.txt

Code TEXT :
Bonjour
Voici un fichier
Au revoir

cd


Cette commande permet de changer de répertoire :
Code BASH :
cd /home

chgrp


Cette commande change le groupe propriétaire d'un fichier :
Code BASH :
chgrp users fichier.txt

chmod


Cette commande change les droits d'un fichier :
Code BASH :
chmod +x fichier.txt

chown


Cette commande change l'utilisateur propriétaire d'un fichier :
Code BASH :
chown adrien fichier.txt

cp


Cette commande copie un fichier :
Code BASH :
cp fichier.txt copie.txt

date


Cette commande affiche la date :
Code BASH :
date

df


Cette commande affiche la liste des systèmes de fichiers montés et l'espace occupé de chacun :
Code BASH :
df

Code TEXT :
Sys. de fichiers blocs de 1K  Utilisé Disponible Uti% Monté sur
/dev/md0p1          28706020  2746020   24478776  11% /
devtmpfs               10240        0      10240   0% /dev
shm                   771096        0     771096   0% /dev/shm
tmpfs                 771096      496     770600   1% /run
cgroup_root            10240        0      10240   0% /sys/fs/cgroup
/dev/md0p4          69021192 14804904   50687176  23% /home
/dev/md0p3          51475068  2965840   45871404   7% /var

du


Cette commande affiche la taille d'un dossier :
Code BASH :
du -h /bin

Code TEXT :
7.7M    /bin

echo


Cette commande affiche du texte :
Code BASH :
echo coucou

Code TEXT :
coucou

exit


Cette commande quitte l'interpréteur de commande :
Code BASH :
exit

find


Cette commande recherche des fichiers :
Code BASH :
find *.txt

Code TEXT :
copie.txt
fichier.txt

free


Cette commande affiche l'état de la mémoire vive (RAM) et de pagination (SWAP) utilisée :
Code BASH :
free

Code TEXT :
             total       used       free     shared    buffers     cached
Mem:       1542196    1412488     129708      33652     252100     576296
-/+ buffers/cache:     584092     958104
Swap:      3906248      40340    3865908

grep


Cette commande affiche les lignes d'un fichier correspondant à une expression
Code BASH :
grep Bonjour fichier.txt

Code TEXT :
Bonjour

groups


Cette commande affiche la liste des groupes dont fait partie l'utilisateur :
Code BASH :
groups

Code TEXT :
lp wheel uucp cron audio cdrom video cdrw usb users adrien

head


Cette commande affiche les premières lignes de fichiers :
Code BASH :
head -2 fichier.txt

Code TEXT :
Bonjour
Voici un fichier

hostname


Cette commande affiche le nom d'hôte de la machine :
Code BASH :
hostname

Code TEXT :
oxygen.linuxtricks.fr

id


Cette commande affiche l'ID de l'utilisateur, l'ID du groupe et les groupes de l'utilisateur :
Code BASH :
id

Code TEXT :
uid=1000(adrien) gid=1000(adrien) groupes=1000(adrien),7(lp),10(wheel),14(uucp),16(cron),18(audio),19(cdrom),27(video),80(cdrw),85(usb),100(users)

kill


Cette commande tue un processus par son PID (Processus IDentifier) :
Code BASH :
 kill 25202

Code TEXT :
[1]+  Complété              cat /dev/zero > /dev/null

killall


Cette commande tue tous les processus par son nom :
Code BASH :
killall cat

Code TEXT :
[1]+  Complété              cat /dev/zero > /dev/null

last


Cette commande affiche les derniers utilisateurs connectés sur le système :
Code BASH :
last -n 3

Code TEXT :
adrien   pts/4        94.185.65.78    Sat Aug 29 07:33    gone - no logout
adrien   pts/4        10.21.27.100     Sat Aug 29 06:50 - 07:33  (00:42)
adrien   pts/3        89.158.55.229    Sat Aug 29 06:44 - 09:24  (02:40)
wtmp commence Sun Apr 26 18:17:01 2015

ldd


Cette commande affiche les librairies partagées d'un programme :
Code BASH :
ldd /bin/bash

Code TEXT :
        linux-gate.so.1 (0xb76ea000)
        libreadline.so.6 => /lib/libreadline.so.6 (0xb769f000)
        libncurses.so.5 => /lib/libncurses.so.5 (0xb7654000)
        libc.so.6 => /lib/libc.so.6 (0xb74bb000)
        /lib/ld-linux.so.2 (0xb76eb000)

ln


Cette commande créé des liens vers des fichiers :
Code BASH :
ln -s fichier.txt lien-vers-fichier.txt

logname


Cette commande affiche le nom d'utilisateur connecté :
Code BASH :
logname

Code TEXT :
adrien

ls


Cette commande liste le contenu d'un répertoire :
Code BASH :
ls

Code TEXT :
copie.txt  fichier.txt  lien-vers-fichier.txt

man


Cette commande (très utile) affiche le manuel d'utilisation d'une commande :
Code BASH :
man bash

md5sum


Affiche la somme MD5 d'un fichier :
Code BASH :
md5sum fichier.txt

Code TEXT :
dfee7f76979716f722d7caa4a774b5c8  fichier.txt

mkdir


Cette commande créé un répertoire
Code BASH :
mkdir test

mv


Cette commande déplace un fichier ou le renomme :
Code BASH :
mv fichier.txt fichier-renomme.txt

nl


Cette commande affiche le nombre de lignes d'un fichier :
Code BASH :
nl fichier.txt

Code TEXT :
     1  Bonjour
     2  Voici un fichier
     3  Au revoir

pidof


Cette commande affiche le PID d'un processus par son nom :
Code BASH :
pidof cat

Code TEXT :
25520

ping


Cette commande contacte un hôte par son adresse IP ou son nom :
Code BASH :
 ping -c 2 linuxtricks.fr

Code TEXT :
PING linuxtricks.fr (212.227.108.142) 56(84) bytes of data.
64 bytes from 212.227.108.142: icmp_seq=1 ttl=50 time=32.5 ms
64 bytes from 212.227.108.142: icmp_seq=2 ttl=50 time=25.6 ms
-.-.- linuxtricks.fr ping statistics -.-.-
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 25.622/29.105/32.589/3.487 ms

ps


Cette commande affiche les processus en cours d'exécution :
Code BASH :
ps

Code TEXT :
  PID TTY          TIME CMD
20605 pts/4    00:00:00 bash
25520 pts/4    00:01:29 cat
25573 pts/4    00:00:00 ps

pstree


Cette commande affiche les processus sous la forme d'un arbre :
Code BASH :
pstree

Code TEXT :
init-+-6*[agetty]
     |-apache2-+-apache2
     |         `-2*[apache2---26*[{apache2}]]
     |-cron
     |-dhcpd
     |-fail2ban-server---2*[{fail2ban-server}]
     |-mdadm
     |-mysqld---43*[{mysqld}]
     |-named---4*[{named}]
     |-ntpd
     |-python2-+-python2---10*[{python2}]
     |         |-python2
     |         `-12*[{python2}]
     |-rsyslogd-+-{in:imklog}
     |          |-{in:imuxsock}
     |          `-{rs:main Q:Reg}
     |-screen---bash---su---bash
     |-screen---bash---irssi---{gmain}
     |-sshd-+-sshd---sshd-+-bash
     |      |             `-4*[{sshd}]
     |      `-sshd---sshd-+-bash-+-cat
     |                    |      `-pstree
     |                    `-4*[{sshd}]
     |-udevd
     |-zabbix_agentd---5*[zabbix_agentd]
     `-zabbix_server---26*[zabbix_server]

pwd


Cette commande affiche le répertoire dans lequel on se trouve :
Code BASH :
pwd

Code TEXT :
/home/adrien/test

rm


Cette commande supprime un fichier ou un répertoire :
Code BASH :
rm fichier.txt

rmdir


Cette commande supprime un dossier :
Code BASH :
rmdir test

sed


Cette commande permet d'éditer le flux ou un fichier et de transformer le texte :
Code BASH :
 echo "Mon nom est adrien" | sed -e 's/adrien/christophe/g'

Code TEXT :
Mon nom est christophe

shutdown


Cette commande sert à arrêter ou redémarrer le système :
Code BASH :
shutdown now

tail


Cette commande affiche les dernières lignes d'un fichier :
Code BASH :
tail -n 2 fichier.txt 

Code TEXT :
Voici un fichier
Au revoir

touch


Cette commande change la date de dernier accès d'un fichier. S'il n'existe pas, un fichier vide est créé :
Code BASH :
touch fichier.txt

tty


Cette commande affiche le nom du terminal actuellement utilisé :
Code BASH :
tty

Code TEXT :
/dev/pts/4

uname


Cette commande affiche le nom d'hôte, le noyau utilisé, sa version, le processeur :
Code BASH :
uname -a

Code TEXT :
Linux oxygen.linuxtricks.fr 3.18.20-calculate #1 SMP Sun Aug 9 20:25:17 UTC 2015 i686 Intel(R) Pentium(R) 4 CPU 2.80GHz GenuineIntel GNU/Linux

uptime


Cette commande affiche la charge système et son temps de fonctionnement :
Code BASH :
uptime

Code TEXT :
 10:41:58 up 16 days,  2:09,  2 users,  load average: 1.21, 1.07, 0.81

users


Cette commande affiche le nom des utilisateurs connectés :
Code BASH :
users

Code TEXT :
adrien root

w


Cette commande montre les utilisateurs connectés et ce qu'ils font :
Code BASH :
w

Code TEXT :
 10:43:09 up 16 days,  2:10,  2 users,  load average: 1.33, 1.13, 0.85
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
adrien   pts/0     01:27    9:15m  0.00s  0.00s -bash
adrien   pts/4     07:33    6.00s 13:36   0.00s w

wall


Cette commande envoie un message à tout le monde sur le système (Attention, cela affiche même si vous éditez en console un fichier) :
Code BASH :
wall Bonjour à tous

whatis


Cette commande affiche une brève description de ce qu'est la commande associée :
Code BASH :
whatis bash

Code TEXT :
bash (1)             - GNU Bourne-Again SHell

who


Cette commande affiche qui est connecté sur le système :
Code BASH :
who

Code TEXT :
adrien   pts/0        2015-08-29 01:27 (94.185.65.78)
adrien   pts/4        2015-08-29 07:33 (94.185.65.78)

whereis


Cette commande affiche l'emplacement d'un fichier exécutable, d'une source ou d'un manuel :
Code BASH :
whereis bash

Code TEXT :
bash: /bin/bash /etc/bash /usr/share/man/man1/bash.1.bz2




:magic:
Cette page a été vue 44724 fois