Commandes utiles à connaître sous Linux

  • Auteur/autrice de la publication :
  • Dernière modification de la publication :22 novembre 2023
  • Post category:Linux
  • Temps de lecture :17 min de lecture
  • Commentaires de la publication :4 commentaires

Voici quelques commandes Linux très utiles qui vous feront gagner beaucoup de temps et vous aider à améliorer votre expérience et à augmenter votre productivité. Je mettrais à jour cet article régulièrement…

Linux Tools :

SSH Tools :

Command Line Interface (CLI)

Si vous connaissez des commandes sympa, n’hésitez pas à partager avec nous, je peux les rajouter ici en citant votre pseudo.

Quelques liens sympa à la fin de l’article.

Commande APROPOS

La commande apropos permet de trouver toutes les commandes possibles en rapport avec ce que vous voulez faire. Voici des exemples.

Exemple 1 : Je veux gérer le réseau (Network) mais je ne connais pas les commandes :

root@pixelabs:~# apropos "network"

Voici la liste de toutes les commandes pour gérer le réseau. J’ai dû réduire la liste.

root@pixelabs:~# apropos "network"
networks (5)         - Informations concernant le nom de réseau
interfaces (5)       - network interface configuration for ifup and ifdown
aseqnet (1)          - ALSA sequencer connectors over network
byteorder (3)        - convert values between host and network byte order
ctstat (8)           - unified linux network statistics
dhclient-script (8)  - DHCP client network configuration script
...
nstat (8)            - network statistics tools.
ntohl (3)            - convert values between host and network byte order
ntohs (3)            - convert values between host and network byte order
ping (8)             - send ICMP ECHO_REQUEST to network hosts
...
resolved.conf (5)    - Network Name Resolution configuration files
resolved.conf.d (5)  - Network Name Resolution configuration files
rtacct (8)           - network statistics tools.
...
systemd-networkd.service (8) - Network manager
systemd-resolved (8) - Network Name Resolution manager
systemd-resolved.service (8) - Network Name Resolution manager
systemd-timesyncd (8) - Network Time Synchronization
systemd-timesyncd.service (8) - Network Time Synchronization
...
tcptraceroute (8)    - print the route packets trace to network host
tcptraceroute.db (8) - print the route packets trace to network host
timesyncd.conf (5)   - Network Time Synchronization configuration files
timesyncd.conf.d (5) - Network Time Synchronization configuration files
traceproto (1)       - print the route packets trace to network host
...
traceroute (1)       - print the route packets trace to network host
traceroute-nanog (1) - print the route packets trace to network host
traceroute.db (1)    - print the route packets trace to network host
traceroute6 (1)      - print the route packets trace to network host
traceroute6.db (1)   - print the route packets trace to network host
...
root@pixelabs:~#

Exemple 2 : je veux télécharger en ligne de commande, mais je ne sais pas quelle commande utiliser !

root@pixelabs:~# apropos "download"
root@pixelabs:~# apropos "download"
git-fetch (1)        - Download objects and refs from another repository
git-http-fetch (1)   - Download from a remote Git repository via HTTP
lwp-download (1p)    - Fetch large files from the web
update-pciids (8)    - download new version of the PCI ID list
update-usbids (8)    - download new version of the USB ID list
wget (1)             - The non-interactive network downloader.
root@pixelabs:~#

J’adore cette commande. Pensez à utiliser la commande MAN pour afficher de l’aide.

Commande WHATIS

Il y a aussi la commande whatis que j’aime beaucoup.

[root@pixelabs ~]# whatis nano
nano                 (1)  - Nano's Another editor, an enhanced free Pico clone
nano                 (1)  - Nano un Nouvel éditeur, un clone libre et amélioré de Pico
[root@pixelabs ~]#
[root@pixelabs ~]# whatis wget
Wget [wget]          (1)  - The non-interactive network downloader
[root@pixelabs ~]#
[root@pixelabs ~]# whatis pwd
pwd                  (1p)  - return working directory name
pwd                  (1)  - print name of current/working directory
...
[root@pixelabs ~]#

Commande LSBLK

Lister les périphériques bloc :

[root@pixelabs ~]# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                             11:0    1 1024M  0 rom
sda                              8:0    0   16G  0 disk
├─sda1                           8:1    0  500M  0 part /boot
└─sda2                           8:2    0 15,5G  0 part
  ├─vg_pixelabs-lv_root (dm-0) 253:0    0 13,9G  0 lvm  /
  └─vg_pixelabs-lv_swap (dm-1) 253:1    0  1,6G  0 lvm  [SWAP]
