Coreutils : Les commandes basiques de Linux
Table des matières
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 :
chcon permet de changer le contexte de sécurité SELinux d'un fichier :
chgrp permet de changer le groupe propriétaire d'un fichier :
chown permet de cnager l'utilisateur d'un fichier :
cp permet de copier un fichier :
dd permet la copie brute d'un périphérique physique :
df permet de montrer l'espace disque occupé par un système de fichiers monté :
dir liste les fichiers de la même manière que ls -Cb :
install permet de copier un fichier et paramétrer ses attributs :
ln permet de créer un lien (symbolque ou physique) vers un fichier :
ls permet de lister les fichiers :
mkdir permet de créer un répertoire :
mkfifo permet de créer un tube nommé fifo sous forme de fichier :
mktemp permet de créer un nom unique pour un fichier temporaire :
mv permet de déplacer (ou renommer) un fichier :
rm permet de supprimer un fichier :
rmdir permet de supprimer un répertoire s'il est vide :
shred permet d’écraser le contenu d'un fichier (s'applique aussi à un disque, une partition ) :
sync permet d'exécuter immédiatement les requêtes en écriture qui sont en attente :
touch permet de créer un fichier vide ou modifier le timestamp d'un fichier :
truncate permet de réduire ou augmenter la taille d'un fichier donné :
vdir liste les fichiers de la même manière que ls -lb :
realpath affiche le chemin absolu d'un fichier, d'un lien symbolique :
base64 permet d'encoder ou de décoder en base64 :
cat permet d'afficher le contenu d'un fichier ou d'en concaténer plusieurs :
cut sélectionne une colonne dans un fichier :
head permet d'afficher les premières lignes d'un fichier ;:
md5sum permet de calculer la somme md5 d'un fichier
nl permet de numéroter les lignes d'un fichier :
paste permet d'afficher sur la sortie standard les lignes correspondantes séparées par une tabulation :
sha1sum permet de calculer la somme sha1 d'un fichier : (sha224sum, sha256sum, sha384sum, sha512sum)
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 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 permet de changer le groupe propriétaire d'un fichier :
Code BASH :
chgrp users fichier.txt
chown permet de cnager l'utilisateur d'un fichier :
Code BASH :
chown -R adrien /home/adrien
cp permet de copier un fichier :
Code BASH :
cp fichier.txt copie_de_fichier.txt
dd permet la copie brute d'un périphérique physique :
Code BASH :
dd if=/dev/sda1 of=/home/adrien/copie_brute_de_sda1
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 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
install permet de copier un fichier et paramétrer ses attributs :
Code BASH :
install -m750 script.sh /usr/bin/monscriptperso
ln permet de créer un lien (symbolque ou physique) vers un fichier :
Code BASH :
ln -s fic lien_vers_fic
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
mkdir permet de créer un répertoire :
Code BASH :
mkdir dossier
mkfifo permet de créer un tube nommé fifo sous forme de fichier :
Code BASH :
mkfifo monfifo
mktemp permet de créer un nom unique pour un fichier temporaire :
Code BASH :
mktemp adrien.XXXX
mv permet de déplacer (ou renommer) un fichier :
Code BASH :
mv adrien adrien_new
rm permet de supprimer un fichier :
Code BASH :
rm fichier.txt
rmdir permet de supprimer un répertoire s'il est vide :
Code BASH :
rmdir dossier
shred permet d’écraser le contenu d'un fichier (s'applique aussi à un disque, une partition ) :
Code BASH :
shred fichier.txt
sync permet d'exécuter immédiatement les requêtes en écriture qui sont en attente :
Code BASH :
sync
touch permet de créer un fichier vide ou modifier le timestamp d'un fichier :
Code BASH :
touch fichiervide
truncate permet de réduire ou augmenter la taille d'un fichier donné :
Code BASH :
truncate -s 5K ls_help
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 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 permet d'encoder ou de décoder en base64 :
Code BASH :
echo coucou | base64 echo Y291Y291Cg== | base64 -d
cat permet d'afficher le contenu d'un fichier ou d'en concaténer plusieurs :
Code BASH :
cat /etc/group
cut sélectionne une colonne dans un fichier :
Code BASH :
cut -d':' -f 1 /etc/passwd
head permet d'afficher les premières lignes d'un fichier ;:
Code BASH :
head -5 /etc/passwd
md5sum permet de calculer la somme md5 d'un fichier
Code BASH :
md5sum /etc/passwd
Code TEXT :
5c7733be02112522e70bb8857b2141bb /etc/passwd
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 permet d'afficher sur la sortie standard les lignes correspondantes séparées par une tabulation :
Code BASH :
paste /etc/group /etc/gshadow
Code TEXT :
root:x:0: root::: bin:x:1: bin::: daemon:x:2: daemon::: sys:x:3: sys::: adm:x:4: adm::: tty:x:5: tty::: disk:x:6: disk:::
sha1sum permet de calculer la somme sha1 d'un fichier : (sha224sum, sha256sum, sha384sum, sha512sum)
Code BASH :
sha1sum /etc/passwd
Code TEXT :
acbd59ff1f6df4189492c63299c3b04504435119 /etc/passwd/code] [b]shuf[/b] 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] [code=text]3 4 2 1 [/code] [b]sort[/b] permet de trier par ordre alphabétique les lignes d'un fichier (ou de l'entrée standard) : [code=bash]sort /etc/passwd[/code] [b]tac[/b] permet d'afficher un fichier en inversant les lignes : [code=bash]tac /etc/group[/code] [b]tail[/b] permet d'afficher les dernières lignes d'un fichier : [code=bash]tail -5 /etc/passwd[/code] [b]tr[/b] permet de changer un caractère particulier de l'entrée standard : [code=bash]echo coucou | tr c t[/code] [b]uniq[/b] permet de supprimer lignes doublons consécutives d'un fichier (souvent utilisé après sort) [code=bash]sort liste.txt | uniq[/code] [b]wc[/b] permet de compter le nombre de lignes, de mots et de caractères d'un fichier : [code=bash]wc /etc/resolv.conf wc -l /etc/passwd[/code] -- Outils pour les shells -- [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] [code=text]i686[/code] --- cat --- Cette commande affiche le contenu d'un fichier : [code=bash]cat fichier.txt[/code] [code=text]Bonjour Voici un fichier Au revoir[/code] --- cd --- Cette commande permet de changer de répertoire : [code=bash]cd /home[/code] --- chgrp --- Cette commande change le groupe propriétaire d'un fichier : [code=bash]chgrp users fichier.txt[/code] --- chmod --- Cette commande change les droits d'un fichier : [code=bash]chmod +x fichier.txt[/code] --- chown --- Cette commande change l'utilisateur propriétaire d'un fichier : [code=bash]chown adrien fichier.txt[/code] --- cp --- Cette commande copie un fichier : [code=bash]cp fichier.txt copie.txt[/code] --- date --- Cette commande affiche la date : [code=bash]date[/code] --- df --- Cette commande affiche la liste des systèmes de fichiers montés et l'espace occupé de chacun : [code=bash]df[/code] [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[/code] --- du --- Cette commande affiche la taille d'un dossier : [code=bash]du -h /bin[/code] [code=text]7.7M /bin[/code] --- echo --- Cette commande affiche du texte : [code=bash]echo coucou[/code] [code=text]coucou[/code] --- exit --- Cette commande quitte l'interpréteur de commande : [code=bash]exit[/code] --- find --- Cette commande recherche des fichiers : [code=bash]find *.txt[/code] [code=text]copie.txt fichier.txt[/code] --- free --- Cette commande affiche l'état de la mémoire vive (RAM) et de pagination (SWAP) utilisée : [code=bash]free[/code] [code=text] total used free shared buffers cached Mem: 1542196 1412488 129708 33652 252100 576296 -/+ buffers/cache: 584092 958104 Swap: 3906248 40340 3865908[/code] --- grep --- Cette commande affiche les lignes d'un fichier correspondant à une expression [code=bash]grep Bonjour fichier.txt[/code] [code=text]Bonjour[/code] --- groups --- Cette commande affiche la liste des groupes dont fait partie l'utilisateur : [code=bash]groups[/code] [code=text]lp wheel uucp cron audio cdrom video cdrw usb users adrien[/code] --- head --- Cette commande affiche les premières lignes de fichiers : [code=bash]head -2 fichier.txt[/code] [code=text]Bonjour Voici un fichier[/code] --- hostname --- Cette commande affiche le nom d'hôte de la machine : [code=bash]hostname[/code] [code=text]oxygen.linuxtricks.fr[/code] --- id --- Cette commande affiche l'ID de l'utilisateur, l'ID du groupe et les groupes de l'utilisateur : [code=bash]id[/code] [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)[/code] --- kill --- Cette commande tue un processus par son PID (Processus IDentifier) : [code=bash] kill 25202[/code] [code=text][1]+ Complété cat /dev/zero > /dev/null[/code] --- killall --- Cette commande tue tous les processus par son nom : [code=bash]killall cat[/code] [code=text][1]+ Complété cat /dev/zero > /dev/null[/code] --- last --- Cette commande affiche les derniers utilisateurs connectés sur le système : [code=bash]last -n 3[/code] [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[/code] --- ldd --- Cette commande affiche les librairies partagées d'un programme : [code=bash]ldd /bin/bash[/code] [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)[/code] --- ln --- Cette commande créé des liens vers des fichiers : [code=bash]ln -s fichier.txt lien-vers-fichier.txt[/code] --- logname --- Cette commande affiche le nom d'utilisateur connecté : [code=bash]logname[/code] [code=text]adrien[/code] --- ls --- Cette commande liste le contenu d'un répertoire : [code=bash]ls[/code] [code=text]copie.txt fichier.txt lien-vers-fichier.txt[/code] --- man --- Cette commande [b](très utile)[/b] affiche le manuel d'utilisation d'une commande : [code=bash]man bash[/code] --- md5sum --- Affiche la somme MD5 d'un fichier : [code=bash]md5sum fichier.txt[/code] [code=text]dfee7f76979716f722d7caa4a774b5c8 fichier.txt[/code] --- mkdir --- Cette commande créé un répertoire [code=bash]mkdir test[/code] --- mv --- Cette commande déplace un fichier ou le renomme : [code=bash]mv fichier.txt fichier-renomme.txt[/code] --- nl --- Cette commande affiche le nombre de lignes d'un fichier : [code=bash]nl fichier.txt[/code] [code=text] 1 Bonjour 2 Voici un fichier 3 Au revoir[/code] --- pidof --- Cette commande affiche le PID d'un processus par son nom : [code=bash]pidof cat[/code] [code=text]25520[/code] --- ping --- Cette commande contacte un hôte par son adresse IP ou son nom : [code=bash] ping -c 2 linuxtricks.fr[/code] [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[/code] --- ps --- Cette commande affiche les processus en cours d'exécution : [code=bash]ps[/code] [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[/code] --- pstree --- Cette commande affiche les processus sous la forme d'un arbre : [code=bash]pstree[/code] [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][/code] --- pwd --- Cette commande affiche le répertoire dans lequel on se trouve : [code=bash]pwd[/code] [code=text]/home/adrien/test[/code] --- rm --- Cette commande supprime un fichier ou un répertoire : [code=bash]rm fichier.txt[/code] --- rmdir --- Cette commande supprime un dossier : [code=bash]rmdir test[/code] --- 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] [code=text]Mon nom est christophe[/code] --- shutdown --- Cette commande sert à arrêter ou redémarrer le système : [code=bash]shutdown now[/code] --- tail --- Cette commande affiche les dernières lignes d'un fichier : [code=bash]tail -n 2 fichier.txt [/code] [code=text]Voici un fichier Au revoir[/code] --- 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[/code] --- tty --- Cette commande affiche le nom du terminal actuellement utilisé : [code=bash]tty[/code] [code=text]/dev/pts/4[/code] --- uname --- Cette commande affiche le nom d'hôte, le noyau utilisé, sa version, le processeur : [code=bash]uname -a[/code] [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[/code] --- uptime --- Cette commande affiche la charge système et son temps de fonctionnement : [code=bash]uptime[/code] [code=text] 10:41:58 up 16 days, 2:09, 2 users, load average: 1.21, 1.07, 0.81[/code] --- users --- Cette commande affiche le nom des utilisateurs connectés : [code=bash]users[/code] [code=text]adrien root[/code] --- w --- Cette commande montre les utilisateurs connectés et ce qu'ils font : [code=bash]w[/code] [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[/code] --- 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[/code] --- whatis --- Cette commande affiche une brève description de ce qu'est la commande associée : [code=bash]whatis bash[/code] [code=text]bash (1) - GNU Bourne-Again SHell[/code] --- who --- Cette commande affiche qui est connecté sur le système : [code=bash]who[/code] [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)[/code] --- whereis --- Cette commande affiche l'emplacement d'un fichier exécutable, d'une source ou d'un manuel : [code=bash]whereis bash[/code] [code=text]bash: /bin/bash /etc/bash /usr/share/man/man1/bash.1.bz2