Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
php-bash:aide-memoire [2020/02/12 20:55] – [Aide mémoire Linux] crust | php-bash:aide-memoire [2024/09/25 12:21] (Version actuelle) – [brightness / xrandr] cyrille | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ~~LASTMOD~~ | ||
+ | |||
====== Aide mémoire Linux ====== | ====== Aide mémoire Linux ====== | ||
+ | |||
+ | ===== Pourquoi ne pas lancer des applis X via le compte root (si non prévues) ===== | ||
+ | |||
+ | |||
+ | __Traduction d'un extrait d' | ||
+ | |||
+ | // | ||
+ | **Exécuter des applications GUI en tant que root | ||
+ | |||
+ | " | ||
+ | doivent être conscients. Comme l'a dit Emmanuele Bassi, un développeur GNOME: «il n'y a pas de * vraies * raisons | ||
+ | technologiques justifiées pour lesquelles quiconque devrait exécuter une application GUI en tant que root. | ||
+ | En exécutant des applications GUI en tant qu' | ||
+ | de code qui n'ont pas été audités correctement pour s' | ||
+ | également du code qui touchera des fichiers dans votre $ HOME et peut changer leur propriété sur le système | ||
+ | de fichiers; connectez-vous, | ||
+ | de sécurité massive et béante [...]. "**// | ||
+ | |||
+ | __Sources__ | ||
+ | |||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
Quelques liens : | Quelques liens : | ||
Ligne 10: | Ligne 35: | ||
* [[http:// | * [[http:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
----- | ----- | ||
Ligne 22: | Ligne 51: | ||
*[[https:// | *[[https:// | ||
*[[ https:// | *[[ https:// | ||
+ | *[[https:// | ||
Ligne 27: | Ligne 57: | ||
*[[https:// | *[[https:// | ||
*[[https:// | *[[https:// | ||
+ | *[[http:// | ||
+ | |||
+ | ===== BASH et les chaines de caractères ==== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
=====Perte mot de passe root===== | =====Perte mot de passe root===== | ||
Ligne 203: | Ligne 240: | ||
=====Bash : recursif===== | =====Bash : recursif===== | ||
- | <code bash># | + | <code bash># |
dossierDeTravail="/ | dossierDeTravail="/ | ||
Ligne 563: | Ligne 600: | ||
===== Lister les repo d'apt et les sources.list ===== | ===== Lister les repo d'apt et les sources.list ===== | ||
<code bash> find /etc/apt -type f -name ' | <code bash> find /etc/apt -type f -name ' | ||
+ | |||
+ | <code bash> | ||
<code bash> | <code bash> | ||
Ligne 570: | Ligne 609: | ||
<code bash>/ | <code bash>/ | ||
+ | |||
+ | ===== nmap ===== | ||
+ | |||
+ | |||
+ | Scanner plusieurs IP | ||
+ | <code bash> | ||
+ | |||
+ | Scanner une plage d'IP | ||
+ | <code bash> | ||
+ | nmap 192.168.1.*</ | ||
+ | |||
+ | Scanner la totalité d'un réseau | ||
+ | <code bash> | ||
+ | |||
+ | |||
+ | Exclure un poste du scan | ||
+ | <code bash> | ||
+ | |||
+ | Scann et recherche machine Up ou Down | ||
+ | <code bash> | ||
+ | |||
+ | ===== xfce4 : changer fond écran ligne de commande ===== | ||
+ | |||
+ | |||
+ | Afin de déterminer les paramètres à utiliser, lancer | ||
+ | <code bash>$ xfconf-query -c xfce4-desktop -m</ | ||
+ | |||
+ | Et modifier de façon traditionnelle le wallpaper | ||
+ | |||
+ | {{ : | ||
+ | <code bash> | ||
+ | $ xfconf-query -c xfce4-desktop -m | ||
+ | Commencer à surveiller le canal « xfce4-desktop » : | ||
+ | |||
+ | définir: / | ||
+ | |||
+ | |||
+ | Pour avoir toutes les options de xfce4-desktop | ||
+ | <code bash> | ||
+ | |||
+ | Modifier instantanément le wallpaper | ||
+ | <code bash>$ xfconf-query | ||
+ | |||
+ | |||
+ | |||
+ | ===== glances | ||
+ | Eviter les soucis de mise en page | ||
+ | <code bash> | ||
+ | alias glances=' | ||
+ | |||
+ | ===== Mise à jour cassée ou interrompue ===== | ||
+ | Nettoyer s'il y a des reliquats d' | ||
+ | <code | download> | ||
+ | su - | ||
+ | apt update | ||
+ | </ | ||
+ | |||
+ | Lancer la réparation | ||
+ | <code | download> | ||
+ | dpkg --configure -a | ||
+ | apt install -f | ||
+ | </ | ||
+ | |||
+ | Finir ta mise à jour (éventuellement) | ||
+ | <code | download> | ||
+ | apt upgrade | ||
+ | </ | ||
+ | |||
+ | ===== Réparer une clef USB ===== | ||
+ | |||
+ | |||
+ | Identifier sa clef USB | ||
+ | <code | download> | ||
+ | $ lsblk | ||
+ | </ | ||
+ | ou | ||
+ | <code | download> | ||
+ | $ blkid | ||
+ | </ | ||
+ | On doit voir alors une sortie de ce style "/ | ||
+ | |||
+ | Démonter la clef si elle est montée | ||
+ | <code | download> | ||
+ | # umount /dev/sdXY | ||
+ | </ | ||
+ | |||
+ | Réparer la clef USB | ||
+ | <code | download> | ||
+ | # fsck /dev/sdXY | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Crontab sans notification mail ===== | ||
+ | |||
+ | Par défaut, lorsqu' | ||
+ | |||
+ | Pour désactiver les notifications par e-mail, ajoutez< | ||
+ | > /dev/null 2>&1 | ||
+ | </ | ||
+ | |||
+ | Cela redirige toute la sortie de la tâche cron vers le périphérique **/ | ||
+ | |||
+ | Par exemple, la tâche cron suivante n' | ||
+ | |||
+ | < | ||
+ | 15 * * * Sun | ||
+ | </ | ||
+ | |||
+ | Pour reprendre la réception des notifications par e-mail des tâches cron, supprimez simplement **> /dev/null 2>& | ||
+ | |||
+ | |||
+ | |||
+ | ===== FLAC TO MP3 ===== | ||
+ | |||
+ | **Avec ffmpeg** | ||
+ | < | ||
+ | parallel ffmpeg -i {} -qscale:a 0 {.}.mp3 ::: ./*.flac | ||
+ | </ | ||
+ | |||
+ | |||
+ | **Avec lame** | ||
+ | |||
+ | < | ||
+ | #!/bin/bash | ||
+ | |||
+ | for a in ./*.flac; do | ||
+ | # give output correct extension | ||
+ | OUTF=" | ||
+ | |||
+ | # get the tags | ||
+ | ARTIST=$(metaflac " | ||
+ | TITLE=$(metaflac " | ||
+ | ALBUM=$(metaflac " | ||
+ | GENRE=$(metaflac " | ||
+ | TRACKNUMBER=$(metaflac " | ||
+ | DATE=$(metaflac " | ||
+ | |||
+ | # stream flac into the lame encoder | ||
+ | flac -c -d " | ||
+ | --ta " | ||
+ | --tn " | ||
+ | done | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== WMA TO MP3 ===== | ||
+ | |||
+ | **En une ligne** | ||
+ | < | ||
+ | |||
+ | **En script** | ||
+ | |||
+ | |||
+ | <code | download> | ||
+ | #!/bin/bash | ||
+ | for i in *.wma; do | ||
+ | j=" | ||
+ | soundconverter -b -m audio/mpeg -s .mp3 " | ||
+ | done | ||
+ | </ | ||
+ | ===== Redimensionner des images ===== | ||
+ | |||
+ | < | ||
+ | for f in *.jpeg ; do convert $f -resize 50% new_$f; done | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Chercher [dans] les logs ===== | ||
+ | |||
+ | Avec systemd, nous avons obtenu journalctl qui permet facilement un filtrage à grain fin comme celui-ci: | ||
+ | |||
+ | < | ||
+ | sudo journalctl --since "2 days ago" | ||
+ | sudo journalctl --since " | ||
+ | sudo journalctl -b # last boot | ||
+ | sudo journalctl -k # kernel messages | ||
+ | sudo journalctl -p er # by priority (emerg|alert|crit|err|warning|info|debug) | ||
+ | sudo journalctl -u sshd # by unit | ||
+ | sudo journalctl _UID=1000 # by user id | ||
+ | </ | ||
+ | ===== Fonction bash pour la gestion des couleurs ===== | ||
+ | |||
+ | <code | download> | ||
+ | |||
+ | #!/bin/bash | ||
+ | |||
+ | couleur_rouge () { | ||
+ | echo -e " | ||
+ | } | ||
+ | |||
+ | echo "Une phrase avec un $(couleur_rouge mot) voilà" | ||
+ | </ | ||
+ | |||
+ | Et pour le référenciel des couleurs et bien plus : https:// | ||
+ | |||
+ | |||
+ | ===== Retrouver la date de mise à jour d'un logiciel ===== | ||
+ | |||
+ | |||
+ | <code | download> | ||
+ | grep installed / | ||
+ | </ | ||
+ | |||
+ | Exemple, avec VLC | ||
+ | |||
+ | |||
+ | <code | download> | ||
+ | grep installed / | ||
+ | 2022-01-26 16:39:29 status half-installed libvlccore9: | ||
+ | 2022-01-26 16:39:29 status half-installed libvlc5: | ||
+ | 2022-01-26 16:39:29 status half-installed vlc:amd64 3.0.16-1+b5 | ||
+ | 2022-01-26 16:39:29 status half-installed vlc-bin: | ||
+ | 2022-01-26 16:39:29 status half-installed libvlc-bin: | ||
+ | 2022-01-26 16:39:40 status half-installed vlc-plugin-base: | ||
+ | 2022-01-26 16:39:41 status half-installed vlc-plugin-skins2: | ||
+ | 2022-01-26 16:39:41 status half-installed vlc-plugin-qt: | ||
+ | 2022-01-26 16:39:41 status half-installed vlc-plugin-video-output: | ||
+ | 2022-01-26 16:41:11 status half-installed vlc-plugin-access-extra: | ||
+ | 2022-01-26 16:41:11 status half-installed vlc-plugin-notify: | ||
+ | 2022-01-26 16:41:11 status half-installed vlc-plugin-samba: | ||
+ | 2022-01-26 16:41:11 status half-installed vlc-plugin-video-splitter: | ||
+ | 2022-01-26 16:41:12 status half-installed vlc-plugin-visualization: | ||
+ | 2022-01-26 16:41:54 status installed libvlccore9: | ||
+ | 2022-01-26 16:41:54 status installed vlc-plugin-qt: | ||
+ | 2022-01-26 16:42:48 status installed vlc-plugin-notify: | ||
+ | 2022-01-26 16:42:48 status installed vlc-plugin-samba: | ||
+ | 2022-01-26 16:42:49 status installed vlc-plugin-skins2: | ||
+ | 2022-01-26 16:42:50 status installed vlc-plugin-video-splitter: | ||
+ | 2022-01-26 16:42:50 status installed libvlc5: | ||
+ | 2022-01-26 16:42:51 status installed vlc-plugin-visualization: | ||
+ | 2022-01-26 16:42:51 status installed vlc-plugin-access-extra: | ||
+ | 2022-01-26 16:42:53 status installed libvlc-bin: | ||
+ | 2022-01-26 16:42:55 status installed vlc-bin: | ||
+ | 2022-01-26 16:44:03 status installed vlc-plugin-video-output: | ||
+ | 2022-01-26 16:44:04 status installed vlc-plugin-base: | ||
+ | 2022-01-26 16:44:04 status installed vlc:amd64 3.0.16-1+b6 | ||
+ | 2022-01-26 16:44:05 status installed libvlc-bin: | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Retrouver la date de mise à jour d'un logiciel ===== | ||
+ | |||
+ | <code | download> | ||
+ | awk '/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== fsck : régler le laps de temps de verif système ===== | ||
+ | Pour connaître le réglage par défaut de la vérification de ta partition sda1 par exemple, | ||
+ | |||
+ | |||
+ | <code | download> | ||
+ | # LANG=C tune2fs -l /dev/sda1 | egrep -i "mount count|Check interval|Last|Next" | ||
+ | </ | ||
+ | |||
+ | Pour lancer la vérification avec fsck tous les 20 montages de la partition sda1, | ||
+ | |||
+ | |||
+ | <code | download> | ||
+ | # tune2fs -c 20 /dev/sda1 | ||
+ | </ | ||
+ | |||
+ | Pour lancer la vérification avec fsck tous les 20 jours de la partition sda1, | ||
+ | |||
+ | <code | download> | ||
+ | # tune2fs -i 20d /dev/sda1 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Droits sur rep de pub web ===== | ||
+ | |||
+ | A défaut | ||
+ | |||
+ | <code | download> | ||
+ | #!/bin/sh | ||
+ | |||
+ | chown -R www-data: | ||
+ | |||
+ | find /var/www -name " | ||
+ | |||
+ | find /var/www -name " | ||
+ | </ | ||
+ | |||
+ | ===== Lister les noyaux ===== | ||
+ | <code | download> | ||
+ | echo; dpkg -l | awk ' | ||
+ | </ | ||
+ | < | ||
+ | ii linux-image-5.10.0-10-amd64 | ||
+ | ii linux-image-5.10.0-15-amd64 | ||
+ | ii linux-image-5.10.0-17-amd64 | ||
+ | ii linux-image-5.10.0-19-amd64 | ||
+ | ii linux-image-amd64 | ||
+ | |||
+ | Noyau courant : 5.10.0-19-amd64 x86_64 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Connaître son screensize ===== | ||
+ | |||
+ | **Avec xrand** | ||
+ | <code | download> | ||
+ | $ xrandr | awk '/ connected/ | ||
+ | 13,9615 inches | ||
+ | </ | ||
+ | |||
+ | **Avec python3** | ||
+ | |||
+ | Le script | ||
+ | <code | download> | ||
+ | # | ||
+ | import gi | ||
+ | gi.require_version(' | ||
+ | from gi.repository import Gdk | ||
+ | |||
+ | dsp = Gdk.Display.get_default() | ||
+ | n_mons = dsp.get_n_monitors() | ||
+ | |||
+ | print((" | ||
+ | |||
+ | for i in range(n_mons): | ||
+ | mon = dsp.get_monitor(i) | ||
+ | mon_name = mon.get_model() | ||
+ | w = mon.get_width_mm()/ | ||
+ | h = mon.get_height_mm()/ | ||
+ | d = ((w**2)+(h**2))**(0.5) | ||
+ | print((" | ||
+ | </ | ||
+ | |||
+ | L' | ||
+ | |||
+ | <code | download> | ||
+ | $ python3 screensize.py | ||
+ | Screen width height diagonal | ||
+ | -------------------------------- | ||
+ | eDP-1 12.2 6.9 14.0 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Rebooter sur une entrée grub de son choix ===== | ||
+ | |||
+ | <code | download> | ||
+ | # grub-reboot X | ||
+ | # reboot now | ||
+ | </ | ||
+ | |||
+ | Et X préciser l' | ||
+ | |||
+ | |||
+ | ===== Détection & installation des microprogrammes manquants | ||
+ | |||
+ | Très intéressante cette entrée dans le manuel, je l' | ||
+ | https:// | ||
+ | |||
+ | § 6.4.3 Finaliser le système installé | ||
+ | |||
+ | <code | download> | ||
+ | # apt install isenkram-cli | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code | download> | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | ===== Changer la couleur de fond du terminal | ||
+ | <code | download> | ||
+ | $ echo -e ' | ||
+ | </ | ||
+ | |||
+ | <code | download> | ||
+ | $ echo -e ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Architecture | ||
+ | Connaître les architectures supportées | ||
+ | <code | download> | ||
+ | lscpu | head -n2 | ||
+ | </ | ||
+ | |||
+ | Architecture du système | ||
+ | <code | download> | ||
+ | dpkg --print-architecture | ||
+ | </ | ||
+ | ou | ||
+ | <code | download> | ||
+ | arch | ||
+ | </ | ||
+ | |||
+ | Ajout d'une architecture, | ||
+ | <code | download> | ||
+ | dpkg --add-architecture i386 | ||
+ | apt update | ||
+ | </ | ||
+ | |||
+ | Purge des paquets i386 puis suppression d'une architecture, | ||
+ | <code | download> | ||
+ | aptitude purge ~i~ri386 | ||
+ | dpkg --remove-architecture i386 | ||
+ | apt update | ||
+ | </ | ||
+ | |||
+ | Lister les paquets installés, ici architecture i386 | ||
+ | <code | download> | ||
+ | aptitude search ~i~ri386 | ||
+ | aptitude search ~i~ri386aptitude search '~S ~i ~ri386' | ||
+ | aptitude search '? | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ===== brightness / xrandr ===== | ||
+ | <code | download> | ||
+ | xrandr --output $(xrandr | grep -w connected | cut -f ' | ||
+ | |||
+ | |||
+ | ===== Ajout d' | ||
+ | <code | download> | ||
+ | rename s/$/.jpg/ * | ||
+ | </ |