WikiBtsSio

Bts1B2526S39Me

Lundi 22 septembre 2025

Mardi 23 septembre 2025
Quelques informations :
Pour afficher les numéros de ligne dans nano trois solutions :
  • La première utiliser la commande nano -l NomDuFichier
  • La seconde modifier le fichier /etc/nanorec enlever le # devant la ligne set linenumbers
  • La dernière solution : Lors de l'édition d'un fichier dans Nano, appuyez sur Alt et Shift 3 pour basculer la numérotation de la ligne. Ce raccourci est pratique pour activer ou désactiver rapidement les numéros de ligne sans sortir de l'éditeur.
Vous pouvez également permettre l'utilisation de la souris pour se déplacer dans le fichier --> set mouse
Changez l'indentation --> set tabsize 4
etc.


Rappel : STDIN, STDOUT, STDERR
  • • Entrée standard (stdin): un fichier ou du texte (un flux de texte).
  • • Sortie standard (stdout, “output 1”): renvoyée à l’écran par défaut et transférée via le tube.
  • • Erreur standard (stderr, “output 2”): renvoyée à l’écran par défaut et non transférée via le tube.
  • • Opérateurs de redirection
    • o | : le caractère “pipe” passe le flux de texte stdin à une autre commande
    • o > file.txt : stocke le flux stdout en créant (ou écrasant) le fichier file.txt
    • o >> file.txt : stocke le flux stdout en ajoutant des lignes dans le fichier file.txt
    • o 2> log.txt : stocke le flux stderr dans un fichier nommé log.txt
    • o 1> file.txt 2> log.txt : stocke stdout dans un fichier et stderr dans un autre

• Note
- Si vous souhaitez rediriger stdout et stderr dans le même fichier :
  • &> monFichier.txt
Subtilité  2>&1
La redirection 2>&1 de Linux
  • Une autre façon, et c’est celle qui est préférée, est d’utiliser l’opérateur 2>&1.
  • Ce qui peut être traduit grossièrement par « rediriger stderr vers la même adresse que stdout ».
  • Reprenons l’exemple précédent et utilisons cette fois-ci 2>&1 pour rediriger stdout et stderr vers le même fichier.
  • ls -l demo.txt kikoolol.txt > sortie.txt 2>&1
  • cat sortie.txt


Jeudi 25 septembre 2025


Quelques commandes :
  • cd
  • pwd
  • ls
  • touch
  • mkdir
  • rm
  • cp
  • mv
  • cat
  • chmod
  • chown
  • grep
  • head
  • wc -l
  • top
  • find
  • history
  • sort
  • du -sh
  • who
  • whoami
  • nano -l NomDuFichier?
  • ps -eo pid,ppid,user,%mem,%cpu,comm
  • kill
  • sudo
  • id
  • date
  • read
    • read -p "Votre nom SVP " nom
    • read -ps "passwd " passwd
  • ssh

Ajouter à cette liste les boucles et les tests
Vidéo --> https://www.youtube.com/watch?v=5nIz75sGq3A
nombre = 20
if [ $nombre -gt 10 ]
then
  • echo "Le nombre est supérieur à10"
fi

if [ $nombre -gt 10 ] # -lt
then
  • echo "Le nombre est supérieur à10"
else
  • echo "Le nombre est inférieur ou égal à 10"
fi

fichier ="/home/test/monfichier.sh"
if [ -e "fichier" ]
else
  • echo "le fichier existe"
else
  • echo "Le fichier n'existe pas"
fi

if [condition 1 ]
then
  • # bloc 1 si la première condition est vraie.
elif [ condition 2]
then
  • # bloc 2 à exécuter si la seconde condition est vraie.
else
  • # bloc 3 à exécuter si les différentes conditions sont fausses.
fi

Services actifs
ServiceSSH=$(systemctl is-active ssh)
ServiceApache2=$(systemctl is-active apache2)
if [ "$ServiceSSH" = "active" ] && [ "$ServiceApache2" = "active" ]
then
  • echo "les deux services sont en cours d'exécution"
else
  • echo "ERREUR : Status SSH : $ServiceSSH - statut Apache2 : $ServiceApache2"
fi

Remarque : sudo systemctl start ssh

Les boucles
Vidéo --> https://www.youtube.com/watch?v=k-0uhLVI11M
#!/bin/bash
for i in {1..5}
do
  • echo "Etape numéro $i"
done

for ((État initial ; condition de répétition ; incrémenter à chaque itération)
do
  • # bloc de code à itérer
done

Ce qui donne :
for ((i=1 ; i <=5 ; i++ ))
do
  • echo "Etape numéro $i"
done

Avec des fichiers :
for fichier in /home/test/*.sh
do
  • echo "$fichier : $(cat $fichier | wc -l) ligne(s)"
done






Suite du T.P. sur les scripts shell :
  • Afficher les droits du fichier MonFichier.sh
  • Renommer le fichier MonFichier2.sh en VotreFichier1.sh
  • Supprimer le fichier MonFichier2.sh
  • Déplacer le fichier MonFichier4.sh dans le répertoire /home/test/MonRep/
  • Écrire un script qui affiche la date et l'heure du jour.
  • Créer un script qui écrit la liste des fichiers et des dossiers de votre répertoire personnel dans le fichier MesFichiers.txt
  • Proposer une commande qui ajoute à la fin du fichier précédent le texte suivant "Fin de fichier".
  • En utilisant la commande cat et la redirection d'entrées / sorties copier le contenu du fichier précédent dans un second fichier de votre choix.
  • Chercher la chaîne de caractères root dans le fichier /etc/passwd
  • Compter le nombre
    • de lignes du fichier /etc/passwd
    • de mot du fichier /usr/share/dict/french
    • de caractère du fichier /proc/cpuinfo
    • Afficher
    • les trois premières lignes du fichier /etc/passwd
    • les trois dernières lignes du fichier /etc/passwd
    • la cinquième ligne du fichier /etc/passwd



Quelques syntaxes à exploiter :

fld="Exo-Revisions"
if -d "$fld" ;

# Date Formats
echo Formatage Date
d=$(date '+%A %d %B %Y')
echo "Bonjour, aujourd'hui nous sommes $d"
d=$(date '+%d/%m/%Y')
echo "Bonjour, aujourd'hui nous sommes $d"
d=$(date '+%Y-%m-%d')
echo "Bonjour, aujourd'hui nous sommes $d"

FOLDER="Dir3?"
# avec le Not/pas/!
if ! -d "$FOLDER" ;
then

# Search String / Pipes
echo "Recherche mot 'root'"
grep "root" /etc/passwd
echo "count line"
cat /etc/passwd | wc -l
echo "count word"
cat /usr/share/dict/french | wc
echo "count char"
cat /proc/cpuinfo | wc -c
echo "3first lines"
cat /etc/passwd | head -n 3
echo "3last lines"
cat /etc/passwd | tail -n 3
echo "5 line"
cat /etc/passwd | head -n 5 | tail -n 1


Vendredi 26 septembre 2025



Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]