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/01/12 17:00] – crust | php-bash:aide-memoire [2025/09/12 18:18] (Version actuelle) – [Changer Date fichier(s)] 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:// | ||
| + | |||
| + | ----- | ||
| + | __**Creation de paquets debians**__ | ||
| + | |||
| + | *[[ https:// | ||
| + | *[[ https:// | ||
| + | *[[ https:// | ||
| + | *[[https:// | ||
| + | *[[https:// | ||
| + | *[[ https:// | ||
| + | *[[https:// | ||
| + | *[[ https:// | ||
| + | *[[https:// | ||
| Ligne 15: | 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 191: | Ligne 240: | ||
| =====Bash : recursif===== | =====Bash : recursif===== | ||
| - | <code bash># | + | <code bash># |
| dossierDeTravail="/ | dossierDeTravail="/ | ||
| Ligne 535: | Ligne 584: | ||
| ===== Récupérer les mails d’un fichier sous Linux ===== | ===== Récupérer les mails d’un fichier sous Linux ===== | ||
| + | |||
| + | Parse le fichier, récupère les mails, supprime les doublons et redirige la sortie standard via un fichier texte | ||
| + | |||
| + | <code bash>$ grep -i -o ' | ||
| + | |||
| + | ===== Inverse un motif dans un fichier selon des patterns ===== | ||
| + | <code bash>cat file.txt | awk ' | ||
| + | |||
| + | ===== Supprimer les kernels non utilisés ===== | ||
| + | |||
| + | <code bash># dpkg -l ' | ||
| + | |||
| + | |||
| + | |||
| + | ===== Lister les repo d'apt et les sources.list ===== | ||
| + | <code bash> find /etc/apt -type f -name ' | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | <code bash> | ||
| + | ===== Temps d' | ||
| + | |||
| + | <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> | <code bash> | ||
| - | grep -iEo ‘[a-z.0-9-_]{1,}@[a-z0-9-_]*.[-a-z0-9-_]*.*[a-z]{2,4}’ fichierDepart.txt | sort | uniq > fichierMail.txt</ | + | $ 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>& | ||
| + | </ | ||
| + | |||
| + | 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 ${HOME}/ | ||
| + | </ | ||
| + | |||
| + | 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** | ||
| + | |||
| + | < | ||
| + | # | ||
| + | |||
| + | for a in ./*.flac; do | ||
| + | # give output correct extension | ||
| + | OUTF=" | ||
| + | |||
| + | # get the tags | ||
| + | ARTIST=$(metaflac "$a" | ||
| + | TITLE=$(metaflac " | ||
| + | ALBUM=$(metaflac " | ||
| + | GENRE=$(metaflac "$a" | ||
| + | TRACKNUMBER=$(metaflac " | ||
| + | DATE=$(metaflac "$a" | ||
| + | |||
| + | # stream flac into the lame encoder | ||
| + | flac -c -d " | ||
| + | --ta " | ||
| + | --tn " | ||
| + | done | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== WMA TO MP3 ===== | ||
| + | |||
| + | **En une ligne** | ||
| + | < | ||
| + | |||
| + | **En script** | ||
| + | |||
| + | |||
| + | <code | download> | ||
| + | # | ||
| + | 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> | ||
| + | |||
| + | # | ||
| + | |||
| + | 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** | ||
| + | < | ||
| + | $ xrandr | ||
| + | 13,9615 inches | ||
| + | </code> | ||
| + | |||
| + | **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/ * | ||
| + | </ | ||
| + | |||
| + | ===== Test si programme / service tourne... ===== | ||
| + | <code | download> | ||
| + | ################### | ||
| + | ## pgrep example ## | ||
| + | ################### | ||
| + | pgrep -x mysqld >/ | ||
| + | pgrep -x httpd >/ | ||
| + | |||
| + | ################### | ||
| + | ## pidof example ## | ||
| + | ################### | ||
| + | pidof httpd >/ | ||
| + | pidof nginx >/ | ||
| + | |||
| + | ################ | ||
| + | ## ps example ## | ||
| + | ################ | ||
| + | ps -C httpd >/ | ||
| + | ps -C nginx >/ | ||
| + | </ | ||
| + | |||
| + | Avec systemd | ||
| + | <code | download> | ||
| + | systemctl is-active --quiet <service name> || systemctl restart <service name> & | ||
| + | </ | ||
| + | |||
| + | ===== Lancer serveur php sans conf particulière ===== | ||
| + | |||
| + | <code | download> | ||
| + | php -S localhost: | ||
| + | </ | ||
| + | |||
| + | |||
| + | Y accéder | ||
| + | |||
| + | http:// | ||
| + | |||
| + | ===== Disque SSD ou HDD ? ===== | ||
| + | |||
| + | <code | download> | ||
| + | cat / | ||
| + | </ | ||
| + | |||
| + | Si retourne 0 alors SSD, si 1 alors HDD | ||
| + | |||
| + | ===== Lister les entrées du grub ===== | ||
| + | <code | download> | ||
| + | # awk -F\' '/ | ||
| + | Debian GNU/Linux GNU/Linux | ||
| + | Debian GNU/Linux GNU/Linux, with Linux 6.8.12-amd64 | ||
| + | Debian GNU/Linux GNU/Linux, with Linux 6.8.12-amd64 (recovery mode) | ||
| + | Debian GNU/Linux GNU/Linux, with Linux 6.6.9-amd64 | ||
| + | Debian GNU/Linux GNU/Linux, with Linux 6.6.9-amd64 (recovery mode) | ||
| + | UEFI Firmware Settings | ||
| + | </ | ||
| + | |||
| + | =====Rebooter sous le BIOS ===== | ||
| + | |||
| + | Un moyen très simple d' | ||
| + | |||
| + | <code | download> | ||
| + | sudo systemctl reboot --firmware-setup | ||
| + | </ | ||
| + | |||
| + | L' | ||
| + | |||
| + | |||
| + | =====Changer Date fichier(s)===== | ||
| + | Modifier simultanément les horodatages atime et mtime | ||
| + | <code | download> | ||
| + | touch -d " | ||
| + | </ | ||