GNU/Linux >> Tutoriels Linux >  >> Linux

20 commandes Linux en une ligne à ajouter à votre boîte à outils

De nombreux utilisateurs de Linux ont éprouvé un sentiment d'accomplissement durable après avoir composé une commande particulièrement intelligente qui réalise plusieurs actions en une seule ligne ou qui parvient à faire en une seule ligne ce qui prend habituellement 10 clics et autant de fenêtres dans une interface utilisateur graphique (GUI). En plus d'être légendaires, les one-liners sont d'excellents exemples de la raison pour laquelle le terminal est considéré comme un outil si puissant.

À la fin de cet article, vous aurez :

  • Une liste de 20 commandes qui faciliteront vos tâches lorsque vous travaillez sous Linux
  • Une compréhension des possibilités de combiner des commandes simples pour créer des commandes plus puissantes
  • Plus amusant que vous ne le pensez en exécutant ces commandes

Sans ordre d'importance spécifique, ce sont nos 20 meilleurs one-liners pour le terminal Linux. Bien que nous ayons divisé certaines des commandes les plus longues avec le \ symbole pour une meilleure lisibilité, vous pouvez tous les saisir sur une seule ligne dans votre terminal car, après tout, ce sont des lignes simples.

1. Appliquer une commande sur des fichiers avec des noms différents

Le shell {} l'opérateur est idéal pour cela. Voici un exemple avec trois répertoires inclus dans {} :

$ mkdir -p -v /home/josevnz/tmp/{dir1,anotherdir,similardir}

2. Modifier un fichier sur place

Vous souhaitez remplacer une chaîne sur un ou plusieurs fichiers sans passer par un éditeur ? Bien sûr, sed à la rescousse :

$ sed -i 's#ORIGINAL_VALLUE#NEW_VALUE#g' myfile1 myfile2

Mais attendez, les amateurs de Perl vous diront qu'ils peuvent faire la même chose :

$ perl -p -i -e 's#ORIGINAL#NEW_VALUE#' myfile1 myfile2

3. Partager un fichier rapidement à l'aide d'un serveur Web

Levez la main si vous ne l'avez pas utilisé au moins une fois pour partager un répertoire rapidement :

$ cd $mydir && python3 -m http.server 8888

4. Trouver les échecs avec journalctl

Parfois, les choses se cassent. Vous pouvez trouver les erreurs les plus récentes en utilisant une combinaison de journalctl , ainsi que les outils classiques sort et uniq :

$ journalctl --no-pager --since today \
--grep 'fail|error|fatal' --output json|jq '._EXE' | \
sort | uniq -c | sort --numeric --reverse --key 1

898172 "/usr/bin/dockerd"
    752 "/usr/local/sbin/node_exporter"
     30 "/usr/bin/gnome-shell"
     26 "/usr/bin/cat"
     22 "/usr/libexec/gsd-media-keys"
[...]

Dans ce cas, il semble que le démon Docker soit mécontent.

[ Téléchargez cet eBook pour vous préparer à votre examen à distance Red Hat. ]

5. Faire une sauvegarde via transfert de fichier crypté

Utilisez ssh et tar pour effectuer des sauvegardes sécurisées. Ils vont ensemble comme du beurre de cacahuète et de la gelée :

$ tar --create --directory /home/josevnz/tmp/ --file - *| \
ssh raspberrypi "tar --directory /home/josevnz \
--verbose --list --file -"

Vous pouvez ajouter de la saveur à la tâche de sauvegarde grâce à la compression et au chiffrement, comme si vous ajoutiez des ingrédients à votre sandwich.

6. Écrire des fichiers instantanés

C'est une bonne astuce lorsque vous avez besoin d'écrire des documents multilignes :

$ cat<<DOC>/my/new/file
Line1
Line2
A $VARIABLE
DOC

Vous pouvez également simplement cat > file , et lorsque vous avez terminé l'édition, saisissez simplement le caractère EOF (Ctrl+D ):

[josevnz@dmaf5 temp]$ cat > testfile
This is a test
multiple lines
and here we go
[josevnz@dmaf5 temp]$ 

7. Rechercher un fichier, inclure certaines extensions et en exclure d'autres

Cet exemple utilise le grep moyen de rechercher des fichiers spécifiques. C'est assez rapide et facile à retenir :

$ grep -R 'import' --include='*.java' --color MySourceCodeDir

Ou vous pouvez essayer le find manière (utilisez xargs pour gérer correctement un grand nombre de correspondances) :

$ find MySourceCodeDir/ -name '*.java' -type f -print| xargs \
grep --color 'import

Pourquoi find , tu peux demander? Vous pouvez combiner find avec -exec pour exécuter d'abord des actions sur vos fichiers, puis transmettre les résultats au filtre. Les possibilités de traitement sont infinies ici.

8. Surveiller la mémoire sans top ni htop

Celui-ci triche presque. Il répète une commande, telle que free , toutes les cinq secondes et met en évidence les différences :

$ watch -n 5 -d '/bin/free -m'

9. Afficher les tailles de partition de disque

Utilisez lsbk (bloc de liste) et jq (pour manipuler un JSON en ligne de commande) pour afficher les informations de la partition :

$ lsblk --json | jq -c '.blockdevices[]|[.name,.size]'
["loop0","55.5M"]
["loop1","156M"]
["loop2","32.3M"]
["zram0","4G"]
["nvme0n1","476.9G"]

10. Afficher rapidement un type de fichier

Le Qu'est-ce que la fonction est appelée avec wi . Il vous indique rapidement le type de fichier.

Pour vérifier un seul fichier :

$ function wi { test -n "$1" && stat --printf "%F\n" "$1"; }

Pour vérifier plusieurs fichiers :

