Archives Wild Code School
Terminal

Maîtriser Unix en mode avancé

Quête 4 sur 5

La ligne de commande Unix est un outil puissant de contrôle de votre ordinateur. Elle est utilisée depuis plus de 40 ans pour diriger la plupart des serveurs dans le monde. Il est indispensable, non seulement de maîtriser les bases pour ne pas se perdre dans Linux, mais aussi d'en extraire toute la productivité nécessaire au développement de tes applications. Gérer des serveurs via ligne de commande est même un métier à part entière dans le monde informatique: celui d'administrateur système. En tant que développeur, tu vas passer le plus clair de ton temps à lire des infos dans le terminal, mieux vaut partir équipé et manipuler des programmes facilement. Comme tu maîtrises déjà les bases, allons plus loin dans la gestion et l'installation d’un programme linux.

Objectifs

  • Comprendre et trouver les fichiers binaires dans un OS
  • Ajouter des PATH au fichier de configuration du terminal
  • Créer ses propres alias de shell
  • Utiliser ZSH

La ligne de commande, c'est la base

Voici une étape dans la continuité de la quête Unix précédente.

↗
Unix - Pour aller plus loin avec la ligne de commande

Livre en français téléchargeable gratuitement si tu as envie d'approfondir. A garder en cas de problème

framabook.org
↗
Explain Shell

#interactif #definition #terminal Un outil qui permet de décomposer une suite de commandes unix, pour en comprendre le sens. Essaye avec tar(1) xzvf archive.tar.gz

explainshell.com
↗
The Unix acronym list

#guide #complet #commande La liste des acronymes des commandes unix. Inutile de les apprendre par coeur. Un développeur moyen connaît la moiité de ces commandes. L'essentiel est de comprendre qu'il y a une logique derrière le nom de chaque commande...même si ce nom est parfois un peu tiré par les cheveux !

roesler-ac.de

Chacun son chemin : qu'est-ce qu'un programme binaire?

Dans un système UNIX (Linux), TOUT est SOIT un fichier SOIT un dossier

Comme tout est fichier, n'importe quel programme fait référence à un fichier binaire stocké dans le système, appelé aussi exécutable (qui explique l'extension ".exe" sous Windows). On peut facilement retrouver ce fichier grâce à la commande which. Dur à écrire mais très pratique, which retourne le chemin où se trouve le fichier exécutable. Essaye avec git, firefox ou n'importe quel programme, pratique pour indiquer le chemin d'un programme pour la configuration d'un autre.

whatis détaille aussi les commandes unix. Tu peux même ajouter une commande à ton ~/.bashrc : echo "Sais-tu que :"; whatis $(ls /bin | shuf -n 1) Pour en apprendre tous les jours, à chaque fois que tu ouvriras ton terminal

↗
What is PATH?

#variable #path #chemin #unix Pour indiquer à ton terminal où se trouvent certains programmes, le fichier de config cat ~/.bashrc contient souvent la variable PATH. Essaye d'ajouter des nouveaux chemins dans la variable PATH, comme $HOME/bin par exemple, qui est l'endroit où l'on met en général ses petits scripts perso.

linfo.org
↗
Commandline Fu

#communauté #commande #bestof Découvrir des lignes de commande tous les jours. Cette app regroupe les meilleures possibles. Va voir quelques-unes des meilleures, situées dans la rubrique 'top'.

commandlinefu.com
↗
DotFiles

#dotfiles Les .dotfiles sous Linux comme .bashrc

mywiki.wooledge.org

De la puissance de l'alias

Si ton temps de travail n'est ni dans ton navigateur, ni dans ton éditeur de texte, alors c'est dans un terminal/shell/console unix que ça se passe. Tu vas rapidement te rendre compte que tu tapes toujours les mêmes commandes. A tel point que taper apti est plus pratique que sudo apt-get install. Les alias sont évidemment très personnels. Pourquoi ne pas commencer par jeter un oeil sur les principales commandes que tu utilises dans ton terminal afin de 'raccourcir' les plus longues, en créant des alias :

shell
history | awk 'BEGIN {FS="[ t]+||"} {print $3}' | sort | uniq -c | sort -nr | head -n20

↗
Créer des alias de commandes sous debian

#alias #shell #debian #tutoriel Un petit tutoriel simple, en français, pour créer des alias. Il est temps d’éditer son fichier de config shell !

virtualmin.wordpress.com
↗
30 Handy Bash Shell Aliases

Une longue liste de suggestions de commandes. Arrête-toi sur celles que tu connais pour les ajouter à ton fichier ~/.bashrc

Les alias sont très puissants. Essaye celui-là :

alias meteo="curl -4 http://wttr.in/Chartres"
cyberciti.biz

Challenge

Installer ZSH

Embauché le mois dernier dans une start-up qui veut révolutionner les pots de yaourt, un collègue t'appelle à l'aide, car il vient d'installer un nouveau programme shell appellé ZSH. Depuis, certains programmes ne fonctionnent plus quand on les appelle depuis le terminal. Fraîchement diplômé de la Wild Code School, tu connais l'esprit d'équipe et voles donc à sa rescousse.

Tu finis par éditer son fichier de configuration ~/.zshrc qui doit répondre aux contraintes suivantes :

  • A chaque fois qu'il ouvre un nouveau terminal, le terminal affiche ce que l'acronyme BASH veut dire.
  • Tu fais en sorte de charger directement sa config bash depuis sa config zsh (le mieux evidemment serait de ne sourcer que les sections interprétables par les deux shells, mais ce serait plus long)
  • Sa machine surchauffe 3 fois par jour. Il souhaite donc avoir un raccourci (alias) dans son terminal qui lui indique à tout moment la température de son processeur principal.

Poste le contenu du fichier ~/.zshrc nouvellement édité dans un Gist, puis poste le lien dans le champ solution.

Extra

Tu peux aussi installer des plugins très utiles sur ZSH :

  • Oh my ZSH Un peu lourd au démarrage du shell, mais très pratique pour l'auto-complétion par exemple
  • Syntax Highlighter Ce plugin ultra pratique met en couleur une commande si elle existe dans ton shell, avant de taper sur entrée (vert si la commande existe, rouge si elle n'existe pas et sortira une erreur)
  • Bien factoriser son .bashrc et son .zshrc Voilà quelqu'un qui a pris le temps de factoriser les sections communes bashrc et zshrc
  • Sourcer en silence Ou bien quand on veut du quick & dirty...

Critères de validation

  • L'explication de l'acronyme Bash s'affiche à l'ouverture d'un nouveau terminal
  • Le fichier de configuration contient une ligne qui charge l'intégralité du fichier de configuration BASH
  • La commande therm affiche la température du processeur en degrés Celsius ou en milli-degrés Celsius (55000 = 55°C)