[root@pixelabs ~]#

lspci – lsusb – lsdev

Commande TOP/hTOP

Afficher l’activité du système et gérer les processus linux :

commande TOP Linux

Un peu d’explication : CTRL+C pour quitter

  • la ligne top :  Durée de fonctionnement (Uptime) – Utilisateur (1 user) – charge moyenne du CPU (load average)
  • la ligne Tasks : 93 process au total – 1 process en cours – 93 en veille – 0 process arrêté – 0 process zombie
  • la ligne %Cpu : sur cette ligne, nous avons l’activité du CPU en détails. Charge demandée pour les utilisateurs et les apps.
  • la ligne Mem : ici, nous avons l’état de la mémoire RAM. Total, libre, utilisée, buffer et le cache
  • la ligne Swap : l’état de la mémoire SWAP

Les processus, les colonnes les plus importantes :

  • PID USER : identifiant (ID) et l’utilisateur
  • %CPU : Utilisation du CPU
  • %MEM : utilisation de la mémoire RAM
  • COMMAND : nom du programme

La version améliorée de TOP : HTOP

CentOS/Redhat :

[root@pixelabs ~]# yum install htop -y

Debian :

root@pixelabs:~# apt-get install htop

Install htop command CentOS RedHat Debian

Vous avez un menu en bas pour gérer les processus.

Commande MAN

Obtenir des informations sur une commande.

[root@pixelabs ~]# man script

Pour quitter, tapez : q

Commande SCRIPT

Enregistrer l’historique des commandes Shell exécutées.

[root@pixelabs ~]# script

Les commandes exécutées sont inscrites dans le fichier typescript et est stocké dans le dossier depuis lequel vous avez exécuté la commande. Pour quitter :

[root@pixelabs etc]# exit

Commande ROUTE

Afficher la table de routage

[root@pixelabs ~]# route -nee
[root@pixelabs ~]# route -nee
Table de routage IP du noyau
Destination     Passerelle      Genmask         Indic Metric Ref    Use Iface    MSS  Fenêtre irtt
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0     0     0      0
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0     0     0      0
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 eth0     0     0      0
[root@centreon ~]#

Pour ajouter une route :

[root@pixelabs ~]# route add -net 172.16.1.2 netmask 255.255.0.0 gw 172.16.1.254

Boucle FOR

J’aime beaucoup cette boucle FOR, elle me permet d’afficher la taille de chaque répertoire. Il m’arrive de me retrouver avec une partition ou un disque plein. Il suffit que je lance cette commande pour identifier le coupable.

[root@pixelabs ~]# for i in /*; do echo $i; find $i |wc -l; done
[root@pixelabs ~]# for i in /*; do echo $i; find $i |wc -l; done
/bin
108
/boot
35
/dev
636
/etc
1604
/home
...
...
[root@centreon ~]#

Ici, la commande est exécutée depuis la racine. Pour l’exécuter depuis un autre répertoire. Exemple /etc

[root@pixelabs ~]# for i in /etc/*; do echo $i; find $i |wc -l; done

A vous de l’améliorer.

Commande HISTORY

Afficher l’historique des commandes exécutées :

[root@pixelabs ~]# history
    1  ifconfig
    2  ip a
    3  vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    4  cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
    5  ls /etc/sysconfig/network-scripts/
    6  cd /etc/sysconfig/network-scripts/
...
...

Il est possible d’améliorer la commande en rajoutant la date et l’heure. C’est même pratique d’avoir ces informations :

[root@pixelabs ~]# export HISTTIMEFORMAT="%d/%m/%y %T "
[root@pixelabs ~]# export HISTTIMEFORMAT="%d/%m/%y %T "
[root@pixelabs ~]#
[root@pixelabs ~]# history
    1  14/06/18 23:09:58 ifconfig
    2  14/06/18 23:09:58 ip a
    3  14/06/18 23:09:58 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
    4  14/06/18 23:09:58 cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
    5  14/06/18 23:09:58 ls /etc/sysconfig/network-scripts/
    6  14/06/18 23:09:58 cd /etc/sysconfig/network-scripts/

Commande DU

On peut également utiliser la commande DU pour afficher la taille des répertoires.

[root@pixelabs ~]# du -h --max-depth=1|sort -n

Depuis la racine :

[root@pixelabs ~]# du -h --max-depth=1|sort -n
8,0K    ./.pki
168K    .
[root@centreon ~]#

Depuis le dossier /user :

