Bash et la ligne de commande¶

Equipe pédagogique : P. François, M. Genete, C. Toffano-Nioche, E. Jacquemet, G. Le Corguillé, J. Seiler, D. Puthier, T. Denecker et tout le staff¶

Comment converser avec le terminal ?¶

Au sein des jupyter notebook, le langage pour discuter avec votre terminal est noté dans l'angle en haut à droite du document.

Drawing

Ici il va donc falloir converser en bash dans les cellules de code. Il s'agit du langage que nous retrouvons aussi sur ce cluster et sur un bon nombre de machine unix.

Il faudra donc le parler si vous ouvrez un terminal dans le launcher de ce jupyterlab.

Drawing

Bash, qu'est ce que c'est ?¶

Petit point technique : Bash signifie Bourne-Again shell. Il s'agit donc d'un shell, autrement dit, c'est un interpréteur en ligne de commande, il vous permet de communiquer avec le système d'exploitation.

Un peu d'histoire (juste pour vous montrer qu'en informatique on déborde d'humour) :

En 1977, Stephen Bourne crée son interpréteur nommé bsh littéralement Bourne shell.

En 1989, Brian Fox se base sur le bsh et crée le Bourne-Again shell. La sonorité proche de born again a semblé le convaincre !

Concrètement, le bash est donc un ensemble de commandes permettant de réaliser diverses tâches.

Comment écrire une commande ?¶

Quelques règles essentielles :¶

  1. Quelque soit la commande, on commence toujours par son nom.

  2. ESPACE

  3. Une éventuelle sous commande

  4. ESPACE

  5. Les arguments ainsi que les options, qui prennent une valeur ou non (Attention, ce n'est pas standardisé !). Séparé par des ESPACES

Vous l'aurez compris, la présence de l'espace est primordiale. Sans lui, votre commande n'aura plus le même sens, alors ne l'oubliez pas !

Ecrivons notre première ligne ensemble !

La commande echo permet d'afficher à l'écran l'argument que vous noterez derrière.

Dans la case ci-dessous, notez echo "bonjour", puis faites un Ctrl + ⤶ ou appuyez sur l'icone Play en haut de cette page :

Drawing

In [1]:
echo "bonjour"
bonjour

Si vous n'avez pas oublié l'espace, le mot bonjour est apparu !

Les différents arguments et options - liste non exhaustive¶

Pour faire au plus simple, tout ce que vous ajouterez dans votre ligne de commande est un argument. Les options sont un type d'argument particulier, caractérisé par l'ajout d'un ou deux tirets.

Le nombre de tiret dépend de si vous utilisez sa version courte ou longue. 1 tiret - + 1 lettre associée pour la forme courte. 2 tirets -- et un nom plus long pour la forme longue.

Ces options peuvent, ou non prendre une valeur.

Voici quelques exemples de commandes avec des arguments ou options :

  • Option sans valeur associée (version courte) : fastqc -v

  • Option sans valeur associée (version longue) : fastqc --version

  • Argument : cd /shared/projects/2422_ebaii_n1

  • Option avec valeur associée : tree -L 1

N.B. : Attention la casse est importante ! Une majuscule n'équivaut pas une minuscule. Une option -l et -L ne feront pas la même chose.¶

Comment utiliser un outil qui ne fait pas partie des commandes bash d'origine ?¶

Parfois, nous souhaitons réaliser des tâches plus complexes qui sortent du cadre des commandes de bash. Par exemple, faire le contrôle qualité de nos données !

Il faut alors utiliser des outils spécifiques. Ainsi, au même titre que les applications sur Windows, Unix nécessite des installations.

Sur le cluster, comme expliqué précedemment, tout est géré via la commande module.

Le format est le suivant :

module load outil/version

Grâce à cette information, nous pouvons faire un test.

Lancez la commande fastqc -v.

In [2]:
fastqc -v
Command 'fastqc' not found, but can be installed with:

apt install fastqc
Please ask your administrator.


On obtient une erreur, annonçant que l'outil n'est pas connu.

Maintenant, à l'aide de module chargez l'outil fastqc dans sa version 0.11.9

In [3]:
module load fastqc/0.11.9

Cette commande n'affiche rien. Seule l'apparition d'un chiffre dans le carré à gauche de votre case vous indique que l'action est terminée.

En revanche, on peut dorénavant utiliser la commande fastqc -v

In [4]:
fastqc -v
FastQC v0.11.9

Aparté de bonnes pratiques¶

Il est de bon ton de donner un maximum d'information sur ce que l'on fait. Pour cela, on peut ajouter des commentaires dans nos codes, c'est-à-dire des lignes pleines d'informations pour nous, que Bash ne lira pas.

Pour cela, il suffit d'utiliser le symbole # au début de la ligne !

In [1]:
# Par exemple, Bash ne dira rien si vous executez cette ligne