- Transfert de Fichiers
Transfert Ascendant (Upload) avec lrzsz
L'outil lrzsz facilite les transferts de fichiers interactifs depuis et vers un serveur Linux, particulièrement utile dans les terminaux supportant Xmodem/Ymodem/Zmodem (comme Xshell).
# Pour envoyer un fichier local vers le serveur
rz
# Si le fichier existe déjà sur le serveur, utilisez -E pour le renommer automatiquement
rz -E
Le système ajoutera un suffixe numérique (par exemple, .0, .1) au nom du fichier pour éviter les conflits.
Téléchargement de Fichiers depuis le Web
Utilisation de wget
wget est un utilitaire en ligne de commande dédié au téléchargement de fichiers depuis le web (HTTP, HTTPS, FTP).
# Télécharger un fichier vers un chemin spécifique
wget -O /chemin/local/vers/fichier.zip https://example.com/archive.zip
# Si une erreur SSL survient, désactiver la vérification du certificat
wget --no-check-certificate -O /chemin/local/vers/fichier.tar.gz https://insecure.example.com/package.tar.gz
Pour installer wget si ce n'est pas déjà fait :
sudo yum install wget
# Ou sur d'autres distributions : sudo apt install wget
Utilisation de curl
curl est un outil puissant pour transférer des données avec une syntaxe d'URL, capable de gérer divers protocoles. Il peut également être utilisé pour le téléchargement.
# Télécharger un fichier et le sauvegarder sous un nom spécifique
curl -o monimage.png https://www.example.com/img/illustration.png
# Pour ignorer la vérification du certificat SSL en cas de problème
curl -k -o monfichier.pdf https://insecure.example.com/document.pdf
Téléchargement Descendant (Download) avec lrzsz
Pour transférer des fichiers depuis le serveur vers votre machine locale en utilisant lrzsz :
# Télécharger le fichier bak.tar.gz depuis le serveur
sz bak.tar.gz
Remarques sur lrzsz :
- Nécessite une installation :
sudo yum install lrzsz -y - Fonctionne mieux avec des outils de terminal graphiques comme Xshell.
- Limitations : Ne prend en charge qu'un seul fichier à la fois, peut être instable pour de très gros fichiers ou des fichiers vides.
- Sorties et Redirections
Concepts d'Entrée/Sortie Standard
Dans un environnement Unix/Linux, les programmes interagissent avec des flux d'entrée/sortie standard :
- Entrée standard (stdin) : Généralement le clavier, descripteur de fichier
0. - Sortie standard (stdout) : Généralement l'écran, descripteur de fichier
1. - Erreur stanadrd (stderr) : Généralement l'écran pour les messages d'erreur, descripteur de fichier
2.
Commande read pour la Saisie
La commande read permet de lire une ligne de texte depuis l'entrée standard et de l'assigner à une variable.
# Lire une entrée avec un prompt
read -p "Veuillez entrer votre nom : " nomUtilisateur
echo "Bonjour, $nomUtilisateur !"
# Lire seulement 2 caractères
read -n 2 -p "Entrez deux caractères : " deuxChars
echo "Vous avez entré : $deuxChars"
# Lire en mode silencieux (pour un mot de passe)
read -s -p "Entrez votre mot de passe : " motDePasse
echo "Mot de passe saisi."
# Lire avec un délai d'attente de 5 secondes
read -t 5 -p "Vous avez 5 secondes pour entrer quelque chose : " reponseRapide
if [ -z "$reponseRapide" ]; then
echo "Temps écoulé !"
else
echo "Réponse : $reponseRapide"
fi
Commande echo pour l'Affichage
La commande echo affiche des chaînes de caractères sur la sortie standard.
# Afficher un message
echo "Ceci est un message."
# Afficher sans retour à la ligne
echo -n "Ceci reste sur la même ligne."
echo " Ceci est la suite."
# Afficher avec des caractères d'échappement (ex: nouvelle ligne \n, tabulation \t)
echo -e "Ligne 1\n\tLigne 2 avec tabulation"
Redirection des Flux
La redirection permet de modifier la destination ou la source des flux d'entrée/sortie.
Redirection de la Sortie Standard (stdout)
> fichier: Redirige la sortie standard vers un fichier, écrasant son contenu s'il existe.>> fichier: Redirige la sortie standard vers un fichier, ajoutant le contenu à la fin.
# Écraser le contenu de 'liste.txt'
ls -l /tmp > liste.txt
# Ajouter à 'log.txt'
date >> log.txt
Redirection de l'Erreur Standard (stderr)
2> fichier: Redirige l'erreur standard vers un fichier, écrasant son contenu.2>> fichier: Redirige l'erreur standard vers un fichier, ajoutant le contenu à la fin.
# Rediriger seulement les erreurs vers 'erreurs.log'
find /root -name "*.conf" 2> erreurs.log
Redirection Simultanée de stdout et stderr
&> fichierou> fichier 2>&1: Redirige stdout et stderr vers le même fichier (écrase).&>> fichierou>> fichier 2>&1: Redirige stdout et stderr vers le même fichier (ajoute).
# Envoyer toutes les sorties (standard et erreur) vers 'sortie_complete.log' (écrase)
ma_commande &> sortie_complete.log
# Envoyer toutes les sorties vers 'journal_complet.log' (ajoute)
autre_commande &>> journal_complet.log
# Masquer toute sortie (utile pour les tâches en arrière-plan)
commande_silencieuse &>/dev/null
Pour rediriger stdout et stderr vers des fichiers distincts :
# stdout vers 'messages.log', stderr vers 'alertes.log'
commande_complexe > messages.log 2> alertes.log
Commande tee
La commande tee permet de rediriger la sortie d'une commande à la fois vers la sortie standard (l'écran) et vers un ou plusieurs fichiers.
# Affiche la date à l'écran et l'enregistre dans 'date_du_jour.txt'
date | tee date_du_jour.txt
Redirection de l'Entrée Standard (stdin)
< fichier: La commande prend son entrée depuis le contenu d'un fichier.<< LIMITER: La commande prend son entrée depuis le texte entré jusqu'à ce que la chaîneLIMITERsoit rencontrée.
# Filtrer les lignes contenant "root" du fichier /etc/passwd
grep 'root' < /etc/passwd
# Écrire du texte dans un fichier en utilisant la redirection d'entrée de 'cat'
cat > mon_fichier.txt << FIN_DE_SAISIE
Ceci est la première ligne.
Ceci est la deuxième ligne.
FIN_DE_SAISIE
# Exemple avec la commande 'dd' (lecture, conversion et écriture de blocs de données)
# Créer un fichier de 20 Mo rempli de zéros
dd if=/dev/zero of=/dev/shm/fichier_test.bin bs=1M count=20
# Ou avec redirection d'entrée
dd /dev/shm/autre_fichier_test.bin bs=1M count=20
# Restauration d'une base de données MySQL
mysql -uutilisateur -pmotdepasse nom_base_de_donnees < backup.sql
- Traitement de Caractères
sort : Tri de Lignes
La commande sort trie les lignes d'un fichier texte ou d'un flux d'entrée.
# Syntaxe de base
sort [OPTIONS] FICHIER...
# Exemple : Créer un fichier de données non triées
cat > data.txt <<eof a:4="" b:3="" c:2="" colonne="" d:1="" data.txt="" deuxi="" e:5="" en="" eof="" f:11="" inverse="" la="" num="" ordre="" par="" r="" s="" sort="" trier=""></eof>
Options courantes :
-n: Trier numériquement.-r: Trier en ordre inverse (décroissant).-k N: Trier par la N-ième colonne.-t C: Spécifier le caractèreCcomme séparateur de champ (par défaut, l'espace).
uniq : Suppression des Doublons
uniq filtre les lignes adjacentes répétées. Il est souvent utilisé en combinaison avec sort car il ne détecte que les doublons consécutifs.
# Syntaxe de base
uniq [OPTIONS] FICHIER
# Exemple : Créer un fichier avec des doublons
cat > liste.txt <<eof afficher="" apparaissent="" apple="" banana="" cherry="" d="" doublons="" eof="" et="" fichier="" fois="" le="" les="" leur="" lignes="" liste.txt="" nombre="" plus="" pour="" qui="" r="" sort="" supprimer="" tous="" triez="" uniq="" uniquement=""></eof>
Options courantes :
-c: Préfixer les lignes par le nombre d'occurrences.-d: Afficher uniquement les lignes qui sont des doublons (apparaissent plus d'une fois).-u: Afficher uniquement les lignes uniques (qui n'apparaissent qu'une seule fois).
cut : Extraction de Champs
cut extrait des sections de chaque ligne de fichiers ou de l'entrée standard.
# Syntaxe de base
cut [OPTIONS] FICHIER
# Exemple : Extraire des informations de /etc/passwd
head -n 1 /etc/passwd
# root:x:0:0:root:/root:/bin/bash
# Extraire les champs 1 à 3, avec ':' comme délimiteur
head -n 1 /etc/passwd | cut -d ':' -f 1-3
# Résultat:
# root:x:0
# Extraire les champs 1, 4 et 7
head -n 1 /etc/passwd | cut -d ':' -f 1,4,7
# Résultat:
# root:0:/bin/bash
Options courantes :
-d DELIM: UtiliserDELIMcomme délimiteur de champ (par défaut, tabulation).-f LISTE: Sélectionner les champs spécifiés dansLISTE.
tr : Traduction ou Suppression de Caractères
tr (translate) modifie ou supprime des caractères dans un flux d'entrée.
# Syntaxe de base
tr [OPTIONS] SET1 [SET2]
# Exemple : Mettre en majuscules certaines lettres
echo "hello world" | tr 'hw' 'HW'
# Résultat:
# Hello WorlD
# Supprimer tous les chiffres d'une chaîne
echo "Ma version est 1.2.3" | tr -d '0-9'
# Résultat:
# Ma version est ..
# Convertir les minuscules en majuscules
echo "bonjour le monde" | tr 'a-z' 'A-Z'
# Résultat:
# BONJOUR LE MONDE
# Supprimer les caractères spécifiques
head -n 1 /etc/passwd | tr -d "root"
# Résultat (supprime toutes les occurrences de 'r', 'o', 't'):
# :x:0:0::/:/bin/bash
Option courante :
-d: Supprimer les caractères spécifiés dansSET1.
wc : Comptage de Mots, Lignes, Caractères
La commande wc (word count) compte le nombre de lignes, de mots et de caractères (bytes) dans les fichiers.
# Syntaxe de base
wc [OPTIONS] FICHIER...
# Exemple : Utiliser le fichier 'liste.txt' créé précédemment
cat liste.txt
# apple
# banana
# apple
# cherry
# banana
# apple
# Compter les octets du fichier
wc -c liste.txt
# 36 liste.txt
# Compter les lignes du fichier
wc -l liste.txt
# 6 liste.txt
# Compter les mots du fichier
wc -w liste.txt
# 6 liste.txt
Options courantes :
-c: Afficher le nombre d'octets.-l: Afficher le nombre de lignes.-w: Afficher le nombre de mots.
- Gestion de la Date et de l'Heure
Commande date
La commande date affiche ou définit la date et l'heure du système.
# Syntaxe de base
date [OPTIONS] [+FORMAT]
Options
-d CHAÎNE: Afficher la date spécifiée parCHAÎNE(description relative comme "1 day ago").-s CHAÎNE: Définir la date et l'heure du système selonCHAÎNE. (Nécessite des privilèges root)
Paramètres de Formatage
Utilisez un + suivi de codes de formatgae pour personnaliser la sortie.
%T: Heure complète (HH:MM:SS)%F: Date complète (YYYY-MM-DD)%Y: Année (4 chiffres)%y: Les deux derniers chiffres de l'année%m: Mois (01-12)%d: Jour du mois (01-31)%H: Heure (format 24h, 00-23)%M: Minute (00-59)%S: Seconde (00-59)%j: Jour de l'année (001-366)%w: Jour de la semaine (0 pour dimanche, 1 pour lundi, etc.)%W: Numéro de semaine dans l'année (00-53, la semaine commence le lundi)%s: Secondes depuis l'époque (1er janvier 1970 00:00:00 UTC)
Exemples d'Utilisation
# 1. Afficher la date et l'heure actuelles dans un format courant
date "+%F %T"
# Exemple : 2023-10-27 15:30:45
# Un autre format personnalisé
date "+An_%Y-Mois_%m-Jour_%d_Heure_%Hh%Mm%Ss"
# Exemple : An_2023-Mois_10-Jour_27_Heure_15h30m45s
# 2. Afficher une date relative
# La date dans un mois
date -d "+1 month" "+%F"
# Exemple : 2023-11-27
# La date il y a 3 ans
date -d "3 years ago" "+%F"
# Exemple : 2020-10-27
# L'heure il y a 5 heures
date -d "-5 hours" "+%F %T"
# Exemple : 2023-10-27 10:30:45
# Le premier jour du mois précédent
date -d "last month last day +1 day" "+%F"
# Ou plus simplement
date -d "last month" "+%Y-%m-01"
# 3. Modifier la date et l'heure du système (nécessite sudo)
# Attention : cela modifie l'heure du système !
# sudo date -s "2024-01-01 10:00:00"