Dans notre utilisation quotidienne des systèmes Linux/Unix, nous utilisons de nombreux outils en ligne de commande pour effectuer notre travail et pour comprendre et gérer nos systèmes, des outils comme du
pour surveiller l'utilisation du disque et top
pour afficher les ressources système. Certains de ces outils existent depuis longtemps. Par exemple, top
a été publié pour la première fois en 1984, tandis que du
la première sortie de date de 1971.
Au fil des ans, ces outils ont été modernisés et portés sur différents systèmes, mais, en général, ils conservent leur idée, leur apparence et leur convivialité d'origine.
Ce sont d'excellents outils et essentiels aux flux de travail de nombreux administrateurs système. Cependant, ces dernières années, la communauté open source a développé des outils alternatifs qui offrent des avantages supplémentaires. Certains ne sont que des régals pour les yeux, mais d'autres améliorent considérablement la convivialité, ce qui en fait un excellent choix à utiliser sur les systèmes modernes. Celles-ci incluent les cinq alternatives suivantes aux outils de ligne de commande Linux standard.
1. ncdu en remplacement de du
L'utilisation du disque NCurses (ncdu
) l'outil fournit des résultats similaires à du
mais dans une interface interactive basée sur des malédictions qui se concentre sur les répertoires qui consomment le plus d'espace disque.
ncdu
passe un peu de temps à analyser le disque, puis affiche les résultats triés par vos répertoires ou fichiers les plus utilisés, comme ceci :
ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
--- /home/rgerardi ------------------------------------------------------------
96.7 GiB [##########] /libvirt
33.9 GiB [### ] /.crc
7.0 GiB [ ] /Projects
. 4.7 GiB [ ] /Downloads
. 3.9 GiB [ ] /.local
2.5 GiB [ ] /.minishift
2.4 GiB [ ] /.vagrant.d
. 1.9 GiB [ ] /.config
. 1.8 GiB [ ] /.cache
1.7 GiB [ ] /Videos
1.1 GiB [ ] /go
692.6 MiB [ ] /Documents
. 591.5 MiB [ ] /tmp
139.2 MiB [ ] /.var
104.4 MiB [ ] /.oh-my-zsh
82.0 MiB [ ] /scripts
55.8 MiB [ ] /.mozilla
54.6 MiB [ ] /.kube
41.8 MiB [ ] /.vim
31.5 MiB [ ] /.ansible
31.3 MiB [ ] /.gem
26.5 MiB [ ] /.VIM_UNDO_FILES
15.3 MiB [ ] /Personal
2.6 MiB [ ] .ansible_module_generated
1.4 MiB [ ] /backgrounds
944.0 KiB [ ] /Pictures
644.0 KiB [ ] .zsh_history
536.0 KiB [ ] /.ansible_async
Total disk usage: 159.4 GiB Apparent size: 280.8 GiB Items: 561540
Accédez à chaque entrée à l'aide des touches fléchées. Si vous appuyez sur Entrée sur une entrée de répertoire, ncdu
affiche le contenu de ce répertoire :
--- /home/rgerardi/libvirt ----------------------------------------------------
/..
91.3 GiB [##########] /images
5.3 GiB [ ] /media
Vous pouvez l'utiliser pour explorer les répertoires et trouver les fichiers qui consomment le plus d'espace disque. Revenir au répertoire précédent en utilisant Gauche touche fléchée. Par défaut, vous pouvez supprimer des fichiers avec ncdu
en appuyant sur d clé, et il demande une confirmation avant de supprimer un fichier. Si vous souhaitez désactiver ce comportement pour éviter les accidents, utilisez le -r
option d'accès en lecture seule :ncdu -r
.
ncdu
est disponible pour de nombreuses plates-formes et distributions Linux. Par exemple, vous pouvez utiliser dnf
pour l'installer sur Fedora directement depuis les dépôts officiels :
$ sudo dnf install ncdu
Vous pouvez trouver plus d'informations sur cet outil sur le ncdu
page Web.
2. htop en remplacement de top
htop
est un visualiseur de processus interactif similaire à top
mais cela offre une expérience utilisateur plus agréable prête à l'emploi. Par défaut, htop
affiche les mêmes métriques que top
dans un affichage agréable et coloré.
Par défaut, htop
ressemble à ceci :
Contrairement à la valeur par défaut top
:
De plus, htop
fournit des informations de présentation du système en haut et une barre de commandes en bas pour déclencher des commandes à l'aide des touches de fonction, et vous pouvez la personnaliser en appuyant sur F2 pour accéder à l'écran de configuration. Dans la configuration, vous pouvez modifier ses couleurs, ajouter ou supprimer des statistiques ou modifier les options d'affichage de la barre de présentation.
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
Bien que vous puissiez configurer les versions récentes de top
pour obtenir des résultats similaires, htop
fournit des configurations par défaut plus saines, ce qui en fait un visualiseur de processus agréable et facile à utiliser.
Pour en savoir plus sur ce projet, consultez le htop
page d'accueil.
3. tldr en remplacement de man
Le tldr
L'outil de ligne de commande affiche des informations simplifiées sur l'utilisation des commandes, notamment des exemples. Il fonctionne en tant que client pour le projet de pages tldr de la communauté.
Cet outil ne remplace pas man
. Les pages de manuel sont toujours la source canonique et complète d'informations pour de nombreux outils. Cependant, dans certains cas, man
c'est trop. Parfois, vous n'avez pas besoin de toutes ces informations sur une commande; vous essayez juste de vous souvenir des options de base. Par exemple, la page de manuel pour le curl
commande a près de 3 000 lignes. En revanche, le tldr
pour curl
fait 40 lignes et ressemble à ceci :
$ tldr curl
# curl
Transfers data from or to a server.
Supports most protocols, including HTTP, FTP, and POP3.
More information: <https://curl.haxx.se>.
- Download the contents of an URL to a file:
curl http://example.com -o filename
- Download a file, saving the output under the filename indicated by the URL:
curl -O http://example.com/filename
- Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:
curl -O -L -C - http://example.com/filename
- Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):
curl -d 'name=bob' http://example.com/form
- Send a request with an extra header, using a custom HTTP method:
curl -H 'X-My-Header: 123' -X PUT http://example.com
- Send data in JSON format, specifying the appropriate content-type header:
curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234
... TRUNCATED OUTPUT
TLDR signifie "trop long; n'a pas lu", qui est l'argot Internet pour un résumé d'un texte long. Le nom est approprié pour cet outil car les pages de manuel, bien qu'utiles, sont parfois tout simplement trop longues.
Dans Fedora, le tldr
client a été écrit en Python. Vous pouvez l'installer en utilisant dnf
. Pour d'autres options client, consultez le projet de pages tldr.
En général, le tldr
l'outil nécessite un accès à internet pour consulter les pages tldr. Le client Python de Fedora vous permet de télécharger et de mettre en cache ces pages pour un accès hors ligne.
Pour plus d'informations sur tldr
, vous pouvez utiliser tldr tldr
.
4. jq en remplacement de sed/grep pour JSON
jq
est un processeur JSON en ligne de commande. C'est comme sed
ou grep
mais spécifiquement conçu pour traiter les données JSON. Si vous êtes un développeur ou un administrateur système qui utilise JSON dans vos tâches quotidiennes, c'est un outil essentiel dans votre boîte à outils.
Le principal avantage de jq
sur des outils de traitement de texte génériques comme grep
et sed
est qu'il comprend la structure de données JSON, ce qui vous permet de créer des requêtes complexes avec une seule expression.
Pour illustrer, imaginez que vous essayez de trouver le nom des conteneurs dans ce fichier JSON :
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"labels": {
"app": "myapp"
},
"name": "myapp",
"namespace": "project1"
},
"spec": {
"containers": [
{
"command": [
"sleep",
"3000"
],
"image": "busybox",
"imagePullPolicy": "IfNotPresent",
"name": "busybox"
},
{
"name": "nginx",
"image": "nginx",
"resources": {},
"imagePullPolicy": "IfNotPresent"
}
],
"restartPolicy": "Never"
}
}
Si vous essayez de grep
directement pour name
, voici le résultat :
$ grep name k8s-pod.json
"name": "myapp",
"namespace": "project1"
"name": "busybox"
"name": "nginx",
grep
a renvoyé toutes les lignes contenant le mot name
. Vous pouvez ajouter quelques options supplémentaires à grep
pour le restreindre et, avec quelques manipulations d'expressions régulières, vous pouvez trouver les noms des conteneurs. Pour obtenir le résultat souhaité avec jq
, utilisez une expression qui simule la navigation dans la structure de données, comme ceci :
$ jq '.spec.containers[].name' k8s-pod.json
"busybox"
"nginx"
Cette commande vous donne le nom des deux conteneurs. Si vous recherchez uniquement le nom du deuxième conteneur, ajoutez l'index de l'élément de tableau à l'expression :
$ jq '.spec.containers[1].name' k8s-pod.json
"nginx"
Parce que jq
est conscient de la structure des données, il fournit les mêmes résultats même si le format du fichier change légèrement. grep
et sed
peut fournir des résultats différents avec de petites modifications du format.
jq
a de nombreuses fonctionnalités, et les couvrir toutes nécessiterait un autre article. Pour plus d'informations, consultez le jq
la page du projet, les pages de manuel ou tldr jq
.
5. fd en remplacement de find
fd
est une alternative simple et rapide à la find
commande. Il ne vise pas à remplacer la fonctionnalité complète find
fournit; à la place, il fournit des valeurs par défaut saines qui aident beaucoup dans certains scénarios.
Par exemple, lors de la recherche de fichiers de code source dans un répertoire contenant un référentiel Git, fd
exclut automatiquement les fichiers et répertoires cachés, y compris le .git
répertoire, ainsi que d'ignorer les modèles du .gitignore
dossier. En général, il permet des recherches plus rapides avec des résultats plus pertinents dès le premier essai.
Par défaut, fd
exécute une recherche de modèle insensible à la casse dans le répertoire courant avec une sortie colorée. La même recherche en utilisant find
vous oblige à fournir des paramètres de ligne de commande supplémentaires. Par exemple, pour rechercher tous les fichiers de démarquage (.md
ou .MD
) dans le répertoire courant, le find
commande est celle-ci :
$ find . -iname "*.md"
Voici la même recherche avec fd
:
$ fd .md
Dans certains cas, fd
nécessite des options supplémentaires ; par exemple, si vous souhaitez inclure des fichiers et répertoires cachés, vous devez utiliser l'option -H
, alors que ce n'est pas obligatoire dans find
.
fd
est disponible pour de nombreuses distributions Linux. Installez-le dans Fedora en utilisant les référentiels standard :
$ sudo dnf install fd-find
Pour plus d'informations, consultez le fd
Référentiel GitHub.
Excellentes alternatives aux utilitaires éprouvés
Bien que j'utilise encore régulièrement tous les anciens outils essentiels, en particulier lors de la connexion à distance aux serveurs, les outils alternatifs offrent des avantages supplémentaires qui sont précieux dans de nombreux scénarios. Ils m'aident particulièrement à gérer et à travailler sur mes ordinateurs de bureau et portables Linux.
Utilisez-vous d'autres outils qui facilitent votre flux de travail ? Ajoutez-les dans la section des commentaires ci-dessous.