Outils pour utilisateurs

Outils du site


php-bash:aide-memoire

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
php-bash:aide-memoire [2020/02/05 10:18] – [Supprimer les kernels non utilisés] crustphp-bash:aide-memoire [2023/12/31 12:30] (Version actuelle) – [Rebooter sur une entrée grub de son choix] 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'archlinux__
 +
 +//
 +**Exécuter des applications GUI en tant que root
 +
 +"Avertissement: toutes les méthodes suivantes ont des implications en matière de sécurité dont les utilisateurs 
 +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'administrateur, vous exécutez littéralement des millions de lignes
 +de code qui n'ont pas été audités correctement pour s'exécuter avec des privilèges élevés; vous exécutez 
 +également du code qui touchera des fichiers dans votre $ HOME et peut changer leur propriété sur le système 
 +de fichiers; connectez-vous, via IPC, à encore plus de code en cours d'exécution, etc. ouvrent une faille 
 +de sécurité massive et béante [...]. "**//
 +
 +__Sources__
 +
 +  * https://bugzilla.gnome.org//show_bug.cgi?id=772875#c5
 +  * https://wiki.archlinux.org/title/Running_GUI_applications_as_root
 +
  
 Quelques liens : Quelques liens :
Ligne 10: Ligne 35:
   * [[http://www.serveur-linux.info/2012/01/depot-personnalise-paquets-debian/|Dépôt personnalisé paquet Debian]]   * [[http://www.serveur-linux.info/2012/01/depot-personnalise-paquets-debian/|Dépôt personnalisé paquet Debian]]
   * [[https://www.cyberciti.biz/linux-news/linux-kernel-5-0-released-how-to-install/|Compiler un kernel 5]]   * [[https://www.cyberciti.biz/linux-news/linux-kernel-5-0-released-how-to-install/|Compiler un kernel 5]]
 +  * [[https://www.cyberciti.biz/faq/linux-unix-creating-a-manpage/|Créer ses pages de man]]
 +  * [[http://www.pingouin-land.com/howto/Man-Page.html|Structuration d'une page de man]]
 +  * [[http://www.linuxfocus.org/Francais/November2003/article309.shtml|Structuration d'une page de man]]
 +  * [[https://www.cyberciti.biz/faq/redirecting-stderr-to-stdout/|Gestion des redirections]]
 +
 +-----
 +__**Creation de paquets debians**__
 +
 +  *[[ https://vincent.bernat.ch/fr/blog/2016-empaquetage-debian-empirique|Empaquetage empirique ]]
 +  *[[ https://www.debian.org/doc/debian-policy/#document-ch-maintainerscripts|Debian Policy Manual ]]
 +  *[[ https://www.debian.org/doc/debian-policy/ch-archive.html#s-subsections| Section / priority]]
 +  *[[https://www.debian.org/doc/manuals/debmake-doc/ch05.en.html#control| DEBIAN CONTROL]]
 +  *[[https://manpages.debian.org/jessie/devscripts/debchange.1.fr.html | Debchange]]
 +  *[[ https://linuxhint.com/debian-package-creation-howto/Debian Package Creation HowTo| ]]
 +  *[[https://www.debian.org/doc/manuals/maint-guide/dother.fr.html | Chapitre 5. Autres fichiers dans le répertoire debian]]
 +  *[[ https://www.debian.org/doc/manuals/maint-guide/dreq.fr.html#customrules| Chapitre 4. Fichiers nécessaires dans le répertoire debian]]
 +  *[[https://www.cyberciti.biz/faq/linux-unix-creating-a-manpage/|Creer page de man]]
  
    
Ligne 15: Ligne 57:
   *[[https://fr.wikibooks.org/wiki/Programmation_Bash|Programmation BASH]]   *[[https://fr.wikibooks.org/wiki/Programmation_Bash|Programmation BASH]]
   *[[https://bash.cyberciti.biz/guide/Main_Page|Linux Shell Scripting Tutorial (LSST) v2.0 ]]   *[[https://bash.cyberciti.biz/guide/Main_Page|Linux Shell Scripting Tutorial (LSST) v2.0 ]]
 +  *[[http://www.dartmouth.edu/~rc/classes/ksh/index.html|Shell]]
 +
 +===== BASH et les chaines de caractères ====
 +  * [[https://www.supinfo.com/articles/single/4814-manipulation-chaine-caracteres-bash|Manipulation de chaine de caractères en BASH]]
 +  * [[https://abs.traduc.org/abs-5.0-fr/ch09s02.html|Manipuler les chaines]]
 +  * [[https://www.tutorialspoint.com/unix/unix-string-operators.htm|Unix / Linux - Shell String Operators Example]]
 +
 =====Perte mot de passe root===== =====Perte mot de passe root=====
  
Ligne 191: Ligne 240:
 =====Bash : recursif===== =====Bash : recursif=====
  
-<code bash>#!/bin/sh+<code bash>#!/bin/bash
  
 dossierDeTravail="/home/serveur"; dossierDeTravail="/home/serveur";
Ligne 551: 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 '*.list' -exec bash -c 'echo -e "\n$1"; nl -ba "$1"' _ '{}' \;</code> <code bash> find /etc/apt -type f -name '*.list' -exec bash -c 'echo -e "\n$1"; nl -ba "$1"' _ '{}' \;</code>
 +
 +<code bash>grep -v "^#" /etc/apt/sources.list{,.d/*}</code>
 +
 +<code bash>apt-cache policy | grep http | awk '{print $2 $3}' | sort -u</code>
 +
 +<code bash>find /etc/apt -type f -name '*.list' | xargs cat | grep -v "^#" | grep -v '^ *$'</code>
 ===== Temps d'execution d'un script et charge processeur ===== ===== Temps d'execution d'un script et charge processeur =====
  
 <code bash>/usr/bin/time -f "\t%E real,\t%U user,\t%S sys, \t%P cpu" ls -Rls /</code> <code bash>/usr/bin/time -f "\t%E real,\t%U user,\t%S sys, \t%P cpu" ls -Rls /</code>
 +
 +===== nmap =====
 +
 +
 +Scanner plusieurs IP
 +<code bash>nmap 192.168.1.1 192.168.1.20 192.168.1.30 192.168.1.40</code>
 +
 +Scanner une plage d'IP
 +<code bash>nmap 192.168.1.1-20
 +nmap 192.168.1.*</code>
 +
 +Scanner la totalité d'un réseau
 +<code bash>nmap 192.168.1.0/24</code>
 +
 +
 +Exclure un poste du scan
 +<code bash>nmap 192.168.1.0/24 --exclude 192.168.1.5</code>
 +
 +Scann et recherche machine Up ou Down
 +<code bash>nmap -sP 192.168.0.0/24</code>
 +
 +===== xfce4 : changer fond écran ligne de commande =====
 +
 +
 +Afin de déterminer les paramètres à utiliser, lancer
 +<code bash>$ xfconf-query -c xfce4-desktop -m</code>
 +
 +Et modifier de façon traditionnelle le wallpaper
 +
 +{{ :php-bash:2020-05-09_10-47.png?direct&400 |}}
 +<code bash>
 +$ xfconf-query -c xfce4-desktop -m
 +Commencer à surveiller le canal « xfce4-desktop » :
 +
 +définir: /backdrop/screen0/monitoreDP-1/workspace0/last-image</code>
 +
 +
 +Pour avoir toutes les options de xfce4-desktop
 +<code bash>xfconf-query -c xfce4-desktop -l</code>
 +
 +Modifier instantanément le wallpaper
 +<code bash>$ xfconf-query  -c xfce4-desktop -p /backdrop/screen0/monitoreDP-1/workspace0/last-image -s "/chemin/vers/le/dossier/du/fond-ecran.png"</code> 
 +
 +
 +
 +===== glances  =====
 +Eviter les soucis de mise en page
 +<code bash>alias 
 +alias glances='glances 2>/dev/null'</code>
 +
 +===== Mise à jour cassée ou interrompue =====
 +Nettoyer s'il y a des reliquats d'installation qui coincent
 +<code | download>
 +su - 
 +apt update
 +</code>
 +
 +Lancer la réparation
 +<code | download>
 +dpkg --configure -a
 +apt install -f
 +</code>
 +
 +Finir ta mise à jour (éventuellement)
 +<code | download>
 +apt upgrade
 +</code>
 +
 +===== Réparer une clef USB =====
 +
 +
 +Identifier sa clef USB
 +<code | download>
 +$ lsblk
 +</code>
 +ou
 +<code | download>
 +$ blkid
 +</code>
 +On doit voir alors une sortie de ce style "/dev/sdc1"
 +
 +Démonter la clef si elle est montée
 +<code | download>
 +# umount /dev/sdXY
 +</code>
 +
 +Réparer la clef USB
 +<code | download>
 +# fsck /dev/sdXY
 +</code>
 +
 +
 +===== Crontab sans notification mail =====
 +
 +Par défaut, lorsqu'une tâche cron est exécutée, cron envoie des notifications par courrier électronique au compte utilisateur. 
 +
 +Pour désactiver les notifications par e-mail, ajoutez<code>
 +> /dev/null 2>&1
 +</code> à la commande dans la tâche cron. 
 +
 +Cela redirige toute la sortie de la tâche cron vers le périphérique **/dev/null**. 
 +
 +Par exemple, la tâche cron suivante n'envoie pas de notifications par courrier électronique:
 +
 +<code>
 +15 * * * Sun     ${HOME}/bigtask.sh > /dev/null 2>&1
 +</code>
 +
 +Pour reprendre la réception des notifications par e-mail des tâches cron, supprimez simplement **> /dev/null 2>&1** de la commande.
 +
 +
 +
 +===== FLAC TO MP3 =====
 +
 +**Avec ffmpeg**
 +<code>
 +parallel ffmpeg -i {} -qscale:a 0 {.}.mp3 ::: ./*.flac
 +</code>
 +
 +
 +**Avec lame**
 +
 +<code>
 +#!/bin/bash
 +
 +for a in ./*.flac; do
 +  # give output correct extension
 +  OUTF="${a[@]/%flac/mp3}"
 +
 +  # get the tags
 +  ARTIST=$(metaflac "$a" --show-tag=ARTIST | sed s/.*=//g)
 +  TITLE=$(metaflac "$a" --show-tag=TITLE | sed s/.*=//g)
 +  ALBUM=$(metaflac "$a" --show-tag=ALBUM | sed s/.*=//g)
 +  GENRE=$(metaflac "$a" --show-tag=GENRE | sed s/.*=//g)
 +  TRACKNUMBER=$(metaflac "$a" --show-tag=TRACKNUMBER | sed s/.*=//g)
 +  DATE=$(metaflac "$a" --show-tag=DATE | sed s/.*=//g)
 +
 +  # stream flac into the lame encoder
 +  flac -c -d "$a" | lame -V0 --add-id3v2 --pad-id3v2 --ignore-tag-errors \
 +    --ta "$ARTIST" --tt "$TITLE" --tl "$ALBUM"  --tg "${GENRE:-12}" \
 +    --tn "${TRACKNUMBER:-0}" --ty "$DATE" - "$OUTF"
 +done
 +</code>
 +
 +
 +===== WMA TO MP3 =====
 +
 +**En une ligne**
 +<code>find . -iname "*.wma" -execdir bash -c 'NAME="{}" && ffmpeg -y -i "$NAME" -ab 192k "${NAME/.wma/.mp3}" && rm "$NAME"' \;</code>
 +
 +**En script**
 +
 +
 +<code | download>
 +#!/bin/bash
 + for i in *.wma; do
 +            j="${i%.wma}"
 +            soundconverter -b -m audio/mpeg -s .mp3 "$j.wma" && rm -f "$j.wma"  && echo "$i réencodé en mp3."
 + done
 +</code>
 +===== Redimensionner des images =====
 +
 +<code>
 +for f in *.jpeg ; do convert $f -resize 50% new_$f; done
 +</code>
 +
 +
 +===== Chercher [dans] les logs =====
 +
 +Avec systemd, nous avons obtenu journalctl qui permet facilement un filtrage à grain fin comme celui-ci:
 +
 +<code>
 +sudo journalctl --since "2 days ago"   
 +sudo journalctl --since "2019-03-10" --until "2019-03-11 03:00"
 +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
 +</code>
 +===== Fonction bash pour la gestion des couleurs =====
 +
 +<code | download>
 +
 +#!/bin/bash
 +
 +couleur_rouge () {
 +    echo -e "\e[91m $@ \033[0m"
 +
 +
 +echo  "Une phrase avec un $(couleur_rouge mot) voilà"
 +</code>
 +
 +Et pour le référenciel des couleurs et bien plus : https://misc.flogisoft.com/bash/tip_colors_and_formatting
 + 
 +
 +===== Retrouver la date de mise à jour d'un logiciel =====
 +
 +
 +<code | download>
 +grep installed /var/log/dpkg.log | grep <LE PAQUET>
 +</code>
 +
 +Exemple, avec VLC
 +
 +
 +<code | download>
 +grep installed /var/log/dpkg.log | grep vlc
 +2022-01-26 16:39:29 status half-installed libvlccore9:amd64 3.0.16-1+b5
 +2022-01-26 16:39:29 status half-installed libvlc5:amd64 3.0.16-1+b5
 +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:amd64 3.0.16-1+b5
 +2022-01-26 16:39:29 status half-installed libvlc-bin:amd64 3.0.16-1+b5
 +2022-01-26 16:39:40 status half-installed vlc-plugin-base:amd64 3.0.16-1+b5
 +2022-01-26 16:39:41 status half-installed vlc-plugin-skins2:amd64 3.0.16-1+b5
 +2022-01-26 16:39:41 status half-installed vlc-plugin-qt:amd64 3.0.16-1+b5
 +2022-01-26 16:39:41 status half-installed vlc-plugin-video-output:amd64 3.0.16-1+b5
 +2022-01-26 16:41:11 status half-installed vlc-plugin-access-extra:amd64 3.0.16-1+b5
 +2022-01-26 16:41:11 status half-installed vlc-plugin-notify:amd64 3.0.16-1+b5
 +2022-01-26 16:41:11 status half-installed vlc-plugin-samba:amd64 3.0.16-1+b5
 +2022-01-26 16:41:11 status half-installed vlc-plugin-video-splitter:amd64 3.0.16-1+b5
 +2022-01-26 16:41:12 status half-installed vlc-plugin-visualization:amd64 3.0.16-1+b5
 +2022-01-26 16:41:54 status installed libvlccore9:amd64 3.0.16-1+b6
 +2022-01-26 16:41:54 status installed vlc-plugin-qt:amd64 3.0.16-1+b6
 +2022-01-26 16:42:48 status installed vlc-plugin-notify:amd64 3.0.16-1+b6
 +2022-01-26 16:42:48 status installed vlc-plugin-samba:amd64 3.0.16-1+b6
 +2022-01-26 16:42:49 status installed vlc-plugin-skins2:amd64 3.0.16-1+b6
 +2022-01-26 16:42:50 status installed vlc-plugin-video-splitter:amd64 3.0.16-1+b6
 +2022-01-26 16:42:50 status installed libvlc5:amd64 3.0.16-1+b6
 +2022-01-26 16:42:51 status installed vlc-plugin-visualization:amd64 3.0.16-1+b6
 +2022-01-26 16:42:51 status installed vlc-plugin-access-extra:amd64 3.0.16-1+b6
 +2022-01-26 16:42:53 status installed libvlc-bin:amd64 3.0.16-1+b6
 +2022-01-26 16:42:55 status installed vlc-bin:amd64 3.0.16-1+b6
 +2022-01-26 16:44:03 status installed vlc-plugin-video-output:amd64 3.0.16-1+b6
 +2022-01-26 16:44:04 status installed vlc-plugin-base:amd64 3.0.16-1+b6
 +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:amd64 3.0.16-1+b6
 +
 +</code>
 +
 +
 +===== Retrouver la date de mise à jour d'un logiciel =====
 +
 +<code | download>
 +awk '/^Upgrade:/{getline;d=$2" "$3}END{print d}' /var/log/apt/history.log
 +</code>
 +
 +
 +===== 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"
 +</code>
 +
 +Pour lancer la vérification avec fsck tous les 20 montages de la partition sda1,
 +
 +
 +<code | download>
 +    # tune2fs -c 20 /dev/sda1
 +</code>
 +
 +Pour lancer la vérification avec fsck tous les 20 jours de la partition sda1,
 +
 +<code | download>
 +    # tune2fs -i 20d /dev/sda1
 +</code>
 +
 +
 +===== Droits sur rep de pub web =====
 +
 +A défaut 
 +
 +<code | download>
 +#!/bin/sh
 +
 +chown -R www-data:www-data /var/www
 +
 +find /var/www -name "*" -type d -exec chmod 755 {} \;
 +
 +find /var/www -name "*" -type f -exec chmod 644 {} \;
 +</code>
 +
 +===== Lister les noyaux =====
 +<code | download>
 +echo; dpkg -l | awk '!/^rc/ && / linux-(c|g|h|i|lo|m|si|t)/{print $1,$2,$3,$4 | "sort -k3V | column -t"}' ; echo -e "\nNoyau courant : $(uname -mr)"
 +</code>
 +<code>
 +ii  linux-image-5.10.0-10-amd64  5.10.84-1   amd64
 +ii  linux-image-5.10.0-15-amd64  5.10.120-1  amd64
 +ii  linux-image-5.10.0-17-amd64  5.10.136-1  amd64
 +ii  linux-image-5.10.0-19-amd64  5.10.149-2  amd64
 +ii  linux-image-amd64            5.10.149-2  amd64
 +
 +Noyau courant : 5.10.0-19-amd64 x86_64
 +</code>
 +
 +
 +===== Connaître son screensize =====
 +
 +**Avec xrand**
 +<code | download>
 +$ xrandr | awk '/ connected/{print sqrt( ($(NF-2)/10)^2 + ($NF/10)^2 )/2.54" inches"}'
 +13,9615 inches
 +</code>
 +
 +**Avec python3**
 +
 +Le script
 +<code | download>
 +#!/usr/bin/env python3
 +import gi
 +gi.require_version('Gdk', '3.0')
 +from gi.repository import Gdk
 +
 +dsp = Gdk.Display.get_default()
 +n_mons = dsp.get_n_monitors()
 +
 +print(("\t").join(["Screen", "width", "height", "diagonal\n"+32*"-"]))
 +
 +for i in range(n_mons):
 +    mon = dsp.get_monitor(i)
 +    mon_name = mon.get_model()
 +    w = mon.get_width_mm()/25.4
 +    h = mon.get_height_mm()/25.4
 +    d = ((w**2)+(h**2))**(0.5)
 +    print(("\t").join([mon_name]+[str(round(n, 1)) for n in [w, h, d]]))
 +</code>
 +
 +L'output
 +
 +<code | download>
 +$ python3 screensize.py 
 +Screen width height diagonal
 +--------------------------------
 +eDP-1 12.2 6.9 14.0
 +</code>
 +
 +
 +===== Rebooter sur une entrée grub de son choix =====
 +
 +<code | download>
 +# grub-reboot X
 +# reboot now
 +</code>
 +
 +Et X  préciser l'entrée du grub sur laquelle rebooter
 +
 +
 +=====  Détection & installation des microprogrammes manquants  =====
 +
 +Très intéressante cette entrée dans le manuel, je l'avais zappée
 +https://www.debian.org/releases/stable/amd64/install.fr.pdf
 +
 +§ 6.4.3 Finaliser le système installé  (à ce moment  p. 59)
 +
 +<code | download>
 +# apt install isenkram-cli
 +</code>
 +
 +
 +<code | download>
 +# isenkram-autoinstall-firmware
 +</code>
 +
 +
 +
php-bash/aide-memoire.1580894330.txt.gz · Dernière modification : 2020/02/05 10:18 de crust