Terminal tout le monde descend !

Les serveurs sont nos amis, il faut les aimer aussi. Mais parfois c’est compliqué et fastidieux.

Compliqué parce qu’on a décidé que c’était compliqué. Qui dit “commandes serveur” dit technicité pour la plupart des gens alors que pas du tout. Il s’agit simplement d’une suite d’instructions plus ou moins détaillées données à une machine pas du tout intelligente.

Disclaimer

Je ne vais pas donner un cours de sysadmin ici, j’en serais bien incapable. Il s’agira seulement d’une suite de commandes qui me semblent utiles pour gagner en temps et en sérénité.

Démystifier le serveur

En tant que développeur, le passage par les serveurs est difficilement évitable. Bien qu’il existe des solutions qui permettent de s’en passer et que l’on semble s’acheminer vers du vagrant, docker and compagnie, il est important de comprendre les mécanismes. Une fois que l’on a réellement compris, libre à nous de choisir nos outils mais pas l’inverse à mon sens.

2 raisons principales à cela : réduire sa dépendance et améliorer sa culture.

Ce qu’il faut retenir est que savoir dialoguer avec un serveur fait partie de la panoplie du dév et que pour progresser il faut apprendre ET pratiquer. C’est comme le sport, au début tu sues toutes les gouttes de ton corps et avec l’entraînement tu finis par te ballader. L’important c’est l’impulsion de départ. A vous de choisir.

Faster, stronger…

peter

L’idée est de faire vite et bien mais j’insiste “bien”. Avant de foncer à toute allure, comme notre ami Peter ici à l’image, il nous faudra atteindre un certain seuil de maîtrise sous peine de nous prendre le premier mur venu et comme il y a un rapport direct entre la vitesse et l’énergie autant prendre nos précautions.

J’ai perdu mon chemin

Au choix ou combiné :

pwd
cd - 

pwd donne le chemin complet. cd pour change directory avec ici l’option – nous renvoie vers le dernier répertoire parcouru.

J’ai des choses à faire

Penser à “&&”. Parfois il n’y a aucune raison d’attendre, autant tout faire en même temps. Par exemple avec vagrant on vous dit souvent de faire :

git clone machin.git machin
cd machin
vagrant up

Alors que :

git clone machin.git machin && cd machin && vagrant up

va aussi bien. Attention comme vous êtes des padawans vous pourrez aussi réfléchir. Ici tout est dépendant. Je veux dire par là que si une des commandes ne marche pas rien ne marche. Maintenant dans certains cas il sera plus malin ou en tout cas plus généraliste de faire :

command1; command2; command3

Les commandes s’exécuteront quoiqu’il arrive à l’une d’entre elles.

J’aime les listes

Tout le monde aime les listes parce que c’est fun smile Toute geekerie mise à part c’est quand même pratique :

ls -alR ~/git > results.txt

Je liste ici tous les fichiers dans tous les coins et recoins du dossier /git/ de mon répertoire personnel.

Need backup !

Cette commande tar dont on oublie souvent les options et ce qu’elles veulent dire… Vous arrivez sur un serveur de prod, il est recommandé de faire un backup des fichiers avant de faire vos opérations. Même si le projet est “gitté” c’est-à-dire versionné avec GIT, il n’est pas rare que les uploads par exemple ne soient pas versionnés, ce qui est logique.

Pour faire un backup des fichier il faudra entrer :

tar -cvfz backup.tar.gz folder/

Pour extraire ce backup en cas de souci il faudra entrer cette fois :

tar -xvfz backup.tar.gz folder/

Le “c” pour “create” ou le “x” pour “extract”, le “v” pour “verbose” (ça affiche le processus avec les lignes qui défilent), le f pour “following” et le “z” pour le format gzip plus rapide.

Pro tips :

tar -czf - /folder/ | wc -c

Cela évalue la taille de l’archive potentielle avant.

J’ai horreur du vide !

find ~ -empty

Vous débusquera les fichiers vides.

Lancez les recherches

La recherche c’est bien mais c’est long en général. Si vous pouvez circonscrire l’affaire faites-le par exemple avec un maxdepth :

find -maxdepth 2 -name .htaccess

ira rechercher des fichiers nommés “.htaccess” mais seulement à la racine et 2 niveaux de profondeur.

Lire dans les logs

Les logs sont très précieux, quand on a la possibilité d’y accéder ne pas s’en priver :

tail -f log-file

Anonymous

Pour éviter d’indexer une commande dans l’history :

 command

Et hop un petit espace et le tour est joué !

Ma préférée

Vu que je fais souvent des inversions de lettres ce qui a le don de m’agacer, au hasard avec la commande clear que je renomme “claer” et qui me renvoie donc une belle erreur “command not found”, je fais maintenant :

CTRL + l

Et paf !

Vite vite vite !

Pour afficher les raccourcis dispo :

bind -p

Conclusion

Une série de commandes utiles pour gagner son temps ou du moins éviter d’en perdre ce qui au final est la même chose. Je vous laisse avec ce petit tricks qui m’a fait sourire :

 echo "Wake up Neo..." | pv -qL 10