This commit is contained in:
Seri-Khane YOLOU 2024-12-04 12:01:04 +01:00
parent fac92127ea
commit a2dccc6c6b
20 changed files with 359 additions and 0 deletions

41
SCR.1.2/TP08/bin2dot-withfor.sh Executable file
View File

@ -0,0 +1,41 @@
#!/bin/bash
if [[ $# -lt 2 ]]
then
echo "Usage: $0 <mumarg1> <numarg2>"
exit
fi
if [[ -f $2 ]]
then
read -p "File $2 exists. Overwrite ? Yes/ No --->" answer
exit
fi
if [[ $answer != "Yes" ]]
then
exit
fi
cp /dev/null $2
fi
ARG=$1
ARG2=$2
addr=$1
for addr in (cat "$ARG");
do
binaire1=$(expr substr $addr 1 8)
octet1=$((2#$binaire1))
binaire2=$(expr substr $addr 9 8)
octet2=$((2#$binaire2))
binaire3=$(expr substr $addr 17 8)
octet4=$((2#$binaire3))
binaire4=$(expr substr $addr 25 8)
octet4=$((2#$binaire4))
echo addr_dot="$octet1.$octet2.octet3.octet4" >> $ARG2
done
exit

View File

@ -0,0 +1,3 @@
10110010111000101000011101110010
11100101110001010101100101010010
00110010111001101000010001110010

View File

@ -0,0 +1 @@
Usage: ./bin2dot-withfor.sh <mumarg1> <numarg2>

View File

@ -0,0 +1,29 @@
TP08
3.
[yolou@archlinux TP08]$ read x
7888
[yolou@archlinux TP08]$ echo $x
7888
[yolou@archlinux TP08]$ echo $?
0
Explication : Code de sortie pour $?
[yolou@archlinux TP08]$ read x (CRTL+D)
[yolou@archlinux TP08]$ echo "$? x=$x"
1 x=
Explication : CRTL+D ça signie fin de fichier sur l'entrée standards. On va donc utiliser le fait que read renvoie un code different de 0 lorsqu'ell rencontre une fin de fichier.
Pour le code : for addr in $(cat $1)
cp bin2dot-withfor.sh bin2dot-with-read.sh
while read addr
do
addr_dot=
echo $addr_dot >> $2
done

27
SCR.1.2/TP08/mult_mat.sh Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash
if [[ $# -lt 2 ]]
then
echo "Usage: $0 <mumarg1> <numarg2>"
exit
fi
if [[ $1 -gt $2 ]]
then
echo "Tu dois donne un 1er paramètre moins gros que celui de le deuxieme paramètre"
exit
fi
ARG=$1
ARG2=$2
for ((i=ARG; i<=ARG2;i++))
do
for((j=ARG; j<=ARG2;j++))
do
echo -n $((i*j))" "
done
echo ""
done
exit

13
SCR.1.2/TP08/my_seq.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/bash
if [[ $# -lt 1 ]]
then
echo "Usage: $0 <arg_numeric>"
exit
fi
for (( i=1; i<=$1 ;i++ ))
do
echo $i
done
exit

View File

View File

@ -0,0 +1,8 @@
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"

View File

@ -0,0 +1,12 @@
#!/bin/sh
case $1 in
add)
mkinitcpio -k "$2" -g "$3"/initrd
;;
remove)
rm -f -- "$3"/initrd
;;
esac
# vim: set ft=sh ts=4 sw=4 et:

View File

@ -0,0 +1,89 @@
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
COMMAND="$1"
KERNEL_VERSION="$2"
BOOT_DIR_ABS="$3"
KERNEL_IMAGE="$4"
if [[ -f /etc/machine-id ]]; then
read MACHINE_ID < /etc/machine-id
fi
if ! [[ $MACHINE_ID ]]; then
exit 1
fi
BOOT_DIR="/$MACHINE_ID/$KERNEL_VERSION"
LOADER_ENTRY="/boot/loader/entries/$MACHINE_ID-$KERNEL_VERSION.conf"
if [[ $COMMAND == remove ]]; then
exec rm -f "$LOADER_ENTRY"
fi
if ! [[ $COMMAND == add ]]; then
exit 1
fi
if ! [[ $KERNEL_IMAGE ]]; then
exit 1
fi
if [[ -f /etc/os-release ]]; then
. /etc/os-release
elif [[ -f /usr/lib/os-release ]]; then
. /usr/lib/os-release
fi
if ! [[ $PRETTY_NAME ]]; then
PRETTY_NAME="Linux $KERNEL_VERSION"
fi
declare -a BOOT_OPTIONS
if [[ -f /etc/kernel/cmdline ]]; then
readarray -t BOOT_OPTIONS < /etc/kernel/cmdline
fi
if ! [[ ${BOOT_OPTIONS[*]} ]]; then
readarray -t line < /proc/cmdline
for i in ${line[*]}; do
if [[ "${i#initrd=*}" == "$i" ]]; then
BOOT_OPTIONS[${#BOOT_OPTIONS[@]}]="$i"
fi
done
fi
if ! [[ ${BOOT_OPTIONS[*]} ]]; then
echo "Could not determine the kernel command line parameters." >&2
echo "Please specify the kernel command line in /etc/kernel/cmdline!" >&2
exit 1
fi
cp "$KERNEL_IMAGE" "$BOOT_DIR_ABS/linux" &&
chown root:root "$BOOT_DIR_ABS/linux" &&
chmod 0644 "$BOOT_DIR_ABS/linux" || {
echo "Could not copy '$KERNEL_IMAGE to '$BOOT_DIR_ABS/linux'." >&2
exit 1
}
mkdir -p "${LOADER_ENTRY%/*}" || {
echo "Could not create loader entry directory '${LOADER_ENTRY%/*}'." >&2
exit 1
}
{
echo "title $PRETTY_NAME"
echo "version $KERNEL_VERSION"
echo "machine-id $MACHINE_ID"
echo "options ${BOOT_OPTIONS[*]}"
echo "linux $BOOT_DIR/linux"
[[ -f $BOOT_DIR_ABS/initrd ]] && \
echo "initrd $BOOT_DIR/initrd"
:
} > "$LOADER_ENTRY" || {
echo "Could not create loader entry '$LOADER_ENTRY'." >&2
exit 1
}
exit 0

View File

@ -0,0 +1,48 @@
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,16 @@
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"

View File

@ -0,0 +1,24 @@
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"
#!/bin/bash
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
# ex: ts=8 sw=4 sts=4 et filetype=sh
[[ $1 == "add" ]] || exit 0
[[ $2 ]] || exit 1
exec depmod -a "$2"

Binary file not shown.

View File

@ -0,0 +1,48 @@
TP09
I-
[yolou@archlinux TREE]$ mkdir lib/kernel/config/AA && mkdir lib/kernel/config/AA/BB && mkdir lib/kernel/config/AA/BB/DD && mkdir lib/kernel/config/AA/BB/DD/YY && mkdir lib/kernel/config/AA/BB/CC && mkdir lib/kernel/config/AA/BB/CC/XX
1)
[yolou@archlinux TREE]$ find -name "*.install" -type d
./lib/krb5/plugins/custom.install
la commande find permet trouver les fichier a parti d'un bout de l'expression / d'éleemnt donné (-type d permet de preciser le type de fichier trouve soit file ou directory) (l'option -name permet nous donne les noms de repertoires dans l'arborescence du repectoire courant).
2)
[yolou@archlinux TREE]$ find -name "*.d" -type f
./lib/auth/transm.d
Explication : A peu près l'explication précédente, ici -type d permet de preciser le type de fichier trouve soit file ou directory).
3) [yolou@archlinux TREE]$ find -empty -type d
./lib/kernel/config/AA/BB/DD/YY
./lib/kernel/config/AA/BB/CC/XX
./lib/krb5/plugins/custom.install
Explication : -empty l'option permet montrer les fichiers ou repertoires vide.
4)
[yolou@archlinux TREE]$ find . -size -1000c -type f
./lib/kernel/install.d/50-depmod.install
./lib/kernel/install.d/50-mkinitcpio.install
./lib/krb5/synch/atom.install
./lib/krb5/synch/settings.sh
./lib/auth/transm.d
Explication : l'option -size permet de preciser la taille en octet du fichier ou repertoire trouvé et l'opérateur - ou + permet d'effectuer une comparaison dans ce cas trouver les fichier inférieur à 1000 bytes (-1000) en précisant la lettre c on indique le l'unité est l'octet
5) [yolou@archlinux TREE]$ find -size +30000c -type f
./lib/krb5/plugins/preauth/pkinit.so
./lib/krb5/plugins/kdb/db2.so
Explication : l'option -size permet de preciser la taille en octet du fichier ou repertoire trouvé et l'opérateur - ou + permet d'effectuer une comparaison dans ce cas trouver les fichiers supérieur à 30000 bytes (+30000) en précisant la lettre c on indique le l'unité est l'octet
6)
[yolou@archlinux TREE]$ find -size 1024c -type f
./lib/krb5/plugins/play.in
Explication : l'option -size permet de preciser la taille en octet du fichier ou repertoire trouvé et l'opérateur - ou + permet d'effectuer une comparaison dans ce cas trouver les fichiers égale à 1024 bytes (1024) en précisant la lettre c on indique le l'unité est l'octet