GNU/Linux >> Tutoriels Linux >  >> Linux

Principales commandes Linux pour les administrateurs système

Les systèmes d'exploitation Linux offrent d'innombrables commandes et utilitaires sysadmin, qui aident les utilisateurs, les développeurs et les ingénieurs dans les tâches d'administration système. Par exemple, les commandes et les packages sysadmin peuvent aider les utilisateurs à optimiser ou à gérer les applications et fournir des informations de dépannage précieuses aux administrateurs réseau ou aux administrateurs système.

Ces commandes s'appliquent aux environnements de développement Linux, aux VM, aux conteneurs et au bare metal.

Meilleures commandes Linux pour sysadmin

Cet article passe en revue certaines commandes sysadmin de base fréquemment utilisées pour l'administration système Linux avec quelques exemples pratiques.

1. Boucler

Curl est un outil en ligne de commande pour transférer des données depuis ou vers un serveur. Il prend en charge des protocoles tels que FTP, FTPS, HTTP, HTTPS, IMAP, POP3, POP3S, RTMP, SMBS, SMTP, SMTPS, TELNET, etc. Vous pouvez l'utiliser pour tester la connectivité ou un point de terminaison vers un autre service tel qu'une base de données.

Résoudre une erreur HTTP 500 :

$ curl -I -s my_app:5000

Incluez l'option -I pour afficher les informations d'en-tête et l'option -s pour faire taire le corps de la réponse.

Vérifiez le point de terminaison de la base de données à partir de votre hôte local :

$ curl -I -s my_database:27017
HTTP/1.0 200 OK

200 indiquent que votre connexion semble correcte.

$ curl my_database:27017
curl: (6) Couldn't resolve host 'database'

L'erreur indique que votre application ne peut pas résoudre la base de données soit parce que l'URL de la base de données n'est pas disponible, soit parce que le système hôte, le conteneur ou la machine virtuelle n'a pas de serveur de noms pour résoudre le nom d'hôte.

2. ls

Ls répertorie les fichiers dans un répertoire ou peut vous aider à examiner leurs autorisations. Vous pouvez également l'utiliser dans une infrastructure de conteneur pour déterminer le répertoire et les fichiers de votre image de conteneur. Si vous ne pouvez pas exécuter votre application en raison d'un problème d'autorisations, vérifiez les autorisations à l'aide de ls -l, puis attribuez les autorisations de fichier appropriées à l'aide de chmod. Vous pouvez également le combiner avec des indicateurs tels que ls -a pour répertorier tous les fichiers ou ls -R pour répertorier les fichiers et les répertoires de manière récursive.

[tuts@fosslinux dist]$ ls -l
-rwxr-xr-x. 1 tuts tuts 7292656 Jun 17 12:54 hello
[tuts@fosslinux hello]$ ls -R

3. mod

Utilisez la commande chmod pour définir des autorisations sur un binaire d'application ou un fichier. Commencez par utiliser la commande ls pour vérifier les autorisations de vos fichiers, puis attribuez les autorisations appropriées.

Vérifiez les autorisations des fichiers avec ls -l :

[tuts@fosslinux ~]$ ls -l
-rw-rw-r--. 1 tuts tuts 6 Jun 24 18:05 dingdong.py

Accordez des autorisations d'exécution au fichier dingdong.py pour permettre aux utilisateurs de s'exécuter.

[tuts@fosslinux ~]$ chmod +x dingdong.py
[tuts@fosslinux ~] ls -l
-rwxrwxr-x. 1 tuts tuts 6 Jun 24 18:05 dingdong.py

4. queue

Tail affiche le dernier contenu d'un fichier. Il est utile si vous souhaitez consulter les journaux des demandes récentes. Par exemple, vous suivez les journaux les plus récents sur votre serveur.

$ sudo tail -f /var/log/httpd/error_log

L'option -f génère les lignes de journal telles qu'elles sont écrites dans le fichier. Il a un script d'arrière-plan qui accède au point de terminaison toutes les quelques secondes, et le journal enregistre la demande. Vous pouvez également suivre un nombre spécifique de lignes du fichier avec l'option -n.

$ sudo tail -n 3 /var/log/httpd/error_log

5. grep

Vous pouvez utiliser grep pour rechercher des fichiers afin de rechercher des modèles spécifiques et mettre en surbrillance les lignes pertinentes dans la sortie d'une autre commande Linux. Par exemple, pour rechercher la ligne "CRITICAL" dans le /var/log/dnf.log :

[tuts@fosslinux ~]$ grep CRITICAL Error /var/log/dnf.log

Utilisez * pour rechercher dans tous les fichiers d'un répertoire et l'indicateur -r (récursif) pour inclure la recherche dans les sous-répertoires.

cd /var/log/
$ grep -r CRITICAL Error *

Vous pouvez également isoler la sortie de la commande grep en redirigeant le résultat :

$ cat dnf.log | grep CRITICAL Error

6. ps

