Un fichier bash à mettre sur son bureau pour accéder rapidement à un répertoire

Nom du fichier : Mon_Répertoire.sh
(autoriser l’exécution du fichier comme un programme)

#!/bin/bash
# Si on n'est pas dans un terminal, se relancer dans mate-terminal
if ! [ -t 1 ]; then
    mate-terminal -- bash -c "cd \"/media/$USER/Mon Répertoire\" && exec bash"
    exit
fi

# Si on est déjà dans un terminal (lancement direct), juste cd + shell interactif
cd "/media/$USER/Mon Répertoire"
exec bash

Un fichier bash à mettre sur son bureau pour une mise à jour rapide de Debian

Nom du fichier : MAJ.sh
(autoriser l’exécution du fichier comme un programme)

#!/bin/bash

# ON AFFICHE LE CONTENU DU SCRIPT PAR MESURE DE SÉCURITÉ
cat "$0"

# Si on n'est pas dans un terminal, se relancer dans mate-terminal
if ! [ -t 1 ]; then
    mate-terminal -- bash -c "cat '$0';
                              echo;
                              sudo apt-get update && sudo apt-get upgrade; 
                              exec bash"
    exit
fi

# Si on est déjà dans un terminal, exécution directe
sudo apt-get update && sudo apt-get upgrade
exec bash

Circuit en LaTeX avec circuitikz

\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\ctikzset{resistor=european}

\begin{document}
\begin{circuitikz}[scale=1.2]
  % === une grille pour s'aider ===
  % \draw [help lines] (-2,-1) grid (9,5);

  % === Source à gauche (bornes inversées) ===
  \draw (0,3) to[battery1] (0,0);

  % === Flèche tension U à gauche du générateur, pointant vers le haut ===
  \draw[->, thick] (-0.6,0.4) -- (-0.6,2.6) node[midway, left] {$U$};

  % === Fil bas de la source ===
  \draw (0,0) -- (6,0);

  % === Fil supérieur gauche avec courant I ===
  \draw (0,3) to[short, i=$I$] (3,3);

  % === Courant I1 sur le fil avant R1, puis R1 centré sur la branche ===
  \draw (3,3) to[short, i=$I_1$] (3.6,3);
  \draw (3.6,3) to[R, l_=$R_1$] (5.4,3);
  \draw (5.4,3) -- (6,3);
  \draw[->, thick] (5.4,3.55) -- (3.6,3.55) node[midway, above] {$U_1$};

  % === Fils verticaux gauche et droit du bloc parallèle ===
  \draw (3,3) -- (3,1.5);
  \draw (6,3) -- (6,1.5);

  % === Courant I2 sur le fil vertical gauche descendant vers R2 ===
  \draw (3,3) to[short, i_=$I_2$] (3,1.5);

  % === Branche basse : R2 + R3 en série ===
  \draw (3,1.5) to[R, l=$R_2$] (4.5,1.5)
                to[R, l=$R_3$] (6,1.5);
  \draw[->, thick] (4.3,1.0) -- (3.2,1.0) node[midway, below] {$U_2$};
  \draw[->, thick] (5.8,1.0) -- (4.7,1.0) node[midway, below] {$U_3$};

  % === Fermeture droite du circuit ===
  \draw (6,3) -- (8,3) -- (8,0) -- (6,0);

\end{circuitikz}
\end{document}

Texmaker génère un pdf, mais on peut aussi utiliser en ligne de commande :

pdflatex circuit.tex

Pour obtenir une image svg à intégrer dans LibreOffice :

sudo apt-get install pdf2svg
pdf2svg circuit.pdf circuit.svg

Un fichier bash circuit.sh pour automatiser tout ça :

#!/bin/bash

