Initialisation

This commit is contained in:
2024-01-07 10:02:35 +01:00
commit b7291133a3
4418 changed files with 169147 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
====== Adobe Flash Player ======
Il n'est plus recommandé d'installer **Adobe Flash Player** car il n'est plus pris en charge et peut présenter des vulnérabilités de sécurité. En effet, Adobe a mis fin au support de **Flash Player** en décembre 2020 et a conseillé aux utilisateurs de désinstaller **Flash Player** de leur système.
Le package ''flash-plugin'' est un plugin propriétaire d'**Adobe Flash Player** pour les navigateurs web et n'est plus pris en charge depuis **décembre 2020**. Par conséquent, il ne se trouve plus dans les dépôts officiels des distributions Linux telles que **Ubuntu**, **Debian**, **CentOS**, etc.
Si vous avez besoin d'utiliser Flash pour des applications web spécifiques, vous pouvez essayer d'installer une version plus ancienne de Flash en téléchargeant les fichiers d'installation à partir du site d'Adobe. Toutefois, nous vous recommandons de chercher des alternatives open-source telles que HTML5, WebGL ou WebAssembly pour les contenus multimédias dans votre navigateur, car elles sont plus sûres et plus performantes que Flash.
Il est important de noter que l'utilisation de Flash est désormais considérée comme une pratique obsolète et non sécurisée. Les principaux navigateurs ont progressivement cessé de prendre en charge Flash dans leurs dernières versions et Adobe a cessé de publier des mises à jour de sécurité pour Flash. Il est donc recommandé de ne pas utiliser Flash sauf en cas de nécessité absolue, et de passer à des alternatives plus modernes et sécurisées pour les contenus multimédias en ligne.

View File

