Académique Documents
Professionnel Documents
Culture Documents
Projet_unix
Groupe 9 :
Mohamed Elmokhtar salem __C20117
Eboubekrine Mohamed Ali __ C20857
Edah mouhamdi mouhamed Ahid__C18060
Sidi Abdoullah Mohamed Elmokhtar Aleiwa__C14655
1
15)Suppression d'un utilisateur.
Commande: userdel [user_name]
26)Afficher la 7ième ligne de ce fichier (et elle seule), en une seule ligne de
commande.
Commande: sed -n '7p' /path/to/file
2
29)Arrêt du système
Commande: shutdown -h now
Commande: ifconfig -a
_________________________________
Partie 2 :
Exo1 :
Voici le code pour le script "Processus.txt" qui ajoute la date, l'heure et la liste
des processus en cours d'exécution dans un fichier :
#!/bin/bash
current_date=$(date +"%Y-%m-%d")
current_time=$(date +"%H:%M:%S")
process_list=$(ps aux)
output_file="Processus.txt"
1) Pour planifier l'exécution du script tous les jours à 5 heures du matin, on peut
utiliser la commande crontab -e pour éditer notre fichier de tâches cron et
ajoutons la ligne suivante :
0 5 * * * /chemin/vers/Processus.txt
3
2 ) Pour planifier l'exécution du script chaque Lundi à 7 heures, on peut ajouter
la ligne suivante dans notre fichier de tâches cron (crontab -e) :
0 7 * * 1 /chemin/vers/Processus.txt
3) Pour exécuter le script toutes les 15 minutes, on peut utiliser la notation cron
suivante dans notre fichier de tâches cron (crontab -e) :
*/15 * * * * /chemin/vers/Processus.txt
0 0 1 1,5,10 * /chemin/vers/Processus.txt
Exo2 :
Pour accomplir ces tâches, on peut utiliser les commandes suivantes dans un
terminal :
_________________________________
4
Partie 3 : Shell
Exo1:
fi
fichier="$1"
if [ ! -f "$fichier" ]; then
exit 1
fi
Explications détaillées :
Exo2 :
Voici le script shell qui permet d'ajouter le contenu d'un fichier texte à la fin
d'un autre fichier, de déplacer le fichier dans le répertoire "archive" et d'afficher
le contenu du répertoire "archive" accessible en écriture :
if [ $# -ne 2 ]; then
echo "Erreur : veuillez fournir les noms des deux fichiers en argument."
exit 1
fi
fichier_source="$1"
fichier_destination="$2"
if [ ! -f "$fichier_source" ]; then
echo "Erreur : le fichier source '$fichier_source' n'existe pas."
exit 1
fi
if [ ! -d "archive" ]; then
mkdir archive
echo "Le répertoire 'archive' a été créé."
fi
Explications détaillées :
Les noms de fichiers source et destination sont récupérés à l'aide des variables
spéciales "$1" et "$2".
Nous affichons un message indiquant que le fichier source a été déplacé dans le
répertoire "archive".
7
Exo3:
if [ -d "Exo4" ]; then
else
mkdir Exo4
echo "Le répertoire 'Exo4' a été créé."
fi
for i in {1..10}; do
fichier="Exo4/$i"
contenu="$ième ligne"
Done
Explications :
Ensuite, nous utilisons une boucle for pour parcourir les nombres de 1 à 10. À
chaque itération, nous créons un fichier dans le répertoire "Exo4" avec le nom
correspondant au numéro actuel.
Pour créer le fichier, nous utilisons la redirection > avec la commande echo pour
écrire une ligne de texte dans le fichier.
8
Le contenu du fichier est défini en utilisant la variable contenu qui est
initialisée à la valeur "$ième ligne", où "$ième" est remplacé par le numéro
actuel de la boucle.
Exo4 :
repertoire="TP2/$date"
if [ -d "$repertoire" ]; then
else
mkdir -p "$repertoire"
fi
cp Exo4/* "$repertoire"
echo "Les fichiers de 'Exo4' ont été copiés dans le répertoire '$repertoire'."
rm Exo4/*
home_directory="$HOME"
if [ -d "$home_directory" ]; then
fichier1="$home_directory/fichier1.txt"
fichier2="$home_directory/fichier2.txt"
9
if [ -e "$fichier1" ]; then
else
touch "$fichier1"
fi
if [ -e "$fichier2" ]; then
else
touch "$fichier2"
fi
else
fi
Explications :
10
Nous copions les fichiers du répertoire "Exo4" vers le répertoire créé en utilisant
la commande cp Exo4/* "$repertoire". Tous les fichiers contenus dans "Exo4"
seront copiés dans le répertoire "anneemoisjour".
Enfin, nous affichons les messages correspondants à chaque étape du script pour
informer de la création du répertoire, de la copie des fichiers, de la suppression
des fichiers et de la création des fichiers dans le répertoire d'accueil.
Exo5:
Voici le script shell pour accomplir les deux tâches demandées :
Q1:
Explication :
Le script utilise la commande ls -l /etc pour lister les fichiers du répertoire /etc
avec leurs détails.
11
Ensuite, la commande grep "^-r" est utilisée pour filtrer uniquement les fichiers
qui ont des permissions de lecture (-r indique que le fichier est lisible).
Q2:
if [ ! -f "chemin/vers/fichier_source" ]; then
exit 1
fi
nombre_copies=0
if [ -d "$dossier_utilisateur" ]; the
cp "chemin/vers/fichier_source" "$dossier_utilisateur/"
nombre_copies=$((nombre_copies+1))
fi
done
Explication :
12
Ensuite, le script boucle sur les répertoires d'accueil des utilisateurs en utilisant
/home/*. Vous pouvez ajuster ce chemin en fonction de la structure du système.
13