Que vous soyez administrateur système, développeur, DevOps, sécurité ou Ops… utiliser efficacement Linux et ses outils est la compétence la plus fondamentale que vous puissiez acquérir. Linux est l’épine dorsale de la majorité des serveurs et des applications dans le monde.
“47% des développeurs professionnels utilisent des systèmes d’exploitation basés sur Linux.”
– Statistique
Au cours des derniers mois, j’ai lu de nombreux articles du type ’20 commandes Linux à connaître ‘ ou ‘ Guide de survie Linux ‘. Le problème que j’ai trouvé avec presque chacun d’entre eux est qu’ils sont destinés aux débutants, enseignant l’utilisation de ls
ou echo
. Je pense que la plupart de mon public connaît au moins les commandes de base proposées par la ligne de commande Linux.
Je documenterai et présenterai ma feuille de triche des commandes que j’utilise quotidiennement dans mon travail. Cette liste organisée va au-delà de celle d’un débutant complet et se concentre plutôt sur les commandes qui vous aideront à aller plus loin, à être plus efficace et à gérer un système Linux et ses outils vitaux.
Celui-ci sera divisé en deux sections :
- Outils Linux – Outils Linux essentiels et comment les utiliser au mieux.
- Commandes AdHoc – Les commandes AdHoc peuvent être incroyablement utiles en un clin d’œil.
Outils Linux
Utilitaires
rsync
Utilisé pour copier des fichiers et des répertoires vers une destination, similaire à la cp
commande. Cependant, il permet également la copie vers des emplacements distants et peut fournir une barre de progression, comme cela est souvent utilisé pour les sauvegardes.
# Exemple d'utilisation $ rsync -vap --ignore-existing <fichier_source> <fichier_destination> # Drapeaux clés : v = verbeux, r = récursif, p = préserver les autorisations, g = groupe, o = propriétaire, a = archive, --progress = barre de progression
mkpasswd
mkpasswd
est une commande simple mais très utile, elle génère un mot de passe aléatoire complexe à la longueur spécifiée.
$ mkpasswd -l 8
> iwF1g2Lo
filtrer
Screen est un gestionnaire de fenêtres plein écran ; il crée une fenêtre unique avec un shell en cours d’exécution et permet à plusieurs fenêtres d’écran de s’exécuter dans une seule session. C’est plus avantageux lorsque vous exécutez une longue tâche à distance et que vous craignez que votre session SSH ne laisse tomber et ne gâche tout. L’écran continuera à travers la déconnexion et continuera à exécuter vos commandes même lorsque la fenêtre n’est pas visible pour vous.
# Exemple d'utilisation
$ screen # Démarrer une session screen
$ screen -ls # Lister les services en cours d'exécution
$ screen -r # Attacher à la session
Ldapsearch
Si vous travaillez régulièrement avec des bases de données LDAP, alors Ldapsearch est un must. L’outil ouvre une connexion à un serveur LDAP et vous permet de rechercher, trouver et déboguer des entrées dans votre base de données.
# Exemple d'utilisation $ ldapsearch -x -W -D <nom d'utilisateur | less # Key Flags -x = authentification simple, -W = demande de mot de passe, -D = Utiliser le nom binddn distinctif pour se lier au répertoire LDAP
Outils Linux de surveillance
Uptime
La disponibilité renvoie des mesures sur la durée d’exécution d’un serveur, l’heure actuelle, le nombre d’utilisateurs et les moyennes d’utilisation de la mémoire. Si quelque chose ne va pas sur votre serveur, c’est souvent le premier port d’escale.
‘w’ — oui, une lettre. C’est une combinaison fantastique de disponibilité et de commandes qui s’exécutent les unes après les autres.$ w
Wall
Wall est une commande pratique pour tout administrateur système ; elle vous permet d’envoyer un message aux terminaux actifs et qui sont actuellement connecté au système. Cela peut être très utile pour les annonces à l’échelle du système.
$ wall "Maintenance prévue à 13h30" Message diffusé de Joel@localhost : Maintenance prévue à 13h30
Top
Affiche une liste actualisée automatiquement des processus pour le processeur et les mesures d’utilisation de la mémoire critique et d’utilisation du processeur.
$ top
Ncdu
La commande ncdu fournit une vue rapide et pratique de l’utilisation du disque. Vous pouvez l’utiliser pour voir rapidement et facilement quels répertoires utilisent le plus d’espace disque.
$ ncdu
lsof
lsof est une commande unique utilisée dans un but fondamental : Lister les fichiers ouverts . Ceci est particulièrement utile lorsque vous rencontrez des problèmes de montage indiquant que des fichiers sont utilisés. Cette commande identifie rapidement quels fichiers sont utilisés par quels processus.
$ lsof
Outils Linux de mise en réseau
Netcat
Netcat ou nc
est principalement utilisé pour l’analyse des ports, mais il s’agit en fait d’un excellent outil de mise en réseau utilitaire que les administrateurs système peuvent avoir dans leur poche arrière pour n’importe quelle tâche. Netcat peut prendre en charge l’analyse de ports, la copie de fichiers, la redirection de ports, les serveurs proxy et les serveurs d’hébergement… sans aucun doute, il est incroyablement polyvalent.
# Exemple d'utilisation :
$ nc -vz <hôte> <port> # Vérifie la connexion entre deux hôtes sur un port donné
$ nc -l 8080 | nc <hôte> 80 # Création d'un serveur proxy
Netcat est tellement personnalisable que je ne peux pas inclure toutes les possibilités dans un seul article, donc si vous souhaitez en voir plus, je mettrai en lien mon article Medium préféré sur le sujet ci-dessous écrit par @sahityamaruvada .
NetStat
Netstat renvoie divers détails sur le réseau tels que les tables de routage, les connexions réseau, les adhésions, les statistiques, les drapeaux, etc.
# Exemple d'utilisation $ netstat -a # Liste tous les ports réseau $ netstat -tlpn # Liste tous les ports d'écoute # Key Flags -s = Afficher les statistiques, -v = verbrose, -r = afficher les tables de routage, -i afficher la table d'interface, -g = afficher les membres du groupe
Nslookup
Utilisé pour obtenir des informations sur les serveurs sur Internet ou sur votre réseau local. Il interroge DNS pour trouver les informations du serveur de noms et peut être utile pour le débogage du réseau.
# Exemple d'utilisation $ nslookup medium.com/tags/devops # Key Flags -port = Changer le numéro de port pour la connexion, -type = Changer le type de requête. -domain = définit la liste de recherche sur le nom
TCPDump
Utilisé pour capturer et analyser le trafic entrant et sortant de votre système. Il s’agit d’un outil puissant et polyvalent spécialisé dans le débogage et le dépannage des problèmes de réseau, mais qui peut également être utilisé comme outil de sécurité.
# Exemple d'utilisation
$ tcpdump
$ tcpdump -i <interface> <adresse IP ou nom d'hôte> <port>
Commandes Linux adhoc
Jolies réponses d’API d’impression
La lecture de données JSON à partir du terminal peut être très frustrante lorsque vous travaillez avec des API. Comme vous pouvez le voir ci-dessous, même un petit ensemble de données devient rapidement un gâchis lorsqu’il est affiché sur la ligne de commande, ce qui le rend très difficile à lire.
$ cat test.json
{ "title":"Person","type":"object","properties": { "firstName": { "type":"string" } ,"lastName": { "type": "string" } ,"age": { "description":"Âge en années","type":"integer","minimum":0 }} ,"required": [ "firstName","lastName" ]}
Heureusement, Python a une réponse. En redirigeant votre sortie vers python, nous pouvons invoquer le module d’outil JSON. Cela imprimera joliment le document JSON qui est tellement plus facile à lire et plus agréable à l’œil.
$ chat test.json | python -m json.tool
{
"properties": {
"age": {
"description": "Âge en années",
"minimum": 0,
"type": "integer"
} ,
"firstName": {
"type" : "string"
} ,
"lastName": {
"type": "string"
}
} ,
"required": [
"firstName",
"lastName"
],
"title": "Person",
"type": "object"
}
Il convient également de référencer JQ , qui est une interface JSON en ligne de commande
$ jq . fichier.json
Recherche via apt des packages disponibles
$ apt-cache search <mot-clé>
Diff la sortie de deux commandes
# Exemple d'utilisation de la comparaison de la sortie de deux commandes ls $ diff -u <(ls -l /répertoire/) <(ls -l /répertoire/) | colordiff
Convertir un horodatage Unix en format lisible par l’homme
# Convertir l'horodatage Unix en date lisible par l'homme $ date -d 1656685875 Fri, 01 jul 2022 14:31:15 +0000 # Heure actuelle sous forme d'horodatage UNIX $ date "+%s"
Écraser les commits Git
$ git log # Voyez combien de commits vous avez faits $ git rebase -i HEAD~x # x = nombre de commits que vous avez faits # Effectuez des modifications sur l'éditeur de texte, en gardant le dernier # commit comme choix et en changeant le reste en sqash # Modifiez les messages de commit comme vous le souhaitez, en supprimant # de préférence ceux des commits précédents $ git push --force-with-lease
Lister tous les services Systemd
$ systemctl -l -t service | less
J’espère que vous avez appris quelque chose de cette liste; maîtriser Linux peut être extrêmement utile en raison de sa popularité sur les serveurs, je vais donc vous laisser avec cette statistique stupéfiante ci-dessous.
96,3 % du million de serveurs Web les plus importants utilisent Linux.
-ZDNet
Je publie régulièrement des articles sur des articles DevOps exclusivement sur Medium – Si vous souhaitez en savoir plus, je vous recommande de consulter les histoires ci-dessous.
Si vous avez apprécié cet article, envisagez de me soutenir, ainsi que des milliers d’autres écrivains, en vous inscrivant à un abonnement et obtenez un accès illimité au contenu des fantastiques écrivains de Medium. Votre adhésion me soutient directement avec une partie de vos frais et ne vous coûtera pas plus cher.
Merci de votez pour cet article :