La commande ps est utilisée pour rechercher les ID de processus et afficher l'état des processus en cours d'exécution. Vous pouvez utiliser cette commande pour déterminer toutes les applications en cours d'exécution.

[tuts@fosslinux log]$ ps -ef

Vous pouvez également le combiner avec les commandes pipe et grep

[tuts@fosslinux log]$ ps -ef | grep httpd

Utilisez l'indicateur -u pour afficher tous les processus appartenant au nom d'utilisateur :

[tuts@fosslinux log]$ ps -u username

Utilisez l'indicateur aux pour afficher tous les processus avec des informations détaillées telles que le PID, le pourcentage de temps CPU utilisé par le processus (%CPU), le pourcentage de RAM (%MEM), la mémoire virtuelle utilisée (VSZ), la mémoire physique (RSS), et ainsi de suite.

7. haut

La commande top affiche une liste continuellement mise à jour des processus système dans l'ordre d'activité des processus. Vous pouvez l'utiliser pour déterminer quels processus sont en cours d'exécution et combien de mémoire et de CPU ils consomment.

Les informations d'affichage se composent d'un résumé du système et du tableau des processus triés par activité du processeur. Certaines informations incluent la disponibilité du système, la charge moyenne, le propriétaire du processus (USER), le pourcentage de temps CPU utilisé par le processus (%CPU), le pourcentage de RAM utilisé par le processus (%MEM), le temps CPU total utilisé par le processus (TIME[+ ]), etc.

Vous pouvez également émettre plusieurs commandes pendant que la commande top est en cours d'exécution. Par exemple, appuyez sur h ou ? pour afficher les commandes que vous pouvez émettre, k pour tuer un processus, z pour les couleurs globales ou q pour quitter top.

8. env

La commande env est utilisée pour définir ou afficher vos variables d'environnement. Utilisez env pour vérifier si un mauvais environnement empêche votre application de s'exécuter.

$ env
PYTHON_PIP_VERSION=20.2.2
HOME=/root
DB_NAME=my_database
PATH=/usr/local/bin:/usr/local/sbin
LANG=C.UTF-8
PYTHON_VERSION=3.9.5

9. netstat

netstat affiche l'état de votre système ou de votre réseau d'infrastructure. Vous pouvez l'utiliser pour afficher les ports réseau et les connexions entrantes. Vous pouvez le combiner avec d'autres options telles que le protocole, le port ou le processus pour démontrer les ports actuels que vos applications système utilisent.

# netstat -tulpn

10. ip/ifconfig

La commande ip remplace ifconfig dans certaines distributions Linux et peut configurer ou afficher les interfaces réseau et modifier les adresses IP, les objets voisins et les routes. Vous pouvez également l'utiliser pour vérifier l'adresse IP de votre hôte ou de votre conteneur.

Utilisez "ip a" (adresse) pour afficher des informations sur toutes les interfaces réseau :

[tuts@fosslinux]$ ip a

Utilisez la commande "ip link set device_name" pour activer ou désactiver une interface :

[tuts@fosslinux]$ ip link set eth0 up #bring up
[tuts@fosslinux]$ ip link set eth0 down #bring down

11. df

