Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteProchaine révisionLes deux révisions suivantes |
linux-vrac [2019/11/06 12:52] – sebsauvage | linux-vrac [2020/12/10 08:47] – sebsauvage |
---|
- Extract files matching a pattern: | - Extract files matching a pattern: |
tar xf {{source.tar}} --wildcards {{"*.html"}}</code> | tar xf {{source.tar}} --wildcards {{"*.html"}}</code> |
| |
| * **Votre Wifi ne fonctionne pas bien ?** Vous avez peut-être oublié de régler la région "France" pour les fréqences (du coup, les canaux 11/12/13 sont peu ou pas accessibles). |
| * Vérifier la valeur: ''iw reg get''. Si vous ne voyez pas ''Country: FR'' c'est que ce n'est pas correctement réglé. |
| * Modifier le réglage à la volée: ''sudo iw reg set FR'', mais cela ne persiste pas au redémarrage. |
| * Pour que la valeur persiste, modifiez le paramètre ''REGDOMAIN'' dans le fichier ''/etc/default/crda''. Mettez:<code>REGDOMAIN=FR</code> |
| |
* **Voir la progression d'une longue commande en cours**: | * **Voir la progression d'une longue commande en cours**: |
* Vous avez lancé un //dd// ou un //tar// très long, et vous ne savez pas où il en est ? Lancez:<code bash>sudo progress -m</code> | * Vous avez lancé un //dd// ou un //tar// très long, et vous ne savez pas où il en est ? Lancez:<code bash>sudo progress -m</code> |
* //progress// fonctionne avec cp,mv,dd,tar,gzip,7z,rsync... | * //progress// fonctionne avec cp,mv,dd,tar,gzip,7z,rsync... |
| * Si vous utilisez ''-M'', progress ne quittera pas et attendra un autre processus. |
| |
* **Créer des archives compressées** : Créer une archive compressée c'est simple, mais c'est toujours bon de se rappeler la syntaxe: | * **Créer des archives compressées** : Créer une archive compressée c'est simple, mais c'est toujours bon de se rappeler la syntaxe: |
* Pour **«** et **»**, c'est <key>AltGr-z</key> et <key>AltGr-x</key> | * Pour **«** et **»**, c'est <key>AltGr-z</key> et <key>AltGr-x</key> |
| |
* **Entrer des caractères Unicode**: <key>C</key>+<key>⇧ Maj</key>+<key>u</key> et tapez la valeur Unicode en héxadécimal. | * **Entrer des caractères Unicode**: <key>C</key>+<key>⇧ Maj</key>+<key>'U'</key> et tapez la valeur Unicode en héxadécimal. |
* Essayez ! <key>C</key>+<key>⇧ Maj</key>+<key>u</key>+2705+<key>ESPACE</key> : ✅ | * Essayez ! <key>C</key>+<key>⇧ Maj</key>+<key>u</key>+2705+<key>ESPACE</key> : ✅ |
| |
* Faire:<code bash>sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'</code> | * Faire:<code bash>sudo bash -c 'echo "vm.swappiness=10" >> /etc/sysctl.conf'</code> |
* Rebooter pour prendre en compte, ou faire ''sudo sysctl -p'' | * Rebooter pour prendre en compte, ou faire ''sudo sysctl -p'' |
* Cela va réduire la propension du système à swapper. Par défaut ce paramètre est souvent à 60, mais en la passant à 10 le système attendra d'avoir 90% de RAM utilisée avant de commencer à swapper. | * Cela va réduire la propension du système à swapper. Par défaut ce paramètre est souvent à 60, mais en le passant à 10 le système attendra beaucoup plus avant de commencer à swapper. |
* **Réduction de l'utilisation du swap (2)** | * **Réduction de l'utilisation du swap (2)** |
* ''sudo apt install zram-config'' et c'est tout. Les segments de mémoire compressés seront utilisés en priorité sur le swap disque. (Vous pouvez voir les ''/dev/zramX'' quand vous faites ''cat /proc/swaps''). | * ''sudo apt install zram-config'', rebootez, et c'est tout. Les segments de mémoire compressés seront utilisés en priorité sur le swap disque. (Vous pouvez voir les ''/dev/zramX'' quand vous faites ''cat /proc/swaps''). |
* C'est tellement efficace, que sur une machine avec 4 Go de RAM sur laquelle on lance plein de programmes au point d'atteindre 1,1 Go de swap utilisé, //aucun octet n'a commencé à être écrit dans le swap sur disque !// | * C'est tellement efficace, que sur une machine avec 4 Go de RAM sur laquelle on lance plein de programmes au point d'atteindre 1,1 Go de swap utilisé, //aucun octet n'a commencé à être écrit dans le swap sur disque !// |
* zram est utile quelle que soit la quantité de RAM que vous avez en réduisant à néant les lectures/écritures dans le swap disque. Le swap zram est infiniment plus rapide qu'un swap disque (quel que soit votre type de disque) et cela réduit l'usure des SSD. | * zram est utile quelle que soit la quantité de RAM que vous avez en réduisant à néant les lectures/écritures dans le swap disque. Le swap zram est infiniment plus rapide qu'un swap disque (quel que soit votre type de disque) et cela réduit l'usure des SSD. |
* **Partage rapide de fichiers par HTTP** : Un serveur web en 10 secondes. | * **Partage rapide de fichiers par HTTP** : Un serveur web en 10 secondes. |
* Ouvrez un terminal dans le répertoire à partager. | * Ouvrez un terminal dans le répertoire à partager. |
* Tapez:<code bash>python -m SimpleHTTPServer 9988</code> | * Tapez (pour Python3) :<code bash>python3 -m http.server 5555</code> |
* Et c'est tout. Le répertoire sera accessible par ''http://adresseip:9988/'' | * Si vous n'avez que Python2, c'est ''python -m SimpleHTTPServer 5555'' |
| * Et c'est tout. Le répertoire sera accessible par ''http://adresseip:5555/'' |
* Pressez <key>Ctrl-c</key> pour arrêter le partage. | * Pressez <key>Ctrl-c</key> pour arrêter le partage. |
| |
* Ajoutez à votre ''.bashrc'':<code bash>alias ni='nice -n 19 ionice -c3'</code> | * Ajoutez à votre ''.bashrc'':<code bash>alias ni='nice -n 19 ionice -c3'</code> |
* Puis lancez n'importe quel programme en le préfixant par ''ni'':<code bash>ni tar cvfz monarchive.tgz monrepertoire/</code> | * Puis lancez n'importe quel programme en le préfixant par ''ni'':<code bash>ni tar cvfz monarchive.tgz monrepertoire/</code> |
| |
| * Mettre automatiquement un programme en arrière plan quand il est lancé: Par exemple pour ''7z'' ouvrez un terminal, lancez cette commande et laissez le terminal ouvert:<code>watch "renice 19 -p $(pgrep 7z)"</code> |
| |
| |
* Un programme prend trop de CPU ? Vous voulez lui limiter le pourcentage de CPU qu'il consomme ? Utilisez **cpulimit**: <code>cpulimit -e nomDuProgramme -l 25 -b</code> | * Un programme prend trop de CPU ? Vous voulez lui limiter le pourcentage de CPU qu'il consomme ? Utilisez **cpulimit**: <code>cpulimit -e nomDuProgramme -l 25 -b</code> |
* Démontage:<code bash>fusermount -u pointdemontage</code> | * Démontage:<code bash>fusermount -u pointdemontage</code> |
| |
* **Mise à jour de //fortune// (citations)**: ''fortune'' est un programme qui affiche des citations. Mais il n'a que de vieilles citations (2004), et la majorité en anglais. Voici comment les mettre à jour: | * **Mise à jour de //fortune// (citations)**: ''fortune'' est un programme qui affiche des citations. Mais il n'a que de vieilles citations (2004), et la majorité en anglais. Voici comment les mettre à jour: |
* Supprimez les citations existantes: ''sudo rm -rf /usr/share/games/fortunes/*'' | * Supprimez les citations existantes: ''sudo rm -rf /usr/share/games/fortunes/*'' |
* Récupérez le fichier [[http://sebsauvage.net/files/fortune/citation-celebre.7z|citation-celebre.7z]] (2 Mo, md5 4bf707f4d4a1af8457834d8578699a52), décompressez-le. (Il contient plus de 69000 citations, de Confucius à Les Nulls.) ((Le script qui a servi à pomper le site est [[http://sebsauvage.net/files/fortune/scraper-citation-celebre.py|là]] ou [[http://sebsauvage.net/paste/?12bf3badbd066925#24uaJVn4zDNKymWTEYzOIAdInksekhSyCJYvWqw7/Qw|là]].)) | * Récupérez le fichier [[http://sebsauvage.net/files/fortune/citation-celebre.7z|citation-celebre.7z]] (2 Mo, md5 b0e056e0f78434c35659b9889061286f), décompressez-le. (Il contient plus de 80000 citations, de Confucius à Les Nulls.) |
* Copiez ces 2 fichiers: ''sudo cp citation-celebre.com* /usr/share/games/fortunes'' | * Copiez ces 2 fichiers: ''sudo cp citation-celebre.com* /usr/share/games/fortunes'' |
* Testez: ''fortune'' | * Testez: ''fortune'' |
* Pour afficher une citation quand vous ouvrez un nouveau shell, vous pouvez mettre ''fortune'' directement dans votre ''~/.bashrc'' (ou si vous préférez:''fortune | cowsay'') | * Pour afficher une citation quand vous ouvrez un nouveau shell, vous pouvez mettre ''fortune'' directement dans votre ''~/.bashrc'' (ou si vous préférez:''fortune | cowsay'') |
| * Plus d'informations dans [[fortunes-fr|cette page]]. |
| |
* **Du mal à lire une clé USB, un disque externe ou une carte mémoire ?** Elle est peut-être en [[https://fr.wikipedia.org/wiki/ExFAT|exFAT]] (système de fichiers de Microsoft différent de FAT32, sans la limite des 4 Go par fichier). | * **Du mal à lire une clé USB, un disque externe ou une carte mémoire ?** Elle est peut-être en [[https://fr.wikipedia.org/wiki/ExFAT|exFAT]] (système de fichiers de Microsoft différent de FAT32, sans la limite des 4 Go par fichier). |
* Là où il y a ''RESUME=UUID=388a79ac-27b7-42f5-ac13-...'' remplacez par ''RESUME=none'' | * Là où il y a ''RESUME=UUID=388a79ac-27b7-42f5-ac13-...'' remplacez par ''RESUME=none'' |
* puis faites: ''sudo update-initramfs -u'' | * puis faites: ''sudo update-initramfs -u'' |
| |
| * **Désactiver l'hibernation** (c'est à dire suspend-to-disk et suspend-to-ram): |
| * Désactiver:<code bash>sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target |
| sudo systemctl restart systemd-logind.service</code> |
| * Réactiver:<code bash>sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target</code> |
| * Et pour empêcher l'hibernation quand l'écran est rabattu, dans le fichier ''/etc/systemd/logind.conf'', décommenter les deux lignes suivantes:<code>HandleLidSwitch=ignore |
| HandleLidSwitchDocked=ignore</code> |
| |
* **Allonger l'autonomie** | * **Allonger l'autonomie** |
* Sauvegarde:<code bash>partclone.ext4 -c -d -s /dev/sda2 | pigz | split -d -b 4000M - image.partclone.gz.</code>Cela va créer des fichiers ''image.partclone.gz.00'', ''image.partclone.gz.01'', etc. | * Sauvegarde:<code bash>partclone.ext4 -c -d -s /dev/sda2 | pigz | split -d -b 4000M - image.partclone.gz.</code>Cela va créer des fichiers ''image.partclone.gz.00'', ''image.partclone.gz.01'', etc. |
* Pour restaurer:<code bash>cat image.partclone.gz.* | pigz -d | sudo partclone.restore -d -o /dev/sda2</code> | * Pour restaurer:<code bash>cat image.partclone.gz.* | pigz -d | sudo partclone.restore -d -o /dev/sda2</code> |
| * **Avec fsarchiver** |
| * ''dd'' et ''partclone'' ne peuvent travailler que sur des partitions démontées. ''fsarchiver'' peut travailler sur des fs montés, et (tout comme partimage) il garde tous les fichiers avec leurs attributs. Voici les différences: |
| * Tout comme partimage, il garde tous les attributs des fichiers, mais il travaille au niveau //fichiers//, ce qui lui permet de restaurer les fichiers vers une partition d'un type différent (alors que, par exemple, partimage ne peut restaurer une sauvegarde ext4 que dans un partition ext4). |
| * Il est beaucoup plus rapide. |
| * La compression est intégrée (compression zstd très rapide) |
| * Les archives ainsi créées peuvent être transférées vers des disque plus gros ou plus petits. |
| * Si une archive fsarchiver est corrompue, vous ne perdez que les fichiers endommagés de l'archive, pas toute l'archive. |
| * De par sa vitesse, **fsarchiver est un excellent choix pour faire un backup préventif sur un disque externe** avant une réinstallation du système, par exemple. |
* Besoin de voir si votre joystick ou manette fonctionne bien ? Utilisez **jstest-gtk** (''sudo apt install jstest-gtk'') | * Besoin de voir si votre joystick ou manette fonctionne bien ? Utilisez **jstest-gtk** (''sudo apt install jstest-gtk'') |
* PS: Même si //jstest// fonctionne, il se base sur ''/dev/input/jsX'' qui sont en principe obsolètes. Vous pouvez passer à //evtest// qui se base sur ''/dev/input/eventXX''. La version graphique, //[[https://gitlab.com/evtest-qt/evtest-qt|evtest-qt]]// n'est sans doute pas dispo pour votre distribution. Vous devrez la compiler ou prendre les packages [[https://launchpad.net/~grumbel/+archive/ubuntu/ppa/+packages?field.name_filter=evtest-qt&field.status_filter=published|sur Launchpad]]. | * PS: Même si //jstest// fonctionne, il se base sur ''/dev/input/jsX'' qui sont en principe obsolètes. Vous pouvez passer à //evtest// qui se base sur ''/dev/input/eventXX''. La version graphique, //[[https://gitlab.com/evtest-qt/evtest-qt|evtest-qt]]// n'est sans doute pas dispo pour votre distribution. Vous devrez la compiler ou prendre les packages [[https://launchpad.net/~grumbel/+archive/ubuntu/ppa/+packages?field.name_filter=evtest-qt&field.status_filter=published|sur Launchpad]]. |
| |
* **Trouver les machines sur une plage d'IP**:<code>nmap -sP 192.168.0.1-255</code> | * **Trouver les machines sur une plage d'IP**:<code>nmap -sP 192.168.0.1-255</code> |
| * ou plus rapide avec ''arp-scan'' (''sudo apt install arp-scan''): <code>sudo arp-scan 192.168.0.0/24</code> |
| * ou lister rapidement les machines du LAN: <code>arp -an</code> |
| |
* **Capturer une image avec la webcam**:<code>ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 -y "/tmp/`date -Iseconds`.jpg"</code> | * **Capturer une image avec la webcam**:<code>ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -ss 0:0:2 -frames 1 -y "/tmp/`date -Iseconds`.jpg"</code> |
* ** Qui est connecté ?** : <code>w</code> | * ** Qui est connecté ?** : <code>w</code> |
* **Date de dernière connexion** de chaque utilisateur:<code>lslogins -u</code> | * **Date de dernière connexion** de chaque utilisateur:<code>lslogins -u</code> |
| * **Liste des connexions et déconnexions utilisateur, et temps de connexion**:<code>last</code> |
| |
* **Synchroniser un répertoire local vers un répertoire distant par FTP**: | * **Synchroniser un répertoire local vers un répertoire distant par FTP**: |
| |
* Tapez ''export TMOUT=30'' et votre terminal se fermera au bout de 30 secondes (sauf si un processus est en cours. Dans ce cas, il attendra la fin du processus). | * Tapez ''export TMOUT=30'' et votre terminal se fermera au bout de 30 secondes (sauf si un processus est en cours. Dans ce cas, il attendra la fin du processus). |
| |
| * Voir tous les mots de passe stockés dans le trousseau de clés Gnome (mots de passe de partages, Wifi, Vpn...): ''sudo apt install seahorse'' et lancez-le. |
| |
| * **flatpak**: |
| * FIXME Section à compléter |
| * Voir la liste des pack installés:<code>flatpak list</code> |
| * Retirer les packs inutilisés:<code>flatpak uninstall --unused</code> |
| |
| * **snap** |
| * FIXME Section à compléter |
| * Retirer les snaps inutilisés: |
| * créer le script suivant ([[https://www.linuxuprising.com/2019/04/how-to-remove-old-snap-versions-to-free.html|source]]):<file bash remove-old-snaps>#!/bin/bash |
| # Removes old revisions of snaps |
| # CLOSE ALL SNAPS BEFORE RUNNING THIS |
| set -eu |
| |
| LANG=en_US.UTF-8 snap list --all | awk '/disabled/{print $1, $3}' | |
| while read snapname revision; do |
| snap remove "$snapname" --revision="$revision" |
| done</file> |
| * rendre le script exécutable ''chmod +x remove-old-snaps'' |
| * lancer: ''sudo ./remove-old-snaps'' |
| |
| * S'installer rapidement un serveur web avec apache:<code>sudo apt install apache2 php7.2 libapache2-mod-php7.2</code> |
| * Le répertoire du serveur web est ''/var/www/html/''. |
| |
| * Pour NextCloud, //pour tester en local, pas pour une prod//, ajoutez:<code>sudo apt install php7.2-zip php7.2-xml php7.2-gd php7.2-curl php7.2-mbstring php7.2-sqlite3 php7.2-imagick php7.2-intl |
| sudo phpenmod intl |
| sudo a2enmod rewrite |
| sudo service apache2 restart</code> |
| * Dans ''/etc/apache2/apache2.conf'', dans la section ''<Directory /var/www/>'', remplacez ''AllowOverride None'' par ''AllowOverride All''. |
| * Dans le répertoire racine de votre serveur web, créez un fichier ''.htaccess'' contenant: ''php_value memory_limit 2048M'' |
| |
| * Votre répertoire de fichiers temporaires (''/tmp'') se vide tout seul à chaque redémarrage, mais pas le cache d'impression de cups: Tout ce que vous avez imprimé s'accumule dans ''/var/cache/cups''. Pour le vider faites:<code bash>sudo service cups stop |
| sudo rm -r /var/cache/cups/ |
| sudo service cups start</code> |
| |
| * Si vous avez des problèmes dépendance pour installer un paquet, il arrive souvent que **aptitude** trouve des solutions un peu plus poussées qui résoudront les problèmes.<code bash>sudo apt install aptitude |
| sudo apt install MonPaquet</code> |
| |
| * Des soucis pour installer, configuer ou utiliser Wine ? Voir [[wine|cette page]]. |
| |
| * **Réparer des fichiers** |
| * par2 permet de réparer des fichiers. (Version courte de l'explication: Imaginez que vous ayez 10 Go de fichiers. Si vous préparez à l'avance 1 Go de fichiers //par2//, vous pourrez réparer/reconstituer (au plus) 1 Go de données endommagées ou perdues dans ces 10 Go, quel que soit l'endroit où les données sont endommagées dans ces 10 Go). |
| * **Créer** des fichiers //par2// sur un groupe de fichiers, avec 10% de redondance (Donc 10 Go de données créera 1 Go de fichiers par2):<code>par2 c -r10 protection *</code> |
| * Cela va créer le fichier //protection.par2//, ainsi que des fichiers //protection.volxxx+xx.par2//. |
| * Le fichier //protection.par2// seul est utile pour **vérifier** l'intégrité de vos fichiers. |
| * Les fichiers //protection.volxxx+xx.par2// servent à **réparer** les données. Un fichier //.par2// de 2,3 Mo permettra de réparer jusqu'à 2,3 Mo de données perdues/endommagées. |
| * Ajoutez l'option ''-R'' si vous voulez aussi prendre en compte les sous-répertoires. |
| * **Vérifier** des fichiers: <code>par2 v protection.par2</code> |
| * Message affiché à la fin: |
| * //All files are correct, repair is not required.// : Tout va bien, vos données sont saines. |
| * //Repair is required. / Repair is possible. // : Vos fichiers sont endommagés, mais vous pouvez les réparer. Passez à l'étape suivante. |
| * //Repair is required. / Repair is not possible. // : Vos fichiers sont endommagés, mais mauvaise nouvelle, ce n'est pas réparable (vous n'avez pas assez de blocs de réparation pour tout réparer.) |
| * **Réparer** les fichiers:<code>par2 r protection.par2</code> |
| * Et attendez (cela peut être assez long). |
| * Si vous voyez //Repair complete.//, c'est tout bon. Vos données sont réparées. |
| |
| * Dans **LibreOffice**, vous voulez une barre d'outils comme dans Microsoft Office ? |
| * Allez dans le menu //Outils// > //Options...// > //LibreOffice// > //Avancé// > Cochez //Activer les fonctions expérimentales// |
| * Redémarrez LibreOffice. |
| * Allez dans le menu //Affichage// > //Dispositio des barres d'outils// > //Métabarre// |
| |
| * **Savoir à quel paquet appartient un fichier** |
| * Par exemple vous lancez un programme qui se plaint qui lui manque un fichier:<code>error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory</code> |
| * Comment savoir dans quel paquet aller chercher ce fichier ? Commencez par installer ''apt-file'':<code>sudo apt install apt-file</code> |
| * <code>sudo apt-file update</code> |
| * Ensuite cherchez votre fichier<code>>apt-file search libcrypto.so.1.0.0 |
| google-earth-pro-stable: /opt/google/earth/pro/libcrypto.so.1.0.0 |
| libssl1.0.0: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0</code> |
| * Voilà, vous savez qu'il ne vous reste plus qu'à installer le paquet manquant: ''sudo apt install libssl1.0.0'' |
| |
| * La clé USB live d'Ubuntu Mate 20.04 a la sale manie de vérifier tout le média avant de booter. Pour éviter ça, dans le fichier ''/boot/grub/grub.cfg'', ajouter l'option ''fsck.mode=skip''. |
| * Et pour avoir le clavier français, ajouter ''locales=fr_FR.UTF-8 keyboard-layouts=fr'' |
| |
| * Votre Ubuntu n'en a rien à foutre du délai ''GRUB_TIMEOUT'' que vous avez mis dans ''/etc/default/grub'' ? Essayez ''GRUB_RECORDFAIL_TIMEOUT'' à la place (suivi d'un ''sudo update-grub''). |
| |
| * Besoin de désactiver le clavier interne ou le touchpad de votre ordinateur portable ? |
| * Pour lister les périphériques:<code>xinput list</code> |
| * Pour désactiver le clavier:<code>xinput disable "AT Translated Set 2 keyboard"</code> |
| * Pour réactiver le clavier:<code>xinput enable "AT Translated Set 2 keyboard"</code> |
| |
| * Si quand vous lancez un jeu ou programme vous avez l'erreur ''System.Exception: Magic number is wrong: 542'', lancez le programme comme suit:<code>export 'TERM=roxterm' && ./LeProgramme.bin</code> |
| |
* Vous avez un Raspberry Pi ? [[raspi3:raspbian|cette page]] pourra vous être utile. | * Vous avez un Raspberry Pi ? [[raspi3:raspbian|cette page]] pourra vous être utile. |
* D'autres astuces ? Voir [[mint_customization|cette page]]. | * D'autres astuces ? Voir [[mint_customization|cette page]]. |
| |
| * Vous avez des soucis pour faire reconnaître votre imprimante sous Ubuntu/Linux Mint ? Il faut savoir que par défaut tous les pilotes ne sont pas installés. Jetez un coup d'oeil dans les paquets ''printer-driver-*''. Par exemple, installez le paquet ''printer-driver-escpr'' pour les imprimantes Epson (qui n'est pas installé par défaut). |
| |