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
Prochaine révisionLes deux révisions suivantes
php-bash:aide-memoire [2018/11/03 18:51] cyrillephp-bash:aide-memoire [2019/06/16 19:14] – [Aide mémoire Linux] cyrille
Ligne 1: Ligne 1:
 ====== Aide mémoire Linux ====== ====== Aide mémoire Linux ======
  
 +Quelques liens 
 +  * [[https://www.alsacreations.com/tuto/lire/622-Securite-firewall-iptables.html|IPTABLES]]
 +  * [[http://languille11.fr/wiki/informatique/linux/iptables/|IPTABLES]]
 +  * [[https://www.instructables.com/id/CNC-Arduino-Plant-Growing-Machine/|ARDUINO  Plant Growing]]
 +  * [[https://developers.google.com/calendar/quickstart/python|Google Start python calendar]]
 +  * [[https://wiki.debian.org/SSDOptimization|SSD optimization]]
 +  * [[https://wiki.visionduweb.fr/index.php?title=Programmer_un_paquet_logiciel_pour_Debian|Programmer un 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]]
  
-=== alias utiles ===+  
 +=====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 ]] 
 +=====Perte mot de passe root===== 
 + 
 +==== Solution 1 ==== 
 +  * Trouver le nom de l'utilisateur dans **/etc/passwd**, 
 +  * Supprimer le mot de passe correspondant dans **/etc/shadow**. 
 +  * Redémarrer 
 +  * Se connectet sans mot de passe 
 +  * Créer un nouveau avec la commande "**passwd**".  
 +ATTENTION : débrancher l'ordi du réseau -> sécurité car connexion sans mdp root 
 + 
 +==== Solution 2==== 
 +  * Trouver le nom de l'utilisateur dans **/etc/passwd** 
 +  * Editer **/etc/shadow** et remplacer l'empreinte du mot de passe correspondant a ce compte par l'empreinte de ton mot de passe. Ca demande de connaitre l'empreinte de ton mot de passe, donc de l'avoir préparée au préalable a un endroit que tu pourra accéder quand tu feras la manip. 
 + 
 +====Solution 3==== 
 +  * Trouver le nom de l'utilisateur dans **/etc/passwd** 
 +  * utiliser un **chroot** pour lancer la commande passwd du système dont tu veux modifier le mot de passe.  
 +  * **Par exemple** si tu as monté la partition système que tu veux modifier sur /mnt/root et tu vois que l'utilisateur s'appelle "bob"
 +<code > 
 +mount -o bind /proc /mnt/root/proc 
 +mount -o bind /sys /mnt/root/sys 
 +mount -o bind /dev /mnt/root/dev 
 +chroot /mnt/root /bin/bash 
 +passwd bob 
 +exit 
 +umount /mnt/root/dev 
 +umount /mnt/root/sys 
 +umount /mnt/root/proc 
 +umount /mnt/root</code> 
 + 
 + 
 + 
 +===== alias utiles =====
  
 Lister des fichiers Lister des fichiers
-alias ls-list='ls -la | grep ^- | awk \'\''{print }\'\'''+<code bash>alias ls-list='ls -la | grep ^- | awk \'\''{print }\'\'''</code> 
 + 
 + 
 +===== Gel de paquets ===== 
 + 
 +Geler un paquet (n’apparait plus lors des mises  à jour) 
 +<code bash># aptitude hold LePaquet</code> 
 + 
 +Degeler un paquet (réapparait lors des mises  à jour) 
 +<code bash># aptitude unhold LePaquet</code> 
 + 
 + 
 +Recherche des paquets gelés 
 +<code bash># dpkg --list | grep ^hi 
 +# aptitude search "~ahold" 
 +</code> 
 + 
 +===== Aptitude  ~i | !~i ===== 
 +Trouvé que le motif bash (dans le nom) 
 +<code bash>aptitude search '~i bash'</code> 
 + 
 + 
 +Trouvé que le motif bash (dans la description) 
 +<code bash>aptitude search '~i ~d bash'</code> 
 + 
 +Idem mais en non installé 
 +<code bash>aptitude search '!~i bash'</code> 
 + 
 +=====FREEBOX VLC===== 
 +<code>apt-cache search freeplayer 
 +fbx-playlist - éditeur graphique pour la liste de lecture de la Freebox 
 +freeplayer - Encapsuleur autour de VLC pour la FreeBox ADSL française</code> 
 + 
 +=====APTITUDE REVENIR VERSION ANTERIEURE===== 
 +<code>aptitude  show -v Logiciel 
 +aptitude install=Version Logiciel</code> 
 + 
 +=====APTITUDE RECOMMENDS===== 
 + 
 + 
 +<code bash>aptitude install --with-recommends LePaquet</code> 
 + 
 +<code bash>aptitude install --without-recommends LePaquet</code> 
 + 
 + 
 +=====INCROND===== 
 +[[https://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/|https://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/]] 
 +Linux incrond inotify Monitor Directories For Changes And Take Action 
 + 
 +=====Xinput===== 
 +Lister les périph 
 + 
 + 
 +<code bash>ragnarok@Fenrir:~$ xinput --list 
 +⎡ Virtual core pointer                    id=2 [master pointer  (3)] 
 +⎜   ↳ Virtual core XTEST pointer              id=4 [slave  pointer  (2)] 
 +⎜   ↳ AlpsPS/2 ALPS DualPoint TouchPad        id=13 [slave  pointer  (2)] 
 +⎜   ↳ AlpsPS/2 ALPS DualPoint Stick            id=14 [slave  pointer  (2)] 
 +⎣ Virtual core keyboard                    id=3 [master keyboard (2)] 
 +    ↳ Virtual core XTEST keyboard              id=5 [slave  keyboard (3)] 
 +    ↳ Power Button                            id=6 [slave  keyboard (3)] 
 +    ↳ Video Bus                                id=7 [slave  keyboard (3)] 
 +    ↳ Power Button                            id=8 [slave  keyboard (3)] 
 +    ↳ Sleep Button                            id=9 [slave  keyboard (3)] 
 +    ↳ Laptop_Integrated_Webcam_HD: In          id=10 [slave  keyboard (3)] 
 +    ↳ Dell WMI hotkeys                        id=11 [slave  keyboard (3)] 
 +    ↳ AT Translated Set 2 keyboard            id=12 [slave  keyboard (3)] 
 +</code> 
 + 
 +Détailler le touchpad 
 +<code bash>ragnarok@Fenrir:~$ xinput list-props 13 
 +Device 'AlpsPS/2 ALPS DualPoint TouchPad': 
 + Device Enabled (154): 1 
 + Coordinate Transformation Matrix (156): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 
 + libinput Tapping Enabled (292): 1 
 + libinput Tapping Enabled Default (293): 0 
 + libinput Tapping Drag Enabled (294): 1 
 + libinput Tapping Drag Enabled Default (295): 1 
 + libinput Tapping Drag Lock Enabled (296): 0 
 + libinput Tapping Drag Lock Enabled Default (297): 0 
 + libinput Tapping Button Mapping Enabled (298): 1, 0 
 + libinput Tapping Button Mapping Default (299): 1, 0 
 + libinput Natural Scrolling Enabled (300): 0 
 + libinput Natural Scrolling Enabled Default (301): 0 
 + libinput Disable While Typing Enabled (302): 1 
 + libinput Disable While Typing Enabled Default (303): 1 
 + libinput Scroll Methods Available (304): 1, 1, 0 
 + libinput Scroll Method Enabled (305): 1, 0, 0 
 + libinput Scroll Method Enabled Default (306): 1, 0, 0 
 + libinput Middle Emulation Enabled (307): 1 
 + libinput Middle Emulation Enabled Default (308): 1 
 + libinput Accel Speed (309): 0.000000 
 + libinput Accel Speed Default (310): 0.000000 
 + libinput Left Handed Enabled (311): 0 
 + libinput Left Handed Enabled Default (312): 0 
 + libinput Send Events Modes Available (277): 1, 1 
 + libinput Send Events Mode Enabled (278): 0, 0 
 + libinput Send Events Mode Enabled Default (279): 0, 0 
 + Device Node (280): "/dev/input/event2" 
 + Device Product ID (281): 2, 8 
 + libinput Drag Lock Buttons (313): <no items> 
 + libinput Horizontal Scroll Enabled (314): 1</code> 
 + 
 +Activer une option (exemple tapping touchpad) 
 +<code bash>ragnarok@Fenrir:~$ xinput --set-prop 13 292 1</code> 
 + 
 + 
 +=====TOUCHPAD===== 
 +Desactiver 
 +<code bash>  xinput --set-prop `xinput | sed -nr 's/.*TouchPad.*id=([0-9]*).*/\1/p' "Device Enabled" 0</code> 
 +   
 +Activer 
 +<code bash>  xinput --set-prop `xinput | sed -nr 's/.*TouchPad.*id=([0-9]*).*/\1/p' "Device Enabled" 1</code> 
 + 
 + 
 + 
 + 
 +=====xbindkeys / brightness===== 
 +Nom touche 
 +<code bash>xbindkeys -k</code> 
 + 
 +Dispo clavier 
 +<code bash>xkbprint -label name $DISPLAY - | gv -orientation=seascape -</code>  
 + 
 +**xbindkeys** en toile de fond. 
 +<code bash>[ragnarok@asgard-freeBSD:~] $ cat .xbindkeysrc  
 + 
 +# PERSONNAL XBINDKEYS 
 + "intel_backlight decr 10" 
 + Alt + Down 
 + 
 + "intel_backlight incr 10" 
 + Alt + Up 
 +</code> 
 + 
 +FreeBSD : pkg install intel-backlight  
 +Debian : aptitude instatt xbacklight 
 + 
 + 
 +=====Bash : recursif===== 
 + 
 +<code bash>#!/bin/sh 
 + 
 +dossierDeTravail="/home/serveur"; 
 + 
 +recursiveSearch() { 
 +    [ -r "$1" ] && [ -x "$1" ] || return 1 # Si on peut fouiller dans le dossier 
 +    [ "`ls "$1" | wc -l`" == "0" ] && return 0 # Si le dossier est vide 
 +    for file in "$1"/*; do 
 +        if [ -d "$file" ]; then 
 +            recursiveSearch "$file" 
 +        fi 
 +        echo "$file" 
 +    done 
 +
 + 
 +recursiveSearch  $dossierDeTravail</code> 
 + 
 + 
 + 
 +=====Bash : recursif 2 / zenity ===== 
 +<code bash>#!/bin/sh 
 +
 +# Test de l'existence du programme ZENITY  
 +if which zenity > /dev/null; then 
 +    echo "zenity already install. Fine." 
 +else 
 +    echo "zenity does not exist. Go for the installation" 
 +    su -c "apt-get install zenity" 
 +fi 
 + 
 +dossier=`zenity --title="Choisir un dossier" --file-selection --directory` ;  
 +find $dossier -depth -name '*.wav' -execdir bash -c '[[ -f $0 ]] &&  flac -7 --replay-gain "$0" ' {} \;</code> 
 + 
 +=====Bash: jours semaine===== 
 +<code bash>#!/bin/sh 
 + 
 +case $(LC_ALL=C date +%a) in 
 +   (Mon) echo 'Bonjour :)';; 
 +   (Thu) echo 'Bienvenue ;) ';; 
 +   (Wed|Sat|Sun) echo 'YEP !!! :)';; 
 +   (*) echo 'Hi ! ;)' ;; 
 +esac</code> 
 + 
 +=====VIRTUAL BOX: racc.claviers===== 
 + 
 + 
 +La touche Host est la touche Ctrl droite de votre clavier. 
 + 
 + 
 +    Host: Active (intègre la souris et le clavier dans la machine) 
 +    Host: Désactive le mode capturé (sortir de la machine capturé) 
 +    Host + Début: Affichée la barre de menu en mode intégré 
 +    Host + A: Ajuste la taille de l'écran invité 
 +    Host + F: Passe l'affichage en mode plein écran 
 +    Host + F: Passe l'affichage en mode normal 
 +    Host + G: Ajuste automatiquement la taille et l'écran de l'invité 
 +    Host + H: Arrêt par ACPI 
 +    Host + I: Activation de l'intégration de la souris 
 +    Host + I: Désactivation de l'intégration de la souris 
 +    Host + L: Mode affichage intégré dans le bureau 
 +    Host + P: Mettre la machine virtuelle en pause 
 +    Host + P: Sortir la machine virtuelle du mode pause 
 +    Host + Q: Fermer (quitter) la machine virtuelle 
 +    Host + R: Redémarrer la machine virtuelle 
 + 
 +=====sources.list===== 
 + 
 +<code bash>$ find /etc/apt -type f -name '*.list' -exec bash -c 'echo -e "\n$1\n"; nl -ba "$1"' _ '{}' \;</code> 
 + 
 + 
 + 
 + 
 +=====Bloquer l'USB===== 
 +====Bloquer les ports==== 
 +<code bash>serveur@serveurProliant:~$ lsusb -t 
 +/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M 
 +    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M 
 +/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M 
 +    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M 
 +/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M 
 +/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 480M 
 +    |__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M 
 +    |__ Port 3: Dev 3, If 0, Class=Hub, Driver=hub/2p, 480M 
 +    |__ Port 4: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M 
 +/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M 
 +</code> 
 + 
 + 
 +Pour désactiver un port : (ici le bus 2 port 4) 
 +<code bash>echo '2-4' |sudo tee /sys/bus/usb/drivers/usb/unbind</code> 
 + 
 +Pour le réactiver  
 +<code bash>echo '2-4' |sudo tee /sys/bus/usb/drivers/usb/bind</code> 
 + 
 +====Bloquer les périphériques de stockage==== 
 +1. Initialiser l'usb-storage 
 +<code bash>cat /etc/modprobe.d/block_usb.conf 
 +install usb-storage /bin/true</code> 
 + 
 +2.Blacklister usb-storage 
 + 
 +<code bash>cat /etc/modprobe.d/blacklist.conf 
 +blacklist usb-storage 
 +blacklist uas</code> 
 + 
 +===== find ===== 
 +<code bash>find /var/log/ -maxdepth 3 -name "*gz*" -ctime +5</code> 
 + 
 +Explication : 
 + 
 +**"/var/log"** : indique le répertoire ou nous allons chercher. Nous aurions aussi pu indiquer "." pour spécifier le répertoire où nous nous trouvons. 
 + 
 +**"name "*tar*""** : Permet de nous afficher tous les fichiers qui possèdent "tar" dans leur nom. On s'aide des "*" qui nous permettent de dire "tout à partir du moment ou il y a tar"
 + 
 +**"maxdepth 3"** : permet d'indiquer que nous allons descendre dans les arborescences sur trois niveaux. Le trois à été choisi car on descend rarement plus de 3 niveaux dans les logs mais cela peut être plus où peut ne pas être indiqué pour descendre au maximum. 
 + 
 +**"ctime +5"** : c'est l'option la plus intéressante, avec celle-ci nous n'affichons que les données dont la création est plus vieille que 5 jours. 
 + 
 +Avec cette dernière option, nous pouvons trier les fichiers selon la date, mais il existe d'autres options : 
 + 
 +**"ctime"** pour "creation time" : permet de n'afficher que les fichiers dont la création est plus ou moins vieille que le nombre de jour donné. 
 + 
 +**"atime"** pour "access time" : permet de n'afficher que les fichiers dont le dernier accès est plus ou moins vieux que le nombre de jour donné 
 + 
 +**"mtime"** pour "modification time": permet de n'afficher que les fichiers dont la dernière modification est plus ou moins vieille que le nombre de jour donné 
 + 
 +Sur ces trois options, nous pouvons spécifier un nombre de jours précédé d'un "+" pour "plus vieux que X jours" ou un "-" pour spécifier "moins vieux que"
 + 
 +Quelques exemples : 
 + 
 +Pour lister les fichiers qui ont été modifiés il y a moins de trois jours : 
 + 
 +<code bash>find -mtime -3</code> 
 + 
 +Pour lister les fichiers qui ont été ouverts (lus) il y a plus de 20 jours : 
 + 
 +<code bash>find -atime +20</code> 
 + 
 +On peut bien entendu combiner l'une des trois options avec les autres options vues un peu plus tôt dans le tutoriel. 
 + 
 + 
 +Supprimer les fichiers 
 + 
 +Maintenant que nous savons lister les fichiers, nous voulons agir sur les fichiers que nous avons trouvés avec la même ligne de commande. On peut pour cela ajouter "-exec ". Par exemple si nous souhaitons supprimer les archives qui date de plus de 30 jours dans le dossier "/var/log" 
 + 
 +<code bash>find /var/log/ -maxdepth 3 -name "*gz*" -ctime +30 -exec rm -f {} \;</code> 
 + 
 +**"{}"** permet d'afficher le nom du fichier trouvé à la place de ces deux accolades. 
 + 
 +** "\;"** : permet de terminer la commande proprement 
 + 
 +Nous sommes libre d'effectuer la commande que l'on souhaite après le "-exec"
 + 
 + 
 +===== Vitesse démarrage ===== 
 +<code bash>systemd-analyze blame</code> 
 + 
 + 
 + ===== Pb write / USB key ===== 
 +https://www.debian-fr.org/t/cle-usb-en-systeme-de-fichiers-accessible-en-lecture-seulement/74704/
 + 
 + 
 + 
 +===== PID =====  
 +<code bash>ps -ef | grep "NOM_PROCESSUS" | awk '{ print $2 }'</code> 
 + 
 +Et sur une boucle si plusieurs kills  à tuer 
 +<code bash>for proc in $(pgrep <process command>); do kill $proc; done</code> 
 + 
 +===== CUP =====  
 + 
 +<code bash>ragnarok@debian-SID-64bit-vbox-freeBSD:~$ lscpu | grep bit 
 +CPU op-mode(s):      32-bit, 64-bit 
 +Address sizes:       36 bits physical, 48 bits virtual</code> 
 + 
 + 
 +<code bash>if [[ $(sed -n '/flags/{/lm/ p;q}' /proc/cpuinfo) ]] ; then echo "Ton CPU est un 64 bits" ; else echo "Non-compatible 64 bits" ; fi</code> 
 + 
 + 
 +===== Packager sous DEBIAN =====  
 +  *[[https://wiki.visionduweb.fr/index.php?title=Programmer_un_paquet_logiciel_pour_Debian|Packager sous Debian]] 
 + 
 +===== Xrandr : augmenter sa résolution =====  
 + 
 +Visualiser la liste des résolutions natives de votre système 
 +<code bash>$ xrandr</code> 
 + 
 +Ensuite, calculez un modèle pour la résolution qui vous convient 
 +<code bash>$ cvt 1920 1080 </code>  
 + 
 + 
 +Ensuite, utilisez xrandr pour ajouter la résolution à l’affichage 
 +<code bash>$ xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync 
 +$ xrandr --addmode eDP-1 "1368x768_60.00"</code> 
 + 
 +Appliquer cette nouvelle résolution 
 +<code bash>$ xrandr --output eDP-1 --mode "1368x768_60.00"</code> 
 + 
 +xrandr 
 +Pour tester une configuration de suite 
 +<code bash>xrandr -s 1600x1024</code> 
 + 
 + 
 +===== Crontab USER =====  
 +Vérifier ses variables d'environnement, notamment  XDG_RUNTIME_DIR 
 +<code bash>serveur@serveurProliant:~$ env 
 +LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd    =40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;   4:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;    31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7    z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=0    1;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tb    z=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:    *.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=0    1;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.m    jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;    35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.sv    gz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;   5:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vo    b=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:   .flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35    :*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=0    0;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.    mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;   6:*.spx=00;36:*.xspf=00;36: 
 +SSH_CONNECTION=192.168.1.10 51524 192.168.1.50 22 
 +LANG=fr_FR.UTF-8 
 +XDG_SESSION_ID=12 
 +USER=serveur 
 +PWD=/home/serveur 
 +HOME=/home/serveur 
 +SSH_CLIENT=192.168.1.10 51524 22 
 +SSH_TTY=/dev/pts/
 +MAIL=/var/mail/serveur 
 +TERM=xterm 
 +SHELL=/bin/bash 
 +SHLVL=1 
 +LOGNAME=serveur 
 +DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus 
 +XDG_RUNTIME_DIR=/run/user/1000 
 +PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games 
 +_=/usr/bin/env</code> 
 + 
 + 
 +Puis cette variable 
 +<code bash>crontab -e</code> 
 +<code bash>00 21 2 6 * XDG_RUNTIME_DIR=/run/user/1000 /ma/commande/De/Shell/Script</code> 
 + 
 +Voir aussi [[https://askubuntu.com/questions/23009/why-crontab-scripts-are-not-working|https://askubuntu.com/questions/23009/why-crontab-scripts-are-not-working]] 
 + 
 +===== Modifier la date des fichiers Récursif =====  
 + 
 +<code bash>find date/  -print0 | xargs -0 -I '{}' touch -r '{}' -d '+2 day' '{}'</code> 
 +avec [u][b]date/[/b][/u] le répertoire à modifier 
 + 
 +__**En pratique**__ 
 +Création d'un répetoire à plusieurs niveaux et fichiers de test 
 +<code bash>ragnarok@Fenrir:~$ mkdir -p date/sousdate 
 +ragnarok@Fenrir:~$ touch date/test date/test2 date/sousdate/test3 date/sousdate/test4</code>
  
 +On regarde les dates
 +<code bash>ragnarok@Fenrir:~$ ls -lR date/
 +date/:
 +total 4
 +drwxr-xr-x 2 ragnarok ragnarok 4096 juin   5 10:33 sousdate
 +-rw-r--r-- 1 ragnarok ragnarok    0 juin   5 10:33 test
 +-rw-r--r-- 1 ragnarok ragnarok    0 juin   5 10:33 test2
  
 +date/sousdate:
 +total 0
 +-rw-r--r-- 1 ragnarok ragnarok 0 juin   5 10:33 test3
 +-rw-r--r-- 1 ragnarok ragnarok 0 juin   5 10:33 test4</code>
  
 +On les avances de 2 jours
 +<code bash>ragnarok@Fenrir:~$ find date/  -print0 | xargs -0 -I '{}' touch -r '{}' -d '+2 day' '{}'</code>
  
-=== Aptitude Apt-get Apt === +On vérifie 
-Obtenir le source +<code bash>ragnarok@Fenrir:~$ ls -lR date/ 
-apt-get source <paquet(s)>+date/: 
 +total 4 
 +drwxr-xr-x 2 ragnarok ragnarok 4096 juin    2019 sousdate 
 +-rw-r--r-- 1 ragnarok ragnarok    0 juin    2019 test 
 +-rw-r--r-- 1 ragnarok ragnarok    0 juin    2019 test2
  
-Gestion des paquets gelés +date/sousdate: 
-sudo dpkg --list | grep ^hi +total 0 
-sudo aptitude search "~ahold"+-rw-r--r-- 1 ragnarok ragnarok 0 juin    2019 test3 
 +-rw-r--r-- 1 ragnarok ragnarok 0 juin    2019 test4</code>
  
 +C'est OK
  
 +__**Note**__
 +<code bash>touch -a -m -t 201512180130.09 fileName.ext</code>
  
 +<code bash>-a = accessed
 +-m = modified
 +-t = timestamp - use [[CC]YY]MMDDhhmm[.ss] time format
 +</code>
  
  
php-bash/aide-memoire.txt · Dernière modification : 2024/06/13 18:34 de cyrille