Utilisez la commande df (afficher l'espace disque libre) pour vérifier la taille du système de fichiers et résoudre les problèmes d'espace disque. Il est utile dans les scénarios où vous recevez un message d'erreur signalant un manque d'espace libre dans votre système sur un hôte de conteneur.

[tuts@fosslinux ~]$ df -h

L'indicateur -h affiche les informations dans un format lisible par l'homme (c'est-à-dire, Mo et Go). Par défaut, la commande df affiche les résultats pour chaque utilisateur sous le répertoire racine. Cependant, vous pouvez limiter l'affichage à un répertoire spécifique (par exemple, df -h/tmp)

Utilisez l'indicateur -x pour ignorer tout système de fichiers :

[tuts@fosslinux ]$ df -h -x tmpfs

Utilisez l'indicateur -t pour répertorier uniquement le type de système de fichiers spécifique. Par exemple, système de fichiers btrfs en lecture seule :

[tuts@fosslinux ]$ df -h -t btrfs

Utilisez l'indicateur –total pour afficher les totaux généraux :

[tuts@fosslinux ]$ df -h -t btrfs --total

12. du

Utilisez la commande du pour afficher des informations détaillées sur les fichiers qui utilisent l'espace disque dans un répertoire. Je trouve cela utile pour déterminer quels journaux occupent le plus d'espace. Par exemple, exécutez la commande du avec l'indicateur -h (lisible par l'homme) et -s (résumé) :

[tuts@fosslinux ~]$ sudo du -h /var/log
[tuts@fosslinux ~]$ sudo du -hs /var/log
1.5G /var/log

13. dig/ nslookup

dig est un excellent outil de ligne de commande pour effectuer des requêtes DNS. Il est utilisé au format suivant :

dig <DNS server> <domain> <query-type>

Le représente le nom du serveur DNS, est le nom de domaine et est le nom de l'enregistrement (A, MX, NS SOA) que vous souhaitez connaître. Vous pouvez également utiliser l'indicateur +short pour supprimer la sortie détaillée.
Pour afficher l'enregistrement A pour bing.com :

[tuts@fosslinux ~]$ dig bing.com +short
13.107.21.200
204.79.197.200

Pour afficher l'enregistrement MX de bing.com :

[tuts@fosslinux ~]$ dig bing.com MX +short
10 bing-com.mail.protection.outlook.com.

14. pare-feu-cmd

Firewall-cmd est une interface conviviale pour nftables et est livrée avec de nombreuses distributions. Il permet aux utilisateurs de définir des règles pour régir le trafic réseau entrant et sortant vers votre ordinateur. Ces règles peuvent être regroupées en zones qui définissent les niveaux de confiance de sécurité réseau des interfaces réseau, des services ou des connexions. Il fonctionne avec IPv4, IPv6, les ensembles IP et les ponts Ethernet et présente une syntaxe de commande simple et intuitive.

Pour afficher la zone de pare-feu actuelle :

[tuts@fosslinux ~]$ sudo firewall-cmd --get-active-zones
libvirt
interfaces: virbr0

Ajoutez l'indicateur –list-all pour afficher ce que chaque zone autorise :

[tuts@fosslinux ~]$ sudo firewall-cmd --zone libvirt --list-all

Pour ajouter un service :

$ sudo firewall-cmd --add-service http --permanent
$ sudo firewall-cmd –reload

Si vous débutez avec la sécurité réseau, vous pouvez lire notre guide complet sur la gestion de la sécurité réseau avec firewalld pour plus d'exemples et d'astuces.

15. systemctl

systemd est disponible dans la plupart des distributions Linux, ce qui rend la commande systemctl disponible pour gérer les services et les unités systemd.

Pour démarrer un service :

[tuts@fosslinux ~]$ sudo systemctl start httpd

Pour arrêter un service :

[tuts@fosslinux ~]$ sudo systemctl stop httpd

Pour vérifier l'état du service.

16. tuer et tuer tous

Vous pouvez utiliser les commandes kill et killall pour mettre fin à un processus incontrôlable ou libérer certaines ressources système. Vous pouvez envoyer le signal SIGTERM (-15) ou SIGKILL (-9) à un processus pour le tuer. SIGTERM (soft kill) permet à un processus système de se terminer avant qu'il ne soit terminé. SIGKILL termine le processus immédiatement.

Utilisez kill avec l'indicateur -l pour afficher tous les signaux que vous pouvez envoyer à un processus.

[tuts@fosslinux ~]$ kill -l

Pour tuer un processus, déterminez son ID de processus, puis émettez la commande kill.

[tuts@fosslinux ~]$ ps aux|grep httpd

Pour tuer le processus httpd avec l'ID de processus 1525 :

[tuts@fosslinux ~]$ sudo kill -9 1525

Utilisez killall pour tuer un programme par son nom. Il tue le processus parent et tous les processus enfants.

[tuts@fosslinux ~]$ sudo killall httpd

Remarque :Utilisez les commandes kill et killall avec prudence, car elles pourraient casser ou laisser votre système dans un état instable.

17. historique

La commande history affiche un historique de toutes les commandes que vous avez utilisées dans une session. Par exemple, vous pouvez l'utiliser pour enregistrer les commandes que vous avez utilisées pour dépanner une application ou votre système.

[tuts@fosslinux ~]$ history
790 sudo firewall-cmd --get-active-zones
791 sudo firewall-cmd --zone libvirt --list-all
792 history

Utiliser ! avec un numéro de commande pour la ré-exécuter sans avoir à la retaper.

[tuts@fosslinux ~]$ !790
sudo firewall-cmd --get-active-zones
libvirt
interfaces: virbr0

Conclusion

Comprendre certaines commandes de base de l'administrateur système peut vous aider à dépanner les applications, à résoudre les problèmes, à maintenir le fonctionnement optimal des systèmes, à assurer la sécurité du système ou même à vous aider à communiquer efficacement avec les administrateurs système pour résoudre les problèmes de votre infrastructure.
J'espère que ces commandes vous seront utiles !


Linux
  1. 10 commandes Linux pour les diagnostics réseau

  2. Formation et certification pour les administrateurs système Linux

  3. Top 10 des tutoriels pour les administrateurs Linux

  4. 3 commandes Linux utiles pour les administrateurs système

  5. Principales commandes Linux de base pour les débutants

Top 15 des meilleurs outils de chimie pour le système Linux

Top 15 des meilleurs outils de biologie pour le système Linux

Top 15 des meilleurs logiciels de traduction pour système Linux

Top 10 des meilleurs outils de sélection de couleurs pour le système Linux

Top 10 des meilleurs outils d'analyse pour le système Linux

Top 10 des meilleurs outils météo pour le système Linux