TP1
TD1
1) cat /etc/shells
2) echo $SHELL
3) grep $USER /etc/passwd | cut –d : -f7
4) chsh -s /bin/bash
5) chsh -s /bin/bash
6) installés dans le répertoire /bin, /usr/bin, et /usr/local/bin. Certains
éditeurs de texte courants incluent vi, nano, emacs, gedit, etc.
cat /etc/shells
echo $SHELL
chsh
TP1
1) { tail -n 5 losange;head -n 5 losange; } >tempfile ; mv tempfile losange
2)
#/bin/bash
(tail -n 5 losange|head -n -1; head -n 5 losange)>losangeinv
TP2
1. $ # echo bonjour
2. echo -e "Bonne \n Journée »
3.
#!/bin/bash
while true
do
echo -n -e `date` "\r"
done
4.
#!/bin/bash
for((i=1;i<11;i++))
do
j=`expr 11 - $i`
printf "Etudiant%-2d%10d\n" $i $j
done
TP3
1.
Fichier de profil : il peut s’agir de ~/.bash_profile, ~/.bash_login, ou
~/.profile. Ces fichiers sont lus lors de la connexion à votre compte.
Fichier de démarrage de session : il peut s'agir de ~/.bashrc. Ce
fichier est exécuté à chaque ouverture de terminal.
Fichier de démarrage de session globale : /etc/profile est souvent
utilisé pour les configurations globales de tous les utilisateurs.
2. alias ls='ls -la' # dans le fichier .bashrc
3.
#!/bin/bash
c0="\e[00m"
c1="\e[31;01m"
for i in {5..0}
do
echo -e "\r Suppression dans ${c1}${i}s${c0}\a\c"
sleep 1
done
echo -e "\n Suppression en cours"
# echo -e "\r suppression en cours!"
(Ce type de comptage est fréquemment utilisé dans les scripts ayant
une tâche potentiellement dangereuse, afin de laisser à l’utilisateur un
dernier délai de réflexion pendant lequel il peut encore presser Ctrl-C
pour annuler l’opération)
4.
PS1='\[\e[31m\]\u\[\e[0m\]@\[\e[32m\]\h/\[\e[34m\]\w\[\e[0m\]_\t\$\[\e[
0m\] ‘
PS1='\u@\h/\w_\t\$ '
TP4
4-1:
#!/bin/bash
if [ ${PWD#"$HOME"} = $PWD ]
then
echo $PWD
else
echo -e ${PWD/$HOME/"\e[34;01m~\e[00m"}
fi
4-2:
#!/bin/bash
[ $# -ne 1 ] && echo "USAGE: `basename $0` email" && exit 1
echo ${1%%@*}
4-3:
#!/bin/bash
# vérifier la syntaxe
for f in $1/*.$2
do
mv $f "${f%.*}.$3"
done
ls $1
TP5
5-1:
#!/bin/bash
getopts ":f:" opt
case $opt in
f)
[ ! -f $OPTARG ] && echo "$OPTARG n'est pas un fichier" 1>&2
&& exit 2 # le script vérifie si l'argument de l'option -f est un fichier
en utilisant
echo "Le fichier est: ${OPTARG##*/}"
echo "Le chemin est : ${OPTARG%/*}"
;;
:)
echo "L'option -$OPTARG nécessite une valeur" >&2 && exit 1
;;
*)
echo "L'option -$OPTARG n'est pas supportée" 1>&2 && exit 3
;;
esac
./q1 -f /home/ubuntu/tp5/file.txt
5-2:
#!/bin/bash
[ $# -ne 2 -o ! -d $2 ] && echo "USAGE: $(basename $0) <motif>
<rep>" 1>&2 && exit 1
ls $2 | xargs -n 1 grep "$1"
./q2 '#' .
TP6
#!/bin/bash
log_file="memoire.log"
current_date=$(date '+%Y-%m-%d %H:%M:%S')
memory_info=$(free -m | grep -E '^Mem:')
total_memory=$(echo $memory_info | cut -d ' ' -f2)
used_memory=$(echo $memory_info | cut -d ' ' -f3)
percentage_memory_used=$(( (used_memory * 100) / total_memory
))
echo "$current_date - Utilisation de la mémoire:
$percentage_memory_used%" >> $log_file
-----------------------------------
crontab -e
*/5 * * * * /chemin/script.sh