@@ -0,0 +1,169 @@
====== Audacity - logiciel d'édition audio ======
{{tag>Audacity}}
Audacity est un logiciel gratuit, open source et multi-plateforme de traitement du son qui vous permet d'enregistrer, de modifier et de mixer du son sur votre ordinateur. Il est particulièrement utile pour les musiciens, les podcasters, les professionnels du son et tous ceux qui travaillent avec du son numérique.
* Enregistrement: Audacity vous permet d'enregistrer du son à partir de différentes sources, telles que votre microphone, votre carte son ou des fichiers audio existants. Vous pouvez également enregistrer plusieurs pistes simultanément pour créer des compositions multi-pistes.
* Édition: Audacity vous permet de couper, copier, coller et déplacer des sections de pistes audio pour créer des effets spéciaux, synchroniser des pistes ou supprimer des bruits indésirables. Vous pouvez également ajouter des effets tels que l'écho, le reverb ou le changement de pitch.
* Mixage: Audacity vous permet de contrôler le volume et la panoramisation de chaque piste pour créer un mixage final équilibré. Vous pouvez également utiliser des outils tels que l'égaliseur ou le compresseur pour améliorer la qualité sonore de votre projet.
* Exportation: Audacity vous permet d'exporter vos projets au format MP3, WAV ou OGG pour les partager sur internet ou les graver sur CD. Vous pouvez également exporter directement vers Soundcloud, YouTube ou d'autres plateformes en ligne.
Audacity est diffusé sous forme d'**AppImage**, une méthode qui garantit que l'**AppImage** est mis à jour simultanément avec les versions destinées à **Windows** et **macOS**.
L'équipe d'**Audacity** assure la compatibilité avec Linux en testant l'utilisation d'**AppImages** spécifiquement sur **Ubuntu 22.04**. Bien que d'autres distributions Linux puissent potentiellement fonctionner par le gestionnaire de paquets, elles ne font pas l'objet de tests de la part de l'équipe **Audacity**. Il est important de noter que ce qui suit ne représente que des suggestions d'installations possibles.
Sous Fedora, le gestionnaire de paquets DNF peut proposer la version "Freeworld" d'Audacit. Celle-ci inclut un certain nombre de bibliothèques et de codecs qui ne sont pas inclus dans la version officielle d'Audacity. Ces bibliothèques et codecs sont souvent nécessaires pour lire ou enregistrer certain types de fichiers audio et sont donc utiles pour les utilisateurs avancés. Cependant, ils peuvent être considérés comme des logiciels tiers par certains utilisateurs et peuvent être bloqués ou désapprouvés par certaines politiques de sécurité.
Dernière information que je souhaite vous communiquer, [[https://www.lesnumeriques.com/vie-du-net/audacity-apres-son-rachat-le-logiciel-open-source-s-interesserait-de-trop-pres-a-vos-donnees-personnelles-n165937.html|Audacity a été racheté par Muse Group en 2021]] avec des modification sur la collecte d'informations, ce qui a eu un impact négatif sur sa popularité ou son utilisation.
Solutions alternatives : [[https://tenacityaudio.org/|Tenacity]], LMMS ou OcenAudio.
===== Installer sous Fedora =====
==== Installer avec le fichier AppImage ====
Le programme **AppImage** est une version autonome d'Audacity qui n'a pas besoin d'être installée sur votre ordinateur. Vous pouvez simplement le télécharger sur le site web d'Audacity et l'exécuter comme n'importe quel autre fichier sur votre ordinateur. L'avantage de cette méthode est qu'elle ne nécessite aucune installation et que vous pouvez l'utiliser sur n'importe quel ordinateur compatible sans avoir à l'installer.
Il est généralement conseillé de déplacer les fichiers **AppImage** dans un répertoire de votre choix, mais de ne pas les déplacer dans un répertoire système comme ''/usr/bin'' ou ''/usr/local/bin''.
Les répertoires système sont gérés par le système d'exploitation et peuvent être modifiés lors d'une mise à jour ou d'une installation de logiciels, ce qui peut entraîner la suppression ou la modification de vos fichiers **AppImage**.
Il est donc préférable de les déplacer dans un répertoire personnel, comme ''~/opt''.
**__CRÉER UN RACCOURCI POUR VOTRE APPIMAGE__**
Vous pouvez créer un raccourci pour Audacity en utilisant la ligne de commande en suivant les étapes suivantes :
<callout icon="fa fa-slack">
Ouvrez un terminal en cliquant sur "Applications" puis "Terminal".
Entrez la commande suivante pour créer un nouveau fichier .desktop :
nano ~/.local/share/applications/audacity.desktop
</callout>
<callout icon="fa fa-slack">
Copiez et collez le contenu suivant dans le fichier :
<code>
#!/usr/bin/env xdg-open
[Desktop Entry]
Type=Application
Name=Audacity
Exec=/home/votre_nom_d'utilisateur/opt/audacity-linux-3.2.3-x64.AppImage
Icon=/home/votre_nom_d'utilisateur/.local/share/icons/audacity.png
Terminal=false
Categories=Audio;
</code>
Le symbole "~" n'est pas reconnu dans les fichiers ''.desktop'' comme un chemin absolu, ni même la variable ''$HOME''. Au lieu de cela, vous devez utiliser le chemin complet (chemin absolu) vers le fichier **AppImage**.
Appuyez sur <key>Ctrl</key> + <key>X</key> pour enregistrer les modifications, puis sur <key>Y</key> pour confirmer l'enregistrement.
Sous Gnome, les icônes sont généralement stockées dans un des répertoires suivants :
* /usr/share/icons
* /usr/local/share/icons
* ~/.local/share/icons
Il est conseillé d'utiliser le répertoire ''~/.local/share/icons'' pour les icônes personnalisées, car il est spécifique à l'utilisateur et n'est pas affecté par les mises à jour du système.
</callout>
Vous pouvez maintenant trouver **Audacity** dans le menu **Applications** et le lancer en cliquant dessus.
<image shape="thumbnail">
{{ :informatique:applications:audio:pasted:20230212-233118.png }}
</image>
==== Installer avec le dépôt RPM Fusion Nonfree ====
Pour installer Audacity avec des fonctionnalités supplémentaires (telles que l'exportation de fichiers au format MP3), vous devez utiliser le dépôt **RPM Fusion Nonfree**.
Installer le référentiel **RPM Fusion Nonfree** ((RPM Fusion Nonfree est un référentiel tiers pour les distributions Fedora et Red Hat Enterprise Linux (RHEL) qui fournit des logiciels propriétaires qui ne sont pas disponibles dans les référentiels officiels. Le référentiel RPM Fusion Nonfree contient des logiciels propriétaires tels que les pilotes de périphériques pour certains matériels, les codecs multimédias non libres et d'autres logiciels qui peuvent être distribués gratuitement, mais qui ont des restrictions de licence.)) sur un système Fedora.
<callout icon="fa fa-slack">
Installer le référentiel **RPM Fusion Nonfree** :
sudo dnf -y install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
</callout>
<callout icon="fa fa-slack">
installez Audacity en exécutant la commande suivante :
sudo dnf install audacity-freeworld
</callout>
Une fois l'installation terminée, vous pouvez lancer Audacity en tapant ''audacity'' dans le terminal ou en recherchant ''Audacity'' dans le menu **Applications**.
==== Installer avec Flatpack / Flathub ====
**Flatpak** est un système de packaging d'applications pour Linux qui permet de distribuer des applications Linux de manière universelle indépendamment des distributions Linux et de leurs bibliothèques associées. **Flathub** est un dépôt centralisé de **Flatpak** qui contient de nombreuses applications.
Pour installer Audacity via Flatpak, vous devez tout d'abord installer Flatpak et Flathub sur votre système.
<callout icon="fa fa-slack">
Vous pouvez installer Flatpak sur votre système Fedora ou assimilé, utilisez la commande suivante :
sudo dnf install flatpak
Vous pouvez installer Flatpak sur votre système Debian ou assimilé, utilisez la commande suivante :
sudo apt install flatpak
</callout>
<callout icon="fa fa-slack">
Ensuite, vous pouvez ajouter Flathub à la liste des dépôts de Flatpak en utilisant la commande suivante :
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
</callout>
<callout icon="fa fa-slack">
Une fois que vous avez installé Flatpak et Flathub, vous pouvez installer Audacity via Flatpak en utilisant la commande suivante :
flatpak install flathub org.audacityteam.Audacity
</callout>
<callout icon="fa fa-slack">
Depuis le rachat d'Audacity par Muse en avril 2021, les nouvelles versions de l'application collecte des données très limitées ((https://www.bbc.com/news/technology-57721967)). Pour éviter qu'Audacity ne communique avec Internet, il suffit de désactiver les communications.
Pour modifier l'option pour l'**utilisateur courant** avec [[informatique:linux:applications:flatseal|flatseal]], décochez l'option ''Réseau sans fil'', ''share=network'' afin d'empêcher Audacity de communiquer avec le réseau.
{{ :informatique:applications:audio:pasted:20230306-120607.png }}
ou en ligne de commande :
flatpak override --user --unshare=network org.audacityteam.Audacity -v
Le fichier ''~/.local/share/flatpak/overrides/org.audacityteam.Audacity'' sera modifié.
Pour modifier l'option pour **tous les utilisateurs**, utilisez la commande suivante :
sudo flatpak override --unshare=network org.audacityteam.Audacity -v
Le fichier ''/var/lib/flatpak/overrides/org.audacityteam.Audacity'' sera modifié.
</callout>
===== Personnaliser =====
==== Ajout d'un raccourci vers les metadonnées ====
Les métadonnées sont des informations supplémentaires associées à un fichier audio qui peuvent inclure le **titre**, l'**artiste**, l'**album**, la **date de sortie**, le **genre**, etc. En utilisant un fichier de métadonnées, vous pouvez facilement ajouter ces informations à vos fichiers audio lors de l'export dans **Audacity**. Cela peut être utile pour organiser votre bibliothèque musicale et permettre à d'autres programmes de lire et d'afficher ces informations correctement.
Le dossier ''~/.audacity-data/'' est le dossier de données par défaut d'**Audacity** où les fichiers de métadonnées peuvent être enregistrés et stockés. En créant un lien vers le dossier contenant votre bibliothèque de métadonnées, vous pouvez facilement accéder à ces fichiers lorsque vous avez besoin de les utiliser dans **Audacity**.
<code>
ln -s /media/disk_21/doc_perso_cedric/documents/podcasts/metadonnees ~/.audacity-data/metadonnees
</code>

View File

@@ -0,0 +1,65 @@
====== coturn ======
{{ :dummy.png?75x75|Serveur turn}}
Un serveur TURN permet d'assurer la connectivité des clients même s'ils sont derrière des routeurs NAT ou des pare-feux restrictifs, en utilisant un relais tiers pour transférer les paquets de données. **coturn** remplie ce rôle.
===== Installation de coturn =====
Pour installer un service TURN sur Debian, vous pouvez suivre les étapes suivantes.
Ouvrez un terminal et mettez à jour votre système avec la commande suivante :
sudo apt-get update
Installez le service TURN en utilisant la commande suivante :
sudo apt-get install coturn
Une fois l'installation terminée, vous pouvez éditer le fichier de configuration de TURN en utilisant la commande suivante :
sudo nano /etc/turnserver.conf
Modifiez les paramètres de configuration selon vos besoins.
Démarrez le service TURN avec la commande suivante :
sudo systemctl start coturn
Vérifiez que le service est en cours d'exécution avec la commande suivante :
sudo systemctl status coturn
Vous pouvez également configurer le service TURN pour qu'il démarre automatiquement au démarrage du système en utilisant la commande suivante :
sudo systemctl enable coturn
===== Paramètres de coturn =====
La configuration de turnserver.conf dépend des besoins de votre environnement et des fonctionnalités que vous souhaitez activer ou désactiver pour votre serveur TURN. Cependant, voici quelques paramètres de configuration courants que vous pouvez modifier dans le fichier turnserver.conf :
* listening-port : le port sur lequel le serveur TURN écoute les connexions entrantes.
* relay-ip : l'adresse IP que le serveur TURN utilisera pour relayer les flux de données.
* realm : le nom de domaine utilisé pour identifier le service de relais.
* user et userdb : les paramètres utilisés pour configurer l'authentification des utilisateurs et le stockage des informations d'identification.
* min-port et max-port : les ports utilisés pour relayer les flux de données.
* lt-cred-mech : un mécanisme d'authentification qui exige une preuve de l'identité de l'utilisateur à chaque connexion.
* cert et pkey : les chemins d'accès aux certificats SSL/TLS utilisés pour sécuriser les connexions.
* fingerprint : le type de hachage utilisé pour générer les empreintes digitales de certificat.
* no-udp : une option qui désactive le protocole UDP pour les connexions entrantes.
===== Ressources =====
* [[https://dyn.manpages.debian.org/jump?q=turnserver|man turnserver]]
* [[https://github.com/coturn/coturn/wiki|wiki corturn]]
--- //[[user:cpt]]//

View File

@@ -0,0 +1,57 @@
====== discord ======
{{ :informatique:linux:applications:pasted:20230223-141531.png?150x}}
**Discord** est une plateforme de communication en ligne qui permet aux utilisateurs de discuter par messages, voix et vidéo. C'est une application populaire pour les joueurs, mais elle est également utilisée par des groupes de personnes pour discuter de divers sujets. **Discord** offre une variété de fonctionnalités telles que la création de serveurs, de canaux de discussion, de salons vocaux, de salons de discussion en direct et la possibilité de partager des fichiers, des images et des liens. Il existe également des bots pour automatiser certaines tâches, des rôles et des permissions pour gérer les utilisateurs et les canaux, ainsi que des fonctionnalités de personnalisation pour les utilisateurs et les serveurs. **Discord** est disponible sur différentes plateformes, y compris les ordinateurs de bureau, les smartphones et les tablettes.
**Discord** n'est pas open source. Le code source de Discord n'est pas disponible publiquement, ce qui signifie que les utilisateurs ne peuvent pas le modifier ou le distribuer eux-mêmes. Cela contraste avec d'autres applications de communication similaires telles que [[.:riot]], qui est une application de messagerie open source basée sur la technologie **Matrix**. Cependant, **Discord** dispose d'une API (interface de programmation d'application) qui permet aux développeurs de créer des bots et des extensions pour la plateforme. Ces bots et extensions peuvent utiliser les fonctionnalités de **Discord** pour automatiser des tâches ou ajouter des fonctionnalités supplémentaires à l'application.
===== Installer Discord sous Red-hat / Cent OS / Fedora =====
{{ :informatique:linux:applications:pasted:20230223-142028.png }}
Ajouter un nouveau référentiel (ou dépôt) à **Flatpak** :
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Cette commande ajoute le référentiel **Flathub** à la liste des référentiels **Flatpak** disponibles sur votre système. **Flathub** est un référentiel populaire qui contient des applications **Flatpak** pré-compilées pour une grande variété de distributions Linux.
Le paramètre ''--if-not-exists'' indique à ''Flatpak'' de ne pas ajouter le référentiel si celui-ci est déjà présent sur le système.
--
Installer Discord à partir du référentiel **Flathub** à l'aide du gestionnaire de paquets **Flatpak** :
flatpak install flathub com.discordapp.Discord
**Flatpak** télécharge l'application **Discord** depuis **Flathub** et installe toutes les dépendances requises pour exécuter l'application.
===== Utiliser Discord =====
Vous pouvez exécuter l'application **Discord** en utilisant la commande ''flatpak run com.discordapp.Discord'' si vous l'avez installer avec ou en cherchant l'icône de l'application dans le menu de votre environnement de bureau.
Pour utiliser **Discord**, vous avez besoin d'un ordinateur ou d'un appareil mobile (smartphone ou tablette) avec une connexion Internet active et l'application Discord installée ou un navigateur web. Vous devez créer un compte pour utiliser **Discord**, l'application vous guidera tout au long du processus de création de compte.
Ensuite :
* Rejoignez un serveur **Discord** en utilisant un lien d'invitation ou en recherchant un serveur en utilisant la fonction de recherche dans Discord.
* Rejoignez des canaux de discussion sur le serveur pour communiquer avec d'autres utilisateurs.
* Utilisez les fonctionnalités de **Discord** pour discuter avec d'autres utilisateurs par messages texte, messages vocaux ou appels vidéo.
===== Connexions simultanées =====
Vous pouvez utiliser **Discord** sur votre téléphone et votre PC simultanément. Vous pouvez utiliser le même compte **Discord** pour vous connecter à partir de différents appareils et discuter avec les mêmes personnes sur différents appareils. Cela signifie que vous pouvez, par exemple, utiliser **Discord** à la fois sur votre ordinateur de bureau et sur votre smartphone, et continuer une conversation en déplacement sans interruption.
Si vous êtes connecté à **Discord** sur plusieurs appareils en même temps, vos notifications et vos statuts de connexion peuvent ne pas être synchronisés sur tous les appareils. Cela peut entraîner des incohérences et des perturbations dans votre expérience d'utilisation de **Discord** sur plusieurs appareils.
===== Bibliographie =====
* Flathub : https://flathub.org/apps/details/com.discordapp.Discord
Flathub propose des informations sur les applications disponibles et les instructions d'installation, notamment des fichiers ''.flatpakref'' pour chaque application, qui peuvent être installés à l'aide de la commande ''flatpak install''.

View File

@@ -0,0 +1,62 @@
====== FFmpeg ======
**FFmpeg** est une suite de logiciels libres et open source de traitement de flux audio et vidéo. Il est utilisé pour enregistrer, convertir et diffuser des fichiers multimédias dans différents formats. **FFmpeg** peut être utilisé en ligne de commande ou intégré dans des applications pour fournir des fonctionnalités de traitement multimédia.
Les fonctionnalités de **FFmpeg** incluent la capture vidéo et audio à partir de périphériques d'entrée, la conversion de formats multimédias, le découpage et le collage de fichiers vidéo et audio, la modification des propriétés de flux multimédias telles que la taille de l'image, le débit binaire et le taux d'images par seconde, l'encodage et le décodage de différents formats de compression, et bien plus encore.
Voici une liste de certains des outils les plus couramment utilisés fournis par FFmpeg :
* ffmpeg : Un outil de ligne de commande pour la conversion de fichiers multimédias d'un format à un autre.
* ffprobe : Un outil de ligne de commande pour l'analyse de fichiers multimédias, permettant d'extraire des informations détaillées sur les flux audio et vidéo.
* ffplay : Un lecteur multimédia en ligne de commande qui peut lire des fichiers audio et vidéo et des flux réseau.
* ffserver : Un serveur de streaming en temps réel pour diffuser des fichiers multimédias sur un réseau.
* avconv : Un outil de ligne de commande similaire à ffmpeg pour la conversion de fichiers multimédias.
* avplay : Un lecteur multimédia similaire à ffplay pour lire des fichiers audio et vidéo.
* avprobe : Un outil similaire à ffprobe pour analyser les fichiers multimédias.
===== Installer ffmpeg sous Fedora / Red Hat / Cent OS =====
Installer le référentiel **RPM Fusion Free** ((RPM Fusion est un référentiel tiers pour les distributions Fedora et Red Hat Enterprise Linux (RHEL) qui fournit des logiciels qui ne sont pas disponibles dans les référentiels officiels. Le référentiel RPM Fusion Free contient des logiciels open source qui peuvent être distribués librement, mais qui ne sont pas inclus dans les référentiels officiels de Fedora en raison de restrictions de licence ou de brevets.)) sur un système Fedora / Red Hat / Cent OS :
sudo dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
Installer le référentiel **RPM Fusion Nonfree** ((RPM Fusion Nonfree est un référentiel tiers pour les distributions Fedora et Red Hat Enterprise Linux (RHEL) qui fournit des logiciels propriétaires qui ne sont pas disponibles dans les référentiels officiels. Le référentiel RPM Fusion Nonfree contient des logiciels propriétaires tels que les pilotes de périphériques pour certains matériels, les codecs multimédias non libres et d'autres logiciels qui peuvent être distribués gratuitement, mais qui ont des restrictions de licence.)) sur un système Fedora / Red Hat / Cent OS :
sudo dnf -y install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
Installer la suite FFmpeg :
sudo dnf install ffmpeg
===== Installer ffmepg sous Debian 8 / Jessie =====
Pour installer le paquet ffmpeg, il faut l'installer depuis un dépôt qui n'est pas actif de standard. Pour en trouver un, utiliser [[https://packages.debian.org/search?keywords=ffmpeg|le moteur de recherche de dépôt en ligne Debian]].
Ajouter le dépôt jessie-backports au fichier /etc/apt/sources.list
<code>
# Backports repository
deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
</code>
Mettre à jour la liste des paquets
apt-get install update
Installer la paquet ffmpeg :
apt-get install ffmpeg
Quelques infos en ligne :
* https://wiki.debian.org/fr/ffmpeg
==== D'autres pages ====
<nav stacked="true" fade="true">
<nspages ffmpeg:. -h1 -nbCol=2 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>

View File

@@ -0,0 +1,68 @@
====== Changer de résolution d'une vidéo avec FFmpeg ======
{{ :dummy.png?75x75|Nom de la section}}
Dans ce tutoriel sur FFmpeg, nous allons apprendre à changer la résolution d'une vidéo en utilisant l'outil en ligne de commande de FFmpeg. Le changement de résolution est une opération courante en édition vidéo, en traitement et en compression. Il est souvent utilisé dans le contexte du streaming //vidéo ABR//, où une seule vidéo source est compressée en plusieurs combinaisons //bitrate-resolution//.
Pour déterminer la résolution d'une vidéo d'entrée, nous allons utiliser l'outil ''ffprobe'', qui est inclus dans les compilations FFmpeg. Nous allons exécuter la commande suivante dans la ligne de commande pour récupérer la résolution de la vidéo d'entrée :
ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=s=x:p=0 input.mp4
Cette commande utilise l'option ''-select_streams v:0'' pour sélectionner le flux vidéo de la vidéo d'entrée, ''-show_entries stream=width,height'' pour afficher les informations sur la largeur et la hauteur du flux vidéo, et ''-of csv=s=x:p=0'' pour formater la sortie en une chaîne de caractères ''largeur x hauteur''.
L'outil ''ffprobe'' affichera la résolution de la vidéo d'entrée sur la console.
===== Mettre à l'échelle la résolution d'une vidéo =====
Pour mettre à l'échelle ou changer la résolution d'une vidéo à l'aide de FFmpeg, il est nécessaire d'utiliser le filtre d'échelle (**scale filter**) de FFmpeg. Pour utiliser ce filtre, voici la commande à utiliser:
ffmpeg -i input.mp4 -vf scale=$w:$h <encoding-parameters> output.mp4
où ''$w'' et ''$h'' correspondent à la largeur et la hauteur souhaitées pour la vidéo de destination. Par exemple, ''-vf scale=640:480'' peut être utilisé pour redimensionner la vidéo à une résolution de 480p.
Après que FFmpeg ait changé la résolution de la vidéo, il va la réencoder avec cette nouvelle résolution. Dans la ligne de commande ci-dessus, des paramètres d'encodage peuvent être ajoutés pour encoder la vidéo mise à l'échelle avec ces paramètres. Par exemple, il est possible de demander à FFmpeg de l'encoder en utilisant ''crf=18'' pour obtenir un encodage H.264/AVC de qualité élevée, ou en utilisant d'autres paramètres selon le besoin.
===== Changer la résolution d'une vidéo en conservant l'aspect ratio =====
L'aspect ratio d'une image est très bien défini sur Wikipédia comme suit : l'aspect ratio d'une image est le rapport entre sa largeur et sa hauteur. Il est couramment exprimé sous forme de deux nombres séparés par un deux-points, comme dans 16:9. Pour un aspect ratio x:y, l'image est large de x unités et haute de y unités.
Il est très courant de rencontrer ce problème lors du travail avec des vidéos : Comment changer la résolution d'une vidéo (ou la mettre à l'échelle) tout en gardant l'aspect ratio d'origine de la vidéo ?
Dans FFmpeg, si vous souhaitez mettre à l'échelle une vidéo tout en conservant son aspect ratio, il est nécessaire de définir l'une des deux paramètres, la hauteur ou la largeur, et de définir l'autre paramètre à ''-1''. Si vous définissez la hauteur, vous devez définir la largeur à ''-1'' et vice versa.
Pour démontrer cela, supposons que les commandes suivantes prennent une vidéo HD (1920x1080) en entrée. Et, supposons que nous souhaitons changer sa résolution. Cela peut être fait de deux manières comme discuté précédemment, alors essayons les deux façons.
--
Spécifiez la largeur pour conserver l'aspect ratio
ffmpeg -i input.mp4 -vf scale=320:-1 output.mp4
La vidéo résultante aura une résolution de 320x180. C'est parce que 1920/320 = 6. Ainsi, la hauteur est mise à l'échelle à 1080/6 = 180 pixels.
--
Spécifiez la hauteur pour conserver l'aspect ratio
ffmpeg -i input.mp4 -vf scale=-1:720 output.mp4
La vidéo résultante aura une résolution de 1280x720. C'est parce que 1080/720 = 1,5. Ainsi, la largeur est mise à l'échelle à 1920/1,5 = 1280 pixels.
--
Pour plus d'informations sur l'utilisation de FFimpeg pour créer des vidéos à partir d'images ou pour d'autres tâches liées à la vidéo, veuillez vous référer à la documentation officielle de FFmpeg disponible sur leur site web.
===== Protection contre l'upscalling =====
Chaque action de mise à l'échelle, à la hausse ou à la baisse, ne produira généralement pas le même niveau de qualité vidéo que la vidéo d'origine. Il est susceptible d'y avoir quelques pertes de compression lors du processus de mise à l'échelle. Si la résolution d'entrée est trop faible, FFmpeg offre une astuce pour éviter la mise à l'échelle.
ffmpeg -i input.mp4 -vf "scale='min(320,iw)':'min(240,ih)'" output.mp4
Dans la ligne de commande ci-dessus, la largeur/hauteur minimale pour effectuer la mise à l'échelle est fixée respectivement à 320 et 240 pixels. Il s'agit d'une manière très simple de se protéger contre une mise à l'échelle de mauvaise qualité.
Cela ne garantit pas une qualité de sortie exceptionnelle, mais cela permet de s'assurer que la qualité ne sera pas dégradée par l'ajout de pixels qui n'existent pas dans l'entrée originale. Pour plus d'informations sur l'utilisation de FFmpeg pour la mise à l'échelle de vidéos, veuillez vous référer à la documentation officielle de FFmpeg.
Il est possible d'utiliser la commande suivante pour mettre à l'échelle la vidéo tout en conservant l'aspect ratio et en utilisant la largeur minimale de 320 pixels :
ffmpeg -i input.mp4 -vf "scale='min(320,iw)':'-1'" output.mp4
Dans cette commande, la hauteur est définie à -1 pour que FFmpeg calcule automatiquement la hauteur en fonction de l'aspect ratio d'origine de la vidéo, tandis que la largeur est définie à la valeur minimale de 320 pixels.

View File

@@ -0,0 +1,88 @@
====== Flatpak ======
{{ :dummy.png?75x75|}}
**Flatpak** (anciennement connu sous le nom de **xdg-app**) est un système de distribution d'applications pour les systèmes d'exploitation Linux. Il permet de créer des paquets d'applications qui sont indépendants des distributions Linux et qui peuvent être installés et exécutés sur n'importe quelle distribution Linux prenant en charge **Flatpak**. Les applications **Flatpak** sont fournies avec toutes leurs dépendances, ce qui facilite leur installation et leur exécution. **Flatpak** est basé sur la technologie de conteneurisation pour assurer l'isolation de l'application et la sécurité. Il est également conçu pour faciliter la mise à jour et la distribution des applications, ainsi que pour permettre aux utilisateurs de gérer les différentes versions d'une application en même temps. **Flatpak** est de plus en plus utilisé par les développeurs et les éditeurs de logiciels pour distribuer des applications sur Linux, en particulier pour les applications qui ne sont pas disponibles dans les référentiels officiels des distributions Linux.
===== Commandes courantes =====
Voici quelques commandes courantes pour utiliser **Flatpak** en ligne de commande :
-- Rechercher une application Flatpak disponible :
flatpak search nom-de-l-application
-- Installer une application Flatpak :
flatpak install nom-de-l-application
-- Mettre à jour une application Flatpak :
flatpak update nom-de-l-application
-- Supprimer une application Flatpak :
flatpak uninstall nom-de-l-application
-- Lister les applications Flatpak installées :
flatpak list
-- Lister les mises à jour disponibles pour les applications Flatpak :
flatpak update --appstream
-- Lancer une application Flatpak :
flatpak run nom-de-l-application
-- Afficher des informations détaillées sur une application Flatpak :
flatpak info nom-de-l-application
Ces commandes peuvent nécessiter des privilèges d'administration, et doivent donc être exécutées en tant que superutilisateur ou en utilisant la commande ''sudo''.
===== Technologie =====
Flatpak s'appuie sur des technologies existantes telles que cgroups, les espaces de noms (namespaces), les montages de liens (bind mounts) et seccomp dans le noyau Linux, OSTree du projet Atomic et le format OCI (Open Container Initiative) développé par l'initiative Open Container.
Les **cgroups** permettent de limiter les ressources d'un processus, tels que l'utilisation de CPU, de mémoire ou de stockage. Les espaces de noms permettent de créer des environnements isolés pour les processus, de sorte que chaque processus pense qu'il est le seul processus sur le système. Les montages de liens permettent de monter des systèmes de fichiers à l'intérieur de conteneurs ou d'environnements de //sandboxing//.
**seccomp** est un mécanisme de sécurité du noyau Linux qui permet de restreindre les appels système disponibles à un processus. Il peut être utilisé pour restreindre les appels système dangereux ou non nécessaires, ce qui améliore la sécurité de l'application.
**OSTree** est une technologie de gestion des fichiers pour les systèmes de fichiers de type image. Il permet de gérer efficacement les mises à jour de fichiers, les instantanés et les versions des systèmes de fichiers, ce qui en fait une technologie idéale pour la distribution de paquets d'applications.
Le **format OCI** est un format de conteneur standard pour les applications. Il définit une interface entre les outils de construction, de distribution et de déploiement de conteneurs, ce qui permet de garantir la portabilité des applications entre différents systèmes.
**Flatpak** utilise une politiques de sécurité [[informatique:linux:system:sandbox|sandbox]] pour exécuter l'application, ce qui signifie que l'application est exécutée dans un environnement isolé, qui restreint son accès à certaines parties du système. Par exemple, l'application ne peut pas accéder aux fichiers de l'utilisateur en dehors de son espace de travail, et ne peut pas accéder aux périphériques système sans les autorisations appropriées.
===== Emplacement sur le système hôte =====
Lorsqu'un utilisateur installe une application **Flatpak** sur son système, les fichiers de l'application sont installés dans un répertoire spécifique sur le système de fichiers, qui est géré par le moteur **Flatpak**.
Par défaut, les applications **Flatpak** sont installées dans le répertoire ''/var/lib/flatpak/app/''. Chaque application est installée dans son propre répertoire portant un nom généré automatiquement, qui correspond au nom de l'application et à sa version.
Les exécutables de l'application sont installés dans le sous-répertoire ''current/'', tandis que les données de l'application sont stockées dans le sous-répertoire ''data/''.
Les utilisateurs n'ont normalement pas besoin de connaître l'emplacement exact des fichiers d'application **Flatpak**, car ces fichiers sont gérés automatiquement par le moteur **Flatpak**. Les utilisateurs peuvent simplement lancer l'application depuis leur menu d'applications ou leur interface de bureau, comme ils le feraient avec n'importe quelle autre application.
===== Flatpak sous Fedora =====
La distribution **Fedora Linux** est réputé pour pas ne pas fournir des logiciels non libres et même rendre difficle d'accès à des composants non libres.
Depuis **Fedora 35**, Fedora inclut une définition de référentiel **Flatpak** pour **Flathub** dans le paquet **fedora-flathub-remote**. Ce paquet ajoute un référentiel pointant vers //flathub.org// lorsque les **référentiels tiers sont activés** sur un système Fedora Linux via **GNOME Initial Setup** ou **GNOME Software**. **Ce référentiel est filtré** pour inclure uniquement des paquets spécifiquement approuvés par Fedora. (Si l'utilisateur installe manuellement le référentiel **Flathub**, le filtre est supprimé et le référentiel **Flathub** n'est plus géré en tant que référentiel tiers.). Les utilisateurs qui n'optent pas pour l'option **référentiels tiers**, ne voient aucun contenu de **Flathub**.
Le référentiel **Flathub** actuel est filtré par une liste d'autorisations, de manière à ne rendre disponible qu'un sous-ensemble limité de logiciels de **Flathub**.
{{ :informatique:linux:applications:pasted:20230227-220149.png}} A partir de Fedora 38, lors de l'utilisation du gestionnaire de logiciels graphique **GNOME Software**, les **Flatpak** de **Flathub** ne seront sélectionnés par défaut que s'il n'y a pas de **Flatpak Fedora** ou de **RPM** disponible.
Dans **GNOME Software**, les utilisateurs pourront toujours sélectionner manuellement une source différente pour des applications individuelles.
Le mécanisme de filtrage restera en place, et il sera possible de rétablir un filtre via une mise à jour de package, si nécessaire à l'avenir.
Il a été indiqué qu'il est légalement acceptable de supprimer le filtrage du référentiel **Flathub** que Fedora rend disponible pour les utilisateurs qui optent pour cette option.
L'interface utilisateur pour l'activation des référentiels de logiciels tiers indique clairement qu'ils contiennent des **logiciels propriétaires**.
**GNOME Software** affiche des informations sur le caractère **open source** ou **propriétaire** des applications, de sorte que les utilisateurs puissent décider s'ils veulent les installer ou non.
-- https://www.fedoraproject.org/wiki/Changes/UnfilteredFlathub
<WRAP clear/>

View File

@@ -0,0 +1,54 @@
====== flatseal ======
{{ :dummy.png?75x75|Gérer les autorisations des applications flatpak}}
**Flatseal** est un programme pour Linux qui permet aux utilisateurs de visualiser et de modifier les autorisations des applications **flatpak**. Les applications **flatpak** sont des applications Linux qui sont empaquetées avec toutes leurs dépendances et exécutées dans un environnement **sandbox isolé**. L'un des avantages de l'utilisation d'applications **flatpak** est qu'elles sont isolées les unes des autres et des autres parties du système, ce qui réduit les risques de sécurité.
Cependant, cela signifie également que les applications **flatpak** ont des autorisations limitées pour accéder aux ressources du système, telles que les fichiers, les caméras et les microphones. **Flatseal** permet aux utilisateurs de modifier ces autorisations pour chaque application **flatpak** individuelle afin de leur accorder un accès supplémentaire aux ressources du système si nécessaire.
**Flatseal** propose une interface graphique simple et facile à utiliser pour visualiser et modifier les autorisations des applications **flatpak**, ce qui le rend particulièrement utile pour les utilisateurs qui souhaitent avoir un contrôle plus granulaire sur les applications qu'ils utilisent.
{{ :informatique:linux:applications:pasted:20230220-082137.png }}
Les autorisations que l'on peut paramétrer avec **Flatseal** dépendent des autorisations d'accès prises en charge par les applications **flatpak** en question. Cependant, certaines des autorisations courantes que l'on peut paramétrer avec **Flatseal** incluent :
* __Accès au réseau__ : permet à l'application d'accéder à Internet et à d'autres ordinateurs sur le réseau.
* __Accès au système de fichiers__ : permet à l'application d'accéder aux fichiers et dossiers sur le système.
* __Accès aux périphériques__ : permet à l'application d'accéder aux périphériques tels que les imprimantes, les scanners, les caméras et les microphones.
* __Accès à la localisation__ : permet à l'application d'accéder à la position géographique de l'utilisateur.
* __Notifications__ : permet à l'application d'afficher des notifications sur le bureau.
* __Accès à l'interface graphique utilisateur__ : permet à l'application d'afficher des fenêtres et des boîtes de dialogue sur l'écran.
En utilisant **Flatseal**, les utilisateurs peuvent activer ou désactiver ces autorisations en fonction de leurs besoins et préférences individuelles, offrant ainsi un contrôle supplémentaire sur les applications qu'ils utilisent.
Il est possible de remplacer **Flatseal** par des commandes en bash pour gérer les autorisations des applications **Flatpak**. **Flatpak** utilise la **sandboxing** pour isoler les applications et restreindre leur accès aux ressources système, et ces restrictions sont gérées via des autorisations configurables. Les autorisations sont définies dans des fichiers de métadonnées pour chaque application **Flatpak** et peuvent être modifiées à l'aide de la commande ''flatpak override'' en ligne de commande.
Il existe de nombreuses options disponibles pour la commande ''flatpak override'', qui permettent de personnaliser les autorisations en fonction des besoins spécifiques de chaque application. Cependant, l'utilisation de la ligne de commande pour gérer les autorisations de **Flatpak** peut être plus complexe que l'utilisation de **Flatseal**, qui fournit une interface graphique utilisateur intuitive pour gérer les autorisations.
> https://flathub.org/apps/details/com.github.tchx84.Flatseal
===== Alternative en ligne de commandes =====
Pour modifier les options pour l'**utilisateur courant** en ligne de commande, utilisez :
flatpak override --user <option> <application> -v
Le fichier ''~/.local/share/flatpak/overrides/<application>'' sera modifié.
--
Pour modifier l'**option pour tous les utilisateurs**, utilisez la commande suivante :
sudo flatpak override <option> <application> -v
Le fichier ''/var/lib/flatpak/overrides/<application>'' sera modifié.
--
Vous pouvez refuser l'accès réseau pour une application Flatpak en utilisant la commande
sudo flatpak override --nofilesystem=xdg-run/dot-flatpak-info --filesystem=host --unshare=network <application>

View File

@@ -0,0 +1,36 @@
====== Handbrake ======
{{ :informatique:pasted:20210707-081043.png?75x75|sous Linux Debian, Arch, Fedora et Ubuntu}}
**Handbrake** est un programme graphique Open Source pour compresser une vidéo ou un extrait de vidéo. Il est reconnu par ça facilité d'extraire les vidéos des DVD incluant un système anti copie, dans le respect du droit de la copie privée. Avec toutes ces options, les fichiers compressés seront au format souhaités.
https://www.maketecheasier.com/install-handbrake-linux-rip-dvd/
===== Ubuntu =====
Ubuntu intègre dans ces dépots le logiciel **Handbrake** ainsi que les composants complémentaires pour lire les DVD dans le package **libdvd-pkg**.
sudo apt install libdvd-pkg
sudo dpkg-reconfigure libdvd-pkg
Puis installer **Handbrake**
sudo apt install handbrake
===== Fedora =====
Avec **Fedora**, Handbrake se trouve dans le dépot **RPM Fusion Free**. Vous pouvez vérifier sa disponibilité grâce au site pkgs.org. Suivre le lien : [[https://pkgs.org/download/handbrake|Handbrake présent dans les dépôts]]
Pour installer le depot RPM Fusion, je vous conseille cet article : [[informatique:cfp:installer_les_depots#rpm-fusion-free-et-rpm-fusion-non-free]]
On installe les composants complémentaires audio présent dans **RPM Fusion Free** :
sudo dnf install rpmfusion-free-release-tainted
sudo dnf install libdvdcss
On fini par installer **Handbrake**
sudo dnf install handbrake-gui
===== Arch =====
sudo pacman -S libdvdcss handbrake

View File

@@ -0,0 +1,34 @@
====== Applications ======
{{ :dummy.png?75x75|}}
Cette sous-catégorie inclus des articles sur les applications courantes, logiciels et programmes de Linux, telles que les navigateurs web, les éditeurs de texte, les clients de messagerie, etc.
Vous pouvez également consulter la liste des programmes que vous pouvez exécuter en ligne de commandes à la page [[informatique:linux:commandes:index|Commandes Linux]].
===== Table des matières =====
<WRAP clear/>
<WRAP group>
<WRAP half column>
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=2 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
<WRAP half column>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
</WRAP>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,60 @@
====== inkscape ======
{{ :dummy.png?75x75|}}
Inkscape est un logiciel de dessin vectoriel libre et open-source, disponible sur différents systèmes d'exploitation. Il permet de créer des dessins en utilisant des vecteurs plutôt que des pixels, ce qui signifie que les images produites peuvent être redimensionnées sans perdre leur qualité ou leur netteté. Contrairement au dessin matriciel, où chaque pixel doit être défini individuellement, Inkscape utilise des vecteurs pour définir des formes géométriques telles que des segments de droites, des courbes, des polygones et des cercles.
Les utilisateurs peuvent dessiner des formes à la main libre, utiliser des outils de dessin de formes de base ou importer des images pour les modifier. Inkscape offre également une variété d'outils de modification, y compris le déplacement, le redimensionnement, la rotation et la combinaison de formes. Les couleurs et les styles peuvent être appliqués aux formes pour ajouter de la texture et de la profondeur à l'image.
Inkscape est populaire parmi les artistes, les graphistes, les designers de logos et les professionnels de l'impression, car les images vectorielles sont facilement modifiables et peuvent être exportées dans une variété de formats, tels que SVG, PDF et EPS, qui peuvent être utilisés pour des impressions de haute qualité ou des projets de conception web. Les machines industrielles peuvent également interpréter les images vectorielles pour réaliser des tâches telles que la gravure laser ou la découpe au jet d'eau.
===== Installation =====
Inkscape peut être installé sous Fedora en utilisant le gestionnaire de paquets DNF. Voici les étapes à suivre pour installer Inkscape sur Fedora :
* Ouvrez un terminal en appuyant sur <key>Ctrl</key> + <key>Alt</key> + <key>T</key>.
* Tapez la commande suivante pour installer Inkscape :
sudo dnf install inkscape
* Suivez les instructions à l'écran pour terminer l'installation.
Une fois l'installation terminée, vous pouvez lancer Inkscape en cherchant **Inkscape** dans le menu de l'application ou en tapant ''inkscape'' dans un terminal.
--
Voici les étapes à suivre pour installer Inkscape sous Linux Mint :
* Ouvrez le Gestionnaire de logiciels en cliquant sur le bouton de menu, puis en recherchant ''Gestionnaire de logiciels'' dans la barre de recherche.
* Recherchez ''Inkscape'' dans la barre de recherche du Gestionnaire de logiciels.
* Cliquez sur le bouton ''Installer'' pour installer Inkscape sur votre ordinateur.
* Suivez les instructions à l'écran pour terminer l'installation.
{{ :informatique:pasted:20221208-180521.png }}
--
Voici les étapes à suivre pour installer Inkscape sous Linux Debian :
* Ouvrez un terminal en appuyant sur <key>Ctrl</key> + <key>Alt</key> + <key>T</key>.
* Tapez la commande suivante pour mettre à jour les informations de package de votre système :
sudo apt-get update
* Tapez la commande suivante pour installer Inkscape :
sudo apt-get install inkscape
* Suivez les instructions à l'écran pour terminer l'installation.
Une fois l'installation terminée, vous pouvez lancer Inkscape en cherchant **Inkscape** dans le menu de l'application ou en tapant ''inkscape'' dans un terminal.
===== Les pages =====
<nav stacked="true" fade="true">
<nspages .:inkscape -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>

View File

@@ -0,0 +1,169 @@
====== Découverte d'Inkscape ======
{{ :dummy.png?75x75|Nom de la section}}
===== Premier lancement =====
Lorsque vous lancez Inkscape pour la première fois, il est recommandé de configurer l'espace de travail selon vos préférences.
{{ :informatique:pasted:20221208-181344.png }}
Lorsque vous ouvrez Inkscape pour la première fois, l'assistant de configuration de l'espace de travail apparaît automatiquement. Cet assistant vous permet de choisir la langue d'interface, la taille de l'interface utilisateur, la disposition des barres d'outils et des panneaux, ainsi que d'autres options de personnalisation.
En fonction de vos préférences et de la façon dont vous prévoyez d'utiliser Inkscape, vous pouvez choisir différentes options dans l'assistant de configuration. Par exemple, si vous prévoyez d'utiliser Inkscape principalement pour la conception de logo, vous pouvez choisir une disposition d'espace de travail qui met en évidence les outils de forme et de texte. Si vous prévoyez d'utiliser Inkscape pour des projets d'impression professionnels, vous pouvez choisir une résolution d'écran plus élevée pour un affichage plus net et plus précis.
Si vous manquez l'assistant de configuration de l'espace de travail lors du premier lancement, vous pouvez toujours y accéder plus tard en allant dans le menu "Fichier" > "Préférences" > "Espace de travail" dans la barre de menu supérieure.
En configurant l'espace de travail selon vos préférences, vous pouvez rendre l'utilisation d'Inkscape plus confortable et plus efficace pour vous.
--
Pour lancer la création d'un nouveau document dans Inkscape cliquez sur le bouton ''New Document''.
{{ :informatique:pasted:20221208-182454.png }}
Le nouveau document créé dans Inkscape est par défaut réglé sur une taille correspondant à une feuille A4, mais cela peut varier en fonction de la version du logiciel que vous utilisez.
Si vous arrivez sur un document vide dans Inkscape, vous pouvez vérifier la taille de la page en utilisant la règle située en haut de l'interface graphique. La règle affiche les dimensions de la page en millimètres à la création du premier document.
Si vous souhaitez modifier la taille de la page, vous pouvez aller dans le menu "Fichier" > "Propriétés du document" dans la barre de menu supérieure, ou appuyer sur le raccourci clavier <key>Maj</key> + <key>Ctrl</key> + <key>D</key>. Dans la boîte de dialogue "Propriétés du document", vous pouvez modifier les dimensions de la page, le mode de couleur, la résolution et d'autres paramètres du document.
===== Présentation =====
Il est vrai que dans Inkscape, la règle située en haut de l'interface graphique permet de mesurer les objets dessinés en millimètres ou dans d'autres unités de mesure. Cette règle peut être glissée et déplacée pour mieux s'adapter aux besoins de l'utilisateur.
{{ :informatique:pasted:20221208-183118.png}}
--
Quant à la barre d'outils située sur la gauche, elle contient plusieurs outils pour dessiner des formes de base telles que des **cercles**, des **carrés** et des **étoiles**.
Ces outils permettent de dessiner rapidement des formes symétriques et régulières, qui peuvent ensuite être modifiées et combinées pour créer des dessins plus complexes.
<WRAP clear/>
--
Dans Inkscape, il est possible de créer des formes en utilisant des clics-déplacer.
Par exemple, pour créer un cercle, vous pouvez cliquer sur l'outil "Cercle" dans la barre d'outils de gauche, puis cliquer sur la page et maintenir le bouton de la souris enfoncé tout en faisant glisser le curseur pour définir la taille du cercle. Une fois que vous avez la taille souhaitée, relâchez le bouton de la souris pour créer le cercle.
De même, pour créer un carré, vous pouvez cliquer sur l'outil "Carré", puis cliquer sur la page et maintenir le bouton de la souris enfoncé tout en faisant glisser le curseur pour définir la taille du carré. Une fois que vous avez la taille souhaitée, relâchez le bouton de la souris pour créer le carré.
Pour créer une étoile, vous pouvez cliquer sur l'outil "Étoile", puis cliquer sur la page et maintenir le bouton de la souris enfoncé tout en faisant glisser le curseur pour définir la taille de l'étoile. Une fois que vous avez la taille souhaitée, vous pouvez utiliser les options dans la barre de contrôle en haut pour définir le nombre de points et d'autres propriétés de l'étoile.
{{ :informatique:pasted:20221208-183237.png }}
--
Dans Inkscape, l'outil de pointeur de sélection (représenté par une flèche noire) permet d'éditer les propriétés d'une figure existante.
Lorsque vous sélectionnez une figure à l'aide de cet outil, vous pouvez utiliser la barre de contrôle située en haut de l'interface pour modifier les propriétés de la figure, telles que sa couleur, sa taille, son contour et sa transparence. Vous pouvez également déplacer, redimensionner et faire pivoter la figure en utilisant les poignées de sélection qui apparaissent autour de la figure lorsque vous la sélectionnez.
En plus de la barre de contrôle, vous pouvez également accéder à des options de propriétés plus avancées en utilisant la palette de propriétés, qui peut être ouverte en appuyant sur la touche <key>F2</key> ou en cliquant sur le bouton "Propriétés" dans la barre d'outils de gauche. Cette palette de propriétés permet de modifier des propriétés plus avancées telles que les effets de filtre, les effets de dégradé et les propriétés de texte.
{{ :informatique:pasted:20221208-183441.png }}
===== Édition des contours =====
Il est possible de désactiver les contours en utilisant la boîte de dialogue "Fond et contour".
Pour désactiver les contours d'un objet, vous pouvez suivre les étapes suivantes :
* Sélectionnez l'objet auquel vous souhaitez supprimer le contour en cliquant dessus.
* Dans la barre de menu supérieure, cliquez sur "Objet" et sélectionnez "Fond et contour" ou appuyez sur le raccourci clavier <key>Maj</key> + <key>Ctrl</key> + <key>F</key>.
* Dans la boîte de dialogue "Fond et contour", sélectionnez l'onglet "Contour".
* Sélectionnez "Pas de contour" dans la liste déroulante "Style".
* Cliquez sur "Appliquer" pour enregistrer les modifications.
Une fois que vous avez désactivé le contour de l'objet, il n'apparaîtra plus sur la page. Si vous souhaitez réactiver le contour à tout moment, vous pouvez répéter ces étapes et sélectionner un style de contour différent dans la boîte de dialogue "Fond et contour".
{{ :informatique:pasted:20221208-183749.png }}
===== Propriété de l'objet sélectionner =====
Dans la barre du haut, les propriétés standards de l'objet s'affichent et peuvent être modifier
{{ :informatique:pasted:20221208-183901.png }}
Un double clique permet d'avoir des propriétés propres à l'objet. PAr exemple pour l'étoile :
{{ :informatique:pasted:20221208-184154.png }}
Une étoile personnalisée :
{{ :informatique:pasted:20221208-184236.png }}
===== Forme personnalisée =====
Il faut utiliser l'outils **Courbes de Bézier**.
{{ :informatique:pasted:20221208-184714.png }}
===== Objets concentriques, alignés... =====
Effectuer une sélection d'au moins deux objets, puis utiliser loutil **Aligner et ajuster** dans le menu **Objet** > **Aligner et distribuer**. Dans le panneau de gauche, un onglet **Aligner et distribuer** s'affiche.
{{ :informatique:pasted:20221208-185710.png }}
===== Miroir =====
On sélectionne un ou plusieurs objets.
{{ :informatique:pasted:20221208-190527.png }}
===== Éditeur des courbes de Bézier =====
On utilise loutil suivant :
{{ :informatique:pasted:20221208-190916.png }}
On peut également éditer les noeuds :
{{ :informatique:pasted:20221208-191314.png }}
Cela modifie les poignets et rendre éditable ou partir de la forme.
{{ :informatique:pasted:20221208-191354.png }}
Pour sentraîner, chercher **The Bézier Game** pour essayer de réaliser des formes simples au formes complexes.
===== Fusion, différence... =====
Dans le menu **Chemin**
**Objet en chemin** permet de transformer une forme simple en forme de Bézier.
**Union**
**Intersection**
**Explosion**
===== Quelques raccourcis =====
^ raccourci ^ action ^
| **clic-milieu** | permet de navigue dans la feuille |
| **Ctrl + molette** | permet de zoomer ou dézoomer |
| **Ctrl + Z** | annuler la dernière des actions |
| **Ctrl + Shift + molette** | rotation |
| **Ctrl + Maj + Z** | rétablir |
^ Ctrl + C | Copier |
^ Ctrl + v | Coller |
^ Ctrl + d | dupliquer |

View File

@@ -0,0 +1,31 @@
====== ksnip ======
{{ :informatique:linux:applications:pasted:20230328-080433.png?150x|}}
**Ksnip** est une application de capture d'écran open-source pour les systèmes d'exploitation Windows, Linux et macOS. Il permet aux utilisateurs de capturer des images de leur écran, de les annoter avec des formes, des flèches, du texte et des surlignages, et de les enregistrer dans différents formats tels que PNG, JPG et BMP. **Ksnip** dispose également d'options pour capturer des images de fenêtres spécifiques, de zones sélectionnées et de la totalité de l'écran. C'est un outil pratique pour les personnes qui ont besoin de capturer et d'annoter des captures d'écran pour les tutoriels, la documentation, les présentations, etc.
{{ :informatique:linux:applications:pasted:20230328-080543.png }}
**Ksnip** offre plusieurs modes de capture d'écran :
* **Zone rectangulaire** : Sélection manuelle d'une zone rectangulaire à capturer.
* **Dernière zone rectangulaire** : Sélection de la précédente zone libre à capturer définie précédemment.
* **Plein Écran** : Capture de l'intégralité de tous les écrans.
* **Écran actuel** : Capture de l'intégralité de l'écran.
* **Fenêtre active** : Capture d'une fenêtre spécifique.
Une fois la capture d'écran effectuée, **Ksnip** offre également des options pour annoter l'image, telles que l'ajout de texte, de formes, de flèches et de surlignage, ainsi que pour enregistrer l'image dans différents formats.
{{ :informatique:linux:applications:pasted:20230328-080622.png }}
===== Annoter vos captures d'écran =====
Vous pouvez facilement annoter vos captures d'écran en ajoutant du texte, des formes, des flèches et du surlignage. Voici comment :
* Capturez votre écran en utilisant l'un des modes de capture proposés par **Ksnip**.
* Une fois la capture effectuée, une fenêtre d'édition s'ouvrira automatiquement.
* Utilisez les outils d'annotation dans la barre d'outils pour ajouter du texte, des formes, des flèches et du surlignage à votre capture d'écran. Vous pouvez également changer la couleur, l'épaisseur et le style des éléments d'annotation.
* Pour ajouter du texte, cliquez sur l'icône "T" dans la barre d'outils, puis cliquez sur l'image où vous souhaitez ajouter le texte. Vous pouvez ensuite saisir votre texte et modifier la police, la taille et la couleur du texte en utilisant les options disponibles.
* Pour ajouter des formes, cliquez sur l'icône de la forme souhaitée dans la barre d'outils, puis cliquez et faites glisser la souris sur l'image pour créer la forme. Vous pouvez modifier la couleur, l'épaisseur et le style de la forme en utilisant les options disponibles.
* Pour ajouter du surlignage, cliquez sur l'icône "Surligner" dans la barre d'outils, puis cliquez et faites glisser la souris sur l'image pour surligner la partie souhaitée.
* Une fois que vous avez terminé l'annotation de votre capture d'écran, enregistrez-la en utilisant l'option "Enregistrer sous" disponible dans le menu Fichier.

View File

@@ -0,0 +1,108 @@
====== Mosquitto : client et serveur MQTT ======
{{ :dummy.png?75x75|Client et serveur MQTT}}
**Mosquitto** est un courtier de messages (ou broker / serveur MQTT) **MQTT** open source. Plus d'infos sur MQTT à la page [[electronique:mqtt:]].
**Mosquitto** peut être utilisé pour implémenter des scénarios tels que la collecte de données de capteurs, la surveillance de l'état des appareils et la gestion de l'IoT en général. Les clients **MQTT** peuvent se connecter à **Mosquitto** pour publier et/ou recevoir des messages sur des topics spécifiques, permettant une communication efficace et fiable entre les appareils.
Dans cet article j'installe **Mosquitto** sur **Rasbperry Pi**. Le port par défaut **1883/tcp** sera utilisé.
===== Installer le service Mosquitto =====
Voici les étapes générales pour installer Mosquitto sur Rasbperry Pi OS, Debian ou Ubuntu :
<code>
sudo apt update
sudo apt install mosquitto
</code>
Après l'installation, vous pouvez vérifier si **Mosquitto** est en cours d'exécution en utilisant la commande ''mosquitto -v'' dans l'invite de commandes. Cela devrait afficher la version de **Mosquitto** et les informations de journalisation.
===== Vérifier laccessibilité du service =====
Pour vous assurer que le port **Mosquitto** est ouvert, vous pouvez utiliser un outil en ligne de commande comme [[informatique:linux:commandes:nmap|nmap]] pour scanner votre adresse IP publique et vérifier si le port 1883 est ouvert. Par exemple, en utilisant la commande suivante : ''nmap -p 1883 adresse_ip_broker''. Si le port **Mosquitto** est ouvert, vous devriez voir une ligne dans la sortie de la commande qui indique que le port 1883 est "open". Je conseille dexécuter ''nmap'' sur un autre ordinateur que celui qui exécute le service Mosquitto.
<code BASH>
nmap -p 1883 rpimqtt
Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-19 08:30 CET
Nmap scan report for rpimqtt (192.168.100.208)
Host is up (0.00085s latency).
rDNS record for 192.168.100.208: rpimqtt.acegrp.lan
PORT STATE SERVICE
1883/tcp open mqtt
Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds
</code>
===== Configurer la connexion identifiée =====
La connexion à Mosquitto peut être anonyme ou avec un nom d'utilisateur et un mot de passe, selon la configuration du serveur. Dans se paragraphe nous abordons la configuration d'un utilisateur.
Pour créer un utilisateur et de définir un mot de passe afin d'accéder à Mosquitto, il faut utiliser l'utilitaire ''mosquitto_passwd'' qui est installé avec **Mosquitto** et permet de gérer les informations d'identification des utilisateurs pour **Mosquitto**.
sudo mosquitto_passwd -c /etc/mosquitto/passwd UTILISATEUR
Plus spécifiquement, cette commande effectue les actions suivantes :
* ''sudo'' permet d'exécuter la commande avec des privilèges d'administrateur pour pouvoir écrire dans le dossier /etc/mosquitto où se trouve le fichier de mots de passe.
* ''mosquitto_passwd'' est l'utilitaire de ligne de commande pour gérer le fichier de mots de passe.
* ''-c'' crée un nouveau fichier de mots de passe s'il n'existe pas déjà, ou remplace un fichier existant.
* ''/etc/mosquitto/passwd'' est le chemin d'accès complet au fichier de mots de passe à créer ou modifier.
* ''UTILISATEUR'' est le nom d'utilisateur à ajouter au fichier de mots de passe. Vous pouvez remplacer ce nom d'utilisateur par le nom que vous souhaitez utiliser.
Une fois que vous avez créé le fichier de mots de passe et ajouté des utilisateurs, vous pouvez utiliser ces informations d'identification pour restreindre l'accès à **Mosquitto**, en configurant l'authentification basée sur le nom d'utilisateur et le mot de passe dans le fichier de configuration de **Mosquitto**. Cela est particulièrement important si vous utilisez **Mosquitto** dans un environnement de production ou si vous souhaitez sécuriser l'accès à votre **broker MQTT**.
Vous devez modifier le fichier de configuration de **Mosquitto** pour autoriser l'authentification basée sur le nom d'utilisateur et le mot de passe.
Ouvrez le fichier de configuration de **Mosquitto**. Le fichier peut être situé à différents endroits en fonction de votre installation. Par exemple, sur une installation standard de Mosquitto sous Linux, le fichier se trouve généralement dans ''/etc/mosquitto/mosquitto.conf''.
Ajoutez les lignes suivantes au fichier de configuration pour spécifier le chemin d'accès au fichier de mots de passe que vous avez créé avec ''mosquitto_passwd'', ainsi que les paramètres d'authentification :
password_file /etc/mosquitto/passwd
allow_anonymous false
Enregistrez le fichier de configuration et redémarrez le service **Mosquitto** pour que les modifications prennent effet :
sudo systemctl restart mosquitto
Après avoir suivi ces étapes, les utilisateurs devront s'authentifier avec un nom d'utilisateur et un mot de passe valides pour publier et souscrire à des messages dans **Mosquitto**. Si l'utilisateur n'a pas les bonnes informations d'identification, il sera refusé d'accès. Cette fonctionnalité de sécurité renforce la sécurité de **Mosquitto** et permet de restreindre l'accès à des utilisateurs de confiance uniquement.
===== Configurer la connexion anonyme =====
La connexion à Mosquitto peut être anonyme ou avec un nom d'utilisateur et un mot de passe, selon la configuration du serveur. Dans ce paragraphe nous abordons la configuration pour une connexion anonyme.
Pour indiquer que la connexion au serveur MQTT est anonyme (sans nom d'utilisateur ni mot de passe), vous devez ajouter les lignes suivantes dans votre fichier de configuration ''/etc/mosquitto/mosquitto.conf'' :
allow_anonymous true
Ceci autorisera les connexions anonymes au serveur MQTT. Si cette option n'est pas définie, toutes les connexions nécessiteront un nom d'utilisateur et un mot de passe valides.
Assurez-vous de redémarrer le serveur MQTT après avoir modifié le fichier de configuration pour que les modifications prennent effet.
Notez que l'utilisation de connexions anonymes peut présenter des risques de sécurité, car cela permet à n'importe qui de se connecter et de publier ou de recevoir des messages sans authentification. Il est donc recommandé d'utiliser des informations d'authentification sécurisées pour protéger votre serveur MQTT.
===== Envoyer / recevoir des messages MQTT =====
**Mosquitto-clients** est un outil en ligne de commande fourni avec le broker **Mosquitto** pour publier et souscrire à des messages MQTT à partir de la ligne de commande.
En d'autres termes, **Mosquitto-clients** permet aux développeurs et aux administrateurs de système de tester et de déboguer des applications **MQTT** en utilisant des commandes simples pour publier et recevoir des messages. Cela peut être utile pour vérifier la connectivité, le flux de données et le traitement des messages entre les appareils et le broker Mosquitto.
Pour installer les **clients Mosquitto**, y compris le client de ligne de commande ''mosquitto_sub'' et le client d'envoi ''mosquitto_pub'', vous pouvez suivre ces étapes :
sudo apt update
sudo apt install mosquitto-clients
Vous pouvez maintenant utiliser les clients Mosquitto pour publier et souscrire à des messages dans Mosquitto.
Par exemple, vous pouvez utiliser la commande ''mosquitto_pub'' pour __publier des messages MQTT__ à un topic ''sensor/elec'' :
mosquitto_pub -h localhost -t sensor/elec -m 2546
Par exemple vous pouvez utiliser la commande ''mosquitto_sub'' pour souscrire au topic ''sensor/elec'' et __recevoir des messages MQTT__ :
mosquitto_sub -h localhost -t "sensor/elec"

View File

@@ -0,0 +1,73 @@
====== Nano ======
**Nano** est un éditeur de texte en ligne de commande pour les systèmes d'exploitation de type Unix et Linux. Il est conçu pour être simple, facile à utiliser et possède une interface utilisateur intuitive. **Nano** est considéré comme étant plus convivial que les éditeurs de texte en ligne de commande traditionnels tels que vi ou emacs.
Avec **Nano**, les utilisateurs peuvent créer, modifier et visualiser des fichiers de texte brut, comme des scripts shell, des fichiers de configuration et des fichiers de texte. Il offre des fonctionnalités telles que la coloration syntaxique, la numérotation des lignes, la recherche et le remplacement, la copie et le collage, l'annulation et la répétition des commandes, et bien plus encore.
**Nano** est souvent inclus dans les distributions **Linux** et **Unix** par défaut et est disponible gratuitement et sous licence libre. C'est un outil très utile pour les développeurs, les administrateurs système et tout utilisateur de ligne de commande qui a besoin d'éditer des fichiers texte rapidement et facilement.
===== Exécuter le programme nano =====
Pour exécuter Nano, vous devez ouvrir une fenêtre de terminal sur votre système d'exploitation de type Unix ou Linux. Ensuite, vous pouvez taper la commande ''nano'' suivie du nom du fichier que vous souhaitez ouvrir, créer ou modifier. Par exemple, si vous voulez ouvrir le fichier ''monfichier.txt'' avec Nano, vous pouvez taper la commande suivante :
nano monfichier.txt
Si le fichier ''monfichier.txt'' existe déjà, Nano l'ouvrira dans l'éditeur et vous pourrez le modifier. Si le fichier n'existe pas encore, Nano le créera et l'ouvrira pour que vous puissiez commencer à taper du texte.
Une fois que vous êtes dans l'interface de Nano, vous pouvez utiliser les commandes spécifiques à Nano pour naviguer dans le fichier, effectuer des modifications et enregistrer vos changements. Pour quitter Nano, vous pouvez utiliser la commande <key>Ctrl</key>+<key>X</key>, qui vous demandera si vous voulez enregistrer les modifications apportées au fichier. Si vous avez enregistré les modifications, le fichier sera mis à jour avec vos modifications et vous serez ramené à la ligne de commande. Si vous n'avez pas enregistré les modifications, vous serez invité à confirmer que vous voulez quitter sans enregistrer.
===== Configurer léditeur de texte nano avec nanorc =====
{{ :informatique:linux:pasted:20211212-075412.png|L'éditeur nano sous Linux aux petits oignons.}}
La configuration de **Nano** en utilisant le fichier ''.nanorc'' est généralement prise en charge par la plupart des distributions de Linux et peut être utilisée dans de nombreuses versions. Cependant, la manière dont vous devrez configurer Nano peut varier légèrement en fonction de la distribution Linux que vous utilisez.
En règle générale, vous pouvez placer le fichier ''.nanorc'' dans le répertoire ~/.config/nano/ pour la plupart des distributions modernes, y compris **Debian**, **Ubuntu**, **Fedora**, **Arch Linux**, **CentOS** et **OpenSUSE**. Ce répertoire contient généralement les fichiers de configuration pour les applications.
Il est également possible que la configuration de Nano soit stockée dans un emplacement différent en fonction de la version de Nano que vous utilisez. Par exemple, sur certaines versions plus anciennes de Nano, vous pouvez trouver le fichier de configuration dans ''~/.nanorc''.
Il faut éditer le fichier ''.nanorc'' afin sauvegarder vos préférence de léditeur de texte **nano**.
Ajoutez l'une de ces options si vous le souhaitez :
Nombre d'espace dans la tabulation
<code>
set tabsize 4
</code>
Insérer des espaces à la place des tabulations
<code>
set tabstospaces
</code>
Effectuer une auto indentation
<code>
set autoindent
</code>
===== Configurer la coloration syntaxique =====
Vous pouvez utiliser les exemples ci-dessous pour activer la coloration syntaxique suivant l'extension du fichier.
<code BASH>
## Set the syntax for CSV files and the color for fields to yellow
syntax "csv" "\.csv$"
color yellow "\"[^\"]*\"|'[^']*'|[^,]*"
## Set the syntax for shell scripts and the color for commands to green
syntax "shell" "\.sh$"
color green "\<(if|for|fi|break|done|else|echo|cd|chmod|chown|cp|grep|kill|ls|mkdir|mv|ps|pwd|rm|rsync|scp|ssh|sudo|tail|top|touch|vi|vim|wget)\>"
## Set the color for SQL keywords to blue
syntax "SQL" "\.sql$"
color blue "\<(SELECT|FROM|WHERE|AND|OR|INSERT INTO|VALUES|UPDATE|SET|DELETE FROM|GROUP BY|ORDER BY|JOIN|LEFT JOIN|RIGHT JOIN|ON)\>"
</code>
===== Convertir un fichier avec des tabulations en espaces =====
Pour convertir des tabulations en espaces d'un fichier ''exemple.txt'' on peut utiliser la command [[informatique:linux:commandes:expand]] :
expand -4 exemple.txt > exemple.txt

View File

@@ -0,0 +1,43 @@
====== Opus Tools ======
{{ :dummy.png?75x75|}}
La suite **Opus Tools** est un ensemble d'outils de ligne de commande pour travailler avec des fichiers audio encodés en Opus.
Pour installer **Opus Tools** sous Fedora, vous pouvez utiliser la commande suivante dans un terminal :
sudo dnf install opus-tools
Cette commande va installer le paquet ''opus-tools'', qui contient opusenc ainsi que d'autres utilitaires pour travailler avec des fichiers audio Opus.
Voici quelques-uns des outils inclus dans la suite opus-tools :
* **opusenc** : un encodeur pour le codec audio Opus qui permet de convertir des fichiers audio en fichiers Opus avec différentes options de qualité et de débit binaire.
* **opusdec** : un décodeur pour le codec audio Opus qui permet de convertir des fichiers audio Opus en fichiers audio non compressés.
* **opusinfo** : un outil qui permet d'afficher des informations sur les fichiers audio encodés en Opus, telles que la durée, le taux d'échantillonnage, le débit binaire et la qualité.
* **opusrtp** : un outil qui permet d'encapsuler des paquets Opus dans des paquets RTP (Real-time Transport Protocol) pour la diffusion en continu de voix sur IP.
* **opusfile** : une bibliothèque C qui permet de lire et d'écrire des fichiers audio encodés en Opus.
La suite **Opus Tools** est distribuée sous la licence BSD et est disponible pour plusieurs systèmes d'exploitation, notamment Linux. Les outils de la suite **Opus Tools** sont souvent utilisés par les développeurs de logiciels pour inclure la prise en charge du codec Opus dans leurs produits.
===== opusenc =====
**Opusenc** est un encodeur pour le codec audio Opus, qui est un codec de compression audio ouvert et sans perte. **Opusenc** est un programme en ligne de commande qui permet de convertir des fichiers audio en fichiers Opus avec différentes options de qualité et de débit binaire.
Le **codec Opus** est conçu pour fournir une qualité sonore élevée avec une faible latence et une faible utilisation de la bande passante. Il peut être utilisé pour une variété d'applications telles que la voix sur IP, la diffusion en continu et la téléphonie. Opus prend en charge des débits binaires allant de 6 kbps à 510 kbps et des taux d'échantillonnage allant jusqu'à 48 kHz.
**Opusenc** est un logiciel libre distribué sous la licence BSD. Il est disponible pour plusieurs systèmes d'exploitation, notamment Windows, macOS et Linux. Le logiciel est souvent utilisé par les développeurs de logiciels pour inclure la prise en charge du codec Opus dans leurs produits.
En résumé, **Opusenc** est un encodeur pour le codec audio Opus, qui est un codec de compression audio ouvert et sans perte. Il permet de convertir des fichiers audio en fichiers Opus avec différentes options de qualité et de débit binaire. **Opusenc** est disponible pour plusieurs systèmes d'exploitation et est souvent utilisé par les développeurs de logiciels pour inclure la prise en charge du codec Opus dans leurs produits.
Pour encoder des fichiers audio en Opus on utilise une commande similaire à celle-ci :
opusenc --bitrate 64 input.wav output.opus
Cette commande encodera le fichier audio ''input.wav'' en utilisant un débit binaire de 64 kbps et produira un fichier de sortie nommé ''output.opus''.
Vous pouvez ajuster la qualité de l'encodage en utilisant différentes options de qualité et de débit binaire avec ''opusenc''.

View File

@@ -0,0 +1,36 @@
====== OCRFeeder ======
{{ :dummy.png?75x75|Nom de la section}}
**OCRFeeder** est une application open source qui permet de reconnaître et d'extraire du texte à partir d'images ou de documents numérisés. Le terme OCR signifie "Optical Character Recognition" (Reconnaissance Optique de Caractères en français), et **OCRFeeder** est conçu pour automatiser ce processus en convertissant des images contenant du texte en texte éditable.
===== Installation =====
Pour installer **OCRFeeder** sous Fedora, vous devez utiliser le gestionnaire de paquets **Flatpak**. Voici les étapes pour installer **OCRFeeder** :
1. Assurez-vous que Flatpak est installé sur votre système. Si ce n'est pas le cas, vous pouvez l'installer en utilisant DNF (ou YUM) avec la commande suivante :
<code>
sudo dnf install flatpak
</code>
2. Après avoir installé **Flatpak**, ajoutez le référentiel **Flathub**, qui est l'un des dépôts **Flatpak** les plus populaires. Vous pouvez l'ajouter avec la commande suivante :
<code>
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
</code>
3. Une fois le référentiel Flathub ajouté, vous pouvez rechercher OCRFeeder et l'installer avec la commande suivante :
<code>
sudo flatpak install flathub org.gnome.OCRFeeder
</code>
{{ :informatique:linux:applications:pasted:20230924-090605.png }}
===== Quelques liens associés =====
* [[https://flathub.org/apps/org.gnome.OCRFeeder|OCRFeeder chez flathub.org]]
--- //[[user:cedricabonnel]]//

View File

@@ -0,0 +1,10 @@
====== podman ======
{{ :dummy.png?75x75|}}
Podman est un outil open source de gestion de conteneurs pour les systèmes d'exploitation Linux. Il permet aux utilisateurs de créer, gérer et exécuter des conteneurs à partir de la ligne de commande, sans nécessiter l'utilisation d'un démon de conteneur séparé.
Contrairement à d'autres outils de conteneurisation tels que Docker, Podman ne nécessite pas de privilèges root pour fonctionner, ce qui le rend plus sécurisé et plus facile à utiliser pour les utilisateurs non privilégiés. De plus, Podman utilise un format de stockage de conteneurs standard appelé OCI (Open Container Initiative), qui garantit la compatibilité avec d'autres outils de conteneurisation.
Podman prend également en charge les fonctionnalités avancées telles que la gestion des réseaux, la gestion des volumes, la création d'images de conteneurs et l'intégration avec des outils de gestion de clusters tels que Kubernetes. Il est souvent utilisé pour le déploiement d'applications conteneurisées dans des environnements de production.
> https://fedoramagazine.org/podman-checkpoint-in-fedora-linux/

View File

@@ -0,0 +1,22 @@
====== QEMU ======
{{ :dummy.png?75x75|Virtualisation}}
QEMU est un émulateur de processeur, qui permet d'exécuter des programmes destinés à un système d'exploitation différent de celui de l'hôte. Cela permet par exemple d'exécuter un système d'exploitation destiné à une architecture matérielle différente (par exemple un système d'exploitation destiné à une architecture ARM sur un ordinateur x86), ou encore de tester une nouvelle version d'un système d'exploitation sans avoir à l'installer directement sur un ordinateur.
QEMU fonctionne en émulant les instructions du processeur de la machine cible, en utilisant la traduction binaire dynamique (dynamic binary translation). Cela signifie que les instructions du processeur sont traduites en temps réel en instructions équivalentes pour l'hôte. Cette technique permet à QEMU de simuler les périphériques de la machine cible (disques, réseau, etc.) et de gérer l'interaction entre le système d'exploitation invité et le matériel hôte.
QEMU peut être utilisé avec diverses architectures de processeurs, tels que x86, ARM, MIPS, PowerPC, etc. Il est également compatible avec plusieurs systèmes d'exploitation invités, tels que Linux, Windows, FreeBSD, etc.
QEMU offre également une fonctionnalité de virtualisation, qui permet d'exécuter des systèmes d'exploitation invités de manière plus performante en utilisant les extensions de virtualisation du processeur hôte. Cette technique permet à QEMU d'exécuter des machines virtuelles à des performances proches de celles d'une machine physique, en évitant la traduction binaire dynamique à chaque instruction.
Bien que QEMU soit un émulateur de processeur puissant et flexible, il présente certains inconvénients par rapport à la solution de virtualisation KVM (Kernel-based Virtual Machine) :
* Performances : Comme QEMU utilise la traduction binaire dynamique pour émuler les instructions du processeur, cela peut entraîner une surcharge importante, ce qui peut entraîner des performances plus faibles que celles obtenues avec KVM. En revanche, KVM utilise la virtualisation matérielle pour exécuter les machines virtuelles, ce qui lui permet d'obtenir des performances très proches de celles d'une machine physique.
* Gestion de la mémoire : QEMU utilise une gestion de la mémoire traditionnelle, qui peut être moins efficace que celle utilisée par KVM, qui utilise la virtualisation assistée par le matériel pour optimiser l'utilisation de la mémoire.
* Sécurité : Étant donné que QEMU utilise la traduction binaire dynamique pour émuler les instructions du processeur, cela peut poser des problèmes de sécurité potentiels, car un code malveillant pourrait exploiter les vulnérabilités de cette technique. En revanche, KVM utilise des extensions de virtualisation matérielle pour isoler les machines virtuelles les unes des autres et du système hôte, ce qui améliore la sécurité.
--- //[[user:CPT]]//

View File

@@ -0,0 +1,36 @@
====== SGBD ======
Un SGBD est l'acronyme de **Système de Gestion de Base de Données**, c'est un logiciel informatique qui permet de stocker, organiser, gérer et manipuler des données dans une base de données.
Le **SGBD** fournit une interface pour les utilisateurs et les applications qui leur permet d'ajouter, de modifier, de supprimer et de consulter des données dans la base de données, tout en s'assurant que les données sont cohérentes, précises, fiables et sécurisées. Le **SGBD** est également responsable de l'optimisation des requêtes pour améliorer les performances de la base de données, de la gestion des transactions pour garantir l'intégrité des données, de la gestion des accès et des autorisations pour contrôler l'accès à la base de données, et de la sauvegarde et de la récupération de données pour assurer la disponibilité et la récupération des données en cas de panne.
Les **SGBD** sont utilisés dans de nombreux domaines, tels que les entreprises, les organisations gouvernementales, les institutions académiques et les applications web. Les exemples de **SGBD** populaires comprennent **PostgreSQL**, **MySQL**, **MariaDB**, **Oracle**, **Microsoft SQL Server**, **MongoDB** et **Cassandra**.
===== Table des matières =====
<WRAP clear/>
<WRAP group>
<WRAP half column>
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
<WRAP half column>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
</WRAP>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,46 @@
====== Base de données MariaDB ======
**MariaDB** est un système de gestion de base de données relationnelle (SGBD) open-source, créé par les développeurs qui ont initié le développement de **MySQL**. Il est conçu pour être une alternative à **MySQL**, offrant des fonctionnalités similaires tout en ajoutant des améliorations et des nouvelles fonctionnalités.
**MariaDB** utilise le langage de requête SQL (Structured Query Language) pour gérer les bases de données et permet de stocker, organiser, rechercher et récupérer des données.
Les caractéristiques clés de **MariaDB** incluent la compatibilité avec **MySQL**, la haute disponibilité, la scalabilité, la sécurité, la réplication et la gestion des transactions. Il offre également une variété de moteurs de stockage, y compris **InnoDB**, **MyISAM** et **Aria**, pour offrir des fonctionnalités de stockage flexibles pour les différents cas d'utilisation.
En raison de sa licence open source, **MariaDB** est utilisé par de nombreuses organisations pour stocker et gérer des données de toutes tailles et de tous types. Il est souvent utilisé dans des environnements d'entreprise pour des applications critiques telles que les systèmes de gestion de contenu (CMS), les systèmes de gestion de l'information (SGI), les applications Web et les systèmes de business intelligence.
En 1995 est sortie la première version internationale du SGBD open source MySQL de **MySQL AB**.
En 2009, à la suite du rachat de **MySQL** par **Sun Microsystems** et des annonces du rachat de **Sun Microsystems** par **Oracle Corporation**, le fondateur de MySQL quitte cette société pour lancer le projet **MariaDB**, dans une démarche visant à remplacer **MySQL** tout en assurant linteropérabilité.
À ce jour, en octobre 2020, le SGBD standard libre de diffusion (licence GPL) s'appelle **MariaDB Community Server**. Certains moteurs proposés par MariaDb (MaxScale) sont soumis aux termes de la licence **Business Source License** (BSL), licence payante dans certaines conditions.
À partir de la version 8.0, **MariaDB** n'assure plus la compatibilité parfaite de MySQL au niveau binaire.
Voir les notes des versions : [[https://mariadb.com/kb/en/release-notes/]]
===== Table des matières =====
<WRAP clear/>
<WRAP group>
<WRAP half column>
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
<WRAP half column>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
</WRAP>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,42 @@
====== Installer MariaDB-Server ======
Pour installer MariaDB-server sous Debian, vous pouvez suivre les étapes suivantes.
<panel>
Mettez à jour le système en exécutant la commande suivante :
sudo apt-get update
</panel>
<panel>Installez le paquet ''mariadb-server'' en exécutant la commande suivante :
sudo apt-get install mariadb-server
Pendant l'installation, vous serez invité à saisir un mot de passe pour l'utilisateur root de la base de données MariaDB. Entrez un mot de passe fort et notez-le soigneusement.
</panel>
<panel>
Une fois l'installation terminée, vous pouvez démarrer le service MariaDB en exécutant la commande suivante :
sudo systemctl start mariadb
</panel>
<panel>
Vous pouvez vérifier que le service est en cours d'exécution en exécutant la commande suivante :
sudo systemctl status mariadb
</panel>
<panel>
Si vous voulez que MariaDB démarre automatiquement au démarrage de votre système, vous pouvez activer le service en exécutant la commande suivante :
sudo systemctl enable mariadb
</panel>
<panel>
Et voilà, MariaDB est maintenant installé sur votre système Debian. Vous pouvez accéder à la console MariaDB en exécutant la commande suivante :
sudo mariadb
Et vous pouvez utiliser la commande exit pour quitter la console.
</panel>

View File

@@ -0,0 +1,28 @@
====== Maintenance ======
===== Table des matières =====
<WRAP clear/>
<WRAP group>
<WRAP half column>
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
<WRAP half column>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
</WRAP>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,17 @@
====== Savoir si MariaDB est installé ======
{{ :dummy.png?75x75|}}
Sous Linux, pour savoir si MariaDB est installé sur un système, vous pouvez utiliser l'une des méthodes suivantes :
<panel>
Vous pouvez ouvrir un terminal et exécuter la commande suivante pour vérifier si PostgreSQL est installé :
sudo systemctl status mariadb
Cette commande va afficher le statut de **MariaDB** s'il est installé sur votre système. Si vous voyez un message indiquant que le service est actif (running) et que le processus est en cours d'exécution, cela signifie que **MariaDB** est installé et en cours d'exécution.
{{ informatique:linux:sgbd:mysql:pasted:20230216-004307.png }}
</panel>
Si **MariaDB** n'est pas installé sur votre système, vous verrez un message d'erreur indiquant que le service n'est pas trouvé. Dans ce cas, vous pouvez l'installer en utilisant la commande appropriée pour votre distribution Linux (par exemple, ''sudo apt-get install mariadb-server'' pour les distributions basées sur **Debian**/**Ubuntu** ou ''sudo yum install mariadb-server'' pour les distributions basées sur **Red Hat**/**CentOS**/**Fedora**).

View File

@@ -0,0 +1,28 @@
====== Scripts ======
===== Table des matières =====
<WRAP clear/>
<WRAP group>
<WRAP half column>
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
<WRAP half column>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
</WRAP>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,35 @@
====== Base de données PostgreSQL ======
**PostgreSQL** est un système de gestion de bases de données relationnelles (SGBDR) open source, également connu sous le nom de **Postgres**. Il est conçu pour stocker et gérer des données structurées, telles que des informations de clients, des transactions financières ou des données de suivi de production. **PostgreSQL** est utilisé par de nombreuses entreprises, organisations et gouvernements du monde entier pour stocker et gérer des données importantes et sensibles.
**PostgreSQL** est connu pour sa fiabilité, sa stabilité et sa conformité aux normes du secteur, telles que SQL et ACID (Atomicité, Cohérence, Isolation, Durabilité). Il offre également des fonctionnalités avancées telles que les transactions, les vues, les déclencheurs, les procédures stockées, les fonctions utilisateur, la réplication et la gestion de la sécurité.
**PostgreSQL** est distribué sous une licence open source, ce qui signifie qu'il est gratuit et peut être utilisé, modifié et distribué librement. En raison de sa stabilité, de sa sécurité et de sa flexibilité, **PostgreSQL** est souvent choisi comme alternative aux systèmes de gestion de bases de données commerciaux tels qu'**Oracle** ou **Microsoft SQL Server**.
===== Table des matières =====
<WRAP clear/>
<WRAP group>
<WRAP half column>
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
<WRAP half column>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
</WRAP>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,19 @@
====== Écrire dans un fichier CSV ======
{{ :dummy.png?75x75|}}
Voici une commande SQL qui permet de copier des données d'une table **PostgreSQL** vers un **fichier CSV**.
Depuis le prompt de commande de PostgreSQL (psql) :
<code>
\COPY (SELECT DISTINCT * FROM files t1 WHERE EXISTS ( SELECT * FROM files t2 WHERE t1.ID <> t2.ID AND t1.sha1 = t2.sha1 )) TO '/home/cedric/doublons.csv' WITH (FORMAT csv, DELIMITER ';')
</code>
* ''\COPY'' est une commande SQL spécifique à **PostgreSQL** qui permet de copier des données depuis ou vers un fichier.
* ''TO '/home/cedric/doublons.csv''' spécifie le chemin d'accès et le nom du fichier CSV dans lequel les données sélectionnées doivent être copiées.
* ''WITH (FORMAT csv, DELIMITER ';')'' spécifie le format de sortie et le délimiteur de champ du fichier CSV.
--- //[[user:cedricabonnel]]//

View File

@@ -0,0 +1,33 @@
====== psql ======
{{ :dummy.png?75x75|}}
**psql** est un outil puissant pour gérer les bases de données **PostgreSQL** en ligne de commande, et est souvent utilisé par les administrateurs de base de données, les développeurs, les analystes de données et les scientifiques de données pour travailler avec des données stockées dans une base de données **PostgreSQL**.
===== Table des matières =====
<WRAP clear/>
<WRAP group>
<WRAP half column>
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
<WRAP half column>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
</WRAP>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,43 @@
====== Savoir si PostgreSQL est installé ======
{{tag>"script linux"}}
{{ :dummy.png?75x75|Nom de la section}}
Sous Linux, pour savoir si PostgreSQL est installé sur un système, vous pouvez utiliser l'une des méthodes suivantes :
<panel>
Vous pouvez ouvrir un terminal et exécuter la commande suivante pour vérifier si PostgreSQL est installé :
psql --version
Si PostgreSQL est installé, cette commande affichera la version de PostgreSQL installée. Si PostgreSQL n'est pas installé, vous recevrez un message d'erreur indiquant que la commande n'a pas été trouvée.
</panel>
<panel>
Si vous voulez vérifier si **PostgreSQL** est installé sur votre système Linux mais que **psql** n'est pas disponible, vérifier les services en cours d'exécution. Vous pouvez vérifier si le service PostgreSQL est en cours d'exécution sur votre système en utilisant la commande suivante :
sudo systemctl status postgresql
Cette commande affichera le statut du service PostgreSQL s'il est installé et en cours d'exécution. Si le service n'est pas installé, vous recevrez un message d'erreur indiquant que le service est introuvable.
</panel>
<panel>
**PostgreSQL** est généralement installé dans le répertoire ''/usr/lib/postgresql/'' suivi du numéro de version de **PostgreSQL** installé. Vous pouvez vérifier si ce répertoire existe en utilisant la commande suivante :
ls /usr/lib/postgresql/
</panel>
<panel>
**PostgreSQL** utilise plusieurs fichiers de configuration pour fonctionner, tels que ''pg_hba.conf'', ''postgresql.conf'', etc. Vous pouvez vérifier si ces fichiers existent sur votre système en utilisant la commande suivante :
ls /etc/postgresql/
</panel>
<panel>
Le fichier ''pg_hba.conf'' est un fichier de configuration utilisé par **PostgreSQL** pour contrôler l'accès aux bases de données. Voici comment rechercher ce fichier dans votre système Linux :
sudo find / -name pg_hba.conf
</panel>
Si **PostgreSQL** n'est pas installé sur votre système, vous devrez l'installer avant de pouvoir l'utiliser.

View File

@@ -0,0 +1,18 @@
{{ :informatique:1200px-gnulinux.jpg?75x75|GNU / Linux}}
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,59 @@
====== signal ======
{{ :informatique:linux:applications:pasted:20230223-132048.png?150x}}
Signal est une application de messagerie instantanée sécurisée et privée pour les appareils mobiles et de bureau. Elle permet aux utilisateurs d'envoyer des messages, des appels vocaux et des appels vidéo à d'autres utilisateurs de Signal, en utilisant une connexion Internet.
Signal est particulièrement connu pour sa sécurité et sa confidentialité élevées, car toutes les communications sont chiffrées de bout en bout, ce qui signifie que personne d'autre que l'expéditeur et le destinataire ne peut accéder au contenu des messages.
Signal est également open source, ce qui signifie que le code source de l'application est accessible au public, ce qui permet à tout le monde de vérifier la sécurité de l'application et de contribuer à son développement.
Signal a gagné en popularité ces dernières années, en particulier auprès de ceux qui sont préoccupés par la confidentialité de leurs communications en ligne.
===== Installer Signal sous Red-hat / Cent OS / Fedora =====
Il n'y a pas de paquet RPM officiel disponible pour installer **Signal**. Cependant, il existe des alternatives telles que **Flatpak** qui permettent d'installer Signal.
{{ :informatique:linux:applications:pasted:20230223-114330.png}}
Ajouter un nouveau référentiel (ou dépôt) à **Flatpak** :
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Cette commande ajoute le référentiel **Flathub** à la liste des référentiels **Flatpak** disponibles sur votre système. **Flathub** est un référentiel populaire qui contient des applications **Flatpak** pré-compilées pour une grande variété de distributions Linux.
Le paramètre ''--if-not-exists'' indique à ''Flatpak'' de ne pas ajouter le référentiel si celui-ci est déjà présent sur le système.
--
Télécharger et installer l'application **Signal** à partir de **Flathub** :
flatpak install https://dl.flathub.org/repo/appstream/org.signal.Signal.flatpakref
Cette commande télécharge le fichier ''org.signal.Signal.flatpakref'' qui contient des informations sur l'application Signal et ses dépendances, ainsi que des instructions pour télécharger et installer l'application. La commande **Flatpak** utilise ensuite ces informations pour télécharger et installer l'application **Signal** et toutes ses dépendances nécessaires.
===== Utiliser Signal =====
Vous pouvez exécuter l'application **Signal** en utilisant la commande ''flatpak run org.signal.Signal'' si vous l'avez installer avec ou en cherchant l'icône de l'application dans le menu de votre environnement de bureau.
Pour utiliser l'application **Signal**, vous devrez créer un compte Signal. Vous pouvez le faire en utilisant un numéro de téléphone portable, et l'application vous guidera tout au long du processus de création de compte.
===== Connexions simultanées =====
Vous pouvez utiliser **Signal** sur votre téléphone et votre PC simultanément. **Signal** prend en charge la synchronisation multi-appareils, ce qui signifie que vous pouvez accéder à votre compte **Signal** et à vos conversations à partir de plusieurs appareils en même temps.
Pour utiliser **Signal** sur plusieurs appareils, vous devez d'abord vous assurer que vous avez la dernière version de **Signal** installée sur votre téléphone et votre PC. Ensuite, vous devez activer la fonctionnalité de synchronisation multi-appareils dans les paramètres de **Signal** sur votre téléphone.
Une fois que vous avez activé la synchronisation multi-appareils, vous pouvez vous connecter à **Signal** sur votre PC en utilisant l'application de bureau **Signal**. Vous devrez scanner un code QR à l'aide de l'application de bureau **Signal** pour connecter votre compte **Signal** à l'application de bureau.
Une fois que vous êtes connecté à **Signal** sur votre PC, vous pouvez envoyer et recevoir des messages, des appels vocaux et des appels vidéo à partir de votre PC, en plus de votre téléphone. Les conversations et les messages seront synchronisés sur tous vos appareils, ce qui signifie que vous pouvez passer facilement de votre téléphone à votre PC sans perdre l'historique de vos conversations.
===== Bibliographie =====
* Télécharge Signal : https://signal.org/fr/download/#
* Documentation officielle de Flatpak : https://flatpak.org/documentation/
* Flathub : https://flathub.org/apps/details/org.signal.Signal
Flathub propose des informations sur les applications disponibles et les instructions d'installation, notamment des fichiers ''.flatpakref'' pour chaque application, qui peuvent être installés à l'aide de la commande ''flatpak install''.

View File

@@ -0,0 +1,17 @@
====== Simple Screen Recoder ======
**SimpleScreenRecorder** est un logiciel libre et gratuit pour l'enregistrement de l'écran sous Linux. Il permet aux utilisateurs d'enregistrer leur écran avec une grande variété d'options, notamment l'enregistrement audio, l'enregistrement de la webcam, la sélection d'une zone de l'écran à enregistrer, etc.
Le logiciel est facile à utiliser et peut être utilisé pour diverses tâches, telles que la création de tutoriels, l'enregistrement de jeux vidéo, l'enregistrement de conférences et de présentations, et bien plus encore. Il est également doté de fonctionnalités avancées, telles que l'enregistrement à des fréquences d'images élevées et la possibilité de compresser les fichiers vidéo en temps réel pour réduire leur taille.
**SimpleScreenRecorder** est compatible avec la plupart des distributions Linux et est disponible dans les dépôts de la plupart des distributions populaires. Il est largement considéré comme l'un des meilleurs logiciels d'enregistrement d'écran disponibles sous Linux.
Il peut être utilisé sur d'autres environnements de bureau tels que GNOME, KDE Plasma, Xfce, LXQt et d'autres. SimpleScreenRecorder prend en charge Wayland depuis la version 0.4.3, publiée en janvier 2020, X11 et OpenGL.
**SimpleScreenRecorder** est disponible dans le référentiel **RPMFusion-Free**, qui est un référentiel tiers pour les distributions Linux telles que **Fedora** et **CentOS**.
Pour installer **SimpleScreenRecorder** à partir de **RPMFusion-Free**, vous devez d'abord activer ce référentiel sur votre système. Vous pouvez le faire en installant le package **rpmfusion-free-release**, qui contient les informations de configuration nécessaires pour activer le référentiel.
Une fois le référentiel activé, vous pouvez installer **SimpleScreenRecorder** en utilisant votre gestionnaire de paquets préféré. Par exemple :
sudo dnf install simplescreenrecorder

View File

@@ -0,0 +1,12 @@
====== soundux ======
{{ :dummy.png?75x75|soundboard}}
**Soundux** est un **soundboard**.
Un **soundboard** est un équipement électronique ou un logiciel utilisé pour jouer des extraits audio pré-enregistrés. Les **soundboards** sont souvent utilisés pour créer des effets sonores en direct, comme des bruits de foule, des rires ou des sons d'explosions. Ils sont souvent utilisés par les producteurs de contenu en ligne tels que les **streamers** pour ajouter des effets sonores amusants à leur contenu en direct.
* https://soundux.rocks/
{{ :informatique:linux:applications:pasted:20230220-083001.png }}

View File

@@ -0,0 +1,31 @@
====== Tiny Media Manager ======
{{ :informatique:linux:applications:pasted:20230314-085633.png?254}}
Tiny Media Manager est un logiciel open-source et multi-plateforme conçu pour gérer et organiser les collections de fichiers multimédias, tels que les films, les séries TV et les musiques. Il permet aux utilisateurs de rechercher des informations sur leurs fichiers multimédias à partir de bases de données en ligne, d'éditer les métadonnées, de renommer les fichiers en utilisant des conventions de nommage cohérentes et d'exporter des listes de lecture.
Tiny Media Manager est facile à utiliser et possède une interface utilisateur intuitive. Il prend en charge plusieurs langues et peut se connecter à des bases de données en ligne telles que IMDb, TheTVDB et MusicBrainz pour récupérer des informations sur les fichiers multimédias. Il peut également récupérer les affiches, les images de fond et les informations de sous-titres pour les fichiers vidéo.
Les fonctionnalités de Tiny Media Manager incluent la recherche et la récupération automatique d'informations, le tri et le filtrage des fichiers multimédias, l'édition des métadonnées, la mise à jour des fichiers multimédias en bloc, la gestion des listes de lecture, la prise en charge de multiples sources de fichiers et la possibilité d'exporter des fichiers CSV et HTML.
Tiny Media Manager fonctionne avec Java.
<code bash>
sudo dnf install java
sudo dnf install libmediainfo
</code>
Je télécharge l'archive sur le site Internet. Puis je procède à l'extraction de l'archive dans un dossier ''opt/tinyMediaManager'' de mon **home**.
<code bash>
mkdir -p ~/opt/tinyMediaManager
cd ~/opt/tinyMediaManager
tar xzvf ~/Téléchargements/tmm_2.9.2_4c5fcb0_linux.tar.gz
./tinyMediaManager.sh
</code>
<code bash>
cp ~/opt/tinyMediaManager/.desktop ~/.local/share/applications
</code>

View File

@@ -0,0 +1,45 @@
====== trash cli ======
{{tag>"script linux"}}
{{ :dummy.png?75x75|Nom de la section}}
**trash-cli** est un ensemble d'outils en ligne de commande pour Linux qui permettent de déplacer les fichiers et les répertoires vers la corbeille au lieu de les supprimer définitivement. Cela permet de récupérer des fichiers accidentellement supprimés ou de restaurer des fichiers supprimés plus tard si nécessaire.
Le paquet **trash-cli** fournit plusieurs commandes utiles pour gérer la corbeille depuis la ligne de commande, notamment :
* [[informatique:linux:commandes:trash-put|trash-put]] : pour déplacer un fichier ou un répertoire vers la corbeille
* [[informatique:linux:commandes:trash-list|trash-list]] : pour afficher une liste de tous les fichiers présents dans la corbeille
* [[informatique:linux:commandes:trash-empty|trash-empty]] : pour vider complètement la corbeille
* [[informatique:linux:commandes:trash-restore|trash-restore]] : pour restaurer un fichier depuis la corbeille
Le paquet **trash-cli** est disponible dans les dépôts de la plupart des distributions Linux et peut être installé à l'aide de la commande de gestion de paquets de la distribution.
Le package **trash-cli**, qui peut être installé à l'aide de la commande suivante sur Ubuntu ou Debian :
sudo apt update
sudo apt install trash-cli
Le package **trash-cli** peut-être installé à l'aide de la commande suivante sur Fedora :
sudo dnf install trash-cli
===== Avertissements =====
Les outils ''trash-cli'' pour Linux sont conçus pour fonctionner avec le système de corbeille standard de **FreeDesktop.org**, également connu sous le nom de spécification **Trash**. Cette spécification est largement utilisée dans de nombreux environnements de bureau Linux, notamment :
* GNOME (environnement de bureau GNOME et Cinnamon)
* KDE (environnement de bureau KDE Plasma)
* Xfce (environnement de bureau Xfce)
* LXDE (environnement de bureau LXDE)
* Unity (environnement de bureau Unity)
Si votre environnement de bureau Linux respecte la spécification **Trash**, vous pouvez utiliser les outils ''trash-cli'' pour gérer les fichiers supprimés en toute sécurité.
--- //[[user:cedricabonnel]]//

View File

@@ -0,0 +1,147 @@
====== virsh ======
{{ :dummy.png?75x75|}}
La commande ''virsh'' est une interface en ligne de commande pour la gestion des machines virtuelles et des réseaux sur des hôtes utilisant libvirt, une bibliothèque open-source pour la virtualisation.
===== Installation =====
La commande **virsh** est fournie par le paquet **libvirt-client**. Sur les distributions Linux basées sur Debian, vous pouvez l'installer en utilisant la commande suivante :
<code>
sudo apt install libvirt-clients
</code>
Sur les distributions Linux basées sur Fedora, vous pouvez l'installer en utilisant la commande suivante :
<code>
sudo dnf install libvirt-client
</code>
Une fois le paquet **libvirt-client** installé, vous pouvez utiliser la commande **virsh** pour gérer les machines virtuelles et les réseaux.
===== Description =====
**virsh** permet de gérer les machines virtuelles en utilisant des commandes pour créer, supprimer, démarrer, arrêter et afficher les informations sur les machines virtuelles.
Voici quelques exemples de commandes **virsh** courantes pour la gestion des machines virtuelles :
* ''virsh list'' : affiche la liste des machines virtuelles en cours d'exécution sur l'hôte.
* ''virsh start <nom-vm>'' : démarre la machine virtuelle spécifiée.
* ''virsh shutdown <nom-vm>'' : arrête proprement la machine virtuelle spécifiée.
* ''virsh destroy <nom-vm>'' : arrête la machine virtuelle spécifiée de manière forcée.
* ''virsh create <chemin-vers-fichier-XML>'' : crée une nouvelle machine virtuelle en utilisant un fichier XML décrivant sa configuration.
**virsh** peut également être utilisé pour gérer les réseaux, notamment pour créer et supprimer des bridges réseau.
===== Exemples d'utilisation =====
==== Vérification / Création de virbr0 ====
Pour vérifier si le bridge réseau **virbr0** existe sur votre système, vous pouvez exécuter la commande suivante dans un terminal :
<code>
sudo virsh net-list --all
</code>
Cela affichera la liste de tous les réseaux gérés par **libvirt**, y compris le bridge réseau **virbr0** s'il existe. Si le bridge réseau **virbr0** n'apparaît pas dans la liste, cela signifie qu'il n'a pas été créé sur votre système.
Si le bridge réseau **virbr0** n'existe pas, vous pouvez le créer en utilisant la commande suivante :
<code>
sudo virsh net-create /usr/share/libvirt/networks/default.xml
</code>
Cela créera le bridge réseau **virbr0** avec les paramètres par défaut sur votre système. Vous pouvez également personnaliser les paramètres du bridge en modifiant le fichier XML avant de créer le réseau.
Une fois que le bridge réseau **virbr0** a été créé, vous pouvez utiliser l'option ''--network bridge=virbr0'' avec [[.:virt-install]] pour spécifier que la machine virtuelle doit utiliser ce bridge réseau.
==== Fichier /usr/share/libvirt/networks/default.xml ====
Voici à quoi ressemble le fichier XML par défaut pour le réseau **virbr0** sur la plupart des systèmes basés sur **libvirt**, tel que Fedora et Ubuntu :
<code XML>
<network>
<name>default</name>
<uuid>...</uuid>
<forward mode='nat'/>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='...'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.2' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
</code>
Ce fichier définit un réseau nommé **default** avec le bridge **virbr0**. Le mode **forward** est défini sur **bridge**, ce qui active le mode bridge pour le réseau virtuel. Le réseau utilise également le protocole **DHCP** pour attribuer des adresses IP aux machines virtuelles, avec une plage d'adresses allant de 192.168.122.2 à 192.168.122.254.
Le fichier XML peut être modifié pour personnaliser les paramètres du réseau, tels que l'adresse IP du réseau, la plage d'adresses DHCP et d'autres paramètres avancés. Toutefois, il est recommandé de créer un nouveau fichier XML pour définir un réseau personnalisé plutôt que de modifier le fichier ''default.xml'', car les modifications apportées à ce fichier peuvent être écrasées lors de mises à jour ultérieures de **libvirt**.
--
Si vous utilisez un serveur DHCP externe pour vos machines virtuelles, vous n'avez pas besoin de spécifier une adresse IP statique dans le fichier XML de définition du réseau. L'adresse IP de l'hôte **libvirt** qui héberge les machines virtuelles sera attribuée automatiquement par le serveur DHCP externe. Il faut utiliser un pont réseau (bridge).
La création d'un pont réseau est généralement la première étape de la mise en place d'un environnement de virtualisation.
Si la carte réseau ''virbr0'' n'existe pas, vous pouvez créer un nouveau pont réseau nommé ''virbr0'' dans le système hôte :
<code>
sudo ip link add virbr0 type bridge
</code>
Un pont réseau est un composant qui relie plusieurs interfaces réseau ensemble pour créer un réseau logique unique. Dans ce cas, le pont **virbr0** permettra aux machines virtuelles de se connecter au réseau de l'hôte et de communiquer avec d'autres machines sur le réseau.
Lorsque la commande est exécutée, un nouveau périphérique de type pont est créé avec le nom **virbr0**. Ce périphérique peut être configuré avec des adresses IP, des règles de filtrage de paquets, des paramètres de QoS, etc.
Vérifier :
<code>
sudo ip link show type bridge
6: virbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 0e:fd:02:17:39:65 brd ff:ff:ff:ff:ff:ff
</code>
Ajouter l'interface réseau **enp2s0f0u9** en tant que membre du pont réseau **virbr0** :
<code>
sudo ip link set enp2s0f0u9 master virbr0
</code>
Cela signifie que tout le trafic réseau entrant ou sortant de **enp2s0f0u9** sera redirigé vers le pont **virbr0**. Les machines virtuelles connectées au pont **virbr0** peuvent alors communiquer avec **enp2s0f0u9** et d'autres machines sur le réseau.
Activer l'interface réseau **virbr0** :
<code>
sudo ip link set virbr0 up
</code>
Par conséquent, le fichier XML de définition de réseau **perso** peut ressembler à ceci sans la section <ip> :
<code XML>
<network>
<name>perso</name>
<forward mode='bridge'/>
<bridge name='virbr0'/>
</network>
</code>
Dans cet exemple, la section ''<ip>'' est supprimée car elle n'est pas nécessaire si vous utilisez un serveur DHCP externe pour vos machines virtuelles. L'adresse IP de l'hôte libvirt sera attribuée automatiquement par le serveur DHCP externe.
Vous pouvez lancer la création du réseau :
<code>
sudo virsh net-create /usr/share/libvirt/networks/perso.xml
</code>
Le résultat attendu est :
<code>
Réseau perso créé depuis /usr/share/libvirt/networks/perso.xml
</code>

View File

@@ -0,0 +1,36 @@
====== virt-install ======
{{ :dummy.png?75x75|}}
Le programme **virt-install** est un outil en ligne de commande qui permet de créer et d'installer des machines virtuelles sous Linux en utilisant la technologie de virtualisation **KVM** (Kernel-based Virtual Machine).
Avec **virt-install**, vous pouvez spécifier les caractéristiques de la machine virtuelle, telles que la quantité de mémoire et d'espace disque, le type de processeur, le réseau et les médias d'installation. Vous pouvez également automatiser le processus d'installation en utilisant des fichiers de configuration ou des scripts.
===== Installer avec Fedora Linux =====
Pour installer le paquet virt-install sur Fedora, vous pouvez utiliser la commande suivante dans un terminal :
sudo dnf install virt-install
Cette commande installe le paquet **virt-install** ainsi que ses dépendances.
Si nécessaire, vous pouvez également installer le paquet **libvirt** pour gérer les machines virtuelles et **qemu-kvm** pour la virtualisation de niveau machine avec **KVM** :
sudo dnf install libvirt qemu-kvm
Pour utiliser la virtualisation de niveau machine avec **KVM**, votre processeur doit prendre en charge la virtualisation matérielle (**VT-x** pour les processeurs Intel ou **AMD-V** pour les processeurs AMD) et vous devez activer la virtualisation dans le BIOS de votre ordinateur.
Pour utiliser **virt-install**, vous devez avoir les permissions d'administrateur sur votre système et avoir installé les paquets **libvirt**, **qemu-kvm**, **virt-install** et les dépendances associées.
===== Exemple d'utilisation =====
Voici un exemple de commande ''virt-install'' pour créer une machine virtuelle avec une image ISO d'installation de Fedora Linux :
sudo virt-install --name=ma-machine-virtuelle --ram=2048 --vcpus=2 --disk path=/var/lib/libvirt/images/ma-machine-virtuelle.img,size=20 --os-variant=fedora34 --cdrom=/chemin/vers/l-image-iso/Fedora-Workstation-Live-x86_64-34-1.2.iso --network bridge=virbr0 --graphics=vnc
Cette commande crée une machine virtuelle appelée ma-machine-virtuelle avec 2 Go de RAM, 2 vCPU, un disque dur virtuel de 20 Go, une image ISO d'installation de Fedora 34 et une carte réseau virtuelle connectée au réseau ''virbr0''. La machine virtuelle sera lancée avec une interface graphique ''VNC'' pour la configuration de l'installation.
Assurez-vous que le bridge réseau **virbr0** existe sur votre système avant de créer la machine virtuelle. Voir la commande [[.:virsh]].
--- //[[user:cedricabonnel]]//

View File

@@ -0,0 +1,30 @@
====== vnstat ======
{{tag>"script linux"}}
{{ :dummy.png?75x75|Nom de la section}}
**vnStat** est un outil en ligne de commande qui surveille l'utilisation de la bande passante sur les interfaces réseau d'un système Linux.
===== Installer =====
Pour installer **vnStat** sur Fedora ou Debian, vous pouvez suivre les étapes suivantes.
Sur Fedora :
* Ouvrez un terminal.
* Exécutez la commande suivante pour mettre à jour la liste des paquets disponibles : ''sudo dnf update''
* Installez vnStat à l'aide de la commande : ''sudo dnf install vnstat''
* Une fois l'installation terminée, vous pouvez vérifier la version de **vnStat** en exécutant la commande : ''vnstat --version''
Sur Debian :
* Ouvrez un terminal.
* Exécutez la commande suivante pour mettre à jour la liste des paquets disponibles : ''sudo apt update''
* Installez **vnStat** à l'aide de la commande : ''sudo apt install vnstat''
* Une fois l'installation terminée, vous pouvez vérifier la version de **vnStat** en exécutant la commande : ''vnstat --version''
===== Ajouter une interface réseau à la liste des interfaces surveillées =====
En ajoutant l'interface ''enxb827eb7bd083'' à la liste de surveillance, **vnStat** commencera à collecter des statistiques sur l'utilisation de la bande passante de cette interface en particulier. Les statistiques recueillies peuvent être consultées à l'aide de la commande ''vnstat''.
<code>
vnstat --add -i enxb827eb7bd083
</code>

View File

@@ -0,0 +1,13 @@
====== Activer Line In ======
>> Activer
<code>
sudo pactl load-module module-loopback latency_msec=1
</code>
>> Désactiver
<code>
sudo pactl unload-module xx
</code>
ou **xx** est le numéro du module renvoyé lors de l'activation.

View File

@@ -0,0 +1,14 @@
====== bluetooth : Son High Fidelity avec un casque ======
{{tag>"Linux commande"}}
Comment faire pour avoir un son High Fidelity avec un casque bluetooth avec Debian 9 ?
Créer ou éditer le fichier suivant :
<code>sudo nano /etc/bluetooth/audio.conf</code>
Dans le fichier **audio.conf**, insérer la ligne suivante :
<code>AutoConnect=true</code>
Relancer le service Bluetooth :
<code>sudo service bluetooth restart</code>

View File

@@ -0,0 +1,72 @@
====== Changer le nom d'un ordinateur =======
{{tag>"Linux commande"}}
{{ :informatique:1200px-gnulinux.jpg?75x75|Commandes Linux}}
Dans les blocs de codes ci-dessous, les variables suivantes sont référencées. On considère :
* ''$CURRENT_HOSTNAME'', le nom actuel de machine
* ''$NEW_HOSTNAME'', le nom de machine à affecter
Je souhaite modifier le nom de l'ordinateur, fixé par défaut sur ''rasbperrypi'' (''$CURRENT_HOSTNAME''), par la valeur de mon choix (''$NEW_HOSTNAME'').
===== Récupérer le nom courant de la machine =====
Pour connaître le nom courant de la machine, il suffit soit :
* de lire la valeur dans le fichier ''/etc/hosntame''
<code>
cat /etc/hostname
</code>
* dexécuter la commande ''hostname''
<code>
hostname
</code>
---
Dans un script nous pourrons écrire la ligne suivante. Elle permet de lire la valeur contenu dans le fichier ''/etc/hostname'', en supprimant les caractères indésirables : retours à la ligne, tabulations, sauts de lignes...
<code BASH>
CURRENT_HOSTNAME=`cat /etc/hostname | tr -d " \t\n\r"`
</code>
===== Changer le nom de la machine en ligne de commande =====
Le nom de la machine doit être des lettres [a-z], insensible à la casse et des chiffres [0-9]. Seul le ''-'' (tiret) est admis comme caractère supplémentaire. Toutefois le nom de la machine ne doit **ni commencer**, **ni finir** par le ''-'' (tiret).
Exécuter la commande ''hostnamectl'' ((// **hmike** sur Twitter [[https://twitter.com/whiterabbit441/status/1226116907306078208]] //))
Le commande ''hostnamectl'' permet de modifier le nom de la machine avec une prise en compte immédiate. Il faudra toutefois fermer la session puis l'ouvrir de nouveau.
<code BASH>
sudo hostnamectl set-hostname $NEW_HOSTNAME
</code>
Toutefois, vous pouvez modifier le nom de dans le fichier ''/etc/hostname''. Il sera nécessaire de redémarrer la machine.
<code BASH>
echo $NEW_HOSTNAME > /etc/hostname
</code>
===== Changer les informations du fichier hosts =====
Modifier le nom dans le fichier ''/etc/hosts''. Il sera nécessaire de redémarrer la machine.
<code BASH>
sed -i "s/127.0.1.1.*$CURRENT_HOSTNAME/127.0.1.1\t$NEW_HOSTNAME/g" /etc/hosts
</code>
===== Changer le DNS / NIC =====
Associer le nom de domaine au DNS
{{informatique:cfp:pasted:20201005-204032.png}}
===== Prendre en compte les modifications =====
Se déconnecter puis se connecter de nouveau

View File

@@ -0,0 +1,23 @@
====== Consulter la liste des programmes installés ======
{{ :dummy.png?75x75|Nom de la section}}
Sous Fedora, je vous propose une liste de commandes pour avoir la liste des programmes déployés sur votre machine.
===== Lister les snaps installés =====
Vous pouvez utiliser la commande ''snap list'' pour afficher la liste des **snaps** déployés sur votre système :
snap list
{{:informatique:linux:pasted:20211004-211827.png}}
Quelques **snaps**, comme **core** sont affichés et sont installés automatiquement par **snapd**. Il s'agit d'un prérequis pour les autres **snaps**.
===== Lister les paquets DNF =====
En utilisant la commande ''dnf list installed'', la liste des programmes déployés par le gestionnaire **DNF**
{{:informatique:linux:pasted:20211004-212245.png}}

View File

@@ -0,0 +1,57 @@
====== Contrôle des ordinateurs à distance ======
{{tag>"Linux commande"}}
{{ :informatique:1200px-gnulinux.jpg?nolink&75x75|Scripts de Contrôle des ordinateurs à distance}}
À la maison, chaque enfant à au moins un ordinateur Linux (ordinateur fixe et Rapsberry Pi). Le contrôle à distance s'est posé pour deux raisons : comment moduler à volonté le débit de leur carte réseau et comment arrêter leur ordinateur en dehors des horaires autorisés ?
Évidemment que j'ai un accès administrateur sur leur machine et qu'il met possible de m'y connecter avec **ssh** en root. Mais me connecter sur chaque machine enfin d'envoyer les commandes nécessaires systématiquement, cela devient rébarbatif et lassant. Donc, j'ai développer un script qui me permet de :
- se connecter à la machine distante
- envoyer des commandes de maintenance - sauvegarde et mise à jour
- envoyer des commandes de contrôle - restriction horaire et modulation du débit réseau
Enfin ça, c'est l'idéal. Pour l'instant c'est plutôt une ébauche mais qui est riche d'enseignement. Pour une connexion à distance réussie, il faut déjà avoir réalisé une [[informatique:linux:commandes:ssh#connexion-ssh-avec-cle|connexion ssh par clé]] sur les machines désirées. Ensuite, toutes les commandes envoyées au PC sexécutent par **ssh**.
===== - Quelques exemples de commandes =====
==== - Éteindre le PC à distance ====
<code>
pc_rsync=dskluc001
ssh -t root@$pc_rsync 'systemctl poweroff'
</code>
==== - Limiter le débit de la carte réseau ====
<code>
pc_rsync=dskluc001
ssh root@$pc_rsync "wondershaper eth0 $limit_eth 1000000"
</code>
==== - Sauvegarder des documents ====
Le sauvegarde est une sauvegarde incrémentielle : le programme copie toutes les nouveautés et modifications de la source et efface tous les dossiers et fichiers plus présent sur la source.
Pendant le processus de sauvegarde, un fichier **.pid** est créé afin de ne pas avoir plusieurs sauvegarde en cours, de manière simultanée. Le dossier ''/media/disk_21/users/'' correspond à l'espace de stockage des sauvegarde sur le NAS.
La commande ''$$'' permet d'envoyer le PID actuel du process.
<code>
user_rsync=luc
pc_rsync=dskluc001
if [ ! -f /root/rsync_$pc_rsync_$user_rsync.pid ]; then
echo $$>>/root/rsync_$pc_rsync_$user_rsync.pid
rsync --delete -azvPe ssh root@$pc_rsync:/home/$user_rsync/ /media/disk_21/users/$user_rsync/sauvegarde/
rm /root/rsync_$pc_rsync_$user_rsync.pid
fi
</code>

View File

@@ -0,0 +1,57 @@
====== Créer un système RAID ======
{{ :dummy.png?75x75|sous Linux, avec deux disques, créer un RAID}}
<note important>Attention, les disques utilisés seront entièrement effacés durant les opérations.</note>
===== Instructions =====
L'objectif est de créer un système RAID avec deux disques durs physiques.
J'utilise l'application **mdadm**
sudo apt install mdadm
On prépare les deux disques
sudo dd if=/dev/zero of=/dev/sda bs=256M count=1
sudo dd if=/dev/zero of=/dev/sdb bs=256M count=1
On créer une partition primaire sur le disque **sda**
sudo parted /dev/sda
Puis dans **parted**, sélectionner :
mklabel gpt
print
mkpart primary 0% 100%
print
quit
On reproduit le même scénario pour **sdb**
On créer le **RAID mirror** avec **mdadm**
sudo mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sda1 /dev/sdb1
On obtient un disque RAID nommé **/dev/md0**.
On créer la configuration
sudo -i
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
exit
On formate le disque **/dev/md0** en **ext4**
sudo mkfs.ext4 -v -m .1 -b 4096 -E stride=32,stripe-width=64 /dev/md0
===== Utiliser le disque RAID =====
Vous pouvez le monter sur votre machine
sudo mkdir /mnt/md0
sudo mount /dev/md0 /mnt/md0
sudo chmod -R 777 /mnt/md0
Si vous perdez votre RAID, vous pouvez le ré-affecter
mdadm /dev/md0 -a /dev/sdX0
Monter automatiquement votre RAID
sudo blkid
sudo nano /etc/fstab
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /mnt/md0 ext4 defaults 0 0

View File

@@ -0,0 +1,30 @@
====== Droits d'accès ======
===== Gestion des groupes =====
Crééer un groupe ''famille''.
groupadd famille
Ajout l'utilisateur ''gerard'' dans ce groupe.
usermod -a -G famille gerard
Vérifier l'utilisateur ''gerard''.
groups gerard
===== Gestion des droits sur le dossier =====
Affecter le bon umask sur le dossier ''Images''.
chmod 770 Images
Le umask est ''drwxrwx---''
Indiquer que le groupe famille sera conserver dans toute l'arborescence descendante.
chmod g+s Images
Le umask est ''drwxrws---''
Affecter les droits ''rw'' au groupe famille à tous le dossier et sous-dossiers de ''Images''.
setfacl -m d:g:famille:rw famille/
Vérifier les droits ACL.
getfacl Images

View File

@@ -0,0 +1,28 @@
====== Exploiter un disque dur Grande Taille (> 2,2 To) ======
Voici quelques commandes pour exploiter une disque de Grand Taille (raccourci par le mot GPT) :
* [[informatique:linux:commandes:lsblk|lsblk]] - identifier le disque dans le système
* [[informatique:applications:linux_gdisk|gdisk]] - partitionner le disque
* [[informatique:linux_mkfs|mkfs]] - formater une partition
* [[linux:linux_fstab|fstab]] - attacher le disque au système de manière définitive
* [[informatique:linux_fsck|fsck]] - vérifier l'état de santé d'une partition
* [[informatique:linux_testdisk|testdisk]] - récupérer des données effacées d'un disque
===== Ajouter un nouveau disque =====
Dans le cadre d'un ajout d'un nouveau disque, celui-ci n'est pas visible dans l'explorateur de fichier ou n'est pas accessible en ligne de commande.
Vous pouvez consulter dans l'ordre, les étapes suivantes :
* [[informatique:linux:commandes:lsblk|lsblk]] - pour identifier le disque dans le système,
* [[informatique:applications:linux_gdisk|gdisk]] puis [[informatique:linux_mkfs|mkfs]] - pour préparer le disque pour recevoir des données et
* [[linux:linux_fstab|fstab]] - pour attacher le disque au système de manière définitive.

View File

@@ -0,0 +1,55 @@
====== Mise à jour ext4 pour l'année 2038 ======
{{ :informatique:linux:pasted:20211107-073505.png|Bug de l'année 2038 sur les partitions ext4.}}
===== Symptomes =====
Vous pouvez avoir ce message dans les logs :
<code>
ext4 filesystem being mounted at /boot supports timestamps until 2038 (0x7fffffff)
</code>
Il s'agit d'une indication **Y2k38-safe**. Votre système de fichier **ext4** ne pourra pas aller au dela de **l'année 2038**. Il s'agit d'un contrôle opéré par le **kernel**.
Vous pouvez vérifier cette indication en consultant le résultat du programme **tune2fs** :
<code>
tune2fs -l /dev/sda1 | grep "Inode size:"
Inode size: 128
</code>
Une taille de 128 octets est insuffisant pour dépacer l'année 2038. Il est nécessaire de passer à la valeur 256 octets.
Cette taille est apparue sur la partition **/boot** à la suite de l'installation récente de **Fedora 34**. Les autres partitions sont bien avec un **inode 256**.
===== Correction =====
La partition ne doit pas être utilisée par le système. Cette méthode est à éxecuter depuis une **clé USB Live** ou méthode similaire.
Déplacer les données présentes dans ''/mnt/boot-35'' sur une autre partition ext4.
<code>
cp -a /mnt/boot-35 /mnt/backup/
</code>
--
Formater la partition avec une valeur à 256 octets pour l'inode.
<code>
umount /mnt/boot-35
mkfs.ext4 -I 256 /dev/sda1
</code>
--
Monter la nouvelle partition.
<code>
mount /mnt/boot-35
</code>
--
Copier les données de nouveau dans ''/mnt/boot-35''.
<code>
cp -a /mnt/backup/boot/* /mnt/boot-35/
</code>

View File

@@ -0,0 +1,14 @@
====== High Definition Audio - Alsa ======
{{ :informatique:linux:pasted:20211107-084812.png?400|HDA Intel est une spécification développée par Intel.}}
HDA Intel remplace le codec **AC97 codec**. Cette spécification utilise une puce Intel, mais elle est aussi utilisée par d'autres fabricants comme **Realtek**, **Analog Devices** et **C-Media**.
lspci | grep -i audio
cat /proc/asound/pcm
alsa-info.sh --no-upload
alsactl --no-ucm

View File

@@ -0,0 +1,19 @@
====== Augmenter les inotify watches ======
{{ informatique:linux:cfp:pasted:20201025-074741.png|inotify watches}}
====== Vérifier la valeur ======
Vous pouvez vérifier la valeur fixée actuellement avec la commande suivante :
cat /proc/sys/fs/inotify/max_user_watches
{{informatique:linux:cfp:pasted:20201025-074912.png|cat /proc/sys/fs/inotify/max_user_watches}}
====== Augmenter la valeur inotify watches de manière permanente ======
Pour augmenter la valeur //inotify watches// de manière permanente il faut éditer le fichier ''/etc/sysctl.conf'' et ajouter la ligne suivante :
fs.inotify.max_user_watches=1073741824
Il faut retenir que l'activation d'une //inotify watch// utiliser 1 Koctet (1KB). Assurez-vous d'avoir suffisament d'espace mémoire avant de fixer la valeur ''fs.inotify.max_user_watches''.
Dans notre cas ci-dessus, le paramètre occupera 1 Go.

View File

@@ -0,0 +1,33 @@
====== Trucs, astuces et solutions ======
{{ informatique:linux:logo-faq.jpg?75x75|Trucs et astuces sous Linux}}
===== Table des matières =====
<WRAP clear/>
<WRAP group>
<WRAP half column>
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
<WRAP half column>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
</WRAP>
</WRAP>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,195 @@
====== Installer Xubuntu ======
Il faut obtenir un support d'installation Xubuntu. Pour ma part, j'ai une clé USB Kingston 8 Go. Avant de démarrer l'ordinateur, je la branche.
J'accède au BIOS pour faire démarrer l'ordinateur sur la clé USB.
<code>
F12 : Boot Option
Please Wait . . .
USB:Kingston DataTraveler
</code>
===== Programme d'installation Xubuntu =====
Le programme d'installation Xubuntu se lance. Vous pouvez essayer xubuntu sans rien changer à votre ordinateur directement depuis le support. Dans notre cas, nous allons installer Xubuntu tout de suite sur l'ordinateur. Choisir la langue et cliquer sur le bouton Installer Xubuntu
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:da0ead6825d10caffbcd6ff62e266426.png|{{ informatique:installer_xubuntu:da0ead6825d10caffbcd6ff62e266426.png?direct&800 }}]]
==== Disposition du clavier ====
Choisir la disposition du clavier et cliquer sur le bouton Continuer
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:26fbc6c55a456b4f5a308f70ae558342.png|{{ informatique:installer_xubuntu:26fbc6c55a456b4f5a308f70ae558342.png?direct&800 }}]]
==== Mise à jour ====
Choisir "Télécharger les mises à jour pendant l'installation de Xubuntu" et cliquer sur le bouton Continuer
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:3f4ffc14d617dbaaa76121d60bcf075f.png|{{ informatique:installer_xubuntu:3f4ffc14d617dbaaa76121d60bcf075f.png?direct&800 }}]]
==== Type d'installation ====
Choisir le type d'installation "Autre chose" et cliquer sur le bouton Continuer
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:85d204c04f75d8db95a5ba1b7b28e9fb.png|{{ informatique:installer_xubuntu:85d204c04f75d8db95a5ba1b7b28e9fb.png?direct&800 }}]]
=== Partitionnement ===
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:a4674674987ebb147443839b015309e3.png|{{ informatique:installer_xubuntu:a4674674987ebb147443839b015309e3.png?direct&800 }}]]
Identifier le disque dur. Il faut s'appuyer sur l'espace disque utilisé et le type de partition. Dans l'exemple, il s'agit de /dev/sda car c'est le seul dont le taille est de 320 G
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:ace36562e5359fa3770820a0615ab829.png|{{ informatique:installer_xubuntu:ace36562e5359fa3770820a0615ab829.png?direct&800 }}]]
Nouvelle partition
Continuer
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:71290a175e58151b8763dad439b5f8ab.png|{{ informatique:installer_xubuntu:71290a175e58151b8763dad439b5f8ab.png?direct&800 }}]]
Ajouter
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:8096a7f148faccafdddfcee90a04f5b5.png|{{ informatique:installer_xubuntu:8096a7f148faccafdddfcee90a04f5b5.png?direct&800 }}]]
On recommencer : Cliquer sur supprimer
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:14fb20a778b29133173c9c4dd4489240.png|{{ informatique:installer_xubuntu:14fb20a778b29133173c9c4dd4489240.png?direct&800 }}]]
L'espace libre est de 320 Go
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:c85b1a1c7c93c215af7d1fc096caa3f0.png|{{ informatique:installer_xubuntu:c85b1a1c7c93c215af7d1fc096caa3f0.png?direct&800 }}]]
Création de la partition SWAP (2x RAM)
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:bafe1233e211c49c6094ba4a79d2876d.png|{{ informatique:installer_xubuntu:bafe1233e211c49c6094ba4a79d2876d.png?direct&800 }}]]
Le SWAP prend ça place dans l'architecture du disque dur
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:e7777bf53615b1f66873cf45371dcb3e.png|{{ informatique:installer_xubuntu:e7777bf53615b1f66873cf45371dcb3e.png?direct&800 }}]]
Création de la partition /boot
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:b2c2d16ecae6986cf09a99cee60bcbed.png|{{ informatique:installer_xubuntu:b2c2d16ecae6986cf09a99cee60bcbed.png?direct&800 }}]]
Création de la racine. Entre 30 et 100 Go
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:1e620615c5c8a31216d0fa64a9404ca7.png|{{ informatique:installer_xubuntu:1e620615c5c8a31216d0fa64a9404ca7.png?direct&800 }}]]
La racine prend ça place
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:6a9e261629bc935ee5c60676750aa0cb.png|{{ informatique:installer_xubuntu:6a9e261629bc935ee5c60676750aa0cb.png?direct&800 }}]]
Création du /home avec l'espace restant -100 Mo
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:3ef7418f7057438d1796dda77fe1de72.png|{{ informatique:installer_xubuntu:3ef7418f7057438d1796dda77fe1de72.png?direct&800 }}]]
Le disque est prêt. Cliquer sur le bouton "Installer Maintenant"
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:405943fb3b7856c229871f9f9fcf6873.png|{{ informatique:installer_xubuntu:405943fb3b7856c229871f9f9fcf6873.png?direct&800 }}]]
Un écran récapitulatif indique les modifications des partitions sur les disques
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:dcdd214fed68cc40a47d1b6d020a1b12.png|{{ informatique:installer_xubuntu:dcdd214fed68cc40a47d1b6d020a1b12.png?direct&800 }}]]
==== Fuseaux horaires ====
Choisir le fuseau horaire
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:36df0ffc73b37dad619de57f0f234aea.png|{{ informatique:installer_xubuntu:36df0ffc73b37dad619de57f0f234aea.png?direct&800 }}]]
==== Création d'un compte utilisateur ====
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:cfe1ba1b932e86839c37a5e4ef593621.png|{{ informatique:installer_xubuntu:cfe1ba1b932e86839c37a5e4ef593621.png?direct&800 }}]]
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:f9e6fa62bfb59f30a7b726807545eea6.png|{{ informatique:installer_xubuntu:f9e6fa62bfb59f30a7b726807545eea6.png?direct&800 }}]]
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:f597a41822c55f8cdc029a485da0a5fa.png|{{ informatique:installer_xubuntu:f597a41822c55f8cdc029a485da0a5fa.png?direct&800 }}]]
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:4993cf28a813dc8e08812a7fb3ce8b1e.png|{{ informatique:installer_xubuntu:4993cf28a813dc8e08812a7fb3ce8b1e.png?direct&800 }}]]
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:766a8e9105fd9879d63deb4d86af4f22.png|{{ informatique:installer_xubuntu:766a8e9105fd9879d63deb4d86af4f22.png?direct&800 }}]]
Terminé… Cliquer sur "Redémarrer maintenant"
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:fae0447c7e572df6acb291bf4ace1111.png|{{ informatique:installer_xubuntu:fae0447c7e572df6acb291bf4ace1111.png?direct&800 }}]]
===== Paramétrage après redémarrage =====
Au démarrage de Xubuntu avec le compte par défaut, on nous propose une mise à jour. Cliquer sur le bouton "Installer maintenant"
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:526c1e68c4a52fed266b3c6cf5d9e759.png|{{ informatique:installer_xubuntu:526c1e68c4a52fed266b3c6cf5d9e759.png?direct&800 }}]]
il faudra saisir le mot de passe pour accepter les modifications
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:eb039fac63f8ef03c00fff701aedc8cf.png|{{ informatique:installer_xubuntu:eb039fac63f8ef03c00fff701aedc8cf.png?direct&800 }}]]
Après la mise à jour, le système vous invite à redémarrer.
[[https://www.abonnel.fr/lib/exe/fetch.php?media=informatique:installer_xubuntu:740794bf749637b77ce4ef57b3a66450.png|{{ informatique:installer_xubuntu:740794bf749637b77ce4ef57b3a66450.png?direct&800 }}]]
==== Installer les programmes ====
=== Géogebra ===
Plus d'infos sur [[https://doc.ubuntu-fr.org/geogebra|https://doc.ubuntu-fr.org/geogebra]]
<code>
sudo add-apt-repository "deb http://www.geogebra.net/linux/ stable main"
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C072A32983A736CF
sudo apt-get update
sudo apt-get install geogebra-classic geogebra5
</code>
=== Flash ===
Il est nécessaire pour le site mon B2i dans Firefox
<code>
sudo apt install flashplugin-installer
</code>
=== Scratch ===
La version 3 de Scratch peut être téléchargée pour installation en local : [[http://www.ac-grenoble.fr/maths/scratch/scratch.zip|http://www.ac-grenoble.fr/maths/scratch/scratch.zip]]. Il s'agit d'une archive à décompresser. Ensuite, il suffit d'ouvrir le fichier ''index.html'' du répertoire ''scratch'' ainsi créé.
[[http://www.planet-libre.org/index.php?post_id=21654|http://www.planet-libre.org/index.php?post_id=21654]]
<code>
sudo mkdir /opt/scratch
wget http://www.ac-grenoble.fr/maths/scratch/scratch.zip -O /tmp/scratch.zip
sudo cp /tmp/scratch.zip /opt/scratch/
cd /opt/scratch
sudo unzip scratch.zip
sudo nano /usr/share/applications/scratch.desktop
</code>
<code>
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Exec=/usr/bin/firefox /opt/scratch/index.htm
Icon=/opt/scratch/static/favicon.png
Terminal=false
Name=Scratch
Comment=Programming system and content development tool
Categories=Application;Education;Development;ComputerScience;
MimeType=application/x-scratch-project
</code>
==== Création d'un user ====
<code>
sudo adduser eleve
</code>
==== Création des raccourcis sur le bureau
====
- Géogebra
- Scratch
- B2i
- LibreOffice Writer
-

View File

@@ -0,0 +1,70 @@
====== Configuration du noyau linux ======
{{tag>"Linux systeme"}}
{{ :dummy.png?75x75|}}
Le noyau Linux est le cœur du système d'exploitation Linux. Il gère les ressources du système, comme la mémoire, les entrées/sorties, les processus et les périphériques.
Il est important de maintenir à jour le noyau pour bénéficier des dernières améliorations de sécurité et de performances lorsque cela vous l'est proposé par le gestionnaire de mise à jour ou de paquets.
Il y a plusieurs raisons pour lesquelles les utilisateurs peuvent vouloir modifier les options du noyau Linux :
* Ajout de fonctionnalités : Les options de noyau peuvent être modifiées pour ajouter de nouvelles fonctionnalités, comme le support de nouveaux périphériques ou de nouveaux protocoles de réseau.
* Amélioration des performances : Les options de noyau peuvent être modifiées pour améliorer les performances du système, comme en réduisant les temps d'attente des entrées/sorties ou en augmentant la taille de la mémoire tampon.
* Résolution de problèmes : Les options de noyau peuvent être modifiées pour résoudre des problèmes spécifiques, comme des problèmes de compatibilité avec des périphériques ou des erreurs de pilote.
<WRAP center round important 60%>
Il est donc important de bien comprendre les options de noyau que vous configurez et de tester soigneusement les modifications avant de les appliquer à un système de production. Cela peut entraîner des conséquences imprévues.
</WRAP>
Il y a plusieurs façons de modifier les propriétés du noyau Linux :
* En utilisant les paramètres de ligne de commande : Les paramètres de ligne de commande peuvent être utilisés pour configurer les options de noyau lors de son démarrage. Ces paramètres peuvent être modifiés en éditant le fichier de configuration du système d'amorçage, comme ''/etc/grub.cfg'' ou ''/etc/default/grub''.
* En utilisant les modules : Les modules sont des parties du noyau qui peuvent être chargées et déchargées à la volée. Les modules peuvent être utilisés pour ajouter de nouvelles fonctionnalités au noyau sans avoir à le recompiler. Les modules peuvent être gérés avec des outils tels que ''lsmod'', ''modprobe'' et ''rmmod''.
* En recompilant le noyau : Le noyau peut être recompilé à partir des sources pour inclure des options de configuration personnalisées. Cela peut être fait en utilisant des outils tels que ''make'' et ''make install''. Il est important de noter que la recompilation du noyau peut être complexe et peut entraîner des conséquences imprévues.
====== Connaître la version de la configuration du noyau utilisée ======
Pour connaître la version de la configuration du noyau utilisée sur votre système, vous pouvez exécuter la commande suivante dans un terminal :
uname -r
{{ :informatique:linux:cfp:pasted:20230215-085639.png }}
Cette commande affichera le numéro de version du noyau Linux que vous utilisez actuellement, par exemple ''6.1.9-200.fc37.x86_64''.
Le fichier de configuration correspondant à cette version du noyau sera normalement stocké dans le répertoire ''/boot'' sous le nom ''config-<version-du-noyau>''. Vous pouvez afficher le contenu de ce fichier de configuration pour connaître les options de configuration du noyau utilisées sur votre système en utilisant la commande suivante :
less /boot/config-<version-du-noyau>
Cette commande affichera le contenu du fichier de configuration du noyau dans le terminal, ce qui vous permettra de vérifier les options de configuration du noyau utilisées.
====== Fichier de configuration du noyau ======
Le fichier de configuration du noyau est généralement stocké dans le répertoire ''/boot'' sous le nom ''config-<version-du-noyau>''. Vous pouvez vérifier si le fichier de configuration est présent en exécutant la commande suivante dans un terminal :
ls /boot | grep config
Cette commande affichera tous les fichiers de configuration du noyau disponibles sur votre système. Si vous voyez un fichier de configuration pour la version du noyau que vous utilisez, vous pouvez afficher son contenu traitent du **NTFS** en utilisant la commande ''grep NTFS /boot/config-<version-du-noyau>''.
Si vous ne disposez pas des droits d'accès nécessaires pour afficher le fichier de configuration, vous pouvez exécuter la commande en tant qu'utilisateur **root** ou en utilisant la commande ''sudo''.
{{ :informatique:linux:cfp:pasted:20230215-084314.png |exemple d'utilisation de la commande grep sur le fichier de configuration du noyau}}
Cette sortie indique que le pilote **NTFS** intégré au noyau n'est pas activé, mais que le **pilote NTFS-3G** est disponible car il est configuré en tant que module du noyau. Voici ce que signifient les différentes options dans la sortie :
* CONFIG_NTFS_FS : Cette option n'est pas définie (not set), ce qui signifie que le pilote NTFS intégré au noyau n'est pas activé.
* CONFIG_NTFS3_FS : Cette option est configurée en tant que module du noyau (m), ce qui signifie que le pilote NTFS-3G est disponible pour être utilisé.
* CONFIG_NTFS3_64BIT_CLUSTER : Cette option n'est pas définie (not set), ce qui signifie que le support de clusters 64 bits n'est pas activé pour NTFS-3G.
* CONFIG_NTFS3_LZX_XPRESS : Cette option est activée (y), ce qui signifie que le support des algorithmes de compression LZX et XPress est activé pour NTFS-3G.
* CONFIG_NTFS3_FS_POSIX_ACL : Cette option est activée (y), ce qui signifie que le support des ACL POSIX est activé pour NTFS-3G.
--- Édité par //[[user:cedricabonnel]] avec la complicité de [[user:CPT]] 2023/02/15 22:16//

View File

@@ -0,0 +1,57 @@
====== Découvrir les exports ======
Découvrir les partages d'un serveur.
Il est peut être utile de vérifier laccessibilité du service NFS distant.
===== Avec NFSv3 =====
Lorsque le serveur supporte le protocole **NFSv3**, on peut utiliser la commande **showmount** :
<code bash>
showmount -e 192.168.100.1
Export list for 192.168.100.1:
/export/media/disk_25 192.168.100.0/24
/export/media/disk_24 192.168.100.0/24
/export/media/disk_23 192.168.100.0/24
/export/media/disk_6 192.168.100.0/24
</code>
{{informatique:cfp:pasted:20201024-162640.png}}
===== Avec NFSv4 =====
Lorsque le serveur supporte le protocole **NFSv4**, on utilise un dossier monté :
<code>
sudo mkdir /mnt/rpinas
sudo mount rpinas.acegrp.lan:/ /mnt/rpinas/
sudo ls /mnt/rpinas/media/
</code>
Un serveur peut aussi bien supporter **NFSv3** et **NFSv4** de manière simultanée. Le résultat sera identique.
===== access denied by server while mounting =====
Si **mount** ne fonctionne pas, vous pouvez utiliser la commande suivante pour avoir plus d'informations :
<code>
sudo mount -v rpinas.acegrp.lan:/ /mnt/rpinas/
</code>
L'erreur est détaillée en retour :
<code>
mount.nfs: trying text-based options 'vers=4.2,addr=192.168.100.3,clientaddr=192.168.100.213'
mount.nfs: mount(2): Permission denied
mount.nfs: trying text-based options 'vers=4,minorversion=1,addr=192.168.100.3,clientaddr=192.168.100.213'
mount.nfs: mount(2): Permission denied
mount.nfs: trying text-based options 'vers=4,addr=192.168.100.3,clientaddr=192.168.100.213'
mount.nfs: mount(2): Permission denied
mount.nfs: trying text-based options 'addr=192.168.100.3'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 192.168.100.3 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 192.168.100.3 prog 100005 vers 3 prot UDP port 35525
mount.nfs: mount(2): Permission denied
</code>

View File

@@ -0,0 +1,245 @@
====== - Partage réseau sous Linux : NFS ======
{{ informatique:linux:cfp:nfs-network-file-system:pasted:20210131-231703.png?75x75|Network File System est le système de fichiers pour réseau Linux.}}
NFS est un système de partage de fichiers, respectant les protocoles d'accès aux fichiers Linux.
Il est nécessaire d'avoir deux ordinateurs, au moins, pour mettre en œuvre un partage NFS. Par exemple :
* Serveur NFS : rpinas001.acegrp.lan - 192.168.100.1
* Client NFS : dskcdc001.acegrp.lan - 192.168.100.155
Il est possible d'avoir plusieurs **Serveur NFS** et plusieurs **Clients**.
Il est nécessaire d'autoriser le dialogue réseau entre le **Serveur** et le **Client**. L'utilisation de la commande **ping** pour confirmer la communication entre les deux systèmes.
===== Table des matières =====
* [[index|Sommaire]]
* Créer un partage NFS sous Linux
* Installer NFS
* [[..:nfs-network-file-system:installer-nfs-fedora-28]]
* [[..:nfs-network-file-system:installer-nfs-raspbian-os-10]]
* [[..:nfs-network-file-system:verifier-la-version-nfs-installee]]
* [[..:nfs-network-file-system:creer-et-exporter-un-partage]]
* [[..:nfs-network-file-system:modifier-la-parefeu]]
* Monter un partage NFS sous Linux
* [[..:nfs-network-file-system:installer-pilotes-nfs]]
* [[..:nfs-network-file-system:decouvrir-les-exports]]
* [[..:nfs-network-file-system:monter-un-partage-nfs]]
* [[..:nfs-network-file-system:monter-un-partage-nfs-permanent]]
===== - Éditer la configuration =====
Modifier le fichier ''/etc/idmapd.conf '' en admin pour intégrer le domaine dans la configuration :
Décommenter la ligne et indiquer le nom du domaine :
<code>
Domain = acegrp.lan
</code>
Vérifier la configuration du mapping :
<code>
Nobody-User = nobody
Nobody-Group = nogroup
</code>
==== - Indiquer les dossiers à partager ====
L'idée est de centraliser les dossiers à partager dans le dossier ''/export''. Pour exemple, on partage dans ce dossier ''export'', le dossier ''/mnt''.
---
Créer le dossier ''/export/media'' :
<code bash>
$ sudo mkdir -p /export/media
</code>
---
Créer un point de montage de ''/mnt'' vers ''/export/media''. Ajouter une entrée dans le fichier ''/etc/fstab'' :
<code>
/mnt /export/media none bind 0 0
</code>
---
Monter le dossier ''/export/media'' :
<code bash>
$ sudo mount /export/media
</code>
---
Modifier le fichier **/etc/exports** :
<code>
/export 192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async)
/export/media 192.168.1.0/24(rw,nohide,insecure,no_subtree_check,async)
</code>
---
Mettre à jour les exports :
<code bash>
$ sudo exportfs -ra
</code>
==== - Gérer les services ====
> Fedora 28 Sous **Fedora 28**, deux services doivent être activé et démarrés : **RPCbind** et **nfs** :
<code bash>
$ sudo systemctl start rpcbind nfs-server
</code>
<code bash>
$ sudo systemctl enable rpcbind nfs-server
</code>
> Raspbian 10
Sous **Raspbian 10**, il faut activer le service **nfs-kernel-server** :
<code bash>
$ sudo systemctl enable nfs-kernel-server
</code>
Puis démarrer le service **nfs-kernel-server** :
<code bash>
$ sudo systemctl start nfs-kernel-server
</code>
===== - Ajouter une exception dans Firewalld =====
On rajoute 4 exceptions exactement :
* 2049 en udp et tcp
* 111 en udp et tcp
<code bash>
sudo firewall-cmd --add-port=2049/udp
sudo firewall-cmd --add-port=2049/tcp
sudo firewall-cmd --add-port=111/udp
sudo firewall-cmd --add-port=111/tcp
</code>
ou encore plus rapidement
<code bash>
sudo firewall-cmd --add-service=nfs --permanent
sudo firewall-cmd --reload
</code>
====== - FAQ ======
===== - Connaître les services RPC d'un host =====
<code bash>
rpcinfo -p 192.168.100.5
</code>
Résultat
<code>
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 40258 status
100024 1 tcp 41279 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 60788 nlockmgr
100021 3 udp 60788 nlockmgr
100021 4 udp 60788 nlockmgr
100021 1 tcp 35701 nlockmgr
100021 3 tcp 35701 nlockmgr
100021 4 tcp 35701 nlockmgr
</code>
===== - clnt_create: RPC: Unable to receive =====
Le message ''clnt_create: RPC: Unable to receive'' apparaît après l'utilisation de la commande ''showmount''. Que faire ?
<code>
# showmount -e 192.168.100.6
clnt_create: RPC: Unable to receive
</code>
1. Vérifier la connectivité au serveur avec la commande ''ping''
<code>
# ping 192.168.100.6
PING 192.168.100.6 (192.168.100.6) 56(84) bytes of data.
64 bytes from 192.168.100.6: icmp_seq=1 ttl=64 time=0.224 ms
64 bytes from 192.168.100.6: icmp_seq=2 ttl=64 time=0.209 ms
^C
--- 192.168.100.6 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1009ms
rtt min/avg/max/mdev = 0.209/0.216/0.224/0.016 ms
</code>
Si la commande ''ping'' ne répond pas, vérifier par une connexion ''ssh''
<code>
# ssh cedric@192.168.100.6
cedric@192.168.100.6's password:
Last login: Sat May 5 07:03:20 2018 from 192.168.100.29
[cedric@srv06 ~]$
</code>
2. Lister les informations RPC avec la commande ''rpcinfo''
<code>
# rpcinfo -p 192.168.100.6
192.168.100.6: RPC: Remote system error - Connection refused
</code>

View File

@@ -0,0 +1,22 @@
====== Installer NFS sous Fedora 28 ======
Sous **Fedora 28**, il faut installer le paquet suivant pour monter et exporter les partages NFS :
<code bash>
sudo dnf install nfs-utils
</code>
--
**Démarrer** et **activer** le service **nfs-utils** :
<code bash>
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
</code>
Il est possible de vérifier le bon fonctionnement du service avec **systemcl**
<code bash>
sudo systemctl status nfs-server
</code>

View File

@@ -0,0 +1,62 @@
====== Installer NFS Raspbian OS 10 ======
Sous **Raspbian 10**, il faut installer le paquet suivant pour monter et exporter les partages NFS :
<code bash>
sudo apt update
sudo apt install nfs-kernel-server
</code>
{{informatique:linux:cfp:nfs-network-file-system:pasted:20210221-222533.png|apt install nfs-kernel-server sous Raspbian 10}}
--
Pour apporter des modification dans le démon **NFS**, il est nécessaire de modifier le fichier ''/etc/default/nfs-kernel-server''.
<code>
# Number of servers to start up
RPCNFSDCOUNT=8
# Runtime priority of server (see nice(1))
RPCNFSDPRIORITY=0
# Options for rpc.mountd.
# If you have a port-based firewall, you might want to set up
# a fixed port here using the --port option. For more information,
# see rpc.mountd(8) or http://wiki.debian.org/SecuringNFS
# To disable NFSv4 on the server, specify '--no-nfs-version 4' here
RPCMOUNTDOPTS="--manage-gids"
# Do you want to start the svcgssd daemon? It is only required for Kerberos
# exports. Valid alternatives are "yes" and "no"; the default is "no".
NEED_SVCGSSD=""
# Options for rpc.svcgssd.
RPCSVCGSSDOPTS=""
</code>
--
Pour apporter des modification dans le paramétrage global de **NFS**, il est nécessaire de modifier le fichier ''/etc/default/nfs-common''.
<code>
# If you do not set values for the NEED_ options, they will be attempted
# autodetected; this should be sufficient for most people. Valid alternatives
# for the NEED_ options are "yes" and "no".
# Do you want to start the statd daemon? It is not needed for NFSv4.
NEED_STATD=
# Options for rpc.statd.
# Should rpc.statd listen on a specific port? This is especially useful
# when you have a port-based firewall. To use a fixed port, set this
# this variable to a statd argument like: "--port 4000 --outgoing-port 4001".
# For more information, see rpc.statd(8) or http://wiki.debian.org/SecuringNFS
STATDOPTS=
# Do you want to start the idmapd daemon? It is only needed for NFSv4.
NEED_IDMAPD=
# Do you want to start the gssd daemon? It is required for Kerberos mounts.
NEED_GSSD=
</code>

View File

@@ -0,0 +1,11 @@
====== Installer pilotes NFS ======
Il faut **Installer les pilotes**.
Sous **Debian** ou assimilé, il faut installer le pilote **nfs-common** :
<code bash>
$ sudo apt install nfs-common
</code>
{{informatique:cfp:pasted:20201024-162328.png|apt install nfs-common}}

View File

@@ -0,0 +1,25 @@
====== Monter un partage NFS permanent ======
Il est nécessaire de **créer des dossiers** qui recevront le point de montage :
<code bash>
sudo mkdir /media/ddext
</code>
--
Il faut ajout dans le fichier ''/etc/fstab'' les lignes avec l'option ''nfs'' :
<code>
rpinas001.acegrp.lan:/export/media /media/ddext nfs auto,nofail 0 0
</code>
--
On peut monter point de montage par point avec la commande **mount** :
<code bash>
sudo mount /media/ddext
</code>

View File

@@ -0,0 +1,15 @@
====== Monter un partage NFS ======
Il est nécessaire de **créer des dossiers** qui recevront le point de montage :
<code bash>
$ sudo mkdir /media/ddext
</code>
--
<code>
sudo mount rpinas.acegrp.lan:/media/ /media/ddext
sudo ls /media/ddext/
</code>

View File

@@ -0,0 +1,6 @@
{{ informatique:linux:cfp:nfs-network-file-system:pasted:20210131-231703.png?75x75|Network File System est le système de fichiers pour réseau Linux.}}
<WRAP clear/>
{{page>..:..:nfs-network-file-system:index#table-des-matieres}}
~~NOCACHE~~

View File

@@ -0,0 +1,14 @@
====== Vérifier la version NFS installée ======
{{ :dummy.png?75x75|Nom de la section}}
Sur le serveur Linux **NFS**, vérifier la ou les versions **NFS** installées. C'est la deuxième colonne de la commande **rpcinfo** :
<code>
rpcinfo -p | grep nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100003 3 udp 2049 nfs
</code>
{{informatique:linux:cfp:nfs-network-file-system:pasted:20210221-222655.png}}

View File

@@ -0,0 +1,81 @@
====== Partitions et disques toujours disponibles ======
{{ :informatique:formater_un_disque_dur.png?75x75|Partitions et disques toujours disponibles avec Linux}}
Commandes abordées dans cet article : ''blkid'' ''mkdir'' ''mount''
Fichier édité dans cet article : ''/etc/fstab''
===== Phrase philosophique =====
On ne monte pas un disque, on monte des partitions. [[http://forums.fedora-fr.org/viewtopic.php?id=52667|Monter un disque dur au démarrage]]
===== Points de montage =====
Pour ajouter un ou plusieurs partitions, il faut utiliser un dossier comme point de montage. J'ai pris par habitude depuis **Fedora Core 3** de les ajouter dans le dossier ''/media''. Sur d'autres distributions et habitudes, le dossier des points de montages se trouve dans ''/mnt''.
A vous de choisir entre ''/mnt'' et ''/media''.
<code bash>
$ sudo mkdir -p /media/disk_14
$ sudo mkdir -p /media/disk_18
$ sudo mkdir -p /media/disk_7
$ sudo mkdir -p /media/disk_19
</code>
===== Information sur les partitions =====
Il est primordial de référencer les partitions par leurs ''id'' vues par le système. Quelque soit le port où est branché le disque, l'id sera toujours le même. La commande **blkid** permet d'afficher le **partuuid** ou l'**uuid** :
<code>$ sudo blkid</code>
Le système retourne les informations suivantes :
<code>
/dev/sda1: PARTUUID="7a560b51-528c-4160-9865-83ed3222b3fd"
/dev/sda2: UUID="f91bd1b8-9765-4e1b-a629-47dc219290cb" TYPE="ext4" PARTUUID="339404cb-449d-426f-9b14-40aa9da9cd0b"
/dev/sda3: UUID="fa3a0392-150a-4cb6-b780-9ac7ffd894a4" TYPE="swap" PARTUUID="f26124e8-c4fe-48cd-b86f-24cfe6110764"
/dev/sda4: UUID="2e3e7650-a1b9-4a1f-855d-5c22901a07e3" TYPE="ext4" PARTUUID="86f8087a-db91-46b3-a59f-85e15079da53"
/dev/sda5: UUID="f4406f7c-f82f-4adf-9d19-b579b1e07e1d" TYPE="ext4" PARTUUID="367872e8-36e8-400b-a317-791c8b1e2017"
/dev/sda6: UUID="a256acc0-21e4-40e6-a1d0-e5c89ea37b32" TYPE="ext4" PARTUUID="566a4015-03a9-413a-9ae5-829fed051cb1"
/dev/sdb: LABEL="disk_19" UUID="d41ee57f-f890-41f2-ba00-37196b017a85" TYPE="ext4"
/dev/sdc1: LABEL="disk_7" UUID="1CAA79C7AA799DC8" TYPE="ntfs" PARTUUID="0006fe3b-01"
/dev/sdd1: LABEL="disk_18" UUID="956d32d8-a797-4632-a07e-6094b22d043a" SEC_TYPE="ext2" TYPE="ext3" PARTUUID="000a27b7-01"
/dev/sde1: LABEL="disk_14" UUID="b3f715ae-591a-43e5-b14b-f565bc6d5e2c" TYPE="ext4" PARTUUID="0007ffc0-01"
</code>
Le disque **sda** (de 80 Go) est réservé au système Linux.\\
Ce sont les partitions des disques **sdb**, **sdc**, **sdd** et **sde** que je veux monter.\\
Toutefois, pour une raison ou une autre, les disques peuvent être affecter différemment de **sdb**, **sdc**, **sdd** ou **sde**. De ce fait, je conseille d'utiliser l'**identifiant de disque**, appelé **UUID**.
===== Modification du fichier /etc/fstab =====
Dès qu'on connaît les **UUID** des partitions, on peut les renseigner dans le fichier ''/etc/fstab''.
Il faut modifier le fichier ''/etc/fstab'' avec les droits **root** pour qu'à chaque démarrage de l'ordinateur les partitions soient montées.
<code># disk_14
UUID=b3f715ae-591a-43e5-b14b-f565bc6d5e2c /media/disk_14 ext4 defaults 0 2
# disk_18
UUID=956d32d8-a797-4632-a07e-6094b22d043a /media/disk_18 ext3 defaults 0 2
# disk_7
UUID=1CAA79C7AA799DC8 /media/disk_7 ntfs defaults 0 0
# disk_19
UUID=d41ee57f-f890-41f2-ba00-37196b017a85 /media/disk_19 ext4 defaults 0 2
</code>
===== Monter les disques durs sans redémarrer =====
Après avoir modifier le fichier ''/etc/fstab'' et les dossiers créés, il faut utiliser la commande ''mount'' avec les droits ''root'' afin de monter les disques durs immédiatement :
<code bash>
$ sudo mount /media/disk_14
$ sudo mount /media/disk_18
$ sudo mount /media/disk_7
$ sudo mount /media/disk_19
</code>
===== Voir aussi =====
* [[informatique:linux:installer:adapter:installer_les_lecteurs_reseaux]]

View File

@@ -0,0 +1,12 @@
====== Podcasts ======
{{ :dummy.png?75x75|Nom de la section}}
<WRAP clear/>
----
{{ https://parlonslinux.fr/media/site/favicon.8d6098b3.ico?64x}}
[[https://parlonslinux.fr/@ParlonsLinuxFR|Parlons Linux]]
Ce Podcast est conçu pour tous ceux qui souhaitent apprendre Linux de manière originale.
<WRAP clear/>
----

View File

@@ -0,0 +1,18 @@
{{ :informatique:1200px-gnulinux.jpg?75x75|GNU / Linux}}
==== Les pages ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
==== Les sous-catégories ====
<nav stacked="true" fade="true">
<nspages . -h1 -nbCol=1 -noPages -subns -textNS=" " -textPages=" " -simpleList -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404]>
</nav>
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,55 @@
====== Système de réplication de sites internet ======
{{ :dummy.png?75x75}}
A moindre coût, l'idée est de proposer une réplication de données et de paramètres entre deux serveurs pour un Site Internet. Nous utiliserons un accès **ssh** sur les deux serveurs.
===== - Définitions =====
On va commencer par quelques définitions.
**abonnel.fr** correspond au site Internet.
**serveur1** correspond à la machine contenant les données et paramétres d'une machine associée au nom de domaine **abonnel.fr**. Son adresse IP est 10.20.30.1 et son nom de domaine associé est **serveur1.mydomain.com**
**serveur2** correspond à la machine cible. Son adresse IP est 10.20.30.2 et son nom de domaine associé est **serveur2.mydomain.com**
**chloe** est le nom d'utilisateur sur les serveurs.
**vmh** est l'hebergeur.
===== - Principe =====
Initialement, **abonnel.fr** est associé à l'adresse IP 10.2.30.1 qui est le **serveur1**.
Le site **abonnel.fr** rentrera en mode maintenance par une modification effectuée dans le **serveur1**.
Les données du **serveur1** seront copiées sur le **serveur2**. Puis l'adresse IP du nom de domaine **abonnel.fr** sera associé à l'adresse IP 10.2.30.2
Le site **abonnel.fr** sortira du mode maintenance par une modification effectuée sur le **serveur2**.
===== - Données à traiter =====
Les fichiers statiques et fichiers de codes présents dans les dossiers **Apache 2.4**. En règle général ils sont présents dans ''/var/www/''.
Les fichiers de configurations d'**Apache 2.4**. En règle général ils sont présents dans ''/etc/apache24''.
Les fichiers pour la gestion des **certificats SSL**.
Les **données de la base données**.
La **configuration SMTP**.
===== - Préparation =====
Création d'un user sur **serveur2**
--
Générer une clé **SSH** pour le **serveur1**
--
Test de connexion de **serveur1** vers **serveur2**

View File

@@ -0,0 +1,149 @@
====== Wifi pour Linux en 2024 ======
Il y a des cartes Wifi qui sont mieux supportées par Linux, souvent dues à la compatibilité de leurs chipsets avec les drivers disponibles dans les distributions Linux. En général, les cartes Wifi n'ont pas de problèmes de compatibilité majeurs avec Linux, car la plupart utilisent des standards de communication bien établis. Cependant, certaines fonctionnalités spécifiques, des performances optimales ou la compatibilité de la carte Wifi peuvent dépendre du support du chipset par le noyau Linux.
Les pilotes intégrés au noyau de Linux sont préférables aux pilotes externes au noyau pour la plupart des utilisateurs et des cas d'utilisation
Ce qu'il faut chercher :
* Compatibilité avec le noyau Linux : Certains chipsets sont mieux pris en charge que d'autres. Les chipsets les plus courants comme ceux de SanDisk, Kingston, et Toshiba tendent à avoir un bon support.
* Documentation du fabricant : Certains fabricants indiquent explicitement la compatibilité avec Linux ou fournissent des pilotes pour certaines distributions.
* Pour les clés USB, normes USB : USB 2.0, USB 3.0, USB 3.1, etc. La prise en charge des différentes normes par votre système Linux peut influencer les performances.
* Communauté Linux : Les forums et les sites dédiés à Linux sont de bonnes ressources pour trouver des avis sur la compatibilité des différents modèles de clés USB.
Les informations ci-dessous peuvent nécessiter une familiarité avec le terminal et les commandes de base Linux.
Quelques adresses :
* [[https://github.com/morrownr/USB-WiFi/blob/main/home/USB_WiFi_Adapters_that_are_supported_with_Linux_in-kernel_drivers.md|Les adaptateurs WiFi USB pris en charge par les pilotes Linux intégrés au noyau.]]
* [[https://www.addictivetips.com/ubuntu-linux-tips/usb-wifi-adapter-linux/|Best USB WiFi Adapters for Linux (Review) in 2022]]
===== Quelques références =====
==== BrosTrend AC3L Linux WiFi Adapter ====
{{ :informatique:linux:pasted:20231228-004141.png?300}}
> [[https://amzn.to/3TEcFem|BrosTrend Linux USB Clé WiFi Adaptateurs, PC avec Ubuntu, Mint, Debian, Kali, Raspbian, Lubuntu, Xubuntu, Mate, Zorin, Raspberry Pi 2+, Windows11, 1200Mbps, Longue Portée 2 X 5dBi External Antennas ]]
La BrosTrend 1200Mbps USB WiFi Adapter est conçue pour offrir une connectivité réseau à haute vitesse et une meilleure portée grâce à ses deux antennes externes 5dBi. Voici quelques infos pour installer et configurer l'adaptateur sur un système Linux.
Pour l'installation de la clé **BrosTrend AC3L Linux WiFi Adapter** sous Linux, les noyaux Linux (>= 6.2) incluent leurs propres pilotes, ce qui permet leur fonctionnement immédiat dans les distributions récentes.
Pour connaître la version de votre noyau, exécutez la commande ''uname -r''.
Les pilotes livrés avec le noyau ne sont pas encore aussi aboutis que ceux de BrosTrend, donc si vous rencontrez des problèmes, utilisez leur installateur pour les remplacer.
Le processus d'installation nécessite une connexion Internet initiale :
sh -c 'wget linux.brostrend.com/install -O /tmp/install && sh /tmp/install'
Pour toute assistance ou en cas de problème, la communauté Linux et le support de BrosTrend sont à votre disposition pour vous guider.
**Support et Documentation:** Consultez la documentation de BrosTrend pour des problèmes spécifiques à l'adaptateur. https://linux.brostrend.com/
**Antennes Externes:** Assurez-vous que les antennes sont correctement connectées et orientées pour une meilleure réception.
==== TP-Link TL-WN823N ====
{{ :informatique:linux:pasted:20231228-004035.png?300}}
> [[https://amzn.to/3NHvp94|TP-Link Clé WiFi Puissante N300 Mbps, mini adaptateur USB wifi, dongle wifi, Bouton WPS, compatible avec Windows 11/10/8.1/8/7/XP, Mac OS X 10.9-10.13, Linux , Noir, TL-WN823N]]
Le TP-Link TL-WN823N est un mini adaptateur USB WiFi offrant une vitesse allant jusqu'à 300 Mbps, idéal pour les jeux en ligne ou le streaming vidéo HD. Compatible avec une multitude de systèmes d'exploitation, son installation sous Linux peut varier en fonction de la distribution utilisée.
Installer le **TP-Link TL-WN823N** sous Linux peut nécessiter un peu de travail en ligne de commande, mais une fois configuré, il offre une connexion stable et rapide. Assurez-vous de suivre les étapes spécifiques à votre distribution [[https://static.tp-link.com/2018/201812/20181207/Installation%20Guide%20for%20Linux.pdf]] ou {{ :informatique:linux:installation_guide_for_linux.pdf | PDF disponible en copie locale }}. Consulter la communauté Linux pour obtenir de l'aide en cas de problème.
**Support et Documentation:** La documentation officielle peut offrir des conseils supplémentaires spécifiques à votre modèle. https://www.tp-link.com/fr/support/download/tl-wn823n/
**Bouton WPS:** Si votre routeur a un bouton WPS, vous pouvez l'utiliser pour une connexion facile.
===== BrosTrend AX4L et AX1L =====
{{ :informatique:linux:pasted:20231228-003658.png?300}}
> [[https://amzn.to/3TGiHvk|AX1800 Clé WiFi 6 USB Linux]]
> [[https://amzn.to/48xuXlN|AX1800 Clé WiFi 6 USB Longue Portée Linux]]
La **BrosTrend AX4L**, avec sa capacité de 1800 Mbps et l'intégration de la technologie WiFi 6, se distingue par sa performance en termes de vitesse et de portée, grâce notamment à ses antennes externes qui améliorent la qualité et la stabilité du signal sur de longues distances. Cela la rend particulièrement adaptée pour des utilisateurs recherchant une connexion réseau rapide et fiable, que ce soit pour du streaming de contenu en haute définition, des jeux en ligne, ou tout autre activité nécessitant une bande passante élevée. En revanche, la **AX1L**, sans antennes externes, pourrait être plus adaptée pour des usages standards avec une préférence pour un design plus compact et discret. Chacun de ces modèles a donc ses avantages spécifiques, à considérer en fonction des besoins et de l'environnement d'utilisation.
**Systèmes d'exploitation pris en charge sous Linux :** Compatible avec les kernels jusqu'à la version 6.5, y compris Ubuntu de la version 16.04 à la 23.10 (toutes variantes), Raspberry Pi OS, Debian de la version 8 à la 12, Linux Mint de la version 18 à la 21, LMDE de la version 1 à la 6, ainsi que Pop!_OS, Zorin, MX Linux, Linux Lite, elementary OS et bien d'autres.
Le processus d'installation nécessite une connexion Internet initiale et peut nécessiter une familiarité avec le terminal et les commandes de base :
sh -c 'wget linux.brostrend.com/install -O /tmp/install && sh /tmp/install'
<note important>**Distributions Linux Non Supportées :** Actuellement NON compatible avec Kali Linux, deepin, RHEL, CentOS, openSUSE Leap, OpenWrt, Guix, Puppy, Tails, Endless OS, LibreELEC, OSMC, SteamOS.</note>
<WRAP clear/>
{{ :informatique:linux:pasted:20231228-003742.png?300}}
Il est important de noter que, en raison des contraintes liées à certaines versions de Linux, j'ai des réserves concernant le choix des modèles **AX1L** et **AX4L** de la gamme **BrosTrend**. Ces modèles ne sont pas compatibles avec certaines distributions Linux, ce qui peut limiter l'accès aux avancées en matière de connectivité réseau, telles que le **WiFi 6**, connu pour sa vitesse et son efficacité accrues. Il est donc crucial de vérifier attentivement la compatibilité matérielle et logicielle lors de la sélection d'adaptateurs WiFi pour des systèmes spécifiques, afin de garantir une expérience utilisateur optimale.
**Support et Documentation:** Consultez la documentation de BrosTrend pour des problèmes spécifiques à l'adaptateur. https://linux.brostrend.com/
<WRAP clear/>
===== Étapes d'installation génériques =====
0. Prérequis
* Système Linux: Assurez-vous que votre système est à jour.
* Permissions: Droits d'administrateur pour l'installation des paquets.
* Information du système: Connaître le type de kernel et la version du système.
1. Connexion de l'adaptateur
Branchez la clé USB Wifi sur un port USB disponible de votre ordinateur.
2. Vérification de la reconnaissance de l'appareil
Ouvrez le terminal et tapez la commande suivante pour vérifier si le système reconnaît l'adaptateur:
<code bash>
lsusb
</code>
Recherchez une entrée correspondant à votre clé USB Wifi ou à l'ID de l'appareil.
3. Installation des dépendances
Avant d'installer le pilote, vous devrez peut-être installer des paquets prérequis tels que **build-essential** et **linux-headers**. Utilisez le gestionnaire de paquets de votre distribution pour les installer.
4. Téléchargement et installation du pilote
Rendez-vous sur le site officiel du constructeur et téléchargez le pilote correspondant à votre modèle et à la version de votre kernel. Décompressez l'archive et lisez le fichier README pour les instructions spécifiques.
En général, les étapes suivantes sont requises:
- Naviguez dans le dossier du pilote décompressé.
- Compilez et installez le pilote à l'aide des commandes make et make install.
5. Chargement du module du pilote
Après l'installation, chargez le module du pilote en utilisant la commande:
<code bash>
sudo modprobe <nom_du_module>
</code>
6. Configuration de la connexion WiFi
Vous pouvez utiliser l'interface graphique de gestion réseau de votre distribution ou la commande ''nmcli'' pour configurer votre réseau sans fil.
__**Dépannage et support**__
Consultez les forums: Les forums Linux spécifiques à votre distribution sont une excellente ressource pour obtenir de l'aide.

View File

@@ -0,0 +1,160 @@
======= - Répertoire des commandes Linux =======
Débutons la découverte de commandes internes ou externes au shell.
Je vous propose de découvrir les commandes par catégories fréquemment utilisées :
<WRAP center round info 60%>Un signe **$** précède les commandes qui ne nécessitent pas de droits administrateur ; un signe **#** précède celles qui nécessitent des droits administrateur (ces signes ne font PAS partie des commandes).\\
Les lignes qui ne commencent ni par un signe **$** ou ni par un signe **#** correspondent au résultat de la commande précédente.\\
Les touches utilisées sont indiquées dans une touche graphique, exemple <button>Ctrl</button> pour la touche "contrôle"</WRAP>
===== Informations et éditions des commandes =====
<nav>
* [[informatique:linux:commandes:apropos|apropos]]
* [[informatique:linux:commandes:man|man]]
* [[informatique:linux:commandes:type|type]]
* [[informatique:linux:commandes:alias|alias]]
</nav>
===== Naviguer dans l'arborescence des dossiers =====
<nav>
* [[informatique:linux:commandes:cd|cd]]
* [[informatique:linux:commandes:pwd|pwd]]
* [[informatique:linux:commandes:ls|ls]]
* [[informatique:linux:commandes:du|du]]
</nav>
===== Éditer les dossiers =====
<nav>
* [[informatique:linux:commandes:mkdir]]
* [[informatique:linux:commandes:rmdir]]
* [[informatique:linux:commandes:rm]]
</nav>
===== Gérer le shell =====
<nav>
* [[informatique:linux:commandes:history]]
* [[informatique:linux:commandes:sudo]]
* [[informatique:linux:commandes:watch]]
* [[informatique:linux:commandes:symbole_e_commercial]]
* [[informatique:linux:commandes:tmux]]
</nav>
===== Gestion des fichiers et des répertoires =====
Ces commandes permettent de gérer les fichiers et les répertoires sur le système, comme copier, déplacer, renommer, lister, supprimer, etc.
<nav>
* [[informatique:linux:commandes:cp]]
* [[informatique:linux:commandes:scp]]
* [[informatique:linux:commandes:mv]]
* [[informatique:linux:commandes:chown]]
* [[informatique:linux:commandes:chmod]]
* [[informatique:linux:commandes:touch]]
* [[informatique:linux:commandes:symbole_plus_grand]]
* [[informatique:linux:commandes:file]]
* [[informatique:linux:commandes:md5sum]]
* [[informatique:linux:commandes:tee]]
* [[informatique:linux:commandes:umask]]
* [[informatique:linux:commandes:setfacl]]
</nav>
===== Édition d'un fichier =====
Ces commandes permettent d'éditer des fichiers texte ou de code sur le système, comme ajouter, supprimer, chercher, remplacer du contenu, etc.
<nav>
* [[informatique:linux:commandes:tail]]
* [[informatique:linux:commandes:head]]
* [[informatique:linux:commandes:cat]]
* [[informatique:linux:commandes:tac|tac]]
* [[informatique:linux:commandes:grep]]
* [[informatique:linux:commandes:nano]]
* [[informatique:linux:commandes:vi]]
* [[informatique:linux:commandes:ed]]
* [[informatique:linux:commandes:expand]]
</nav>
===== Configuration du système =====
<nav>
* [[informatique:linux:commandes:timedatectl]]
</nav>
===== Gestion des processus =====
Ces commandes permettent de gérer les processus (c'est-à-dire les programmes en cours d'exécution) sur le système, comme lancer, arrêter, afficher, tuer, etc.
<nav>
* [[informatique:linux:commandes:free]]
* [[informatique:linux:commandes:htop]]
* [[informatique:linux:commandes:ps]]
* [[informatique:linux:commandes:reboot]]
* [[informatique:linux:commandes:poweroff]]
* [[informatique:linux:commandes:halt]]
* [[informatique:linux:commandes:shutdown]]
* [[informatique:linux:commandes:systemctl]]
* [[informatique:linux:commandes:symbole_double_et_commercial]]
* [[informatique:linux:commandes:cron]]
</nav>
===== Gestion du réseau =====
Ces commandes permettent de configurer et de gérer le réseau sur le système, comme afficher les informations de connexion, ping, tracer des routes, etc.
<nav>
* [[informatique:linux:commandes:iftop]]
* [[informatique:linux:commandes:ifconfig]]
* [[informatique:linux:commandes:ip]]
* [[informatique:linux:commandes:mtr]]
* [[informatique:linux:commandes:nestat]]
* [[informatique:linux:commandes:nslookup]]
* [[informatique:linux:commandes:hostname]]
</nav>
===== Gestion de l'utilisateur =====
Ces commandes permettent de gérer les utilisateurs et les groupes d'utilisateurs sur le système, comme créer, supprimer, changer le mot de passe, etc.
<nav>
* [[informatique:linux:commandes:who]]
* [[informatique:linux:commandes:whoami]]
* [[informatique:linux:commandes:adduser|adduser]]
* [[informatique:linux:commandes:addgroup]]
* [[informatique:linux:commandes:usermod]]
* [[informatique:linux:commandes:passwd]]
* [[informatique:linux:commandes:write]]
* [[informatique:linux:commandes:wall]]
</nav>
===== Gestion des disques / flux I/O =====
<nav>
* [[informatique:linux:commandes:dd|dd]]
* [[informatique:linux:commandes:df]]
* [[informatique:linux:commandes:lsio]]
* [[informatique:linux:commandes:lsusb]]
* [[informatique:linux:commandes:lsblk]]
* [[informatique:linux:commandes:blkid]]
</nav>
===== Configurer son environnement =====
<nav>
* [[informatique:linux:commandes:tzselect]]
</nav>
===== Gestionnaire de paquets =====
<nav>
* [[informatique:linux:commandes:apt-get]]
</nav>

View File

@@ -0,0 +1,34 @@
====== adduser ======
{{tag>"commande linux"}}
Créer un utilisateur dans le système suivant la configuration définie dans le fichier ''/etc/adduser.conf''.
La commande ''adduser'' est utilisée sous Linux pour ajouter un nouvel utilisateur à un système. Lorsque cette commande est exécutée, elle effectue les tâches suivantes :
* Crée un nouveau compte utilisateur dans le système.
* Crée un nouveau répertoire personnel pour le nouvel utilisateur.
* Copie les fichiers de base dans le répertoire personnel du nouvel utilisateur.
* Définit les permissions sur le répertoire personnel pour que seul le nouvel utilisateur puisse y accéder.
* Ajoute le nouvel utilisateur à certains groupes du système (par exemple, le groupe sudo pour donner les droits d'administration).
* Demande à l'utilisateur de fournir un mot de passe pour son compte.
La commande ''adduser'' est une commande plus conviviale que la commande [[.:useradd]] mais pas adaptée pour des scripts.
===== Créer un utilisateur =====
Pour créer un utilisateur , c'est la commande ''adduser''.
Par exemple :
<code>
sudo adduser cedric
</code>

View File

@@ -0,0 +1,128 @@
====== alias ======
{{ :dummy.png?75x75|Créer un raccourci ou une abréviation}}
En Bash, un **alias** est un raccourci ou une abréviation qui est utilisé pour remplacer une commande ou une séquence de commandes plus longue par un seul mot ou une expression.
Par exemple, si vous utilisez fréquemment la commande ''ls -al'', vous pouvez créer un alias nommé ''ll'' pour cette commande en utilisant la syntaxe suivante dans le terminal :
<code BASH>
alias ll='ls -al'
</code>
Maintenant, chaque fois que vous tapez ''ll'' dans le terminal, Bash exécutera automatiquement la commande ''ls -al''.
Les alias peuvent être utiles pour gagner du temps et améliorer l'efficacité lorsque vous travaillez avec la ligne de commande en réduisant la quantité de texte que vous devez taper pour exécuter une commande particulière.
Vous pouvez enregistrer des alias dans le fichier ''.bash_aliases'' si ce dernier existe.
Dans certains systèmes, le fichier ''.bash_aliases'' n'existe pas par défaut, mais vous pouvez le créer manuellement dans votre répertoire d'utilisateur en utilisant la commande suivante :
<code BASH>
touch ~/.bash_aliases
</code>
Ensuite, vous pouvez ajouter vos alias dans ce fichier en utilisant la même syntaxe que celle utilisée pour définir des alias dans le terminal. Par exemple :
<code BASH>
alias ll='ls -al'
</code>
Une fois que vous avez ajouté vos alias dans le fichier ''.bash_aliases'', vous devez exécuter la commande suivante pour les charger dans votre session Bash en cours :
<code BASH>
source ~/.bashrc
</code>
Cette commande rechargera le fichier .bashrc qui charge normalement le fichier ''.bash_aliases'' dans votre session Bash.
Notez que le nom et l'emplacement des fichiers de configuration Bash peuvent varier selon le système. Par conséquent, il est possible que vous deviez ajuster les instructions ci-dessus en fonction de votre configuration spécifique.
===== Quelques exemples =====
Voici quelques exemples d'alias de commandes qui peuvent être utiles :
* ''ll'' pour ''ls -al'' : comme expliqué précédemment, cela affichera le contenu d'un répertoire en mode long, avec les permissions et les détails de propriétaire affichés.
<code BASH>
alias ll='ls -al'
</code>
* ''grep'' avec couleur : pour ajouter de la couleur à la sortie de la commande grep pour améliorer la lisibilité, vous pouvez utiliser l'alias suivant :
<code BASH>
alias grep='grep --color=auto'
</code>
* ''mkdir -p'' : si vous créez souvent des répertoires imbriqués, vous pouvez utiliser l'option -p pour créer des répertoires parents si nécessaire. Vous pouvez également créer un alias nommé mkdirp pour simplifier l'opération.
<code BASH>
alias mkdirp='mkdir -p'
</code>
* ''ps'' avec tri inversé : si vous utilisez souvent la commande ps pour afficher les processus en cours d'exécution sur votre système, vous pouvez ajouter un alias nommé pss pour trier les résultats par ordre décroissant d'utilisation de la mémoire.
<code BASH>
alias pss='ps aux --sort=-rss'
</code>
* ''du'' trié par taille : si vous voulez afficher les dossiers par taille décroissante, vous pouvez ajouter un alias nommé dus pour trier la sortie de la commande du par ordre décroissant de taille.
<code BASH>
alias dus='du -hs * | sort -hr'
</code>
* ''cp'' avec confirmation : pour ajouter une confirmation avant de copier des fichiers, vous pouvez créer un alias nommé cp qui inclut l'option -i pour demander une confirmation avant d'écraser les fichiers existants.
<code BASH>
alias cp='cp -i'
</code>
* ''rm'' avec confirmation : de même, pour ajouter une confirmation avant de supprimer des fichiers, vous pouvez créer un alias nommé rm qui inclut l'option -i pour demander une confirmation avant de supprimer chaque fichier.
<code BASH>
alias rm='rm -i'
</code>
* ''git'' avec couleur : si vous utilisez Git pour gérer des projets de développement de logiciels, vous pouvez ajouter de la couleur à la sortie de la commande git pour améliorer la lisibilité.
<code BASH>
alias git='git --color=auto'
</code>
* ''cd'' avec retour rapide : pour revenir rapidement au répertoire parent, vous pouvez créer un alias nommé .. qui exécute la commande cd .. pour revenir au répertoire parent.
<code BASH>
alias ..='cd ..'
</code>
* ''free'' avec unités de mémoire lisibles : si vous utilisez souvent la commande free pour surveiller l'utilisation de la mémoire, vous pouvez ajouter l'option -h pour afficher les tailles de mémoire dans des unités lisibles pour l'homme (comme "1.23 GiB" au lieu de "1289311232").
<code BASH>
alias free='free -h'
</code>
* ''grep'' avec numéros de ligne : pour afficher les numéros de ligne dans la sortie de la commande grep, vous pouvez ajouter l'option -n à l'alias grep.
<code BASH>
alias grep='grep -n'
</code>
* ''ls'' avec tri inversé : pour afficher les fichiers et répertoires triés par ordre inverse de date de modification, vous pouvez créer un alias nommé lsr.
<code BASH>
alias lsr='ls -ltr'
</code>
* ''tar'' avec compression gzip : pour créer une archive tar compressée avec gzip, vous pouvez créer un alias nommé targz.
<code BASH>
alias targz='tar -cvzf'
</code>
* ''df'' avec taille et espace libre en unités lisibles : pour afficher l'espace disque disponible sur les partitions de votre système dans des unités lisibles pour l'homme, vous pouvez créer un alias nommé dfh.
<code BASH>
alias dfh='df -hT'
</code>
Ces exemples montrent comment vous pouvez personnaliser vos alias de commandes pour automatiser des tâches courantes, faciliter la navigation dans les répertoires et améliorer la lisibilité de la sortie de la commande.

View File

@@ -0,0 +1,54 @@
====== apropos ======
La commande ''apropos'' permet de lister les manuels dont la **description** ou le **nom** comprend les mots passés en arguments.
Par exemple ''apropos copy'' listera les commandes permettant d'effectuer des copies.
<code BASH>
$ apropos copy
debconf-copydb (1) - copier une base de données debconf
arm-linux-gnueabihf-objcopy (1) - copy and translate object files
bcopy (3) - copy byte sequence
copy_file_range (2) - Copy a range of data from one file to another
copysign (3) - copy sign of a number
copysignf (3) - copy sign of a number
copysignl (3) - copy sign of a number
cp (1) - copy files and directories
cpgr (8) - copy with locking the given file to the password or group file
cpio (1) - copy files to and from archives
cppw (8) - copy with locking the given file to the password or group file
dd (1) - convert and copy a file
</code>
====== Des astuces ======
> Limiter la recherche à une section de la documentation
Pour afficher les commandes de l'interpréteur de commandes, j'utilise le paramètre ''-m'' :
<code>
apropos copy -s 1
</code>
> Rechercher avec plusieurs mots clés
Par défaut, le recherche de plusieurs mots clés et conditionnée par un **OU**. Par exemple, la ligne de commande ''apropos copy file'' effectuera la recherche sur le mot ''copy'' ou ''file''.
Pour effectuer une recherche avec tous les mots clé inclus dans la recherche, il faut utiliser le paramètre ''-a''. Par exemple :
<code>
$ apropos -s 1 -a copy file
cp (1) - copy files and directories
cpio (1) - copy files to and from archives
dd (1) - convert and copy a file
i686-linux-gnu-objcopy (1) - copy and translate object files
install (1) - copy files and set attributes
mcopy (1) - copy MSDOS files to/from Unix
objcopy (1) - copy and translate object files
rcp (1) - secure copy (remote file copy program)
rsync (1) - a fast, versatile, remote (and local) file-copying tool
scp (1) - secure copy (remote file copy program)
</code>

View File

@@ -0,0 +1,56 @@
====== apt-get ======
{{tag>"Linux commande"}}
{{ :informatique:1200px-gnulinux.jpg?75x75|Commande apt-get}}
Programme APT de gestion des paquets.
<well>
__Éléments techniques sur Debian sid__
<text>
**apt-get** is **/usr/bin/apt-get**
**/usr/bin/apt-get**: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib, for GNU/Linux 3.2.0, BuildID[sha1]=2f2fdfecba1105efe70a5082eb019b16a2c47619, strippe
</text>
</well>
--
Liste les paquets installés sur le système.
<code>
apt list --installed
</code>
--
Mettre à jour l'index des paquets.
<code>
apt update
</code>
--
Mettre à jour les version les plus récentes de tous les paquets présents sur le système.
<code>
apt upgrade
</code>
--
Mettre à jour les version les plus récentes de tous les paquets présents sur le système et supprime des paquets installés si cela est nécessaire.
<code>
apt full-upgrade
</code>
--
Mettre à jour avec une gestion intelligente de résolution de conflits de paquets.
<code>
apt-get dist-upgrade
</code>

View File

@@ -0,0 +1,83 @@
====== apt ======
----
Le programme ''apt'' est un gestionnaire de paquets pour les systèmes d'exploitation basés sur **Debian**, tels que **Debian** lui-même, **Ubuntu**, **Linux Mint** et d'autres distributions Linux. Il permet à l'utilisateur de rechercher, installer, mettre à jour et supprimer des paquets logiciels sur le système.
Le nom ''apt'' est un acronyme pour "Advanced Packaging Tool", ce qui signifie "outil de gestion de paquets avancé" en français. Il est souvent utilisé en ligne de commande, bien qu'il existe également des interfaces graphiques qui permettent une utilisation plus conviviale pour les débutants.
En utilisant **apt**, l'utilisateur peut effectuer des opérations telles que l'installation de nouveaux programmes, la mise à jour de programmes existants, la suppression de programmes, la recherche de nouveaux paquets, la mise à jour du système d'exploitation et la résolution des dépendances des paquets.
===== Synchroniser la liste des paquets =====
Faire systématiquement un ''apt update'' avant d'installer un nouveau logiciel ou de mettre à jour des paquets sur un système **Debian** est une bonne pratique recommandée.
La commande ''apt update'' permet de synchroniser la liste des paquets disponibles sur les dépôts (ou sources) de logiciels configurés sur le système avec les dernières informations disponibles. En d'autres termes, elle permet de télécharger la dernière version de la liste des paquets disponibles, qui est stockée localement sur le système.
Cela permet à l'utilisateur de s'assurer qu'il installe la dernière version d'un paquet à partir des dépôts configurés sur son système, car ces dépôts peuvent être mis à jour fréquemment par les développeurs des logiciels pour corriger des bugs, ajouter des fonctionnalités, ou améliorer la sécurité.
Si l'utilisateur omet de mettre à jour la liste des paquets disponibles avant d'installer un nouveau logiciel ou de mettre à jour des paquets, il risque d'installer une version obsolète ou moins sécurisée du paquet, car il installera la version de la liste des paquets stockée.
===== Lister les paquets installés =====
La commande ''apt list --installed'' permet de lister tous les paquets installés sur votre système via le système de gestion de paquets apt.
Plus précisément, elle affiche la liste des paquets installés avec leur nom, leur version et leur description. Cela permet de savoir rapidement quels paquets sont installés sur votre système, ainsi que leur version actuelle.
Notez que cette commande nécessite des privilèges d'administrateur pour être exécutée.
<panel type="default" title="Exemple 1">
Lister tous les paquets installés sur votre système :
<code BASH>
apt list --installed
</code>
{{ :informatique:applications:pasted:20230216-144114.png }}
</panel>
<panel type="default" title="Exemple 2">
Lister tous les paquets installés commençant par **php7.4-**, vous pouvez exécuter la commande suivante:
apt list --installed | grep '^php7.4-'
Cela va afficher la liste de tous les paquets installés commençant par ''php7.4-''.
{{ :informatique:applications:pasted:20230216-150140.png }}
</panel>
<panel type="default" title="Exemple 3">
Vous pouvez utiliser la commande suivante pour lister tous les paquets qui commencent par ''php7.4-'' et les remplacer par leurs versions équivalentes commençant par ''php8.2-'' :
echo $(dpkg -l | grep '^ii' | grep 'php7.4-' | awk '{ print $2 }' | sed -e 's/php7.4/php8.2/g')
Cette commande utilise plusieurs commandes Linux pour extraire les noms des paquets installés commençant par ''php7.4-'', les remplace par leur équivalent ''php8.2-'' et les affiche. Vous pourrez recopier le resultat pour l'utiliser dans un ''apt install'' par exemple.
{{ :informatique:applications:pasted:20230216-150017.png }}
</panel>
===== les signatures suivantes ne sont pas valables =====
{{ :informatique:linux:pasted:20220109-124015.png?75x75|apt, correction de l'erreur signatures non valables}}
En exécutant la commande ''apt update'', l'erreur suivante est apparue :
Les signatures suivantes ne sont pas valables : EXPKEYSIG B188E2B695BD4743 DEB.SURY.ORG Automatic Signing Key <deb@sury.org>
...
Le téléchargement de quelques fichiers d'index a échoué, ils ont été ignorés, ou les anciens ont été utilisés à la place.
La clé de sécruité du serveur distant a changé et le programme ''apt'' bloque les informations car elles ne sont plus conformes. Il faut mettre à jour votre clé suivant celle qui est présente sur le serveur.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B188E2B695BD4743
La valeur ''B188E2B695BD4743'' correspond à la clé qui pose problème, affichée dans le message d'alerte du programme ''apt''.
===== Voir aussi =====
* [[informatique:linux:system:fichier-de-paquet-debian-.deb]]

View File

@@ -0,0 +1,28 @@
====== blkid ======
{{ :dummy.png?75x75|Nom de la section}}
Ce programme permet d'afficher les propriétés des périphériques de type //block//.
Il peut être utiliser afin d référencer les partitions par leur identifiant unqiue vu par le système. Quelque soit le port où est branché le disque, l'//id// sera toujours le même. La commande ''blkid'' permet d'afficher le //partuuid// ou l'//uid// :
<code>$ sudo blkid</code>
Le système retourne les informations suivantes :
<code>
/dev/sda1: PARTUUID="7a560b51-528c-4160-9865-83ed3222b3fd"
/dev/sda2: UUID="f91bd1b8-9765-4e1b-a629-47dc219290cb" TYPE="ext4" PARTUUID="339404cb-449d-426f-9b14-40aa9da9cd0b"
/dev/sda3: UUID="fa3a0392-150a-4cb6-b780-9ac7ffd894a4" TYPE="swap" PARTUUID="f26124e8-c4fe-48cd-b86f-24cfe6110764"
/dev/sda4: UUID="2e3e7650-a1b9-4a1f-855d-5c22901a07e3" TYPE="ext4" PARTUUID="86f8087a-db91-46b3-a59f-85e15079da53"
/dev/sda5: UUID="f4406f7c-f82f-4adf-9d19-b579b1e07e1d" TYPE="ext4" PARTUUID="367872e8-36e8-400b-a317-791c8b1e2017"
/dev/sda6: UUID="a256acc0-21e4-40e6-a1d0-e5c89ea37b32" TYPE="ext4" PARTUUID="566a4015-03a9-413a-9ae5-829fed051cb1"
/dev/sdb: LABEL="disk_19" UUID="d41ee57f-f890-41f2-ba00-37196b017a85" TYPE="ext4"
/dev/sdc1: LABEL="disk_7" UUID="1CAA79C7AA799DC8" TYPE="ntfs" PARTUUID="0006fe3b-01"
/dev/sdd1: LABEL="disk_18" UUID="956d32d8-a797-4632-a07e-6094b22d043a" SEC_TYPE="ext2" TYPE="ext3" PARTUUID="000a27b7-01"
/dev/sde1: LABEL="disk_14" UUID="b3f715ae-591a-43e5-b14b-f565bc6d5e2c" TYPE="ext4" PARTUUID="0007ffc0-01"
</code>
Le disque //sda// (de 80 Go) est réservé au système Linux.\\
Ce sont les partitions des disques **sdb**, **sdc**, **sdd** et **sde** que je veux monter.\\
Toutefois, pour une raison ou une autre, les disques peuvent être affecter différemment de **sdb**, **sdc**, **sdd** ou **sde**. De ce fait, je conseille d'utiliser l'**identifiant de disque**, appelé //UUID//.

View File

@@ -0,0 +1,5 @@
====== cd ======
{{tag>"Linux commande"}}
{{ :informatique:langage:logo_bash.png?75x75|bash}}
Changer de répertoire (**c**hange **d**irectory).

View File

@@ -0,0 +1,23 @@
====== chmod ======
{{ :dummy.png?75x75|}}
La commande ''chmod'' est utilisée pour modifier les permissions d'accès des fichiers et des répertoires dans un système de fichiers UNIX/Linux. Les permissions d'accès permettent de définir qui peut lire, écrire ou exécuter un fichier ou un répertoire.
La commande ''chmod'' permet de définir les permissions pour trois types d'utilisateurs : le propriétaire du fichier, le groupe associé au fichier et les autres utilisateurs.
Les permissions d'accès peuvent être représentées sous forme de **notation numérique** ou **symbolique**.
La **notation numérique** utilise une combinaison de chiffres pour définir les permissions de chaque type d'utilisateur. Par exemple, ''r'' représente la permission de lecture, ''w'' représente la permission d'écriture et ''x'' représente la permission d'exécution. Les chiffres utilisés sont 4 pour la permission de lecture, 2 pour la permission d'écriture et 1 pour la permission d'exécution. La somme de ces chiffres représente les permissions totales pour chaque type d'utilisateur. Par exemple, 644 (ou 0644) représente les permissions de rw-r--r--, où le propriétaire peut lire et écrire le fichier, mais les autres utilisateurs ne peuvent que lire le fichier.
La **notation symbolique** utilise des lettres pour définir les permissions pour chaque type d'utilisateur. Par exemple, ''u'' représente le propriétaire du fichier, ''g'' représente le groupe associé au fichier et ''o'' représente les autres utilisateurs. Les lettres ''r'', ''w'' et ''x'' sont utilisées pour définir les permissions de lecture, d'écriture et d'exécution.
Par exemple :
<code>
chmod u+rwx fichier.txt
</code>
Cette commande ajoute les permissions de lecture, d'écriture et d'exécution pour le propriétaire du fichier.

View File

@@ -0,0 +1,15 @@
====== chpasswd ======
{{ :dummy.png?75x75|Modifier les mots de passe des comptes d'utilisateurs}}
La commande ''chpasswd'' sous Linux est utilisée pour modifier les mots de passe des comptes d'utilisateurs. Elle prend en entrée une liste de noms d'utilisateurs et de nouveaux mots de passe, et met à jour les fichiers système qui contiennent les informations de mot de passe.
La commande ''chpasswd'' peut être utilisée en conjonction avec d'autres commandes Linux pour automatiser la création ou la mise à jour de comptes d'utilisateurs, en particulier dans des environnements de déploiement ou de gestion de serveurs à grande échelle.
Voici un exemple d'utilisation de la commande ''chpasswd'' :
<code BASH>
echo "utilisateur1:motdepasse1" | chpasswd
</code>
Cet exemple met à jour le mot de passe du compte utilisateur ''utilisateur1'' avec le nouveau mot de passe ''motdepasse1''. Le mot de passe est fourni à la commande ''chpasswd'' via un tube (**pipe**) qui **redirige** la **sortie** de la commande ''echo'' vers l'**entrée** de la commande ''chpasswd''.

View File

@@ -0,0 +1,48 @@
====== cp ======
{{ :dummy.png?75x75|Copier des fichiers et des répertoires}}
La commande ''cp'' sous Linux est une commande utilisée pour copier des fichiers et des répertoires d'un emplacement à un autre. ''cp'' signifie //copy// (copier en anglais).
La syntaxe de base de la commande est la suivante :
<code BASH>
cp source_file destination_file
</code>
où ''source_file'' est le fichier que vous souhaitez copier et ''destination_file'' est l'emplacement où vous souhaitez copier le fichier.
Vous pouvez également copier plusieurs fichiers en une seule fois en spécifiant plusieurs fichiers source, comme ceci :
cp source_file1 source_file2 source_file3 destination_directory
La commande ''cp'' peut également être utilisée pour copier des répertoires entiers, en utilisant l'option ''-r'' (récursive) pour copier tous les fichiers et sous-répertoires à l'intérieur du répertoire :
cp -r source_directory destination_directory
Si le fichier ou le répertoire de destination existe déjà, la commande ''cp'' remplacera le fichier ou le répertoire existant sans avertissement. Il est donc important d'être prudent lors de l'utilisation de cette commande.
-- Utiliser l'option ''-v'' pour afficher les fichiers copiés en temps réel :
<code BASH>
cp -v source_file destination_file
</code>
-- Utiliser l'option ''-i'' pour demander une confirmation avant d'écraser un fichier existant :
<code BASH>
cp -i source_file destination_file
</code>
-- Utiliser l'option ''-p'' pour conserver les attributs de fichier d'origine (comme les autorisations, la propriété, etc.) lors de la copie :
<code BASH>
cp -p source_file destination_file
</code>
-- Créer un [[informatique:linux:commandes:alias|alias]] pour la commande ''cp'' avec l'option ''-i'', ''-p'' et ''-v'' pour les raisons évoquées précédemment :
<code BASH>
alias cp='cp -ipv'
</code>
Ces astuces et alias peuvent vous aider à utiliser la commande ''cp'' de manière plus efficace et plus sûre.

View File

@@ -0,0 +1,101 @@
====== crontab ======
{{ :dummy.png?75x75|Nom de la section}}
Programme Unix qui exécute toutes les minutes un ensemble de taches prédéterminées.
Sous Linux, le programme **cron** s'appelle **crontab**, concaténation de **c**h**ron**o **tab**le, "table de planification". Il est exécuté par **root** et permet de s'adapter à l'identité à chacun des utilisateurs.
===== - Liste la table des tâches =====
Afficher la liste des tâches pour l'utilisateur connecté
<code>
crontab -l
</code>
===== - Mots clés =====
Des mots-clé peuvent remplacer le code horaire.
^ mot-clé ^ description ^ équivalent ^
| @reboot | Au démarrage | Aucun |
| @yearly | Tous les ans | 0 0 1 1 * |
| @annually | Tous les ans | 0 0 1 1 * |
| @monthly | Tous les mois | 0 0 1 * * |
| @weekly | Toutes les semaines | 0 0 * * 0 |
| @daily | Tous les jours | 0 0 * * * |
| @midnight | Toutes les nuits | 0 0 * * * |
| @hourly | Toutes les heures | 0 * * * * |
===== - Éditer la tables des tâches =====
Éditer la liste des tâches pour l'utilisateur connecté
<code>
crontab -e
</code>
L'éditeur par défaut est exécuté pour éditer la table des tâches. Il est modifiable grâce à la variable d'environnement :
<code>
$ export EDITOR=nano
</code>
===== - Supprimer la tables des tâches =====
Supprimer la liste des tâches pour l'utilisateur connecté
<code>
crontab -r
</code>
===== - Remplacer la tables des tâches =====
Remplacer la liste des tâches pour l'utilisateur connecté par une nouvelle table contenu dans ''<fichier>''
<code>
crontab <fichier>
</code>
===== - Journalisation =====
La sortie standard pour une tache **cron** est l'envoi d'un mail. Pour modifier la sortie, il faut utiliser la syntaxe suivante :
<code>
mm hh jj MMM JJJ tâche > fichier1 2> fichier2
</code>
* ''fichier1'' contient la sortie standard
* ''fichier2'' contient l'erreur standard
Par exemple, pour ne rien afficher :
<code>
>/dev/null 2>&1
</code>
**Afficher l'horaire de la dernière tâche exécutée** pour l'ensemble des utilisateurs :
<code>
ls -lut /etc/init.d/cron
</code>
**Extraire du journal du système** les informations concernant la table **cron** :
<code>
grep -w cron /var/log/syslog
</code>
===== - + d'infos =====
Les informations de planification sont stockées dans un fichier relatif à l'utilisateur. Par exemple :
* ''/var/spool/cron/crontabs/<utilisateur>'' sous Debian, MX Linux
* ''/var/spool/cron/<utilisateur>'' sous Red Hat, Fedora et Cent OS
En plus, il existe un table cron centralisée dans ''/etc/crontab''.
Pour un poste de travail ne fonctionnant pas forcément toute une journée, l'application **anacron** permet de lancer les commandes qui dû l'être lorsque l'ordinateur était éteint.

View File

@@ -0,0 +1,100 @@
====== dd ======
{{tag>"Linux commande"}}
dd permet de **copier** et **convertir des fichiers de type block**
**dd** signifie **Data Destroyer** ou **Data Dump** ou **Dataset Definition**
Il est possible d'utiliser la commande **ddrescue** qui reprend la copie en cas d'arrêt intempestif.
**dd** permet de reproduire des zones de disque qui ne font pas partie d'un système de fichier tels que le **secteur de démarrage** (le MBR), les **tables de partition**, les **traces laissées sur le disque par des fichiers effacés**, etc... L'un de ses emplois les plus importants est donc la création d'une copie de sauvegarde exacte d'une partition.
Le programme ''dd'' lance deux tâches asynchrones, d'une part de lecture et d'autre part d'écriture, contrairement à ''cp'' qui copie un fichier de façon séquentielle (lecture d'une partie du fichier sur un premier périphérique, puis copie sur le second).
===== - Exemples d'utilisation =====
==== - Créer une clé USB bootable ====
Pour créer une clé USB bootable à partir d'une image ISO.
On considère :
* ''/dev/sdX'' la clé non montée
* ''debian.iso'' est l'image ISO présent dans le dossier courant
<code>
# dd if=debian.iso of=/dev/sdX bs=1M; sync
</code>
==== - Réaliser une image d'un DVD ====
Créé une image ISO de sauvegarde d'un CD ou d'un DVD :
On considère :
* ''/dev/cdrom'' le chemin d'accès au DVD
* ''debian.iso'' est le nom de l'image ISO
<code>
$ dd if=/dev/cdrom of=debian.iso
</code>
==== - Découper un fichier ====
Pour découper un fichier en tranches de 100 Mio.
On considère :
* ''grosfichier'' le nom du fichier à découper
* ''grosfichier-part1'' le nom du 1er fichier de 100 Mio.
* ''grosfichier-part2'' le nom du 2nd fichier des 100 Mio suivant.
<code>
$ dd bs=10K count=10K if=grosfichier of=grosfichier-part1
$ dd bs=10K count=10K skip=10K if=grosfichier of=grosfichier-part2
$ dd bs=10K count=10K skip=20K if=grosfichier of=grosfichier-part3
$ dd bs=10K count=10K skip=30K if=grosfichier of=grosfichier-part4
</code>
Remarque, la commande ''split'' aurait été plus appropriée.
==== - Copier la table MBR ====
Pour faire une copie du MBR (table des partitions principales comprises) d'un disque.
On considère :
* ''/dev/hda'' le disque dur contenant le MBR
* ''full-mbr.bin'' le nom du fichier contant le MBR sauvegardé
<code>
$ dd if=/dev/hda of=full-mbr.bin bs=512 count=1
</code>
==== - Effacer un disque dur avec des zéros ====
Pour détruire les données d'un disque dur ''hda'' en le remplissant de zéros.
<code>
$ dd if=/dev/zero of=/dev/hda
</code>
Remarque, la commande ''shred'' aurait été plus approprié.
==== - Tester le débit des disques dur avec dd ====
Sous Linux, la commande ''dd'' peut être utilisée pour une mesure de performance en lecture et écriture séquentielle.
Pour se concentrer sur l'écriture des données sur un disque, la source des informations sera une suite de zero disponible depuis le chemin ''/dev/zero''. Si nous voulions mesurer la performance du disque, il aurait fallu écrire directement sur le chemin du disque (par exemple of=/dev/sda), mais cela effacerait le contenu du disque. En indiquant le chemin d'un fichier ''of=/media/disk_6/test'', nous devons passer par le systèmes de gestion de fichiers, qui peut nous ralentir. Mais cela nenlèvera pas les conditions réelles que nous pouvons avoir avec un disque.
En utilisant ''if=/dev/zero et bs=1G'', Linux aura besoin de 1GB d'espace disponible dans la RAM. Si vous n'avez pas suffisamment d'espace disponible, pensez à réduire cette valeur, par exemple à 512MB.
<code bash>
$ dd if=/dev/zero of=/media/disk_6/testfile bs=1G count=1 oflag=direct
</code>
===== - Biblio =====
* [[https://www.gnu.org/software/coreutils/dd]]
* [[https://fr.wikipedia.org/wiki/Dd_(Unix)]]

View File

@@ -0,0 +1,60 @@
====== df ======
{{ :dummy.png?75x75|Afficher l'espace disque utilisé et disponible sur les systèmes de fichiers montés}}
La commande ''df'' est utilisée sous Linux pour afficher l'**espace disque utilisé et disponible** sur les systèmes de fichiers montés. Elle permet de connaître l'espace total, l'espace utilisé, l'espace disponible et le pourcentage d'utilisation de chaque système de fichiers.
La sortie de la commande **df** est présentée en tableau avec une ligne pour chaque système de fichiers monté. Les colonnes du tableau indiquent l'espace total, l'espace utilisé, l'espace disponible, l'utilisation en pourcentage et le point de montage associé à chaque système de fichiers.
<panel type="default" title="Exemple de résultat" subtitle="de la commande df" icon="fa fa-laptop">
<code>
Sys. de fichiers blocs de 1K Utilisé Disponible Uti% Monté sur
devtmpfs 4096 0 4096 0% /dev
tmpfs 8148596 0 8148596 0% /dev/shm
tmpfs 3259440 2332 3257108 1% /run
/dev/sda2 60718940 40851564 16750528 71% /
/dev/loop0 128 128 0 100% /var/lib/snapd/snap/bare/5
/dev/loop1 64768 64768 0 100% /var/lib/snapd/snap/core20/1738
/dev/loop5 409088 409088 0 100% /var/lib/snapd/snap/obs-studio/1284
/dev/loop4 93952 93952 0 100% /var/lib/snapd/snap/gtk-common-themes/1535
/dev/loop3 64896 64896 0 100% /var/lib/snapd/snap/core20/1778
/dev/loop6 50816 50816 0 100% /var/lib/snapd/snap/snapd/17883
/dev/loop2 83328 83328 0 100% /var/lib/snapd/snap/gtk-common-themes/1534
/dev/sda1 485330 328177 127457 73% /boot
/dev/sdb2 446572352 349334928 74479488 83% /home
/dev/sdc 122486728 876400 115342204 1% /home/cedric24c/_tmp
tmpfs 1629716 324 1629392 1% /run/user/1000
tmpfs 1629716 52 1629664 1% /run/user/0
</code>
</panel>
Par défaut, la commande df affiche les informations en octets, mais il est possible de spécifier d'autres unités telles que Ko, Mo ou Go. La commande df peut également être utilisée avec plusieurs options pour modifier son comportement, comme afficher les systèmes de fichiers inaccessibles ou ne pas afficher les systèmes de fichiers de type "tmpfs".
Voici un exemple de commande "df" pour afficher l'utilisation de l'espace disque sur les partitions montées et exclure les systèmes de fichiers "tmpfs", vous pouvez utiliser l'option ''-x'' suivie d'une liste de types de système de fichiers à exclure :
df -x tmpfs -h
<panel type="default" title="Exemple de résultat" subtitle="de la commande df" icon="fa fa-laptop">
<code>
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
devtmpfs 4,0M 0 4,0M 0% /dev
/dev/sda2 58G 39G 16G 71% /
/dev/loop0 128K 128K 0 100% /var/lib/snapd/snap/bare/5
/dev/loop1 64M 64M 0 100% /var/lib/snapd/snap/core20/1738
/dev/loop5 400M 400M 0 100% /var/lib/snapd/snap/obs-studio/1284
/dev/loop4 92M 92M 0 100% /var/lib/snapd/snap/gtk-common-themes/1535
/dev/loop3 64M 64M 0 100% /var/lib/snapd/snap/core20/1778
/dev/loop6 50M 50M 0 100% /var/lib/snapd/snap/snapd/17883
/dev/loop2 82M 82M 0 100% /var/lib/snapd/snap/gtk-common-themes/1534
/dev/sda1 474M 321M 125M 73% /boot
/dev/sdb2 426G 334G 72G 83% /home
/dev/sdc 117G 856M 110G 1% /home/cedric24c/_tmp
</code>
</panel>
Cette commande affiche l'utilisation de l'espace disque pour tous les systèmes de fichiers montés, sauf pour les systèmes de fichiers de type "tmpfs", en utilisant des unités plus lisibles pour l'utilisateur, telles que Ko, Mo ou Go.
L'option ''-x'' est suivie de la liste des types de systèmes de fichiers à exclure, séparés par des virgules. Si vous souhaitez exclure d'autres types de systèmes de fichiers, vous pouvez les ajouter à la liste.
--- //[[user:cedricabonnel]] & [[user:cpt]]//

View File

@@ -0,0 +1,165 @@
====== dnf ======
{{ :dummy.png?75x75|DNF est un outil pour gérer les paquets sur les systèmes Linux qui utilisent RPM, et il facilite grandement la gestion des dépendances et des mises à jour de logiciels.}}
----
DNF signifie "Dandified Yum", et c'est un gestionnaire de paquets pour les systèmes d'exploitation Linux utilisant RPM (Red Hat Package Manager). Il est principalement utilisé pour gérer les paquets et les dépendances sur les distributions Fedora, CentOS et Red Hat Enterprise Linux.
Avec DNF, les utilisateurs peuvent installer, mettre à jour, désinstaller et rechercher des paquets sur leur système. Il peut également gérer les dépendances entre les paquets, de sorte que les utilisateurs n'ont pas à s'occuper de la résolution des dépendances manuellement.
===== Informations concernant les fichiers =====
* **Binaire** : ''/usr/bin/dnf''
* **Fichiers de cache** : ''/var/cache/dnf''
* **Configuration principale** : ''/etc/dnf/dnf.conf''
* **Configuration des dépôts** : ''/etc/yum.repos.d/''
===== Configurer un proxy pour tous les utilisateurs =====
Parfois, lorsque vous travaillez dans un environnement réseau limité, vous devez configurer un proxy pour accéder à Internet. Vous pouvez également configurer un cache en ligne, également appelé //proxy cache// qui sera utilisé pour stocker des copies des paquets demandées afin d'être réutilisés ultérieurement pas d'autres machines. Voici comment configurer un proxy pour tous les utilisateurs et pour un utilisateur spécifique sur Fedora en utilisant DNF.
Pour configurer un proxy pour tous les utilisateurs, vous devez modifier le fichier ''/etc/dnf/dnf.conf''.
<callout icon="fa fa-slack">
Ouvrez ce fichier en mode édition en utilisant la commande suivante :
<code>
sudo nano /etc/dnf/dnf.conf
</code>
Ajoutez les lignes suivantes pour configurer un proxy simple :
<code>
proxy=http://192.168.100.5:3128/
</code>
Si le proxy nécessite une identification, ajoutez également les lignes suivantes :
<code>
proxy=http://192.168.100.5:3128/
proxy_username=vivek
proxy_password=secretePasswordHere
</code>
</callout>
<callout icon="fa fa-slack">
Enregistrez et fermez le fichier. À partir de maintenant, tous les utilisateurs sur votre système seront en mesure d'utiliser le proxy pour accéder à Internet en utilisant DNF.
</callout>
C'est tout! Vous savez maintenant comment configurer un proxy avec DNF pour tous les utilisateurs sur Fedora. En suivant les étapes décrites ci-dessus, vous pouvez facilement accéder à Internet en utilisant DNF même dans un environnement réseau limité.
===== Configurer un proxy pour un utilisateur spécifique =====
Pour configurer un proxy pour un utilisateur spécifique, vous devez ajouter les lignes suivantes dans le fichier ''~/.bash_profile'' ou ''~/.bashrc'' :
<code>
export http_proxy="http://vivek:secretePassword@192.168.100.5:3128"
</code>
Le fichier ''~/.bash_profile'' est utilisé pour les utilisateurs **non-root**, tandis que le fichier ''~/.bashrc'' est lu à chaque démarrage de la session utilisateur. Il est recommandé de redémarrer la session utilisateur après avoir effectué des modifications pour que les modifications prennent effet.
C'est tout! Vous savez maintenant comment configurer un proxy avec DNF pour un utilisateur spécifique sur Fedora. En suivant les étapes décrites ci-dessus, vous pouvez facilement accéder à Internet en utilisant DNF même dans un environnement réseau limité.
===== Rechercher un paquet installé =====
L'option "installed" spécifie à DNF de n'afficher que les paquets installés sur le système :
dnf list installed
--
Lister tous les paquets installés sur votre système qui correspondent à la expression régulière "krb?-" :
dnf list installed "krb?-*"
L'expression régulière "krb?-*" signifie que DNF va rechercher tous les paquets dont le nom commence par "krb" suivi d'un caractère unique, puis suivi d'un tiret et de tout ce qui suit. Cela signifie que tous les paquets qui ont un nom similaire à "krb-xxx" ou "krb-yyy" seront listés par la commande.
===== Surveiller les mises à jour disponibles sur Fedora DNF =====
Pour surveiller les mises à jour disponibles sur votre système Fedora utilisant DNF, vous pouvez utiliser un script **bash** utilisant ''dnf check-update'' sans **droit root**.
<image shape="thumbnail">
{{ :informatique:linux:commandes:pasted:20230213-000058.png }}
</image>
Pour exécuter la commande ''dnf check-update'' en tant que service et mémoriser les informations de mise à jour dans un fichier, vous pouvez utiliser un script **bash** et une tâche **cron**.
<callout icon="fa fa-slack">
Le script ''check_update.sh'' peut être déposé dans n'importe quel répertoire sur votre système, mais il est souvent pratique de le déposer dans un répertoire dédié aux scripts. Certains répertoires communs pour les scripts incluent ''/usr/local/bin/'' (répertoire des binaires locaux).
Voici un exemple de scripts que vous pouvez utiliser :
<code BASH check_update.sh>
#!/bin/bash
# Définir le chemin vers le fichier de mise à jour
update_file=/var/udpate_file
# Exécuter la commande de mise à jour et stocker la sortie dans le fichier
dnf check-update
dnf check-update > $update_file
</code>
</callout>
<callout icon="fa fa-slack">
Enregistrez ce script dans un fichier, puis rendez-le exécutable en utilisant la commande suivante :
<code BASH>
chmod +x /usr/local/bin/check_update.sh
</code>
</callout>
<callout icon="fa fa-slack">
La commande ''touch'' pour créer le fichier **update_file** s'il n'existe pas encore. La commande ''chmod'' avec l'option **644** permet à tous les utilisateurs (propriétaire, utilisateurs du groupe et autres utilisateurs) d'avoir uniquement des autorisations de lecture sur le fichier ''update_file'' :
<code BASH>
sudo touch /var/udpate_file
sudo chmod 644 /var/update_file
</code>
</callout>
<callout icon="fa fa-slack">
Ensuite, pour exécuter ce script en tant que service, vous pouvez ajouter une tâche **cron**. Pour ouvrir le fichier de configuration **cron**, utilisez la commande suivante :
sudo crontab -e
</callout>
<callout icon="fa fa-slack">
Ajoutez la ligne suivante à ce fichier pour exécuter le script tous les heures :
0 */1 * * * /usr/local/bin/check_update.sh
Cette ligne exécutera le script tous les heures. Vous pouvez ajuster l'heure en fonction de vos besoins.
</callout>
<callout icon="fa fa-slack">
Pour afficher les informations de mise à jour lors de l'ouverture d'un terminal, vous pouvez ajouter le code suivant à votre fichier de configuration bash **~/.bashrc** :
<code BASH .bashrc>
# Définir le chemin vers le fichier de mise à jour
update_file=/var/udpate_file
# Vérifier si le fichier de mise à jour existe
if [ -f $update_file ]; then
# Compter le nombre de mises à jour
updates=$(($(wc -l < $update_file) - 1))
# Afficher le nombre de mises à jour en attente
echo "Il y a $updates mise(s) à jour en attente."
fi
</code>
</callout>
Après avoir enregistré les modifications, ouvrez un nouveau terminal pour vérifier que les informations de mise à jour s'affichent correctement.
<callout type="success" icon="true">
Retrouver le script d'installation automatique à l'adresse [[https://git.abonnel.fr/cedricAbonnel/scripts-bash/src/branch/main/install_check_update.sh|git.abonnel.fr scripts-bash]]
Executez la ligne suivante dans votre Terminal :
sudo bash -c "$(curl -fsSL https://git.abonnel.fr/cedricAbonnel/scripts-bash/raw/branch/main/install_check_update.sh)"
</callout>

View File

@@ -0,0 +1,49 @@
====== $$ ======
{{tag>"script linux"}}
{{ :dummy.png?75x75|Nom de la section}}
En Bash, ''$$'' est une variable qui contient le PID (Process ID) du processus en cours d'exécution. Cette variable peut être utilisée pour identifier de manière unique un processus ou pour contrôler les processus enfants créés à partir du script.
Par exemple, vous pouvez utiliser ''$$'' pour créer un fichier journal unique pour chaque instance de votre script Bash en utilisant le PID comme partie du nom du fichier.
Notez cependant que le PID est une valeur dynamique qui change chaque fois que le processus est exécuté, donc ''$$'' ne doit être utilisé que dans le contexte du processus en cours d'exécution.
Pour utiliser "$$" correctement dans le contexte du processus en cours d'exécution, vous pouvez le stocker dans une variable dès le début de votre script Bash. De cette façon, la variable contiendra le PID du processus en cours d'exécution tout au long du script, même si le PID change pendant l'exécution du script.
Voici un exemple de code Bash montrant comment stocker "$$" dans une variable :
<code BASH>
#!/bin/bash
# stocker le PID dans une variable
current_pid=$$
# afficher le PID
echo "Le PID du processus en cours d'exécution est : $current_pid"
# faire quelque chose d'autre dans le script...
</code>
Ensuite, vous pouvez utiliser la variable ''current_pid'' tout au long de votre script pour référencer le PID du processus en cours d'exécution.
Notez que si votre script crée des processus enfants, le PID de ces processus enfants sera différent du PID du processus parent. Dans ce cas, vous pouvez utiliser ''$$'' pour référencer le PID du processus parent, et utiliser un autre mécanisme pour référencer le PID des processus enfants, comme par exemple en stockant le PID de chaque processus enfant dans un tableau ou un fichier.
Pour connaître le PID du processus parent dans un script Bash, vous pouvez utiliser la variable spéciale ''$PPID''. Cette variable contient le PID du processus parent qui a créé le processus en cours d'exécution.
Voici un exemple de code Bash qui utilise ''$PPID'' pour afficher le PID du processus parent :
<code BASH>
#!/bin/bash
# stocker le PID du processus parent dans une variable
parent_pid=$PPID
# afficher le PID du processus parent
echo "Le PID du processus parent est : $parent_pid"
# faire quelque chose d'autre dans le script...
</code>
Notez que ''$PPID'' ne fonctionne que si le processus en cours d'exécution a été créé par un processus parent dans le même système d'exploitation. Si le processus en cours d'exécution a été créé par un autre système d'exploitation ou un autre type de processus, ''$PPID'' ne sera pas défini ou aura une valeur incorrecte.

View File

@@ -0,0 +1,11 @@
====== dpkg ======
{{ :dummy.png?75x75|}}
Le programme ''dpkg'' est un outil de gestion de paquets sous Linux qui est utilisé pour installer, configurer, supprimer et gérer des paquets logiciels sur un système **Debian** ou dérivé de **Debian**. Il est utilisé en ligne de commande et fournit une interface de bas niveau pour travailler avec des fichiers de paquets **Debian**.
En utilisant **dpkg**, vous pouvez installer des paquets de logiciels localement à partir de fichiers de paquets **Debian** (fichiers ''.deb''), ainsi que gérer les paquets installés sur votre système, tels que les lister, les supprimer ou les mettre à jour.
''dpkg'' est utilisé en conjonction avec d'autres outils de gestion de paquets, tels que [[apt|apt]] ou  [[..:..:applications:apt-get|apt-get]].
--- //[[user:cedricabonnel]]//

View File

@@ -0,0 +1,30 @@
====== du ======
Exemple d'analyse d'une arborescence d'un Raspbian 10 :
<code>
$ sudo du -h --max-depth=1 /
0 /dev
8,6M /bin
16K /lost+found
41M /opt
343M /lib
3,4M /etc
4,0K /mnt
614M /usr
96K /home
4,0K /srv
17M /run
52M /boot
36K /tmp
32K /root
260M /var
8,8M /sbin
du: impossible d'accéder à '/proc/23168/task/23168/fd/3': Aucun fichier ou dossier de ce type
du: impossible d'accéder à '/proc/23168/task/23168/fdinfo/3': Aucun fichier ou dossier de ce type
du: impossible d'accéder à '/proc/23168/fd/4': Aucun fichier ou dossier de ce type
du: impossible d'accéder à '/proc/23168/fdinfo/4': Aucun fichier ou dossier de ce type
0 /proc
0 /sys
</code>

View File

@@ -0,0 +1,22 @@
====== echo ======
La commande ''echo'' est couramment utilisée dans les scripts shell et dans les lignes de commande Unix/Linux pour afficher du texte ou des variables à la sortie standard (généralement la console ou le terminal). Elle est principalement utilisée pour produire une sortie textuelle à des fins de débogage, de communication avec l'utilisateur ou d'autres opérations d'affichage.
La syntaxe de base de la commande ''echo'' est la suivante :
<code bash>
echo [options] [texte ou variables]
</code>
- ''[options]'' : Vous pouvez spécifier des options pour modifier le comportement de la commande ''echo'', bien que la plupart des implémentations de shell n'en aient pas beaucoup. Par exemple, ''echo -n'' supprime la nouvelle ligne qui est généralement ajoutée à la fin de la sortie.
- ''[texte ou variables]'' : Vous pouvez fournir du texte à afficher ou des variables dont la valeur doit être affichée. Vous pouvez utiliser des guillemets simples (''''') ou doubles (''"'') pour encadrer le texte, selon que vous souhaitez ou non interpréter des variables à l'intérieur (les guillemets doubles permettent l'interpolation des variables).
Voici quelques exemples d'utilisation de la commande ''echo'' :
<code bash>
echo "Bonjour, monde!" # Affiche le texte "Bonjour, monde!" avec une nouvelle ligne.
echo -n "Bonjour, " ; echo "monde!" # Affiche le texte "Bonjour, monde!" sans nouvelle ligne entre les deux parties.
nom="Alice"
echo "Bienvenue, $nom" # Affiche "Bienvenue, Alice" en interprétant la variable $nom.
</code>

View File

@@ -0,0 +1,50 @@
====== exit ======
{{ :dummy.png?75x75|commande système}}
La commande ''exit'' est une commande utilisée dans le shell BASH pour quitter une session de terminal. Lorsque vous exécutez la commande ''exit'', le shell BASH se termine et vous êtes retourné à l'invite de commande de votre système d'exploitation.
La commande ''exit'' prend également un code de sortie en argument optionnel. Par exemple, si vous exécutez ''exit 0'', cela signifie que le programme ou le script qui utilise le shell BASH s'est terminé sans erreur. Si vous spécifiez un autre code de sortie, cela indique qu'une erreur s'est produite lors de l'exécution du programme ou du script.
La commande ''exit'' ne fonctionne que dans le shell BASH et ne peut pas être utilisée dans d'autres shells de terminal.
La commande ''exit'' permet de quitter la session courante du shell BASH, mais elle ne ferme pas directement le terminal ou l'émulateur de terminal que vous utilisez. Une fois que vous avez exécuté la commande ''exit'', la session BASH actuelle se termine et vous êtes retourné à l'interface du terminal.
Cependant, si vous utilisez un terminal graphique (comme GNOME Terminal, KDE Konsole, ou iTerm2), la fermeture de la session BASH peut entraîner la fermeture du terminal si aucune autre session ou onglet n'est ouvert. Dans ce cas, la commande ''exit'' peut sembler fermer le terminal, mais en réalité, elle ne ferme que la session du shell en cours.
La manière dont un terminal gère la fermeture des sessions et des onglets peut varier selon l'application et les paramètres de configuration.
-- Dans le shell BASH, les commandes ''exit'' et [[informatique:linux:commandes:logout|logout]] ont des fonctions similaires, mais elles ne sont pas exactement les mêmes.
La commande ''exit'' permet de quitter la session du shell BASH en cours. Elle ferme le shell et retourne à l'invite de commande du système d'exploitation. Si vous exécutez la commande ''exit'' dans une session de shell, elle se termine immédiatement.
La commande ''logout'' est souvent utilisée pour se déconnecter d'une session de terminal interactive. Elle peut être utilisée pour se déconnecter d'une session de shell, mais elle peut également fermer une session de terminal en fonction de la configuration du système.
Dans de nombreux systèmes, ''logout'' et ''exit'' ont un effet similaire car ils quittent la session du shell. Cependant, il est possible que ces commandes aient des effets différents selon la configuration du système ou le shell utilisé. Par exemple, dans le shell Zsh, la commande ''logout'' peut être utilisée pour se déconnecter de la session de shell, mais elle ne peut pas être utilisée pour quitter une fenêtre de terminal.
===== Exemples =====
-- Supposons que vous avez ouvert un terminal et que vous êtes actuellement connecté en tant que utilisateur ''alice''. Vous pouvez exécuter la commande ''exit'' pour quitter la session du shell BASH en cours et retourner à l'invite de commande de votre système d'exploitation, comme ceci :
<code BASH>
alice@ubuntu:~$ exit
logout
</code>
Après avoir exécuté la commande ''exit'', vous voyez l'affichage ''logout'' qui indique que vous avez quitté la session du shell BASH.
-- Vous pouvez également utiliser la commande ''exit'' avec un code de sortie en argument. Par exemple, si vous avez un script qui effectue une tâche spécifique et que vous voulez que le code de sortie soit ''0'' pour indiquer que le script s'est terminé sans erreur, vous pouvez utiliser la commande ''exit 0'', comme ceci :
<code BASH>
#!/bin/bash
# Votre script ici
# Quitter le script avec un code de sortie 0 (aucune erreur)
exit 0
</code>
Dans cet exemple, la commande ''exit 0'' est utilisée pour quitter le script et renvoyer le code de sortie ''0''.
===== Astuces =====
Dans un terminal ou une console, le raccourci <key>Ctrl</key> + <key>D</key> est utilisé pour envoyer un signal de fin de fichier (''EOF''). Cela signifie que lorsque vous tapez ce raccourci, le terminal ou la console interprète cela comme la fin de l'entrée de données et affiche le résultat ou quitte l'interface de commande si rien n'est entré.

View File

@@ -0,0 +1,14 @@
====== expand ======
~~TechArticle~~
C'est un programme Linux présent dans ''/usr/bin/''.
Le programme ''expand'' a pour fonction de convertir les tabulations (''\t'') en espaces. Il lit un fichier texte en entrée et écrit le fichier texte en sortie, en remplaçant toutes les tabulations par un nombre spécifié d'espaces (par défaut, huit).
===== Exemples =====
expand -4 input.txt > output.txt
Cet exemple prend le contenu du fichier ''input.txt'', le modifie pour remplacer chaque tabulation par quatre espaces, puis écrit le résultat dans le fichier ''output.txt''.

View File

@@ -0,0 +1,32 @@
====== fdupes ======
**FDupes** est un programme en ligne de commande utilisé pour identifier et supprimer les fichiers en double sur un système de fichiers. Il s'agit d'un outil open source couramment utilisé sur les systèmes d'exploitation de type Unix, y compris Linux. **FDupes** fonctionne en **comparant les tailles de fichiers** et en **calculant des empreintes MD5** pour identifier les fichiers avec des contenus identiques.
Les utilisateurs peuvent spécifier divers paramètres pour affiner la recherche, tels que l'exclusion de certains dossiers, la comparaison de fichiers en fonction de la taille ou du contenu, et la possibilité de conserver un exemplaire de chaque fichier en double.
===== Installer FDupes =====
<code>
sudo apt install fdupes
</code>
===== Recherche Basique de Doublons =====
<code>
fdupes /chemin/du/dossier
</code>
Cette commande recherche les fichiers en double dans le dossier spécifié et ses sous-dossiers.
===== Recherche de Doublons dans Plusieurs Dossiers =====
<code>
fdupes /dossier1 /dossier2
</code>
Cette commande compare les fichiers dans ''dossier1'' et ''dossier2'', identifiant les doublons entre ces deux dossiers.
--- //[[user:cedricabonnel]]//

View File

@@ -0,0 +1,18 @@
====== file ======
La commande "file" sous Linux est une commande en ligne de commande qui permet de déterminer le type de fichier d'un fichier donné. Elle peut être utilisée pour identifier le type de contenu d'un fichier, qu'il s'agisse d'un fichier texte, d'une image, d'un fichier audio ou vidéo, ou de tout autre type de fichier.
La syntaxe de base de la commande est la suivante :
file [options] nom_du_fichier
Cette commande retourne une brève description du type de fichier et du format utilisé
Exemple :
<code>
$ file /usr/sbin/poweroff
/usr/sbin/poweroff: symbolic link to `../bin/systemctl'
</code>

View File

@@ -0,0 +1,36 @@
====== find ======
{{ :dummy.png?75x75|}}
La commande **find** sous Linux est utilisée pour rechercher des fichiers et des répertoires dans une hiérarchie de fichiers. Elle est souvent utilisée pour trouver des fichiers en fonction de leur nom, de leur type, de leur taille, de leur date de modification, de leur propriétaire ou de leurs permissions.
La commande **find** est très puissante et flexible, elle permet de trouver des fichiers dans toute la hiérarchie de fichiers à partir du répertoire spécifié en paramètre.
--
Par exemple, si vous voulez trouver tous les fichiers portant le nom ''exemple.txt'' dans votre répertoire personnel et ses sous-répertoires, vous pouvez utiliser la commande :
<code BASH>
find ~/ -name exemple.txt
</code>
Cette commande cherchera tous les fichiers portant le nom ''exemple.txt'' dans le répertoire personnel et ses sous-répertoires, et affichera leur chemin absolu.
--
Pour chercher un fichier avec **find** dont le nom contient "HDR", vous pouvez utiliser l'option ''-name'' suivi d'un motif de recherche qui inclut la chaîne de caractères "HDR". Par exemple :
<code>
find . -type f -name *HDR*
</code>
Dans cet exemple, ''.'' est le chemin courant dans lequel vous voulez rechercher le fichier. L'astérisque (*) est utilisé pour représenter tout texte qui peut se trouver avant et après "HDR" dans le nom du fichier. Cela permet de rechercher tous les fichiers dont le nom contient la chaîne de caractères "HDR", quelle que soit leur position dans le nom.
Si vous voulez supprimer ces fichiers, vous pouvez utiliser la commande ''rm'' avec l'option ''-f'' pour supprimer les fichiers sans confirmation :
<code>
find . -type f -name *HDR* -exec rm -f {} \;
</code>
Cette commande supprime tous les fichiers trouvés. L'option ''-exec'' permet d'exécuter la commande **rm** pour chaque fichier trouvé, et ''{}'' est remplacé par le nom de chaque fichier. L'option ''-f'' permet de supprimer les fichiers sans confirmation. Le ''\;'' indique la fin de la commande à exécuter pour chaque fichier.
Cependant, soyez très prudent lors de l'utilisation de la commande **rm**, car une fois les fichiers supprimés, il est très difficile de les récupérer. Vérifiez deux fois avant de lancer cette commande, ou assurez-vous que vous avez une sauvegarde des fichiers importants.

View File

@@ -0,0 +1,9 @@
====== free ======
{{tag>"Linux commande"}}
{{ :informatique:1200px-gnulinux.jpg?75x75|linux}}
Afficher l'occupation de la mémoire.
<code>
free -th
</code>

View File

@@ -0,0 +1,117 @@
====== getfacl ======
{{ :dummy.png?75x75|getfacl}}
Programme Linux qui retourne les informations ACL (Contrôle d'Accès aux fichiers).
Il peut s'utiliser de la manière la plus simple :
<code>
$ getfacl ~
</code>
===== - Installer getfacl =====
<code>
$ sudo apt install acl
</code>
====== - Exemples de retour ======
---
Dans un dossier **non** modifié par ''setfacl -d'', nous avons les propriétés suivantes :
<code>
$ getfacl /mnt/disk_23
getfacl : suppression du premier « / » des noms de chemins absolus
# file: mnt/disk_23
# owner: 99
# group: 99
user::rwx
group::rwx
other::rwx
</code>
Le résultat obtenu avec la commande ''getfacl'' affiche les informations de contrôle d'accès (ACL) pour le fichier ou le répertoire spécifié. Voici la signification des différentes lignes du résultat :
* ''# file: mnt/disk_23'': Cette ligne indique le chemin d'accès au fichier ou répertoire dont les ACL sont affichées, dans ce cas précis, le fichier se trouve à ''mnt/disk_23''.
* ''# owner: 99'': Cette ligne indique l'identifiant du propriétaire du fichier ou du répertoire. Dans cet exemple, le propriétaire a l'ID 99.
* ''# group: 99'': Cette ligne indique l'identifiant du groupe propriétaire du fichier ou du répertoire. Dans cet exemple, le groupe propriétaire a l'ID 99.
Ensuite, les lignes suivantes décrivent les droits d'accès pour différentes entités :
* ''user::rwx'': Cela signifie que l'utilisateur (propriétaire) a les droits de lecture (r), d'écriture (w) et d'exécution (x) sur ce fichier ou répertoire.
* ''group::rwx'': Cela indique que les membres du groupe propriétaire ont les mêmes droits que l'utilisateur (propriétaire) précédemment mentionné, c'est-à-dire lecture, écriture et exécution.
* ''other::rwx'': Cela spécifie les droits d'accès pour tous les autres utilisateurs qui ne sont ni le propriétaire ni membres du groupe propriétaire. Dans ce cas, les autres utilisateurs ont également les droits de lecture, écriture et exécution.
Ainsi, le fichier ou le répertoire ''mnt/disk_23'' a les ACL configurées de manière à permettre au propriétaire, au groupe propriétaire et à tous les autres utilisateurs d'avoir des droits complets de lecture, écriture et exécution sur ce fichier ou répertoire.
---
Dans un dossier modifié par ''chmod'', nous avons les propriétés suivantes :
<code>
$ sudo chmod o-s,g+s,u+s /media/disk_23
$ sudo setfacl /media/disk_23
getfacl : suppression du premier « / » des noms de chemins absolus
# file: media/disk_23
# owner: 99
# group: 99
# flags: ss-
user::rwx
group::rwx
other::rwx
</code>
Si le résultat affiche la ligne ''# flags: ss-'' après les droits d'accès, cela indique la présence de certains indicateurs de contrôle d'accès spéciaux. Voici la signification de ces indicateurs :
* ''s'': L'indicateur "s" fait référence à l'ensemble de bits "setuid" ou "setgid". Lorsque l'indicateur "s" est présent pour l'utilisateur (propriétaire) ou le groupe, il indique que l'exécution de ce fichier ou répertoire sera effectuée avec les droits de l'utilisateur ou du groupe propriétaire, respectivement. Cela signifie que lorsque d'autres utilisateurs exécutent ce fichier, il aura les mêmes droits que l'utilisateur propriétaire, et lorsque d'autres fichiers sont créés dans ce répertoire, ils hériteront du groupe propriétaire.
* ''-'': Le tiret ("-") indique que l'indicateur "s" n'est pas activé. Dans ce cas, il n'y a pas d'ensemble de bits "setuid" ou "setgid" appliqué au fichier ou au répertoire.
Ainsi, avec l'indicateur "ss-", aucun ensemble de bits "setuid" ou "setgid" n'est activé pour ce fichier ou répertoire. Cela signifie que lorsqu'il est exécuté ou lorsqu'un nouveau fichier est créé dans ce répertoire, il n'y aura pas de changement de l'utilisateur ou du groupe propriétaire associé.
---
Dans un dossier modifié par ''setfacl -d -m :rwx'', nous avons les propriétés suivantes :
<code>
$ sudo setfacl -d -m :rwx /media/disk_23
$ getfacl /media/disk_23
getfacl : suppression du premier « / » des noms de chemins absolus
# file: media/disk_23
# owner: 99
# group: 99
# flags: ss-
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx
</code>
Cela signifie que les droits d'accès par défaut sont définis pour les nouveaux fichiers et répertoires créés à l'intérieur de ce répertoire. Voici leur signification :
* ''default:user::rwx'' : Cela spécifie que par défaut, les nouveaux fichiers et répertoires créés auront les droits de lecture, écriture et exécution pour le propriétaire.
* ''default:group::rwx'' : Cela indique que par défaut, les nouveaux fichiers et répertoires auront les mêmes droits de lecture, écriture et exécution pour le groupe propriétaire que le répertoire parent.
* ''default:other::rwx'' : Cela spécifie que par défaut, les nouveaux fichiers et répertoires auront les droits de lecture, écriture et exécution pour tous les autres utilisateurs qui ne sont pas le propriétaire ni membres du groupe propriétaire.
En résumé, lorsque vous créez de nouveaux fichiers ou répertoires à l'intérieur de ce répertoire, les droits d'accès par défaut spécifiés ci-dessus seront automatiquement attribués à ces nouveaux éléments. Ces droits d'accès par défaut peuvent être modifiés selon vos besoins.
---
<code>
default:user:www-data:rwx
default:group:www-data:rwx
</code>
Cela indique que par défaut, les nouveaux fichiers et répertoires créés auront "www-data" comme propriétaire et groupe propriétaire, avec les droits de lecture, écriture et exécution (rwx) accordés à la fois au propriétaire et au groupe.

View File

@@ -0,0 +1,38 @@
====== getopts ======
La commande ''getopts'' est une commande intégrée (built-in) dans les scripts shell (en particulier dans les shells comme bash) qui permet de traiter facilement les options et les arguments passés en ligne de commande lors de l'exécution d'un script. Elle facilite la gestion des arguments de ligne de commande en permettant aux scripts d'analyser les options spécifiées par l'utilisateur.
La syntaxe générale de ''getopts'' est la suivante :
<code bash>
getopts options variable
</code>
- ''options'' est une chaîne qui spécifie les options que vous souhaitez gérer dans votre script. Chaque lettre dans cette chaîne représente une option, et si une lettre est suivie d'un deux-points ('':''), cela signifie que l'option attend un argument. Par exemple, ''"ab:c"'' signifie que le script gère les options ''-a'', ''-b'', et ''-c'', où ''-b'' attend un argument.
- ''variable'' est la variable que vous déclarez pour stocker la lettre de l'option actuelle pendant le traitement.
Voici un exemple simple d'utilisation de ''getopts'' dans un script bash :
<code bash>
#!/bin/bash
while getopts "a:b:c" option; do
case "$option" in
a)
echo "Option -a avec argument: $OPTARG"
;;
b)
echo "Option -b avec argument: $OPTARG"
;;
c)
echo "Option -c sans argument"
;;
\?)
echo "Option invalide: -$OPTARG"
exit 1
;;
esac
done
</code>
Dans cet exemple, le script peut être appelé avec des options comme ''-a valeur'', ''-b autre_valeur'', ou simplement ''-c''. ''getopts'' permet de traiter chaque option de manière séquentielle, en récupérant la lettre de l'option dans la variable ''$option'' et en utilisant un bloc ''case'' pour gérer chaque option spécifiée par l'utilisateur. Si l'utilisateur spécifie une option invalide, le script affiche un message d'erreur et se termine.

View File

@@ -0,0 +1,241 @@
====== git ======
{{tag>"script linux"}}
{{ :dummy.png?75x75|Nom de la section}}
Git est un système de gestion de versions qui permet de suivre les modifications apportées à des fichiers et de collaborer sur des projets informatiques de manière organisée. Il enregistre l'historique de toutes les modifications, ce qui permet de revenir en arrière en cas d'erreur et de travailler en équipe sur un même code source sans conflits majeurs. En résumé, Git est un outil essentiel pour les développeurs et d'autres personnes travaillant sur des projets informatiques pour gérer et suivre les modifications apportées aux fichiers.
===== - Commandes Git de base =====
Lorsque vous travaillez uniquement en local avec Git, vous avez généralement besoin d'un ensemble de commandes Git de base pour gérer vos dépôts locaux. Voici quelques-unes des commandes Git les plus couramment utilisées dans ce contexte :
* **git init** : Cette commande initialise un nouveau dépôt Git local dans le répertoire courant. Vous l'utiliserez une seule fois au début du projet pour créer un nouveau dépôt.
* **git clone** : Si vous avez déjà un dépôt distant et que vous souhaitez créer une copie locale de ce dépôt, vous pouvez utiliser la commande **git clone**.
* **git status** : Cette commande vous permet de vérifier l'état de votre répertoire de travail par rapport au dépôt Git local. Elle vous montre les fichiers modifiés, non suivis, en attente de commit, etc.
* **git add** : Utilisez cette commande pour mettre des fichiers sous suivi Git (//staging area//) en vue de les inclure dans le prochain commit.
* **git commit** : Crée un instantané (commit) des modifications enregistrées dans la //staging area//.
* **git log** : Cette commande affiche l'historique des commits du dépôt local, y compris les messages de commit et les informations sur les auteurs et les dates.
* **git branch** : Permet de lister les branches disponibles dans votre dépôt local, et de voir sur quelle branche vous vous trouvez actuellement.
* **git checkout** : Vous permet de passer d'une branche à une autre.
* **git merge** : Utilisé pour fusionner une branche avec une autre.
* **git diff** : Vous montre les différences entre deux commits, deux branches ou deux fichiers.
===== - Commandes Git avec un dépôt distant =====
Lorsque vous travaillez avec un dépôt distant en plus de votre dépôt local, vous devez utiliser quelques commandes supplémentaires pour synchroniser votre travail avec le dépôt distant. Voici les commandes Git les plus couramment utilisées dans ce contexte :
* **git remote** : Cette commande vous permet de voir la liste des dépôts distants associés à votre dépôt local.
* **git fetch** : Utilisez cette commande pour récupérer les dernières modifications du dépôt distant sans les fusionner dans votre branche actuelle. Elle met à jour vos références locales avec les modifications distantes.
* **git pull** : Cette commande récupère les dernières modifications du dépôt distant et les fusionne automatiquement dans votre branche locale. C'est équivalent à exécuter **git fetch** suivi de **git merge**.
* **git push** : Utilisez cette commande pour pousser vos commits locaux vers le dépôt distant. Vous devez spécifier la branche locale que vous souhaitez pousser et la branche distante vers laquelle vous voulez la pousser.
* **git clone** (déjà mentionné) : Utilisez cette commande pour cloner un dépôt distant et créer une copie locale de celui-ci.
* **git branch** (déjà mentionné) : Vous permet de voir les branches locales et distantes. Utilisez **git branch -r** pour voir les branches distantes.
* **git checkout** (déjà mentionné) : Vous permet de basculer entre les branches locales et de créer de nouvelles branches.
* **git merge** (déjà mentionné) : Utilisé pour fusionner les branches locales. Vous pouvez également utiliser git merge pour fusionner des branches distantes dans votre branche actuelle après avoir récupéré les modifications avec **git fetch**.
* **git remote add** : Si vous souhaitez ajouter un nouveau dépôt distant à votre dépôt local, vous pouvez utiliser cette commande pour l'associer.
* **git remote remove** : Cette commande vous permet de supprimer un dépôt distant associé à votre dépôt local.
===== - init =====
Que vous travailliez en collaboration avec d'autres développeurs ou que vous travailliez uniquement sur votre propre projet, vous effectuerez systématiquement une commande ''git init'' pour initialiser la construction de votre dépôt **Git**. Pour rappel, **Git** sait aussi bien travailler en collaboration à distance qu'en local, car il permet de gérer efficacement les versions de votre code, de suivre l'historique des modifications et de fusionner les contributions de différents collaborateurs, que ce soit sur un dépôt distant ou sur votre propre machine.
===== - gitignore =====
Le fichier ''.gitignore'' est utilisé pour spécifier des règles sur les fichiers et les répertoires que Git doit ignorer lorsqu'il suit les modifications. Les règles définies dans ce fichier indiquent à Git de ne pas inclure certains fichiers ou dossiers dans les commits, ce qui peut être utile pour exclure des fichiers de configuration locaux, des fichiers de génération automatique, des fichiers temporaires, etc.
Placer le fichier ''.gitignore'' à la racine du dépôt est courant car cela permet de spécifier des règles d'ignorance qui s'appliquent à l'ensemble du projet. Cependant, il est également possible d'avoir des fichiers ''.gitignore'' dans des sous-répertoires si vous avez besoin de règles d'ignorance spécifiques à ces sous-répertoires.
===== - clone =====
Ce terme désigne l'action de copier ou télécharger le contenu d'un dépôt dans un dossier de travail. L'adresse d'un dépot Git peut-être par exemple ''https://git.abonnel.fr/cedricAbonnel/scripts-bash''.
Dans le contexte de la gestion de versions et du contrôle de code source, un dépôt (ou repository en anglais) est un endroit où sont stockées toutes les informations liées à un projet, y compris les fichiers source, l'historique des versions, les branches de développement, etc.
Donc, lorsque vous souhaitez **cloner** ce lien avec la commande ''git clone'', vous obtenez une copie locale de ce dépôt sur votre machine, ce qui vous permet de travailler sur le projet et de suivre les modifications localement.
Par exemple :
<code bash>
cd ~/projets
git clone https://git.abonnel.fr/cedricAbonnel/scripts-bash
</code>
Ces commandes créent un dossier appelé "scripts-bash" dans le répertoire "~/projets" et téléchargent les fichiers et dossiers du dépôt, en préservant la structure de l'arborescence telle qu'elle est définie dans le dépôt. Le dossier "~/projets/scripts-bash" devient un dépôt Git local.
===== - remote =====
Pour collaborer avec d'autres sur **Git**, vous devez initialement créer un dépôt sur la plateforme de votre choix, que ce soit **GitHub**, **GitLab**, ou un dépôt géré par un service tel que **Gitea**. Une fois que votre dépôt distant est prêt, vous devez configurer votre dépôt local pour qu'il puisse interagir avec le dépôt distant en utilisant la commande ''git remote''. Cette commande permet d'établir le lien entre votre dépôt local et le dépôt distant en spécifiant son emplacement et un nom symbolique pour référencer le dépôt distant.
Voici quelques exemples d'utilisation de la commande ''git remote'' pour configurer des dépôts distants dans Git :
1. Ajouter un dépôt distant nommé "origin" avec une URL :
<code>
git remote add origin https://exemple.com/votre-utilisateur/votre-depot.git
</code>
2. Voir la liste des dépôts distants configurés dans votre dépôt local :
<code>
git remote -v
</code>
3. Modifier l'URL d'un dépôt distant existant (par exemple, changer l'URL du dépôt "origin") :
<code>
git remote set-url origin https://exemple.git
</code>
4. Supprimer un dépôt distant spécifique (par exemple, supprimer le dépôt "origin") :
<code>
git remote remove origin
</code>
5. Renommer un dépôt distant (par exemple, renommer "origin" en "new-origin") :
<code>
git remote rename origin new-origin
</code>
6. Voir les informations détaillées sur un dépôt distant spécifique (par exemple, "origin") :
<code>
git remote show origin
</code>
===== - origin =====
Dans **Git**, "origin" est généralement un nom symbolique utilisé pour faire référence par défaut au dépôt distant à partir duquel vous avez cloné votre dépôt local. Il est important de noter que "origin" n'est pas un terme réservé ou prédéfini par **Git**, mais c'est une convention couramment utilisée.
Plus précisément, "origin" est un alias que **Git** utilise pour simplifier les opérations de communication avec un dépôt distant. Lorsque vous clonez un dépôt distant avec la commande ''git clone'', **Git** configure automatiquement "origin" pour pointer vers l'URL du dépôt distant que vous avez cloné. Cela vous permet d'accéder facilement au dépôt distant sans avoir à spécifier son URL à chaque fois que vous effectuez des opérations telles que ''git fetch'' ou ''git push''.
Par exemple, après avoir cloné un dépôt depuis **GitHub**, votre dépôt local aura par défaut "origin" configuré pour pointer vers l'URL du dépôt **GitHub**. Vous pouvez ensuite utiliser des commandes comme ''git pull origin'' pour tirer les mises à jour du dépôt distant ou ''git push origin'' pour pousser vos modifications vers le dépôt distant, en utilisant simplement l'alias "origin".
Cependant, vous pouvez également configurer d'autres dépôts distants avec des noms différents si vous travaillez avec plusieurs dépôts distants dans votre projet. "origin" est simplement le nom par défaut pour le dépôt distant d'origine à partir duquel vous avez cloné.
===== - add, commit, push =====
Les commandes **add**, **commit** et **push** sont des commandes essentielles dans Git qui vous permettent de gérer et de versionner vos fichiers et modifications.
**git add** : Cette commande est utilisée pour mettre des fichiers sous suivi Git (staging area). En d'autres termes, elle permet de préparer les modifications que vous souhaitez inclure dans votre prochain commit. Vous pouvez spécifier les fichiers individuellement ou utiliser des motifs pour ajouter plusieurs fichiers à la fois. Par exemple :
<code bash>
git add fichier1.txt
git add dossier/
git add .
</code>
La première commande ajoute un fichier spécifique, la deuxième ajoute tous les fichiers dans un dossier, et la troisième ajoute tous les fichiers modifiés ou nouveaux dans le répertoire de travail.
**git commit** : Une fois que vous avez ajouté les fichiers à la staging area avec git add, vous pouvez utiliser git commit pour créer un instantané (commit) des modifications. Chaque commit est accompagné d'un message descriptif qui explique les changements apportés. Par exemple :
<code bash>
git commit -m "Ajout de fonctionnalité XYZ"
</code>
Cette commande crée un commit contenant les fichiers ajoutés à la staging area avec un message qui décrit la modification effectuée.
**git push** : Cette commande est utilisée pour pousser vos commits vers un dépôt distant, comme celui sur GitHub, GitLab ou un autre serveur Git. Lorsque vous effectuez des commits localement, ils ne sont pas automatiquement disponibles pour d'autres collaborateurs ou pour sauvegarde sur le serveur distant. git push permet de transférer vos commits locaux vers le dépôt distant. Par exemple :
<code bash>
git push origin nom_de_la_branche
</code>
Cette commande envoie les commits de la branche locale vers la branche correspondante sur le dépôt distant.
--
Si vous souhaitez modifier l'un des scripts ou fichier dans le dépôt cloné (par exemple, le "scripts-bash" que vous avez cloné), suivez ces étapes :
1. Naviguez vers le répertoire où vous avez cloné le dépôt. Vous avez mentionné que vous l'avez cloné dans "~/projets/scripts-bash". Utilisez la commande `cd` pour vous déplacer vers ce répertoire :
<code bash>
cd ~/projets/scripts-bash
</code>
2. Une fois dans le répertoire du projet, vous pouvez éditer le script que vous souhaitez modifier à l'aide de l'éditeur de texte de votre choix. Par exemple, si vous utilisez l'éditeur de texte "nano", vous pouvez l'ouvrir en spécifiant le nom du fichier à éditer :
<code bash>
nano nom_du_script.sh
</code>
3. Effectuez les modifications nécessaires dans le script à l'aide de l'éditeur de texte.
4. Enregistrez les modifications et quitter l'éditeur de texte.
5. Une fois les modifications enregistrées, vous pouvez les valider en utilisant **Git**. Voici comment cela peut être fait :
- Si vous avez modifié un fichier existant, utilisez la commande ''git add'' pour ajouter les modifications au suivi Git :
<code bash>
git add nom_du_script.sh
</code>
- Ensuite, utilisez la commande ''git commit'' pour enregistrer les modifications avec un message descriptif :
<code bash>
git commit -m "Description de la modification"
</code>
- Enfin, utilisez ''git push'' pour pousser les modifications vers le dépôt distant (si vous avez les autorisations nécessaires) :
<code bash>
git push origin nom_de_la_branche
</code>
Assurez-vous de remplacer "nom_de_la_branche" par le nom de la branche sur laquelle vous souhaitez pousser les modifications.
--
En résumé, **git add** prépare les modifications, **git commit** crée un instantané des modifications avec un message, et **git push** envoie ces commits vers un dépôt distant. Ensemble, ces commandes permettent de gérer efficacement les versions de votre code source. Elles permettront de modifier un script dans votre dépôt Git local et de mettre à jour le dépôt distant avec vos modifications.
===== - Enregistrer ces identifiants durant un laps de temps en mémoire =====
Comme vous l'aurez remarqué, les identifiants sont systématiquement requis lorsque vous effectuez des modifications sur le serveur distant avec la commande ''git push''. Vous avez la possibilité de mémoriser temporairement les identifiants de connexion Git localement en utilisant la commande ''git credential''. Voici comment procéder :
1. Ouvrez votre Terminal
2. Exécutez les commandes suivantes pour définir votre nom d'utilisateur et votre mot de passe pour le dépôt distant :
<code>
git config --global credential.helper 'cache --timeout=3600'
git credential approve <<EOF
protocol=https
host=github.com
username=VOTRE_NOM_D_UTILISATEUR
password=VOTRE_MOT_DE_PASSE
EOF
</code>
Assurez-vous de remplacer les valeurs de ''protocol'', ''host'', ''username'' et ''password'' par les valeurs appropriées pour votre dépôt distant.
--
Une fois que vous avez exécuté ces commandes, Git stockera vos informations d'identification en mémoire de manière sécurisée localement pendant un certain temps (dans cet exemple, pendant 3600 secondes, soit 1 heure). Vous n'aurez pas besoin de saisir vos informations d'identification à chaque opération Git pendant cette période.
//Source : https://git-scm.com/docs/git-credential-cache/fr //
===== - Enregistrer ces identifiants dans les gestionnaires de secrets =====
GNOME Keyring
//Source : https://pkgs.org/search/?q=git-credential-libsecret //
===== - Enregistrer ces identifiants dans keepassXC =====
//Source : https://github.com/Frederick888/git-credential-keepassxc //

View File

@@ -0,0 +1,86 @@
====== grep ======
{{tag>"linux commande"}}
{{ :dummy.png?75x75|}}
**grep** est un outil de ligne de commande pour la recherche de motifs dans un fichier ou une entrée standard ou des entrées de pipelines. Il est utilisé pour afficher les lignes d'un fichier qui correspondent à un modèle spécifié. Le résultat peut être filtré ou utilisé comme entrée pour d'autres commandes.
Techniquement, **grep** analyse le contenu d'un fichier ou d'une entrée standard et affiche les lignes qui correspondent à un modèle spécifié. Le modèle peut être une expression régulière, qui est une forme d'expression mathématique utilisée pour décrire des ensembles de chaînes de caractères. **Grep** utilise un algorithme de correspondance rapide pour trouver rapidement les lignes qui correspondent au modèle, ce qui le rend utile pour la recherche de fichiers, la filtration de sorties et la manipulation de données complexes.
===== Rechercher une chaîne de caractères dans un fichier =====
grep "motif recherché" nom_du_fichier
===== Rechercher une chaîne de caractères dans un fichier sans respect de la casse =====
L'option ''-i'' indique de rechercher de manière insensible à la casse.
Par défaut, la commande **grep** effectue une recherche respectant la casse, ce qui signifie qu'elle ne fera correspondre que les occurrences exactes de la chaîne de caractères spécifiée. Si vous recherchez "bonjour" avec **grep**, il ne trouvera que "bonjour" et pas "Bonjour", "BONJOUR", etc.
Si vous souhaitez effectuer une recherche insensible à la casse avec **grep**, vous devez utiliser l'option **-i**, comme suit :
<code>
grep -i bonjour *
</code>
===== Rechercher une chaîne de caractères dans plusieurs fichiers =====
grep "motif recherché" *
===== Afficher les lignes correspondantes avec le nom de fichier =====
grep -H "motif recherché" *
L'option ''-H'' indique à **grep** de inclure le nom de fichier pour chaque correspondance trouvée. La sortie sera la liste des lignes de chaque fichier qui correspondent à "motif recherché".
===== Rechercher une chaîne de caractères en utilisant une expression régulière =====
grep -E "^[0-9]+$" nom_du_fichier
L'option -E (extended regexp) pour rechercher les lignes du fichier ''nom_du_fichier'' qui correspondent à l'expression régulière ''^[0-9]+$''.
L'expression régulière ''^[0-9]+$'' signifie "une ou plusieurs chiffres consécutifs, débutant à la première colonne de la ligne et se terminant à la dernière colonne de la ligne". En d'autres termes, la commande ''grep'' affichera toutes les lignes du fichier ''nom_du_fichier'' qui ne contiennent que des chiffres.
===== Afficher le nombre de lignes correspondantes =====
grep -c "motif recherché" nom_du_fichier
L'option ''-c'' de la commande ''grep'' indique de ne retourner que le nombre de lignes qui correspondent au motif spécifié, sans afficher les lignes elles-mêmes.
===== Afficher les lignes précédentes et suivantes correspondantes =====
grep -A 2 -B 1 "motif recherché" nom_du_fichier
L'option ''-A 2'' indique à grep d'afficher 2 lignes supplémentaires après chaque ligne contenant le "motif recherché".
L'option ''-B 1'' indique à grep d'afficher 1 ligne supplémentaire avant chaque ligne contenant le "motif recherché".
Ainsi, pour chaque correspondance trouvée, grep affichera la ligne correspondante, suivie de 1 ligne avant et 2 lignes après.
===== Afficher des fichiers sans commentaires =====
{{ :dummy.png?75x75|Nom de la section}}
Les fichiers de configurations peuvent contenir beaucoup de ligne. Mais la plus part de ces lignes sont des commentaires. Il est utile de les supprimer à l'affichage quand on veut uniquement conserver les paramètres pris en comptes.
---
Afficher toutes les lignes du fichier ''/etc/php/7.4/fpm/php.ini'' qui ne commencent pas par un point-virgule (;), qui est utilisé pour commenter les lignes dans ce type de fichier de configuration. Cela signifie que seules les lignes actives (non commentées) seront affichées à la sortie.
grep ^[^\;] /etc/php/7.4/fpm/php.ini
---
Affichons les lignes qui ne commencent pas avec un ''#'' dans le fichier ''/etc/postfix/main.cf''. Les crochets ''[]'' définissent une liste de caractères à inclure ou à exclure dans la recherche, et le ''^'' signifie le début d'une ligne. Le ''\'' est utilisé pour échapper certains caractères spéciaux. Ainsi, ^[^#] signifie que nous cherchons des lignes qui commencent avec un caractère qui n'est pas un ''#''. Les résultats de la commande afficheront uniquement les lignes du fichier ''main.cf'' qui ne commencent pas avec un ''#'' et seront donc actives et utilisées par Postfix.
grep ^[^#] /etc/postfix/main.cf
--- //[[user:jeanserien]], [[user:cpt]]//

View File

@@ -0,0 +1,52 @@
====== groups ======
La commande ''groups'' est utilisée pour afficher les groupes auxquels un utilisateur appartient sur un système Unix ou Linux. Lorsqu'elle est exécutée sans argument, la commande ''groups'' affiche les groupes de l'utilisateur courant (l'utilisateur qui exécute la commande). Voici un exemple d'utilisation de la commande ''groups'' :
<code bash>
groups
</code>
Le résultat sera une liste des groupes auxquels appartient l'utilisateur actuel, séparés par des espaces.
Par exemple, si l'utilisateur courant est ''alice'' et qu'elle appartient aux groupes ''users'' et ''sudo'', la commande ''groups'' affichera quelque chose comme ceci :
<code bash>
alice users sudo
</code>
La commande ''groups'' est utile pour vérifier rapidement les groupes auxquels un utilisateur est associé, ce qui peut être important pour comprendre ses autorisations et ses privilèges sur le système. Vous pouvez également spécifier un nom d'utilisateur en argument pour afficher les groupes auxquels un utilisateur spécifique appartient, par exemple :
<code bash>
groups alice
</code>
Cela affichera les groupes auxquels l'utilisateur ''alice'' appartient.
===== Scripts =====
La commande ''groups'' peut être utilisée dans des scripts shell pour récupérer la liste des groupes auxquels un utilisateur appartient et utiliser ces informations dans des opérations ou des prises de décision. Voici un exemple simple de la façon dont vous pourriez utiliser ''groups'' dans un script :
Supposons que vous ayez un script shell (par exemple, un script bash) et que vous souhaitiez effectuer une action différente en fonction des groupes auxquels l'utilisateur appartient. Voici un exemple de script qui utilise ''groups'' pour cela :
<code bash>
#!/bin/bash
# Obtient la liste des groupes de l'utilisateur courant
user_groups=$(groups)
# Vérifie si l'utilisateur appartient au groupe "admin"
if [[ "$user_groups" == *admin* ]]; then
echo "L'utilisateur appartient au groupe 'admin'."
# Effectuez ici les actions spécifiques pour le groupe "admin"
else
echo "L'utilisateur n'appartient pas au groupe 'admin'."
# Effectuez ici les actions pour les utilisateurs qui ne sont pas dans le groupe "admin"
fi
# Autres actions communes à tous les utilisateurs
</code>
Dans cet exemple, le script récupère la liste des groupes de l'utilisateur courant à l'aide de la commande ''groups'' et stocke cette liste dans la variable ''user_groups''. Ensuite, il vérifie si l'utilisateur appartient au groupe "admin" en utilisant une condition ''if''. Vous pouvez personnaliser le script en fonction des groupes que vous souhaitez vérifier.
L'utilisation de ''groups'' dans des scripts peut être utile pour personnaliser le comportement du script en fonction des autorisations ou des groupes d'utilisateurs. Assurez-vous que le script est exécuté par un utilisateur qui a la permission d'exécuter la commande ''groups'', et n'oubliez pas de gérer les erreurs potentielles, notamment si l'utilisateur n'appartient à aucun groupe.

View File

@@ -0,0 +1,5 @@
====== halt ======
C'est un programme présent dans ''/usr/sbin/''. Par conséquent il doit être appelé avec les droits ''root''. Il permet d'arrêter l'ordinateur.
Le programme fait partie du groupe [[.:shutdown]], [[.:reboot]], [[.:halt]] et [[.:poweroff]], tous ayant un lien symbolique avec [[.:systemctl]] quand le système est piloté avec SystemD.

View File

@@ -0,0 +1,22 @@
====== Commandes Linux et exemples ======
{{ :informatique:langage:logo_bash.png?75x75|Commandes Linux et exemples}}
Cette sous-catégorie inclus des articles sur les commandes de terminal les plus courantes, avec des exemples et des explications détaillées.
==== A propos ====
<nav stacked="true" fade="true">
* [[informatique:linux:commandes:la-ligne-de-commande]]
* [[les-commandes-a-connaitre]]
* [[.tips:index]]
</nav>
===== Sommaire =====
<nspages . -h1 -hideNoSubns -subns -nbCol=2 -textNS=" " -textPages=" " -exclude:cookie: -exclude:user: -exclude:playground: -exclude:[sidebar index start rightsidebar navbar topheader header help pageheader pagefooter legal-notices footer 404 les-commandes-a-connaitre 010100-repertoire-des-commandes-linux-sous-bash la-ligne-de-commande tips: super-index] -pagesInNs >
~~NOTOC~~
~~NOCACHE~~

View File

@@ -0,0 +1,42 @@
====== ip ======
Utilitaire de configuration réseau TCP/IP.
A noter que le manuel de cette commande se résume à un renvoi vers une page Internet.
<code>
OPTIONS
Pour des renseignements complets sur les commandes, prière de vous référer au document suivant :
/usr/share/doc/iproute-2.4.7/ip-cref.ps
ou http://linux-ip.net/gl/ip-cref/
</code>
====== Exemples ======
> Lister les interfaces avec leurs paramètres
<code>
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:22:4d:9d:47:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.100/24 brd 192.168.100.255 scope global dynamic noprefixroute eno1
valid_lft 233861sec preferred_lft 233861sec
inet6 fe80::73c1:c76e:7041:7336/64 scope link noprefixroute
valid_lft forever preferred_lft forever
</code>
> Lister les interfaces avec adresses IP v.4 et V.6 et un peu de couleurs
<code>
$ ip -br -c a
lo UNKNOWN 127.0.0.1/8 ::1/128
eno1 UP 192.168.100.100/24 fe80::73c1:c76e:7041:7336/64
</code>

View File

@@ -0,0 +1,160 @@
====== - La ligne de commande ======
----
Une **ligne de commande**, également appelée interface en ligne de commande (CLI), est un moyen d'interagir avec un système d'exploitation en saisissant des commandes à l'aide d'un clavier au lieu d'utiliser une interface graphique. Les commandes sont généralement entrées dans un terminal ou une fenêtre de commande et exécutées par le système d'exploitation. Les commandes peuvent effectuer des tâches telles que la gestion de fichiers, la modification de paramètres de configuration, la gestion des processus et la surveillance du système. Les lignes de commandes sont utilisés à l'aide d'un interpréteur de commande (par exemple BASH).
Une fois connecté à un terminal texte, un programme nommé shell est lancé automatiquement. Il permet de lancer des commandes.
===== Syntaxe des commandes =====
La **ligne de commande** regroupe une ou plusieurs instructions qui sont saisies et se termine par un retour à la ligne. La commande est composée d'un nom qui décrit une action ou un programme, éventuellement suivie d'arguments.
Par exemple la ligne de commande ''cal'' comporte la commande ''cal'' sans argument.
La ligne de commande ''cal -m apr'' comporte la commande ''cal'' avec 2 arguments : ''-m'' et ''apr''.
La ligne de commande ''echo "Bonjour Alpinux"'' comporte la commande ''echo'' avec 1 argument, ''"Bonjour Alpinux"''.
Les arguments d'une commande peuvent être des options ou des arguments, selon le contexte dans lequel ils sont utilisés.
Les options sont des arguments supplémentaires qui peuvent être utilisés pour personnaliser le comportement de la commande. Elles peuvent être courtes (précédées d'un tiret simple (-)) ou longues (précédées d'un double tiret (--)).
Les arguments sont des informations nécessaires à la commande pour accomplir son travail. Ils peuvent inclure des noms de fichiers, des répertoires, des noms d'utilisateurs, etc.
Par exemple, dans la commande ''ls -l /home/user'', ''-l'' est une option qui demande à la commande ''ls'' d'afficher les fichiers et répertoires sous forme de liste détaillée, tandis que "/home/user" est un argument qui spécifie le répertoire à afficher.
Il est important de comprendre les différences entre les options et les arguments pour utiliser correctement les commandes en ligne de commande sous Linux.
===== Options mono-caractère =====
Les options mono-caractère sont des options courtes qui peuvent être utilisées pour personnaliser le comportement des commandes en ligne de commande sous Linux. Elles sont généralement précédées d'un tiret simple (-) et peuvent être combinées pour obtenir des effets plus complexes.
Par exemple, la commande ''ls'' peut être utilisée avec l'option mono-caractère ''-l'' pour afficher les fichiers et répertoires sous forme de liste détaillée. La combinaison des options ''-l'' et ''-h'' peut être utilisée pour afficher les tailles de fichier de manière lisible pour les humains.
ls -l -h
ls -h -l
ls -lh
ls -hl
Certaines options en ligne de commande peuvent être précédées d'un signe plus (+) au lieu d'un tiret simple (-). Ce type d'options sont généralement utilisées pour ajouter ou activer des fonctionnalités supplémentaires dans les programmes.
Par exemple, la commande ''ls'' peut être utilisée avec l'option "+l" pour afficher les fichiers et répertoires sous forme de liste détaillée, similaire à l'utilisation de l'option "-l".
Il est important de noter que l'utilisation de signes plus (+) pour les options est assez rare et n'est généralement pas standard pour la plupart des commandes en ligne de commande sous Linux. La plupart des options sont précédées d'un tiret simple (-). Il est donc toujours préférable de consulter la documentation pour comprendre les options disponibles et comment les utiliser correctement.
Certaines options en ligne de commande peuvent prendre une chaîne de caractères en argument. Ces options sont généralement utilisées pour fournir des informations supplémentaires au programme sur la façon de se comporter ou sur les données à utiliser.
Par exemple, la commande ''grep'' peut être utilisée avec l'option ''-e'' pour rechercher une expression régulière spécifiée dans un fichier ou sur l'entrée standard. L'expression régulière est spécifiée comme une chaîne de caractères après l'option ''-e''.
Supposons que vous avez un fichier nommé ''file.txt'' qui contient du texte.
Pour rechercher la chaîne de caractères "sample" dans ce fichier, vous pouvez utiliser la commande grep avec l'option ''-e'' :
grep -e "sample" file.txt
Vous pouvez écrire la commande ''grep'' de cette façon :
grep -esample file.txt
Cela fonctionnera de la même manière que la commande précédente, avec l'option "-e" suivie de la chaîne de caractères "sample". La commande affichera la ligne du fichier "file.txt" qui contient la chaîne de caractères "sample".
Il est important de noter que le format des options qui prennent une chaîne de caractères en argument peut varier pour chaque commande. Il est donc toujours préférable de consulter la documentation pour comprendre les options disponibles et comment les utiliser correctement.
Les options mono-caractère peuvent varier pour chaque commande, et il est souvent utile de consulter la documentation pour comprendre les options disponibles et comment les utiliser correctement.
===== Les options longues =====
Les options longues sont généralement précédées d'un double tiret (--) et peuvent inclure des mots entiers pour décrire plus clairement leur fonctionnement.
Par exemple, la commande ''ls'' peut être utilisée avec l'option longue ''--human-readable'' pour afficher la taille des fichiers sous forme conviviale en utilisant des unités de taille, similaire à l'utilisation de l'option ''-h''.
===== La séparation des options et des arguments =====
La séparation des options et des arguments peut être faite en utilisant un double tiret (--) pour signaler la fin des options et le début des arguments. Tout ce qui suit le double tiret est considéré comme un argument, même s'il commence par un tiret simple (-).
Par exemple, considérons la commande "cp", qui permet de copier des fichiers d'un emplacement à un autre. Si vous souhaitez copier un fichier nommé "-f" à un emplacement nommé "destination", vous pouvez utiliser la commande suivante:
cp -- -f destination
Dans ce cas, le double tiret (--) signale la fin des options et le début des arguments. Le premier argument, "-f", est considéré comme un nom de fichier, même s'il commence par un tiret simple (-). Le second argument, "destination", est considéré comme l'emplacement de destination pour la copie de fichier.
L'utilisation de ce double tiret peut être utile lorsqu'il est nécessaire de traiter des arguments qui commencent par un tiret simple (-), qui pourraient autrement être interprétés comme des options.
===== Aspect de la ligne de commandes =====
Sous Linux, l'invite de commande peut prendre différentes formes en fonction de la configuration. Par exemple, elle peut être configurée pour afficher le nom d'utilisateur, le nom d'hôte et le répertoire courant, ou seulement le nom d'utilisateur et le répertoire courant. La couleur et les caractères utilisés pour l'affichage peuvent également être personnalisés.
Il est également possible de changer le comportement de l'invite de commande en utilisant des alias, des variables d'environnement et d'autres outils de configuration. Cela peut aider à améliorer l'efficacité et la productivité en ligne de commande.
===== L'invite de commande =====
L'**invite de commande** **est l'endroit** où les utilisateurs peuvent **saisir des commandes** pour interagir avec un système d'exploitation.
Il s'agit généralement d'une fenêtre ou d'un **terminal** (appelé SHELL) qui **affiche un curseur clignotant**, où l'**utilisateur peut saisir des commandes** et les exécuter en appuyant sur la touche "Entrée".
**Les commandes saisies** dans l'invite de commande **sont** interprétées par le système d'exploitation et **exécutées** en conséquence.
Le dernier caractère de l'invite de commande peut être un dollar "$" ou un dièse "#". Cela dépend du niveau de privilèges de l'utilisateur actuel.
Un dollar ''$'' indique que l'utilisateur actuel est un utilisateur normal, sans privilèges d'administration.
Un dièse ''#'' indique que l'utilisateur actuel est un utilisateur avec des privilèges d'administration, également appelé "superutilisateur" ou "root".
Cela aide à identifier rapidement le niveau de privilèges de l'utilisateur actuel et peut être utile pour éviter de saisir accidentellement des commandes dangereuses avec des privilèges élevés.
Par exemple :
<code>
cedric@eeepc:~$
</code>
''cedric'' >> correspond à l'utilisateur connecté.
''eeepc'' >> correspond au nom de lhôte, c'est-à-dire au nom de l'ordinateur.
''~'' >> correspond au répertoire courant. Lorsqu'il est représenté par le symbole **~**, cela indique qu'il s'agit du dossier personnel de l'utilisateur, appelé en anglais **home**.
''$'' >> indique que l'utilisateur est de type normal. Avec le caractère **#**, il indiquera qu'il s'agit d'un super-utilisateur, identifié **root**.
===== Applications avec une interface graphique =====
Il est possible d'exécuter des applications avec une interface graphique depuis un shell sous Linux.
Par exemple, pour exécuter une application telle que "gedit" avec une interface graphique depuis un shell, vous pouvez utiliser la commande suivante :
gedit
Cette commande ouvrira l'application fenêtrée **gedit**.
Cette méthode n'est pas toujours la plus pratique ou la plus efficace pour exécuter des applications avec une interface graphique depuis un shell. Dans de nombreux cas, il est plus facile de simplement cliquer sur l'icône de l'application dans le menu ou le gestionnaire de fichiers. Cependant, cette méthode peut être utile pour exécuter des applications depuis un script ou pour effectuer des tâches de ligne de commande.
===== Les raccourcis clavier en mode texte =====
Il existe de nombreux raccourcis clavier qui peuvent être utilisés en mode texte sous Linux pour effectuer des tâches rapidement et efficacement. Voici quelques-uns des raccourcis clavier les plus couramment utilisés :
* <key>Tab</key> : Complète automatiquement un nom de fichier ou de répertoire.
* <key>Up</key> : Affiche la dernière commande entrée.
* <key>Down</key> : Affiche la commande précédente entrée.
* <key>Ctrl</key> + <kbd>c</kbd> : Interrompt une commande en cours d'exécution.
* <key>Ctrl</key> + <kbd>z</kbd> : Suspend une commande en cours d'exécution et la place en arrière-plan.
* <key>Ctrl</key> + <kbd>d</kbd> : Termine une session en ligne de commande.
* <key>Ctrl</key> + <kbd>l</kbd> : Efface l'écran.
* <key>Ctrl</key> + <kbd>r</kbd> : Recherche dans l'historique des commandes.
* <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>c</kbd> : Copie dans le presse papier la sélection.
* <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>v</kbd> : Colle le contenu du presse papier à l'endroit du curseur. Équivalent : <kbd>Shift</kbd> + <kbd>Inser</kbd>
* <key>Ctrl</key> + <kbd>a</kbd> : Déplace le curseur au début de la ligne actuelle.
* <key>Ctrl</key> + <key>E</key> : Déplace le curseur à la fin de la ligne actuelle.
* <key>Ctrl</key> + <key>left</key> : Déplace le curseur d'un mot à gauche.
* <key>Ctrl</key> + <key>right</key> : Déplace le curseur d'un mot à droite.
* <key>Alt</key> + <key>left</key> : Déplace le curseur d'un mot à gauche en conservant les mots en entier.
* <key>Alt</key> + <key>right</key> : Déplace le curseur d'un mot à droite en conservant les mots en entier.
* <key>Ctrl</key> + <key>U</key> : Efface tout ce qui se trouve à gauche du curseur.
* <key>Ctrl</key> + <key>K</key> : Efface tout ce qui se trouve à droite du curseur.
* <key>Ctrl</key> + <key>W</key> : Efface le dernier mot à gauche du curseur.
* <key>Ctrl</key> + <key>Y</key> : Colle le dernier élément coupé ou copié.
Ces raccourcis peuvent varier en fonction de la distribution Linux utilisée et du shell utilisé.

Some files were not shown because too many files have changed in this diff Show More