Fiche de référence Bash - Commandes Linux pour Ubuntu, Mint et Debian
Certains paramètres de ligne de commande des outils
Pas une liste très complète, juste quelques éléments utiles pour moi

Pour plus d’outils et de flux de travail pour les développeurs, consultez Outils de développement : Le guide complet des flux de travail modernes.
Si vous avez besoin d’un motif de prompt interactif dans vos scripts, consultez Mettre en pause les scripts avec “Appuyez sur une touche” dans Bash, CMD, PowerShell et macOS.
Comment vérifier la version de Linux Ubuntu
Pour plus de détails sur la vérification de la version d’Ubuntu, consultez Vérifier la version Linux Ubuntu.
Méthode 1
lsb_release -a
produirait quelque chose comme
No LSB modules are available.
Distributor ID: Linuxmint
Description: Linux Mint 22.1
Release: 22.1
Codename: xia
Méthode 2
cat /etc/os-release
produirait quelque chose comme
NAME="Linux Mint"
VERSION="22.1 (Xia)"
ID=linuxmint
ID_LIKE="ubuntu debian"
PRETTY_NAME="Linux Mint 22.1"
VERSION_ID="22.1"
HOME_URL="https://www.linuxmint.com/"
SUPPORT_URL="https://forums.linuxmint.com/"
BUG_REPORT_URL="http://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/"
PRIVACY_POLICY_URL="https://www.linuxmint.com/"
VERSION_CODENAME=xia
UBUNTU_CODENAME=noble
Archivage et désarchivage avec Tar dans Bash
Compression
tar -zcvf nom-archivage.tgz nom-répertoire
Décompression
tar -zxvf nom-archivage.tgz
Accès à un serveur distant avec SSH et SCP dans Bash
Pousser l’identité de l’utilisateur vers le serveur distant
ssh-copy-id user@10.0.0.225
Cela permettra de se connecter sans mot de passe la prochaine fois, comme ceci
ssh user@10.0.0.225
Télécharger un fichier
scp ~/fichier.ext user@ip-hôte:/home/user/fichier.ext
Télécharger un dossier avec son contenu imbriqué de manière récursive
scp -r user@ip-hôte:/home/user/dir ~/dir
Gestion des dossiers et fichiers dans Bash
Vérifier l’existence
# créer un dossier s'il n'existe pas, avec tous les dossiers intermédiaires
[ -d $repdir ] || mkdir -p $repdir
# ou
if [ -d $fname ]; then
echo "Le fichier n'existe pas : $fname"
return
fi
Créer un dossier pour un utilisateur particulier
sudo mkdir dir1
sudo chown utilisateur_spécifique dir1
sudo chown :groupe_spécifique dir1
Itérer sur les fichiers dans un dossier
# celui-ci convertit tous les fichiers jpg d'un certain dossier en fits
for f in some-folder/*.jpg
do
convert "$f" "${f/.jpg/.fits}"
done
Fusionner tous les fichiers en un seul
cat ./* > merged.txt
Ajout de commandes à Crontab
(crontab -l 2>/dev/null | \
grep -v control-marker-1; \
echo '*/15 * * * * /bin/bash /home/user/stest/stest.sh /home/user/stest >> /home/user/stest/stest.log 2>&1 #control-marker-1') | \
crontab -
ici :
- */15 - exécuter toutes les 15 minutes
- control-marker-1 - est l’identifiant de cette commande dans la configuration cron pour la mettre à jour la prochaine fois avec le même script
- /bin/bash - commande à exécuter
- /home/user/stest/stest.sh - paramètre bash - bash exécutera ce script
- /home/user/stest - paramètre du script - à accéder via $1
- /home/user/stest/stest.log - fichier journal avec la sortie console de stest.sh
Vérifier
grep /home/user/stest/stest.sh /var/log/syslog
crontab -e
Surveillance des fichiers journaux dans Bash
Surveiller un fichier journal en direct
sudo tail -f /var/log/megalog.log
Obtention du code de statut HTTP avec curl dans Bash
response=$(curl --write-out '%{http_code}' --silent --output /dev/null nomserveur)
# ou
url='http://localhost:8080/'
status=$(curl --head --location --connect-timeout 5 --write-out %{http_code} --silent --output /dev/null ${url})
[[ $status == 500 ]] || [[ $status == 000 ]] && echo redémarrage ${url} # logique de démarrage/redémarrage
Maintenir une commande SSH en cours d’exécution après la déconnexion
En supposant que vous avez un programme qui s’exécute au premier plan, appuyez sur
- ctrl-Z, puis :
[1]+ Arrêté monprogramme
- disown -h %1
- bg 1
[1]+ monprogramme &
- logout
Génération de JSON dans Bash avec jo
Installer jo
sudo apt-get install jo
a="123"
b="456"
jo "model=a" "prompt=b" "stream=false"
produirait
{"model":"a", "prompt":"b", "stream":false}
Un peu plus complexe :
jo -p name=Jane point[]=1 point[]=2 geo[lat]=10 geo[lon]=20
{
"name": "Jane",
"point": [
1,
2
],
"geo": {
"lat": 10,
"lon": 20
}
}
Mise en forme de JSON dans Bash avec jq
Utiliser
| jq .
Pour mettre en forme le JSON généré ci-dessus :
a="123"
b="456"
jo "model=$a" "prompt=$b" "stream=false" | jq .
Le JSON mis en forme sera :
{
"model": 123,
"prompt": 456,
"stream": false
}
Analyse de JSON et extraction de valeurs de champ dans Bash
Installer jq en premier
sudo apt-get install jq
Utiliser
| jq -r '.fieldName'
Comme l’analyse de la sortie d’un appel à Ollama :
curl http://localhost:11434/api/generate -d '{
"model": "llama3",
"prompt": "Pourquoi le ciel est bleu ?",
"stream": false
}' | jq -r '.response'
Compter les mots dans un fichier avec Bash
Comptage des mots :
wc -w nomfichier.txt
renverra quelque chose comme
261 nomfichier.txt
Si vous voulez juste un entier, vous pouvez couper le premier mot, qui est un nombre
words=`wc -w nomfichier.txt | cut -f1 -d' '`
echo "$words mots"
Ou utiliser wc comme ceci :
words=`wc -w < nomfichier.txt`
echo "$words mots"
Vérification de l’utilisation de l’espace disque d’un répertoire
du ~/nomrepertoire
Obtention du chemin du répertoire du script dans Bash
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
Mesure du temps d’exécution d’un script dans Bash
Une option consiste à utiliser la fonction time
time votre_script.sh
Une autre méthode est un peu plus compliquée :
start=`date +%s`
# code très important
# va ici
end=`date +%s`
runtime=$((end-start))
Comparaison de deux fichiers avec VS Code
code -d <fichier 1> <fichier 2>
Vérification des paquets disponibles dans le dépôt Ubuntu
sudo apt-cache policy <nomPaquet>
Liens utiles
- Branche Git dans le prompt Bash
- Fiche mémo Python
- Fiche mémo Conda
- Synchronisation des signets avec Floccus
- Réinstaller Linux
- Fiche mémo Ollama
- Fiche mémo Docker
- Fiche mémo Kubernetes
- Fiche mémo Markdown
- Codage - décodage Base64 sur Windows, Linux et Mac
- Décoder et afficher un token JWT
- Fiche mémo des paramètres de ligne de commande MinIO