$ function wi { test "$#" -gt 0 && stat --printf "%n: %F\n" "$@"; }

REMARQUE :Les fonctions sont supérieures et peuvent faire le même travail qu'un alias.

11. Afficher la taille d'un RPM installé

Si vous avez un système basé sur RPM, tôt ou tard, vous formaterez vos requêtes. Voici un exemple :

$ rpm --queryformat='%12{SIZE} %{NAME}\n' \
-q java-11-openjdk-headless

[ Entraînez-vous et testez nos derniers cours et examens de la formation et de la certification Red Hat :Parcours de compétences Red Hat Enterprise Linux. ]

12. Afficher la taille totale d'un groupe de fichiers

Dans ce cas, le find La commande agit comme un filtre, affiche la taille de chaque fichier en octets, et enfin, affiche la taille totale :

$ t=0; for n in $(find ~/Documents -type f -name '*.py' -print | xargs \
stat --printf "%s "); do ((t+=n)); done; echo $t

Ou, si vous voulez une fonction (meilleure), essayez cette approche :

$ function size { t=0; test -d "$1" && for n in $(find $1 \
-type f -name '*.py' -print| \
xargs stat --printf "%s "); do ((t+=n)); done; echo $t; }

size $mydir

13. Mettre à jour tous les dépôts Git sur un répertoire

Vous savez déjà à quel point Git est utile. Voici une astuce pour être plus efficace avec vos mises à jour :

$ for i in */.git; do cd $(dirname $i); git pull; cd ..; done

14. Exposez un répertoire Web à l'aide de conteneurs

Les conteneurs sont essentiels aujourd'hui. Ce one-liner expose un répertoire via Podman :

$ podman run --rm -v .:/usr/share/nginx/html:ro,Z \
-p 30080:80 -d nginx

15. Consultez la météo

Utilisez cette fonction pour savoir si vous avez besoin d'une veste aujourd'hui :

weather() { curl -s --connect-timeout 3 -m 5 http://wttr.in/$1; }

16. Afficher les 10 principales adresses IP atteignant un serveur Web

Voici une tâche que les administrateurs Web peuvent utiliser fréquemment avec Nginx (cela peut également fonctionner avec Apache) pour récupérer les 10 principales adresses de protocole Internet frappant un serveur Web à partir du journal d'accès :

$ cat /var/log/nginx/access.log | cut -f 1 -d ' ' | sort | \
uniq -c | sort -hr | head -n 10

17. Flotteurs ronds dans Bash avec l'aide de Python

Vous pouvez faire des choses plutôt sympas avec Python, mais cet exemple arrondit simplement les nombres :

$ echo "22.67892" | python3 -c "print(f'{round(float(input()))}')"
23

18. Lancer une mini calculatrice

Cette fonction définit une calculatrice rapide en ligne de commande avec une précision variable (la valeur par défaut est 2). Il utilise bc. Créez la fonction comme ceci :

$ function qqbc() { echo "scale=${2:-2}; $1" | bc -l

Ensuite, effectuez un calcul rapide :

$ qqbc "2/3"
.66

Au cas où vous auriez besoin de précisions supplémentaires, définissez simplement un deuxième paramètre :

$ qqbc "2/3" 4
.6666

Cet outil s'appelle qqbc car c'est une amélioration de l'ancienne fonction qbc .

19. Convertir un CSV en JSON

Cette astuce est une modification de cette recette populaire pour convertir les fichiers CSV au format JSON :

$ python3 -c \
"import csv,json,sys;print(json.dumps(list(csv.reader(open(sys.argv[1])))))" \
covid19-vaccinations-town-age-grp.csv

20. Installer et exécuter des commandes avec Docker

Si Docker est installé et que vous souhaitez exécuter une commande sans installer un tas de dépendances sur votre système (tout en effectuant une exécution rapide), cela peut être tout ce dont vous avez besoin :

$ docker run --rm --interactive curlimages/curl curl \
--verbose --location --fail --silent --output - \
https://example.com

La commande exécute la dernière version de curl d'un conteneur, puis le supprime ultérieurement. Notez que la commande se termine par un tiret (- ), qui indique curl à sortir sur votre terminal. Les possibilités sont infinies ici.

Récapitulez

La possibilité de créer des combinaisons puissantes de commandes simples est l'une des raisons pour lesquelles Unix et Linux sont si populaires.

Heureusement. il n'est pas difficile d'apprendre ces one-liners. Concentrez-vous sur la mémorisation de ce que fait une commande simple, puis réfléchissez à la façon dont vous pouvez mélanger de nombreuses commandes simples pour créer une recette puissante.

Vérifiez toujours le man ou utilisez les info commande pour comprendre ce que l'outil peut faire d'autre. Vous serez peut-être surpris d'apprendre qu'un outil peut tout faire sans le combiner avec un autre utilitaire.

Il existe de nombreux sites sur Internet avec de nombreux exemples en une ligne. Nous espérons que ces exemples vous permettront d'écrire de meilleures lignes.


Linux
  1. Commandes Linux pour afficher les informations sur votre matériel

  2. 5 erreurs de débutant Linux

  3. Partez à l'aventure dans votre terminal Linux

  4. Mes 8 commandes Linux pratiques préférées

  5. Ajoutez ces 4 outils à votre boîte à outils de conteneur Linux

Utilisez Linux pour faire vos impôts

Comment ajouter un utilisateur à votre bureau Linux

Installez les polices Nerd pour ajouter des glyphes dans votre code sous Linux

Copie avancée - Ajouter une barre de progression aux commandes cp et mv sous Linux

Mettez une minuterie sur vos commandes en cours d'exécution avec la commande Timeout sous Linux

Apprendre les commandes de suppression d'utilisateur Linux ou d'ajout d'utilisateur Linux