[root@pixelabs ~]# du /usr/ -h --max-depth=1|sort -n
1,4G    /usr/
4,0K    /usr/etc
4,0K    /usr/games
11M     /usr/include
12K     /usr/src
15M     /usr/libexec
41M     /usr/sbin
132K    /usr/local
172M    /usr/lib
218M    /usr/bin
391M    /usr/lib64
515M    /usr/share
[root@centreon ~]#

Commande W, WHO

Afficher la liste des utilisateurs connectés sur la machine.

[root@pixelabs ~]# w
 02:24:22 up 44 min,  2 users,  load average: 0,01, 0,02, 0,02
USER     TTY      FROM         LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    pixelabs     01:45    6.00s  0.04s  0.00s w
pixel    pts/1    pixelabs     02:24    7.00s  0.00s  0.00s -bash
[root@pixelabs ~]#
[root@pixelabs ~]# who
root     pts/0        2018-06-12 01:45 (pixelabs)
pixel    pts/1        2018-06-12 02:24 (pixelabs)
[root@pixelabs ~]#

Commande MLOCATE

Permet de chercher n’importe quel fichier ou répertoire présent sur votre machine rapidement.

Installez le paquet mlocate :

[root@pixelabs ~]# yum install mlocate

Chercher un fichier :

[root@pixelabs ~]# updatedb
[root@pixelabs ~]# locate typescript
/root/typescript

Commande FIND

Avec la commande find :

[root@pixelabs ~]# find / -name typescript
./typescript

Filtrer, trouver tous les fichiers qui se termine par .old

root@pixelabs:~# find / -name '*.old'
/var/log/Xorg.1.log.old
/var/log/lightdm/x-1.log.old
/var/log/lightdm/x-0.log.old
/var/log/lightdm/lightdm.log.old
/var/log/lightdm/seat0-greeter.log.old
/var/log/Xorg.0.log.old
/var/lib/sgml-base/supercatalog.old
/root/.xsession-errors.old
/vmlinuz.old
/initrd.img.old
/etc/xml/sgml-data.xml.old
/etc/xml/xml-core.xml.old
/etc/xml/catalog.old
/etc/xml/docbook-xml.xml.old
root@pixelabs:~#

SSH auto login (Putty)

Si vous bossez souvent sous Linux, vous pouvez créer des raccourcis sur votre bureau pour vous connecter rapidement en SSH sans taper le mot de passe. Mais, attention, vous devez absolument sécuriser votre poste de travail. Le mot de passe apparaît en clair dans le raccourci qui permet de se connecter rapidement sans saisir le mot de passe.

Exemple pour me connecter automatiquement sur mon serveur Centreon

  • Effectuez un clic-droit sur le bureau
  • Nouveau > Raccourci
  • Cliquez sur Parcourir…
  • Sélectionnez le fichier putty.exe. Chemin par défaut : « C:\Program Files\PuTTY\putty.exe » 
  • Ajoutez après : -ssh root@192.168.1.100 -pw centreon
  • Ce qui nous donne :

SSH Auto Login Putty

Remarque : Il est possible de préciser un port : -P 3333

  • Cliquez sur Suivant
  • Donnez un nom à votre raccourci : SSH-Centreon
  • Validez.
  • Un double clic sur le raccourci et vous voilà connecté automatiquement. Si une alerte s’affiche lors de la première connexion, cliquez sur : Oui

Auto login SSH with Putty

  • Et bien sur, vous pouvez en faire plein de raccourcis ! tellement pratique !

Commande UPTIME, TLOAD

Connaitre la durée de fonctionnement de la machine. Elle affiche également, l’heure, le nombre d’user et la charge.

[root@pixelabs ~]# uptime

Vous pouvez obtenir un graphique via la commande tload.

Commande WALL

Envoyer des messages aux utilisateurs connectés sur la même machine.

[root@pixelabs ~]# wall hey there !
[root@pixelabs ~]#
Broadcast message from root@pixelabs (pts/0) (Tue Jun 12 02:09:42 2018):

hey there !

Broadcast message from pixel@pixelabs (pts/1) (Tue Jun 12 02:10:07 2018):

hey !

[root@pixelabs ~]#

Réponse d’un user  pixel connecté sur la même machine.

Commande PS -EF/-ejH

Afficher une liste statique de tous les processus.

[root@pixelabs ~]# ps -ef

ps –ejH permet de connaitre l’origine des processus. Elle regroupe les processus sous forme d’arborescence.

[root@pixelabs ~]# ps -ejH