# Vérification de l'argument
if [ $# -ne 1 ]; then
  echo "Usage : $0 fichier.tex"
  exit 1
fi

FICHIER="$1"

# Vérification que le fichier existe
if [ ! -f "$FICHIER" ]; then
  echo "Erreur : fichier '$FICHIER' introuvable."
  exit 1
fi

# Nom sans extension
NOM="${FICHIER%.tex}"

# Compilation LaTeX
echo "Compilation LaTeX..."
pdflatex -interaction=nonstopmode "$FICHIER"

if [ $? -ne 0 ]; then
  echo "Erreur lors de la compilation LaTeX."
  exit 1
fi

# Conversion en SVG
echo "Conversion en SVG..."
pdf2svg "${NOM}.pdf" "${NOM}.svg"

if [ $? -ne 0 ]; then
  echo "Erreur lors de la conversion en SVG."
  exit 1
fi

# Nettoyage des fichiers temporaires
rm -f "${NOM}.aux" "${NOM}.log"

echo "Terminé : ${NOM}.pdf et ${NOM}.svg générés."

Utilisation :

chmod +x circuit.sh
./circuit.sh circuit.tex

Programmer sous FreeDOS 1.4

FreeDOS 1.4 est sorti en avril 2025.

Quelques notes, pour mémoire.

Site officiel
Dépôts officiels FreeDOS
Site YouTube FreeDOS

Après avoir installé la version minimale de FreeDOS 1.4 dans VirtualBox, je monte l’image du BonusCD (téléchargée depuis le site officiel sous le nom FD14BNS.iso) dans le lecteur optique virtuel de la machine.

FDIMPLES est un outil visuel et interactif de FreeDOS qui permet de parcourir, installer et supprimer des paquets inclus sur les supports de distribution de FreeDOS (comme les CD Live, BonusCD, etc.). Il s’agit d’un gestionnaire de paquets qui lit les médias d’installation pour identifier les logiciels disponibles à l’installation ou à la suppression. Pour l’utiliser, il suffit de lancer la commande FDIMPLES depuis l’invite de commandes de FreeDOS.

Pour programmer, j’ai choisi le compilateur Open Watcom C/C++et l’ éditeur de texte FED car il permet de plier / déplier le code. J’ai également installé l’assembleur NASM et l’éditeur hexadécimal uHex.

Dans C:\>FDAUTO.BAT, je rajoute à la fin :

cd PERSO

REM *** FED 2.24c ***
alias fed=C:\APPS\FED\FED.EXE

REM *** OPEN WATCOM C/C++ 1.9 ***      => à mettre en dernier
C:\DEVEL\WATCOMC\OWSETENV.BAT

Mémo FED :
Alt pour accéder au menu
CTRL-C pour fermer
CTRL-F pour plier / déplier le code

En pratique, pour être efficace, je n’utilise pas l’éditeur de texte sous FreeDOS :
1 – Je code avec mon éditeur sous Debian.
2 – Dans VirtualBox, Je vérifie que la machine virtuelle FreeDOS 1.4 est éteinte.
3 – J’exécute ce fichier bash (Vers_FreeDOS.sh), le paquet libguestfs-tools étant installé :

#!/bin/bash
# Interpréteur : on utilise bash explicitement

# Si on n'est pas dans un terminal, se relancer dans un terminal graphique
if ! [ -t 1 ]; then
    mate-terminal -e "bash -c '$0; read -p \"Appuie sur Entrée pour fermer...\"'"
    exit
fi

set -e
# Arrête le script immédiatement si une commande échoue (exit on error)
# Évite que les erreurs passent silencieusement et causent des dégâts en cascade

set -x
# Mode debug : affiche chaque commande avant de l'exécuter (précédée de "+")
# Utile pour suivre l'exécution pas à pas

mkdir ~/VHD
# Crée un répertoire temporaire "VHD" dans le dossier home (~)
# Ce dossier servira de point de montage pour l'image disque

cd "/media/$USER/Fichiers Eric/VirtualBox/FreeDOS 1.4"
# Se déplace dans le répertoire contenant l'image VHD
# $USER est automatiquement remplacé par le nom de l'utilisateur courant

guestmount -a "FreeDOS 1.4.vhd" -m /dev/sda1 ~/VHD
# Monte l'image disque VHD via libguestfs (paquet guestfs-tools)
#   -a "FreeDOS 1.4.vhd" : spécifie le fichier image à utiliser
#   -m /dev/sda1         : monte la première partition du disque virtuel
#   ~/VHD                : point de montage (le dossier créé plus haut)
# Permet d'accéder au contenu de la VM sans la démarrer

cp -R "/media/$USER/Fichiers Eric/VirtualBox/FreeDOS 1.4/PERSO" ~/VHD
# Copie récursivement le dossier PERSO dans l'image montée
#   -R : copie les sous-dossiers et fichiers récursivement
# C'est l'opération principale : injecter des fichiers dans la VM

guestunmount ~/VHD
# Démonte proprement l'image VHD
# Équivalent d'un umount, mais adapté aux images guestfs
# Important : à faire avant de supprimer le point de montage

rm -r ~/VHD
# Supprime le répertoire de montage temporaire devenu inutile
#   -r : suppression récursive (nécessaire pour un dossier)
# Nettoyage final — le dossier devrait être vide après guestunmount

# --- Message de succès ---
set +x  # On désactive le mode debug pour un affichage propre
echo ""
echo "✅ Succès ! Le dossier PERSO a été copié dans l'image FreeDOS."
echo ""

4 – Dans VirtualBox, je démarre la machine virtuelle FreeDOS 1.4
5 – Sous FreeDOS, je compile mon fichier source avec : wcl source.c -q

Mon programme de test du mode 13h est ici :
https://github.com/eserandour/Mode13h_OpenWatcom_FreeDOS

https://allthingsopen.org/articles/how-to-write-your-first-freedos-program
https://www.both.org/?p=12007
https://opensource.com/article/21/9/programming-dos-conio