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édentes Révision précédente
Prochaine révision
Révision précédente
php-bash:aide-memoire [2019/01/17 10:56]
cyrille
php-bash:aide-memoire [2019/07/17 19:27] (Version actuelle)
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]]
 +
 + 
 +=====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===== =====Perte mot de passe root=====
  
Ligne 39: Ligne 53:
  
  
-===== Aptitude Apt-get Apt ===== +===== Gel de paquets ​===== 
-Gestion ​des paquets gelés + 
-<code bash>sudo dpkg --list | grep ^hi +Geler un paquet (n’apparait plus lors des mises  à jour) 
-sudo aptitude search "​~ahold"​+<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>​ </​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===== =====FREEBOX VLC=====
Ligne 66: Ligne 98:
 [[https://​www.cyberciti.biz/​faq/​linux-inotify-examples-to-replicate-directories/​|https://​www.cyberciti.biz/​faq/​linux-inotify-examples-to-replicate-directories/​]] [[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 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/​6
 +
 +
 +
 +===== 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 ​   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;​3 ​   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;​3 ​   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/​0
 +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>​
 +
 +On vérifie
 +<code bash>​ragnarok@Fenrir:​~$ ls -lR date/
 +date/:
 +total 4
 +drwxr-xr-x 2 ragnarok ragnarok 4096 juin   ​7 ​ 2019 sousdate
 +-rw-r--r-- 1 ragnarok ragnarok ​   0 juin   ​7 ​ 2019 test
 +-rw-r--r-- 1 ragnarok ragnarok ​   0 juin   ​7 ​ 2019 test2
 +
 +date/​sousdate:​
 +total 0
 +-rw-r--r-- 1 ragnarok ragnarok 0 juin   ​7 ​ 2019 test3
 +-rw-r--r-- 1 ragnarok ragnarok 0 juin   ​7 ​ 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>​
 +
 +===== echo $var / echo "​$var"​ =====
 +
 +echo "​$var"​ conservera la mise en page (retour à la ligne).
 +
 +
 +
 +=====  RUN fsck MANUALLY =====
 +
 +
 +“Exécuter fsck manuellement.”
 +
 +Note que bien que les incohérences du système de fichiers ont été corrigées mais il ne s’en est pas forcément tiré sans dommage (perte de fichiers ou de modifications de fichiers). Au mieux les inodes faisant partie de la liste chaînée orpheline corrompue étaient des fichiers temporaires qui auraient de tout façon été supprimés à l’arrêt ou au redémarrage,​ au pire ce sont des fichiers importants qui étaient en cours de modification. Le contenu des fichiers orphelins se retrouve dans le répertoire spécial /​lost+found,​ mais sans les noms d’origine.
 +
 +P H Debian fr
 +
 +
 +===== Pour les utilisateurs du shell =====
 +
 +
 +Afin de ne pas laisser de **tty** ou **consoles actives** lorsque l'on quitte le PC (physiquement),​ il est possible de demander la déconnexion automatique du tty et de ces consoles.
 +
 +Pour cela utiliser la variable **TMOUT** à positionner en secondes.
 +
 +Pour un user uniquement : 
 +Editer son **.bashrc** ou **.profile** et ajouter ​
 +
 +<code | download>​
 +# Export TMOUT
 +# Délai inactivité avant deconnexion
 +TMOUT=600
 +
 +</​code>​
 +Vous serez déconnecté automatiquement au bout de 10 minutes (si 300, 5 minutes... ).
 +
 +Très utile en cas de connexion **ssh** également, ça évite de laisse une connexion ouverte sur un serveur distant (surtout en root)....
 +
 +Afin que ce paramètre soit pris en compte de suite, recharger votre .bashrc
 +<code | download>​
 +source .bashrc
 +</​code>​
 +
 +Si vous voulez appliquer ce paramètre à tous vos users : apporter cette modification sur ce fichier ​
 +<code | download>​
 + sudo nano /​etc/​bash.bashrc
 +</​code> ​
 +
 +et 
 +<code | download>​
 +sudo source ​ /​etc/​bash.bashrc
 +</​code> ​
 +
php-bash/aide-memoire.1547719005.txt.gz · Dernière modification: 2019/07/17 19:24 (modification externe)