Commande LAST, LASTLOG

Afficher une liste des derniers users connectés.

[root@pixelabs ~]# last
pixel    pts/1        pixelabs        Tue Jun 12 02:24   still logged in
root     pts/1        pixelabs        Tue Jun 12 02:02 - 02:23  (00:21)

Si la liste est longue, vous pouvez limiter : Ici, on affiche 10 lignes

[root@centreon var]# last -10

Lastlog affiche en plus les utilisateurs systèmes.

[root@pixelabs ~]# lastlog

Commande NMON

Plus avancée que TOP et hTOP

[root@pixelabs ~]# yum install nmon

Lancez NMON :

[root@pixelabs ~]# nmon

Menu principal : appuyez sur « H » pour afficher le menu d’aide et « Q » pour quitter.

Install NMON Commande CentOS

Choisir ensuite une lettre pour afficher l’état des composants de votre machine. Vous pouvez afficher plusieurs éléments au même temps. Exemple pour CPU, Disk et Memory, appuyer sur les lettres: « C » , « M » , « D »

Monitoring Linux Nmon

Commande SCP

Transfert de fichiers entre deux serveurs linux à travers une connexion SSH :

D’un serveur à un autre (copie d’un répertoire) :

[root@pixelabs ~]# scp -r -p root@centreon01:/usr/lib/centreon/plugins/* root@centreon02:/usr/lib/centreon/plugins/
  • -r : copiez récursivement des répertoires entiers. 
  • -p : préserve les dates de modification, d’accès, et les modes des anciens fichiers.

Afficher de l’aide :

[root@pixelabs ~]# man scp

Commande ENV

Afficher toutes les variables d’environnement disponible :

[root@pixelabs ~]# env
HOSTNAME=pixelabs
TERM=xterm
SHELL=/bin/bash
...
LD_LIBRARY_PATH=/home/oracle/12.2/client64/lib:
TNS_ADMIN=/home/oracle/12.2/client64/network/admin
MAIL=/var/spool/mail/root
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/home/oracle/12.2/client64/bin
PWD=/root
LANG=fr_FR.UTF-8
...
[root@pixelabs ~]#

Commande WHEREIS

Permet de localiser les fichiers binaires d’une applications :

[root@pixelabs ~]# whereis nano
nano: /bin/nano /usr/bin/nano /usr/share/nano /usr/share/man/man1/nano.1.gz
[root@pixelabs ~]#
[root@pixelabs ~]# whereis centreon
centreon: /usr/bin/centreon /etc/centreon /usr/lib/centreon /usr/share/centreon
[root@pixelabs ~]#
[root@pixelabs ~]# whereis vim
vim: /usr/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz
[root@pixelabs ~]#
[root@pixelabs ~]# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[root@pixelabs ~]#

Création des ALIAS

Quand j’ai horreur de me taper de long chemin sous linux, j’utilise les alias pour me faciliter la vie. Faisant un exemple avec le chemin des plugins Centreon : /usr/lib/centreon/plugins

Bon…ce n’est pas super super long, mais peu importe la longueur du chemin…je peux l’atteindre en une seconde chrono !

Création de l’alias :

[root@centreon ~]# alias PP='cd /usr/lib/centreon/plugins'
[root@centreon ~]#

PP pour Plugins Packs

Maintenant pour atteindre le répertoire plugins, tapez simplement PP :

[root@centreon ~]# alias PP='cd /usr/lib/centreon/plugins'
[root@centreon ~]#
[root@centreon ~]# PP
[root@centreon plugins]# pwd
/usr/lib/centreon/plugins
[root@centreon plugins]#

Un gain de temps énorme…

[root@centreon plugins]# alias log='cd /var/log'
[root@centreon plugins]# log
[root@centreon log]# pwd
/var/log
[root@centreon log]#

Afficher les alias disponible :

[root@centreon plugins]# alias
alias PP='cd /usr/lib/centreon/plugins'
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@centreon plugins]#

Bonus

Quelques liens sympa 🙂

Je mettrais à jour cet article prochainement.

Si vous connaissez d’autres commandes sympa, n’hésitez pas à partager avec nous, je peux les rajouter en citant votre pseudo.

Bonne journée.

Cet article a 4 commentaires

  1. Comments4Critics

    Merci

  2. sysadmin

    Mise à jour de l’article :
    Création des ALIAS sous Linux.

  3. sysadmin

    Mise à jour de l’article. Les commandes ajoutées :
    WHATIS
    WHEREIS
    SCP
    ENV

Laisser un commentaire