112 votes

Meilleures pratiques et astuces pour la ligne de commande Linux ?

J'aimerais ouvrir une discussion qui permettrait d'accumuler vos meilleures pratiques et astuces en matière de ligne de commande Linux (CLI).

J'ai cherché une telle discussion pour partager le commentaire ci-dessous mais je n'en ai pas trouvé, d'où ce post.

J'espère que nous pourrons tous en tirer des leçons.

Vous êtes invités à partager vos astuces Bash, grep, sed, AWK, /proc et toutes les autres pratiques d'administration système Linux/Unix, Shell et de programmation pour le bénéfice de tous.

38voto

kyku Points 97

Cette astuce rendra votre CLI plus confortable (du moins, c'est le cas pour moi) :

créer le fichier ~/.inputrc avec le contenu suivant :

"\e[A": history-search-backward
"\e[B": history-search-forward

Rechargez bash (par exemple en tapant "exec bash"). Lorsque vous tapez le préfixe d'une commande et que vous appuyez sur la flèche vers le haut, vous parcourez les commandes commençant par ce préfixe, par exemple si vous tapez ssh, cela affichera vos anciennes connexions avec des shells distants. Si votre invite est vide, la flèche vers le haut parcourra l'historique de la manière habituelle.

36voto

hakan Points 1011

Utilisez && 代わりに ; lors de l'exécution de plusieurs commandes à la fois. Elle s'arrête lorsqu'une erreur se produit et n'exécute pas les autres commandes.

Exemple classique :

./configure && make && make install

32voto

Simon Johnson Points 4641

Lorsque j'écris des boucles sur la ligne de commande en bash, je fais souvent précéder les commandes risquées de la commande "echo".

for item in items; do echo something-risky; done

De cette façon, je peux voir l'intégralité de la commande risquée avant de m'engager à l'exécuter. Aide lorsque votre commande risquée comprend des expansions de variables et des globs. Et 'set -x' est très utile pour écrire des bash scripts.

Le paramètre 'set -x' active le débogage. Voir http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_02_03.html pour des informations sur le débogage de bash.

31voto

kloucks Points 1530

Exigence

Vous devez tester la bande passante maximale entre 2 serveurs.


Solution

En SERVEUR1 faire :

nc -u -l 54321 > /dev/null

En SERVEUR2 faire :

dd if=/dev/zero bs=1MB | nc -u SERVER1 54321 &
pid=$(pidof dd)
while (( 1 )); do kill -USR1 $pid; sleep 2; done

Vous verrez des résultats tels que :

182682000000 bytes (183 GB) copied, 1555.74 seconds, 117 MB/s
182920+0 records in
182919+0 records out

117 MB/s est le facteur intéressant ici, qui montre la largeur de bande de transfert réelle du réseau.

Explication :

Lorsque les paquets commenceront à circuler sur le réseau, vous pourrez voir les statistiques de la bande passante sur le SERVEUR2, ce qui est une assez bonne estimation de la bande passante maximale possible entre les deux serveurs.

Copie par UDP (pour éviter les surcharges TCP).

Copie vers de mémoire (/dev/zero) sur SERVER1 à mémoire (/dev/null) sur SERVER2, empêchant ainsi les E/S de disque de devenir le goulot d'étranglement.

23voto

Timothy Khouri Points 14640

Il est plus facile de voir les structures de répertoire en couleur.

alias ls="ls --color=tty"

編集

alias ls="ls --color=auto"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X