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 :
- Linux Tools : luongvo209/Awesome-Linux-Software
- bashTop (Linux Resource Monitor) : github.com/aristocratos/bashtop
SSH Tools :
- PuTTY : download
- PuTTY Color Schemes : /AlexAkulov/putty-color-themes – benjojo/base-16-putty
- MobaXterm : download
- Moba Color Schemes : /atelierbram/syntax-highlighting
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 :
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
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 :
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
- 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.
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 »
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 🙂
- Tester les différents SGBD : dbfiddle.uk
- Ce site vous explique les commandes Linux : explainshell.com
- Sans oublier bien sûr (vous pouvez faire appel à ce script directement via un Terminal) : cheat.sh
- Si vous ne maitrisez pas les permissions sous Linux : chmod-calculator.com
- Vérifier vos expressions régulières (regex) : regex101.com
- No More Ransomware : nomoreransom.org
- Debug de vos scripts Shell : shellcheck.net
- Vérifier la sécurité de votre site WordPress : github.com/Redshoee/WPSeku
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.
Merci
Merci pour ton message.
Mise à jour de l’article :
Création des ALIAS sous Linux.
Mise à jour de l’article. Les commandes ajoutées :
WHATIS
WHEREIS
SCP
ENV