Liste ultime des commandes inhabituelles mais très utiles du shell Linux
Il s'agit d'une compilation de commandes shell Linux moins connues, mais vraiment utiles. Utile dans le sens de : gain de temps, vous donner des outils supplémentaires pour faire des choses que vous ne pouviez pas faire avant, mais aussi divertissant. Bonne lecture, et dites-nous dans les commentaires s'il y a d'autres outils que nous devrions ajouter !
Les instructions d'installation sont destinées aux systèmes basés sur Debian, elles ont été testées sur le système d'exploitation Raspberry Pi, sur une Raspberry Pi 4 / 1 GB. YMMV sur d'autres systèmes, mais il suffit de s'y essayer et de tester ces commandes 🙂 .
sudo ! !
Ceci exécutera la commande précédente avec sudo en préambule. Très utile si vous avez oublié de faire précéder une commande de sudo :
apt-get update
sudo !!
Pas besoin de l'installer, si sudo est sur votre système, cela devrait fonctionner. Notez l'espace entre sudo et les points d'exclamation.
La commande préparée par sudo sera également ajoutée à votre historique bash, afin que vous puissiez y accéder facilement en tapant la touche fléchée "haut" pour la répéter. (J'en ai fait la démonstration dans l'animation ci-dessus. sudo ! ! elle-même ne sera PAS ajoutée à votre historique)
tac (chat à l'envers)
Cette instruction pratique est intégrée avec son frère plus connu, cat. Passez-lui un fichier, pour qu'elle inverse l'ordre des lignes dans le fichier, en imprimant la dernière ligne en premier :
tac /etc/magic
Cette commande devrait être très utile si vous regardez les fichiers journaux, par exemple.
tldr - manpages, simplifié !
Les pages de manuel sont utiles, mais parfois assez longues. Vous êtes-vous déjà retrouvé sur Google au lieu de consulter la page de manuel ? Simplement parce que vous voulez des exemples concrets pour une utilisation quotidienne, au lieu de toutes les cloches et les sifflets d'une commande ? tldr livre "cheatsheets collaboratifs pour les commandes de la console".
TL;DR : tldr est l'outil à utiliser pour obtenir un résumé rapide des commandes Linux.
Il existe également un Version PDF (tldr.sh) qui comprend toutes les pages tldr actuellement disponibles
installation du tldr
note : Pour cela, npm / node.js doit être installé sur votre système Linux.
npm install -g tldr
en utilisant le tldr
simplement le type tldr suivi de la commande qui vous intéresse. Lors de la première exécution, tldr mettra à jour son cache et créera un index, ce qui prendra un peu de temps. Par exemple, pour voir la page de tldr sur gzip, lancez :
tldr gzip
contribution et alternatives tldr
Si vous souhaitez contribuer à tldr, jetez un coup d'oeil à la page GitHub - tldr-pages/tldr : 📚 Cheatsheets collaboratifs pour les commandes de la console.et leurs directives de contribution.
Il existe quelques alternatives :
- Cheat
- Pages Bro ("allez droit au but")
- navi - vous permet de parcourir les cheatsheets de manière interactive et de créer la commande que vous souhaitez exécuter.
- cheat.sh - peut être utilisé sans rien installer, en utilisant curl
how2 - stackoverflow depuis le terminal
tldr et cousins sont vraiment utiles si vous connaissez déjà la commande que vous recherchez. Mais que pouvez-vous faire si vous savez seulement ce que vous devez faire, mais pas encore, comment ? Nous savons tous à quel point les navigateurs peuvent être distrayants. L'outil comment2 vous permet d'obtenir une réponse rapide sans jamais quitter la ligne de commande.
comment2 installation
Nécessite que node.js et le gestionnaire de paquets npm soient installés sur votre système.
sudo npm install -g how-2
utilisation de how2
how2 mount an NTFS drive in Raspbian
Si vous êtes satisfait de la réponse, appuyez sur la touche Entrée pour quitter how2 - sinon, appuyez sur Espace pour obtenir d'autres choix. Utilisez les touches fléchées de votre clavier pour naviguer, et Esc pour quitter.
howdoi - obtenir des réponses aux questions de codage depuis la ligne de commande
Dans le même ordre d'idées, si vous cherchez des réponses à des questions de codage en ligne de commande, sans avoir à passer par un navigateur, consultez le site comment faire:
comment faire l'installation
sudo apt-get update
sudo apt-get install libxml2-dev libxslt-dev python3-lxml python-lxml python-dev
sudo pip3 install howdoi
en utilisant comment
howdoi howdoi
howdoi use tensorflow in python
howdoi -c shut down the system with Python
Le site -c activera la sortie colorée. Par défaut, howdoi effectue des recherches en utilisant Google, mais vous pouvez également choisir d'utiliser bing ou duckduckgo.
autojump - un moyen plus rapide de naviguer dans votre système de fichiers
autojump maintient une base de données des répertoires que vous visitez le plus à partir de la ligne de commande, et vous permet de sauter au répertoire en donnant seulement une partie de son nom. Plus besoin de répéter cd dans votre répertoire cible !
installation de l'autojump
sudo apt-get update
sudo apt-get install autojump
Pour des raisons de politique, vous devrez alors ajouter autojump manuellement à votre ~/.bashrc pour les shells interactifs sans connexion, et à votre ~/.bash_profile pour les shells de connexion :
nano ~/.bashrc
et ajoutez la ligne suivante en bas :
. /usr/share/autojump/autojump.sh
Note : vous devrez rouvrir le terminal / vous reconnecter via SSH pour que cela soit appliqué.
Utilisation de l'auto-saut
autojump est livré avec un raccourci pratique, "j", qui vous aide à taper moins. Pour commencer à utiliser autojump, vous aurez besoin de présélectionner les chemins des répertoires. Naviguez normalement, par exemple
cd /etc/python
Après avoir construit ce cache des répertoires que vous visitez (autojump gardera la trace de la fréquence !), vous pourrez y accéder en tapant une partie du nom, par exemple :
j pyt
Outils similaires à autojump
Il existe quelques applications similaires à l'autojump :
mtr - une combinaison de ping et traceroute
mtr vous montrera le chemin que prennent vos paquets réseau vers un hôte depuis votre Raspberry Pi. C'est utile pour les diagnostics réseau, pour analyser la latence par exemple. Mais il est aussi tout simplement intéressant de voir comment Internet fonctionne, en faisant passer vos paquets d'un hôte à un autre 🙂 .
installation du mtr
sudo apt-get update
sudo apt-get install mtr
Utilisation du mtr
mtr
mtr enverra des paquets avec des TTL (time to live) volontairement bas, en continuant à les augmenter, pour analyser les chemins du réseau. Une augmentation soudaine de la perte de paquets ou du temps de réponse est souvent une indication d'un mauvais lien (ou simplement surchargé).
bat : chat des fichiers de code avec coloration syntaxique
Il existe de nombreux clones de chats : la chauve-souris est un clone de chat avec des ailes. Il a quelques caractéristiques supplémentaires sous ses ailes, pour en faire un remplacement puissant du chat :
- coloration syntaxique pour de nombreux langages de programmation et de balisage
- intégration avec git pour montrer les modifications
- afficher éventuellement les caractères non imprimables (en utilisant l'option -A drapeau)
Par défaut, bat enverra également sa propre sortie vers un pager (e.g. moins) si la sortie est trop grande pour un seul écran.
installation des chauves-souris
Le site page GitHub de la chauve-souris donne des instructions d'installation pour différents systèmes Linux (et même Windows !)
bat n'est actuellement disponible que dans la version "sid" (instable) de Debian. Pour l'installer sur le système d'exploitation Raspberry Pi, rendez-vous à l'adresse suivante https://github.com/sharkdp/bat/releaseset téléchargez le paquet approprié. (si vous utilisez un système d'exploitation Raspberry Pi 32 bits, utilisez le paquet bat_*.armhf.deb, pour 64 bits utilisez bat_*_arm64.deb ; si vous configurez ceci sur un système x86 / AMD64, ces paquets sont également disponibles).
cd /tmp
wget https://github.com/sharkdp/bat/releases/download/v0.17.1/bat_0.17.1_armhf.deb
sudo apt-get install ./bat_0.17.1_armhf.deb
utilisation de la batte
Il suffit d'utiliser chauve-souris comme vous le feriez avec chat:
bat example.py
La coloration syntaxique sera déterminée à partir de la première ligne d'un fichier (idéalement un shebang tel que #!/bin/sh).
asciinema & svg-term-cli : créer des films SVG à partir d'interactions shell
Remarque : il s'agit asciinema, pas d'asciicinema 🙂 .
Vous pourriez utiliser Studio OBS pour capturer votre écran et créer un film pour YouTube, montrant le coquillage. Mais - il s'agit d'une vidéo, ce qui présente quelques inconvénients :
- taille
- la résolution est fixe
asciinema vous permet de les capturer sous forme de flux de texte et de les publier sous forme de "asciicast". Vous pouvez les intégrer dans vos pages en incluant un petit extrait de JavaScript fourni par l'entreprise. Consultez le site un exemple de l'asciicast que nous avons enregistré pour ce billet de blog.
Lorsqu'il est utilisé avec svg-term-cliil vous permet de créer des animations SVG ! Ces films sont des animations vectorielles, parfaitement adaptées aux interactions dans le shell. Ils sont plus petits que les fichiers vidéo, et peuvent être zoomés sans perte de qualité. De plus, aucun JavaScript ne sera nécessaire. Cependant, lorsque vous incluez un grand nombre de ces asciicasts, je vous recommande d'opter pour les options JavaScript - sinon les performances de la page en souffriront.
Installation d'asciinema
Voici un lien vers les instructions d'installation d'asciinemaNous allons voir ceux pour Raspberry Pi OS (Debian) :
sudo apt-get update
sudo apt-get install asciinema
En outre, vous devez créer un compte sur asciinema.org - il vous suffit d'avoir votre adresse e-mail, et de lier votre compte à l'installation d'asciinema sur votre Raspberry Pi, en exécutant :
asciinema auth
Cela va générer une URL pour vous - en visitant l'URL, alors que vous êtes connecté, vous allez lier l'installation locale d'asciinema à votre compte asciinema.org. Cela vous permettra de gérer les enregistrements (définir les titres, modifier les descriptions, les rendre publics), et d'éviter que les enregistrements soient automatiquement archivés après 7 jours.
Installation de svg-term-cli
Remarque : cela nécessite node.js et le module gestionnaire de packaging npm pour fonctionner. Cela n'est nécessaire que si vous voulez créer des fichiers .SVG animés à partir de vos asciicasts.
sudo npm install -g svg-term-cli
Utilisation d'asciinema
Pour démarrer l'enregistrement, tapez :
asciinema rec
Cela va créer une nouvelle instance de shell, et commencer à enregistrer les interactions du terminal. Pour terminer l'enregistrement, tapez Ctrl + D ou tapez quitter
asciinema vous demande maintenant si vous voulez télécharger votre enregistrement sur asciinema.org (en appuyant sur Entrez), ou pour l'enregistrer localement (en appuyant sur Ctrl + C). Dans ce dernier cas, a .cast sera créé dans le répertoire temporaire :
asciinema : enregistrement terminé
asciinema : appuyez pour télécharger vers asciinema.org, pour sauvegarder localement
asciinema : asciicast enregistré dans /tmp/tmp21kux252-ascii.cast
Vous pouvez également spécifier le fichier de sortie à utiliser :
asciinema rec /tmp/example.cast
Conseil : mettez votre fenêtre de terminal à l'échelle de la résolution des colonnes et des lignes que vous souhaitez avoir dans l'animation avant de commencer l'enregistrement ; les options -width et -height de svg-term-cli recadreront simplement la sortie.
Pour télécharger le fichier sur asciinema, vous pouvez maintenant exécuter :
asciinema upload /tmp/example.cast
Voir cette page pour des instructions plus élaborées sur l'utilisation d'asciinema.
Convertir un fichier .cast d'asciinema en fichier .svg en utilisant svg-term-cli
Une option (recommandée pour des raisons de performances) consiste à héberger vos fichiers .cast sur asciinema.org, qui est le site suivant bien documenté sur leur page. Nous allons explorer ici la possibilité de convertir l'enregistrement en un fichier .svg animé.
svg-term --in /tmp/tmp21kux252-ascii.cast --out /tmp/example.svg
Note : WordPress désactive le téléchargement de SVG par défaut pour des raisons de sécurité. Il existe plugins pour permettre le téléchargement de SVG de manière sécurisée.
exa : un remplacement moderne de ls
Alors qu'il est possible de faire en sorte que ls affiche les couleurs, exa utilise les couleurs d'une manière vraiment optimisée, et vous aide avec des informations supplémentaires.
Par exemple, une vue arborescente est intégrée - vous montrant les informations de vos fichiers à côté de la hiérarchie. exa connaît également les différents types de fichiers, et les affichera dans des couleurs différentes. En outre, il dispose d'un support Git intégré pour afficher l'état des fichiers mis à disposition ou non mis à disposition dans la vue standard.
installation d'exa
sudo apt-get update
sudo apt-get install exa
en utilisant l'exa
exa
exa fonctionne de manière similaire à ls. utilisez les drapeaux -l pour afficher une liste avec des détails sur vos fichiers et répertoires, -T pour afficher une vue arborescente incluant les sous-répertoires, et -Tl pour afficher une vue combinée arbre / détail. Reportez-vous à la documentation exa pour plus d'informations.
shuf : randomise les lignes d'un fichier
Disons que vous voulez créer une liste aléatoire (d'utilisateurs, d'activités, faites votre choix !) en mélangeant les entrées d'un fichier. Eh bien, vous avez de la chance avec cet outil (qui devrait déjà être préinstallé) :
shuf example.txt
rig : créer de fausses identités
Parfois, une page vous oblige à vous inscrire avec votre identité. Ces pages sont intelligentes : elles vérifient que votre ville correspond à votre code postal, par exemple. rig vous permet de gérer ce défi en vous fournissant un nombre illimité de fausses identités à la demande (US), qui devraient être plus ou moins correctes géographiquement. rig en lui-même est basé sur l'application MSDOS "fake" bien nommée.
Installation de la plate-forme
sudo apt-get update
sudo apt-get install rig
Utilisation de la plate-forme
rig
browsh - un navigateur moderne basé sur le texte
Nous connaissons tous lynxlynx, qui vous permet d'ouvrir n'importe quelle page Web (par exemple Wikipédia) à partir de la ligne de commande. lynx, en 2020, est le plus ancien navigateur Web encore maintenu, ayant commencé en 1992.
Mais qu'en est-il des cas où le Lynx ne suffit pas ? Lorsque vous souhaitez lire des vidéos YouTube, accéder à des pages Web en utilisant JavaScript pour rendre le contenu, etc.
Vous avez de la chance. browshL'un des points forts de cette collection d'outils en ligne de commande inhabituels est un navigateur textuel entièrement moderne. Il utilise Firefox en arrière-plan pour rendre votre page en mode sans affichage.
Note : un Pi 4 est recommandé pour exécuter cette application particulière, et elle semblera toujours assez lente - vous demandez au Pi d'effectuer des tâches très lourdes avec cette application ! Mais c'est amusant et sera utile aux utilisateurs de systèmes plus puissants, j'en suis sûr.
installation de browsh
Rendez-vous sur le site téléchargements de sourcils et obtenir le paquet approprié. Par exemple pour Debian ARMv7 :
cd /tmp
wget https://github.com/browsh-org/browsh/releases/download/v1.6.4/browsh_1.6.4_linux_armv7.deb
sudo apt-get install ./browsh_1.6.4_linux_armv7.deb
Si vous ne disposez pas encore de Firefox, celui-ci s'affichera automatiquement.
en utilisant browsh
browsh https://google.com
et se préparer à attendre un peu.
browsh has bonne documentation. voici quelques conseils :
- Utilisez Ctrl+q pour quitter browsh
- touches fléchées pour faire défiler
- retour en arrière pour revenir en arrière dans l'histoire
- ctrl + l met l'accent sur la barre d'URL
browsh prend même en charge la navigation par onglets ! Il supporte également une technologie intéressante appelée mosh ce qui permet d'obtenir des coquilles plus rapides et prédictives sur des liens laggy.
nohup : maintien de l'exécution d'une application après avoir quitté la session SSH
Je m'en souviens comme d'un "no hangup". Habituellement, lorsque vous quittez une session SSH, l'application qui était en cours d'exécution dans votre session reçoit un SIGHUP signal. Ce qui conduit généralement à l'arrêt de l'application.
Dans certains cas, vous préféreriez ne pas avoir cela - par exemple, si vous convertissez une vidéo, ou si vous exécutez un serveur quelconque, ou tout autre processus par lots.
en faisant précéder la commande de nohup lui permettra de continuer à s'exécuter, même si le shell est fermé, ou si SSH est déconnecté. Je combine généralement cette option avec une esperluette (&), pour lancer la commande en arrière-plan :
nohup ./myscript.sh &
lolcat : colorez votre sortie shell. Je veux dire, vraiment la coloriser !
Avez-vous parfois l'impression que le monde, et en particulier le coquillage, manque de couleur ? Ne vous inquiétez plus, les lolcats viennent à votre secours.
installation de lolcat
sudo apt-get update
sudo apt-get install lolcat
en utilisant lolcat
lolcat peut être utilisé comme cat, pour sortir des fichiers sur votre shell :
lolcat /etc/magic
De plus, comme cat, il peut lire à partir de stdin et recevoir des entrées par piping, pour apporter un peu plus de couleur dans votre vie :
man lolcat | lolcat
sudo apt-get update | lolcat
cal : calendrier intégré
Linux est livré avec de petites surprises, comme un calendrier intégré.
cal
Si vous voulez également voir le mois précédent et le mois suivant par rapport au mois en cours, tapez
cal -3
Conclusion
Et voilà, vous l'avez, les amis ! La liste ultime de toutes les commandes Linux dont vous ne saviez pas que vous aviez besoin !
Vous cherchez d'autres conseils de programmation ? Consultez notre article "9 Astuces avec le REPL de Python“!
[...] si vous ne maîtrisez pas encore les commandes ultimes du terminal Linux, la construction d'un cyberdeck comme celui-ci vous inspirera à coup sûr [...]