Commande de base du shell

Introduction sur le shell

Le shell est un langage permettant de communiquer avec l'ordinateur et d'effectuer des opérations : créer des répertoires et des fichiers, lister le contenu des répertoires, lancer la compilation d'un programme ...

Un shell se lance à partir d'un terminal (figure ci-contre à droite)

Dans cette session, nous allons présenter quelques commandes de base. Ces commandes seront nécessaires à l'organisation de nos répertoires et à la compilation de nos programmes.

Notions abordées

Création d'un répertoire avec mkdir

Pour créer un répertoire appelé programmation:

mkdir programmation

Se déplacer dans un répertoire avec cd

Pour se déplacer dans le répertoire que l'on a crée précédemment

cd programmation

Pour connaître le répertoire dans lequel on se situe on tape

pwd

Si on veut remonter d'un répertoire on tape

cd ..

Lister les fichiers et les répertoires avec ls

Pour afficher le contenu d'un répertoire

ls

Créer un fichier avec touch

Pour créer un fichier vide appelé main.c

touch main.c

Lancer un éditeur de texte comme geany

Si on veut éditer le fichier crée précédemment avec un éditeur comme geany on lance la commande suivante

geany main.c &

Le symbole & permet à l'utilisateur de continuer à avoir la main sur le terminal après avoir lancer l'éditeur

Programmation en C

Premier programme

Notions abordées

Dans l'éditeur geany (ou tout autre éditeur), entrez le programme suivant:
#include <stdio.h>

void main() {
int a, b;
a=10;
b=20;
printf("bonjour\n");
printf("a=%i \t  b=%i\n", a, b);
printf("a+b=%i \n", a+b);
}
Pour compiler le programme, on tape dans le terminal

gcc main.c -o test

En tapant la commande ls, vous devriez voir un exécutable appelé test. Pour l'exécuter on tape:

./test

Dans le terminal, on obtient le résultat suivant:

bonjour
a=10 b=20
a+b=30

Deuxième programme en C

Notions abordées

Le programme suivant montre la relation entre le code décimal d'un nombre et sa représentation ASCII. Il affiche ensuite les 128 premiers code ASCII.

main2.c

#include <stdio.h>

void main() {
 char a='f';
 int i;
printf("caractere: %c \n", a);
printf("caractere: %i \n", a);
printf("caractere: %c \n", 102);
for (i=0;i<128;i++) {
 printf("i=%i \t caractere=%c\n", i, i);
 }
}

Compilation :

gcc main2.c -o test2

Exécution :

./test2

Résultat dans le terminal :

caractere: f
caractere: 102
caractere: f
i=0 caractere=
i=1 caractere=
i=2 caractere=
i=3 caractere=
i=4 caractere=
i=5 caractere=
i=6 caractere=
i=7 caractere=
i=8 caractere=
i=9 caractere=
i=10 caractere=

i=11 caractere=

i=12 caractere=

i=13 caractere=
i=14 caractere=
i=15 caractere=
i=16 caractere=
i=17 caractere=
i=18 caractere=
i=19 caractere=
i=20 caractere=
i=21 caractere=
i=22 caractere=
i=23 caractere=
i=24 caractere=
i=25 caractere=
i=26 caractere=
i=27 caractere=
i=28 caractere=
i=29 caractere=
i=30 caractere=
i=31 caractere=
i=32 caractere=
i=33 caractere=!
i=34 caractere="
i=35 caractere=#
i=36 caractere=$
i=37 caractere=%
i=38 caractere=&
i=39 caractere='
i=40 caractere=(
i=41 caractere=)
i=42 caractere=*
i=43 caractere=+
i=44 caractere=,
i=45 caractere=-
i=46 caractere=.
i=47 caractere=/
i=48 caractere=0
i=49 caractere=1
i=50 caractere=2
i=51 caractere=3
i=52 caractere=4
i=53 caractere=5
i=54 caractere=6
i=55 caractere=7
i=56 caractere=8
i=57 caractere=9
i=58 caractere=:
i=59 caractere=;
i=60 caractere=<
i=61 caractere==
i=62 caractere=>
i=63 caractere=?
i=64 caractere=@
i=65 caractere=A
i=66 caractere=B
i=67 caractere=C
i=68 caractere=D
i=69 caractere=E
i=70 caractere=F
i=71 caractere=G
i=72 caractere=H
i=73 caractere=I
i=74 caractere=J
i=75 caractere=K
i=76 caractere=L
i=77 caractere=M
i=78 caractere=N
i=79 caractere=O
i=80 caractere=P
i=81 caractere=Q
i=82 caractere=R
i=83 caractere=S
i=84 caractere=T
i=85 caractere=U
i=86 caractere=V
i=87 caractere=W
i=88 caractere=X
i=89 caractere=Y
i=90 caractere=Z
i=91 caractere=[
i=92 caractere=\
i=93 caractere=]
i=94 caractere=^
i=95 caractere=_
i=96 caractere=`
i=97 caractere=a
i=98 caractere=b
i=99 caractere=c
i=100 caractere=d
i=101 caractere=e
i=102 caractere=f
i=103 caractere=g
i=104 caractere=h
i=105 caractere=i
i=106 caractere=j
i=107 caractere=k
i=108 caractere=l
i=109 caractere=m
i=110 caractere=n
i=111 caractere=o
i=112 caractere=p
i=113 caractere=q
i=114 caractere=r
i=115 caractere=s
i=116 caractere=t
i=117 caractere=u
i=118 caractere=v
i=119 caractere=w
i=120 caractere=x
i=121 caractere=y
i=122 caractere=z
i=123 caractere={
i=124 caractere=|
i=125 caractere=}
i=126 caractere=~
i=127 caractere=

Les premiers caractères ne s'affichent pas dans le terminal car ils correspondent à des caractères de contrôle (touche Echap, tabulation, Espace, Suppression etc ...)

Troisième programme en C

Notions abordées

main3.c

#include <stdio.h>

void main() {
 char car;
 printf("Donner la premiere lettre de votre prenom : \n");
 scanf("%c",  &car);
printf("Valeur : %c\n", car);
 if ( car == 'a' ) {
 	printf("Tu es trop intelligent\n");
 } else {
 	printf("Tu es un gros cretin\n"); 
 }
}

Compilation :

gcc main3.c -o test3

Exécution :

./test3

Résultat dans le terminal :

Donner la premiere lettre de votre prenom :
a
Valeur : a
Tu es trop intelligent