Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours UNIX - Linux » Exercices Linux/Unix »

Articles similaires

  • Exercices unix pragrammation des scripts shells -6-
  • Exercices sur les critères des noms de fichiers UNIX
  • Tutoriel Python : manipuler les fichiers et les dossiers
  • Exercices unix programmation script shell - awk
  • TP linux commande de gestion de répertoires et de fichiers - manipulation des fichiers
  • Exercices sur la programmation des scripts Unix
  • exercices linux commande - mount - tar - cron
  • Exercice unix - commande find - entrées sorties -
  • Exercices scripts unix - redirection - enchaînements de commandes - filtres classiques
  • TP unix Gestion - repertoires et fichiers - utilisateurs - reseau connection
  • TP unix - droit accès aux fichiers - commande chmod - unmask
  • Tuto convertir un fichier Excel en CSV avec virgule ou point-virgule

Documents similaires

  • Cours Windev avancé : les fichiers de données

  • Initiation language C sous Linux : fichiers ps

  • Code source en Java sur la gestion étudiant

  • Modèles de devis avancés sur Word

  • TP programmation web pour débutant

  • Modèles de rapport de stage sur Word

  • La gestion des données créatives VB

  • Java guide de formation complet pour apprendre les bases de programmation

Exercices sur la programmation des scripts shell d Unix

Rédigé par GC Team, Publié le 31 Août 2010, Mise à jour le Jeudi, 03 Septembre 2020 20:51
Participez au vote ☆☆☆☆☆★★★★★

Exercice 1

Créer un script shell nommé "change" qui affichera la date de dernière modification d'un fichier puis la modifiera avec l'heure actuelle et enfin réaffichera la date de dernière modification du fichier.
Cette procédure acceptera 1 paramètre qui sera le nom du fichier.

Lorsque vous exécuterez "change mon_fic", le 8 octobre à 15 heures 12 vous obtiendrez le résultat:

avant : -r--r--r-- 1 user group 40 Fev 3 2001  mon_fic
après : -r--r--r-- 1 user group 40 Oct 8 15:12 mon_fic

Exercice 2

Créer un script shell nommé "nombreJours" qui affichera le nombre de jours du mois courant.

"nombreJours" affichera pour février 2007 le message "28 jours en février 2007".

Exercice 3

Créer un script shell réalisant la création d'un répertoire "Exo3" contenant 10 fichiers nommés "Un" à "Dix". Chaque fichier contient une seule ligne:

  • "Un" contient "Première ligne"
  • "Deux" contient "Deuxième ligne"
  • ...
  • "Dix" contient "Dixième ligne"
  1. Vérifier que le répertoire à créer n'existe pas déjà auquel cas il ne sera pas recréé mais les fichiers si.

Exercice 4

Créer un script shell qui réalise les opérations suivantes:

  • Création sous votre répertoire "TP2" d'un sous répertoire nommé "annéemoisjour" (20070202 pour le 2 février 2007).
  • Copie des fichiers de "Exo3" sous ce répertoire puis effacement de ces mêmes fichiers de "Exo3".
  • Création de deux fichiers sous le répertoire d'accueil (HOME) de la personne qui a lancé le shell:
    • un fichier nommé "Gros_fichier.numero_du_shell" dans lequel se trouvera le contenu concaténé des fichiers traités
    • un fichier nommé "Nom_du_script.numero_du_shell" dans lequel se trouvera le nom des fichiers traités.
  1. Vérifier que le répertoire à créer n'existe pas déjà.

Exercice 5

  • Créer un script permettant d'afficher la liste des fichiers du répertoire /etc accessibles en lecture.
  • Créer un script permettant d'afficher la liste des fichiers du répertoire /etc accessibles en écriture.

Exercice 6

Créer un script nommé "table" permettant d'afficher des tables de multiplication.
"table 5 10" aura pour résultat l'affichage:

0 x 5 = 0
1 x 5 = 5
2 x 5 = 10
3 x 5 = 15
4 x 5 = 20
5 x 5 = 25
6 x 5 = 30
7 x 5 = 35
8 x 5 = 40
9 x 5 = 45
10 x 5 = 50


Exercice 1 

change.bash

 

1
2
3
4
5
AVANT=$(ls -l $1)
	touch $1
	APRES=$(ls -l $1)
	echo "Avant : "$AVANT
	echo "Apres : "$APRES
	

 

 

Exercice 2

nombreJours.bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
MOIS=$(date +"%m")
case $MOIS in
  01) NOM="janvier";;
  02) NOM="fevrier";;
  03) NOM="mars";;
  04) NOM="avril";;
  05) NOM="mai";;
  06) NOM="juin";;
  07) NOM="juillet";;
  08) NOM="aout";;
  09) NOM="septembre";;
  10) NOM="octobre";;
  11) NOM="novembre";;
  12) NOM="decembre";;
esac
ANNEE=$(date +"%Y")
case $MOIS in
  01|03|05|07|08|10|12)
    echo "31 jours en "$NOM" "$ANNEE;;
  04|06|09|11)
    echo "30 jours en "$NOM" "$ANNEE;;
  02)
    BISSEXTILITE=$(expr $ANNEE % 4)
    if [ $BISSEXTILITE != 0 ]
      then
      echo "28 jours en "$NOM" "$ANNEE
      else
      BISSEXTILITE=$(expr $ANNEE % 100)
      if [ $BISSEXTILITE != 0 ]
        then
        echo "29 jours en "$NOM" "*ANNEE
        else
        BISSEXTILITE=$(expr $ANNEE % 400)
        if [ $BISSEXTILITE != 0 ]
          then
          echo "28 jours en "$NOM" "$ANNEE
          else
          echo "29 jours en "$NOM" "$ANNEE
          fi
        fi
      fi;;
esac

 

Exercice 3

script3.bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
test -e Exo3
if [ $? != 0 ]
  then
  mkdir Exo3
  fi
echo "Premiere ligne"  >Exo3/Un
echo "Deuxieme ligne"  >Exo3/Deux
echo "Troisieme ligne" >Exo3/Trois
echo "Quatrieme ligne" >Exo3/Quatre
echo "Cinquieme ligne" >Exo3/Cinq
echo "Sixieme ligne"   >Exo3/Six
echo "Septieme ligne"  >Exo3/Sept
echo "Huitieme ligne"  >Exo3/Huit
echo "Neuvieme ligne"  >Exo3/Neuf
echo "Dixieme ligne"   >Exo3/Dix

 

Exercice 4

script4.bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
REP=$(date +"%Y%m%d")
test -e $REP
if [ $? != 0 ]
  then
  mkdir $REP
  fi
cp Exo3/* $REP
rm Exo3/*
for file in $REP/*
  do
  cat  $file >> ~/Gros_fichier.$
  echo $file >> ~/$0.$
  done

Exercice 5

script5a.bash

 

1
2
3
4
5
6
7
8
for FILE in /etc/*
  do
  if test -r $FILE
    then 
    echo $FILE
    fi
  done

script5b.bash

1
2
3
4
5
6
7
8
for FILE in /etc/*
  do
  if test -w $FILE
    then 
    echo $FILE
    fi
  done

 

Exercice 6

table.bash

1
2
3
4
5
for V in $(seq 0 $2)
  do
  echo $V" x "$1" = "$(expr $V "*" $1 )
  done
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02