Utilisateur:Pierre Brial/Linux
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Tux.png/220px-Tux.png)
SYSTEME
modifierInfos
modifierinxi -Fxzd
Installation
modifierInstallation réseau sans support amovible
modifierVoir : Preparing Files for Hard Disk Booting
Récupérer dans [1] les fichiers suivants :
netboot/debian-installer/i386/initrd.gz netboot/debian-installer/i386/linux
et les copier dans /boot/newinstall/
Ajouter à /boot/grub/menu.lst :
title New Install root (hd0,0) kernel /boot/newinstall/linux initrd /boot/newinstall/initrd.gz
Boot
modifierGRUB 2
modifierGRUB 2 est un truc de geek.
Personnalisation
modifierLa personnalisation de GRUB 2 s'effectue par l'édition des fichiers de scripts situés dans /etc/grub.d
La prise en compte de ces paramètres s'effectue en lançant la commande suivante dans /boot/grub :
grub-mkconfig -o grub.cfg
Grub non visible
modifierAppuyer sur shift au démarrage.
Pour rendre permanent : en root, éditer /etc/default/grub :
GRUB_DEFAULT=0 #GRUB_TIMEOUT_STYLE=hidden GRUB_TIMEOUT_STYLE=menu GRUB_TIMEOUT=2 #GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_TERMINAL=console
Puis activer avec update-grub
failed to get canonical path of /cow
modifierPas-de-grub-au-demarrage-du-pc
Rechercher la partition où est installé linux avec os-prober et/ou lsblk -af
Par exemple /dev/sda5
Puis :
mkdir -p /tmp/newroot mount -t ext4 /dev/sda5 /tmp/newroot mount --bind /proc /tmp/newroot/proc mount --bind /dev /tmp/newroot/dev mount --bind /sys /tmp/newroot/sys chroot /tmp/newroot/ /usr/sbin/update-grub /usr/sbin/grub-install /dev/sda exit
Sysv update error
modifierTableau des codes pour le paramètre « vga »
modifierIl existe deux type de codes — décimaux ou hexadécimaux — qui peuvent l’un comme l’autre être passés au noyau via le paramètre « vga ». Dans le menu.lst de Grub, ce paramètre s'inscrit à la fin de la ligne kernel : kernel /boot/vmlinuz-2.6.18p3.01 root=/dev/hda1 ro
Voici le tableau des numéros à mettre dans « vga=xxx » en fonction de la résolution que vous désirez avoir :
Couleurs | 640x480 | 800x600 | 1024x768 | 1280x1024 |
---|---|---|---|---|
256 | 769 | 771 | 773 | 775 |
32768 | 784 | 787 | 790 | 793 |
65536 | 785 | 788 | 791 | 794 |
16.7 million | 786 | 789 | 792 | 795 |
Définition | Affichage 8 bits | Affichage 16 bits | Affichage 24 bits | |||||
---|---|---|---|---|---|---|---|---|
Taille | Nom | Ratio | décimal | hexa. | décimal | hexa. | décimal | hexa. |
640 × 480 | VGA | 1.33 | 769 | 0x301 | 785 | 0x311 | 786 | 0x312 |
800 × 600 | SVGA | 1.33 | 771 | 0x303 | 788 | 0x314 | 789 | 0x315 |
1024 × 768 | XGA | 1.33 | 773 | 0x305 | 791 | 0x317 | 792 | 0x318 |
1152 × 864 | XGA+ | 1.33 | 353 ? | 0x161 | 355 ? | 0x163 | 356 ? | 0x164 |
1280 × 960 | SXGA | 1.33 | ? | ? | ? | ? | ? | ? |
1400 × 1050 | SXGA+ | 1.33 | ? | ? | 834 | 0x342 | 835 | 0x343 |
1600 × 1200 | UXGA | 1.33 | 796 | 0x31c | 798 | 0x31e | 799 | 0x31f |
2048 × 1536 | QXGA | 1.33 | ? | ? | ? | ? | ? | ? |
3200 × 2400 | QUXGA | 1.33 | ? | ? | ? | ? | ? | ? |
1280 × 800 | WXGA | 1.60 | ? | ? | ? | ? | ? | ? |
1440 × 900 | WXGA+ | 1.60 | ? | ? | ? | ? | ? | ? |
1680 × 1050 | WSXGA+ | 1.60 | ? | ? | ? | ? | ? | ? |
1920 × 1200 | WUXGA | 1.60 | ? | ? | ? | ? | ? | ? |
1280 × 1024 | SXGA | 1.25 | 775 | 0x307 | 794 | 0x31a | 795 | 0x31b |
2560 × 2048 | QSXGA | 1.25 | ? | ? | ? | ? | ? | ? |
1280 × 720 | WXGA | 1.77 | ? | ? | ? | ? | ? | ? |
1600 × 1024 | WSXGA | 1.56 | ? | ? | ? | ? | ? | ? |
Le code 836 (0x344) semble être utilisé pour 32 bits.[3]
Logo après boot
modifier- copier en le renommant le dossier /usr/share/plymouth/themes/mint-logo
- remplacer le fichier logo.png par l'image souhaitée, en conservant le même nom
- remplacer le nom de thème dans les noms des fichiers .grub, .plymouth et .script
- corriger les informations nécessaires dans le fichier .plymouth
- verifier que le nouveau thème est bien reconnu en faisant : plymouth-set-default-theme -l
- sélectionner le nouveau thème avec la commande : plymouth-set-default-theme -R nouveau_theme
Lancement de programmes au démarrage
modifier- Au lancement de Linux :
fichier /etc/init.d/rcS. Exemple : inscrire dans le fichier setterm -foreground 2 -store fait passer la couleur de l'affichage en vert
- Au niveau des profils utilisateurs :
Communs : fichier /etc/profile ⇒ exemple : alias x='startx' Utilisateur : fichier /home/nom/.bashrc ⇒ exemple : mettre startx à la fin du fichier lance X automatiquement après la saisie du mot de passe
- Au lancement de X :
fichier ~/.xsession (n'a pas l'air de marcher sous gdm et xfce)
Voir aussi :
Running applications automatically when X starts
Administration
modifierInformation
modifierVoir les différents fichiers du répertoire /proc avec la commande cat. Par exemple cat cpuinfo donne des informations sur le microprocesseur.
Processus
modifier- Voir tous les processus en cours : ps aux
- Tuer un processus : kill numéro-de-processus (kill -9 pour forcer)
- Tuer un zombie [defunct process] : kill -SIGCHLD ppid (ppid est le numéro du processus parent : colonne PPID de ps -ef)
- Quel processus utilise un périphérique : lsof /dev/...
Commandes utiles
modifier- apt-get autoremove : supprime les paquets inutiles
- cd : sans argument, va au répertoire /home/user
- chmod : changer les droits :
- r : 4 ; w : 2 ; x : 1.
- des fichiers seulements : find dossier/ -name "*" -type f -exec chmod 644 -v {} \;
- Chronometrer une commande :
- t0=`date +%s`;sleep 5;echo $((`date +%s`-t0))
- time sleep 5 (sortie 'real')
- crunch 1 2 : génère une liste de mot de 1 à 2 lettres (ici de a à zz)
- df -h : Capacité et occupation des partitions
- dmidecode : informations détaillées sur la carte mère (voir aussi lshw et inxi)
- dpkg-reconfigure tzdata : Changer de fuseau horaire
- find
- find -name "*expression*" : cherche le fichier dont le nom contient « expression » dans le répertoire courant et ses sous-répertoires (-iname pour ignorer la casse)
- find /home/pi/Documents/topo/ -name "*.txt" -size 0 -delete : détruit les fichiers *.txt de taille nulle dans le répertoire /home/pi/Documents/topo/
- find /dossier_source -type f -name "*expression*" -exec mv -v {} /dossier_destination \; : regroupe les fichiers de plusieurs répertoires dans un seul répertoire (voir aussi shopt)
- find /repertoire/ -name "*" -type f -printf "%TY:%Tm:%Td %TH:%TM - %p\n"|sort|tail -1 : recherche le fichier le plus récent dans un répertoire et ses sous répertoires
- find -name "*.jpg" -size -6000c -delete : détruit tous les fichier *.jpg faisant moins de 6000 octet dans le répertoire courant et ses sous-répertoires.
- IFS=$'\n';ls -lh $(find -size +50M) : liste détaillée des fichiers de plus de 50Mib.
- find . -type d -empty -delete : supprimer tous les répertoires et sous répertoires vides.
- find . -type f -newermt 2017-09-24 ! -newermt 2017-09-25 : trouver les fichiers modifiés le 24/09/2017.
- for f in $(cat /tmp/Dossiers-G.txt);do echo $f;find -type d -name "*$f*" -exec cp -rv {} /tmp/STJ/ \; ; done : rechercher des dossiers dont la liste est dans un fichier, et les copier.
- grep expression ./* : cherche « expression » dans les fichiers du répertoire courant
- grep -R expression ./* : cherche « expression » dans les fichiers du répertoire courant et ses sous-répertoires
- host : recherche dns. Utilisation : host adresse_ip ou host nom_de_domaine
- ifup ethx, ifdown ethx
- inxi : informations détaillées sur le système (voir aussi lshw et dmidecode)
- isoinfo -l -i fichier : liste (-l) le contenu d'un fichier iso
- less : visualiser un fichier comme man
- ln -s fichier lien : crée un lien symbolique nommé "lien" vers "fichier", qui peut être un fichier, un répertoire, ou une commande
- loadkeys fr : passage au clavier francais (faire en root)
- ls|wc -l : compte le nombre de fichiers du répertoire courant
- lsblk : liste des partitions avec arboresence (utile pour formatage)
- lsof : liste les fichiers ouverts
- md5sum :
- comparaison : echo $[0x`md5sum fichier1|cut -f 1 -d " "`-0x`md5sum fichier2|cut -f 1 -d " "`]
- contrôle : echo "06ae51a79afb8cf71ebc21e78fb630b0 linuxmint.iso"|md5sum -c (deux espaces avant le nom du fichier)
- mount -o loop monimage.iso /mnt/iso : monter une image iso
- mount -t iso9660 monimage.iso /mnt/iso : monter une image iso
- rename -f 'y/A-Z/a-z/' * : renomme tous les fichiers du répertoire courant en minuscule
- rsync -a --info=flist,name,progress --delete-after /source /destination/
- for f in *.png;do p1=`echo $f|cut -d '-' -f 1`;p2=`echo $f|cut -d '-' -f 2|cut -d '.' -f '1'`;p2=`printf "%03d" $p2`;mv -v $f $p1"-"$p2".png";done : renome les pattern *-1.png en *-001.png
- screen : divise un écran de console en plusieurs fenêtres
- shopt -s globstar; mv -t /destination /source/**/*expression* : regroupe les fichiers de plusieurs répertoires dans un seul répertoire (voir aussi find)
- sort -t '{' -k 2 fichier.txt : trier suivant la 2ème colonne séparée par le délimiteur '{'
- stat -c "%s" fichier : affiche la taille du fichier
- tar -cvjf toto.tar.bz2 toto/ : Crée (c) l'archive toto.tar.bz2 et y comprime en bz2 (j) le contenu (f=file) du répertoire toto ('v' pour verbose). LENT : utiliser plutôt bzip2 -kz fichier
- tar -xvjf toto.tar.bz2 : extrait (x) le contenu de l'archive toto.tar.bz2
- xxd : converti un fichier en sa représentation hexadécimale
- zenity : ouvrir un dialogue sur l'interface graphique de l'ordinateur distant : export DISPLAY=:0.0;zenity --error --text "Pokemon c'est que du baston"
Arrêt du système
modifierGnome
modifierLe menu arréter d'Ubuntu s'apelle avec la commande : gnome-session-save --kill
Elle se paramètre avec gconf, clés dans gnome-session\options
Xfce
modifierPour activer les boutons éteindre et redémarrer pour un utilisateur normal : Installer le paquet sudo. Dans le fichier /etc/sudoers ajouter :
monlogin ALL=NOPASSWD:/usr/sbin/xfsm-shutdown-helper
Capteurs
modifierAffichage de la température en gros caractères :
while true;do clear echo;sensors|grep Pack|cut -f 5 -d " "|figlet -C utf8 -W -f mono12 sleep 2 done
Gestion des droits
modifierfacl : Gestion fine des droits
modifiersetfacl -m u:utilisateur:r fichier
Fix for chroot not getting supplemental groups :
"You can use file acls to grant users and groups permissions to do things outside of the standard chmod/chown/chgrp stuff. This is your most likely workaround."
Sudoers
modifierL'attribution d'un NOPASSWD à une commande dans sudoers n'a aucun effet. La raison en est la suivante :
Le fichiers /etc/sudoers est lu en une seule fois par le système, donc l'ordre des lignes a une importance. Quand on met la commande sous # User privilege specification, elle est "écrasée" par la commande %admin ALL=(ALL) ALL, qui va donc donner les droits d'utiliser sudo pour n'importe quelle commande, mais avec le mot de passe. Pour régler ça, il faut mettre la ligne user ALL=NOPASSWD: commande à la fin du fichier, ou au moins après la ligne %admin.
Policykit
modifierGère les droits sur certaines actions (monter les clés USB, shutdown, etc...)
Les fichiers sont sous /usr/share/polkit-1/actions
En cas de problème de droits pour ces actions, on peut mettre "yes" à allow_inactive et allow_any
cf Policykit
Installation de programmes
modifierListe des paquets présents
modifierdpkg-query -W -f '${Package}:${Status}\n' *motif*
Créer un dépot local
modifier# aptitude install dpkg-dev # mkdir /usr/local/debian # mv /some/where/package.deb /usr/local/debian # cd /usr/local/debian # dpkg-scanpackages . /dev/null | gzip > Packages.gz # echo "deb file:/usr/local/debian ./" >> /etc/apt/sources.list
Télécharger des paquets
modifierPour télécharger des paquets sans les installer, même s'ils sont déjà présents :
apt-get install -d --reinstall
Les paquets sont copiés dans /var/cache/apt/archives
Temps
modifierPour indiquer à Linux si l’horloge du matériel est réglée en UTC ou en local, éditer le fichier /etc/default/rcS : UTC=yes indique que l’horloge matérielle est en heure locale.
Au démarrage de votre ordinateur vous obtenez le message suivant : select() to /dev/rtc to wait for clock tick timed out
Voici le résultat que j'obtiens lorsque j'exécute la commande /etc/init.d/hwclockfirst.sh start Cette commande s'exécute également au démarrage de l'ordinateur
# /etc/init.d/hwclockfirst.sh start Setting the system clock. select() to /dev/rtc to wait for clock tick timed out * Unable to set System Clock to: lundi 26 novembre 2007, 16:07:43 (UTC+0100) #
Voici une solution, peut-être pas la solution parfaite mais en tout cas elle fonctionne sous Debian Lenny.
Editez le fichier /etc/modprobe.d/pnp-hotplug
Remplacer la ligne :
- alias pnp:dPNP0b00 rtc
par
- alias pnp:dPNP0b00 genrtc
Au prochain redémarrage, le message d'erreur disparait et l'horloge système est mise à jour
Gestion d'Energie
modifierConsole
modifierDésactiver la mise en veille de l'écran en console :
setterm -powersave off
et si ça ne marche pas :
setterm -blank 0 -powersave off -powerdown 0
X11
modifierpour désactiver la veille :
xset [-display :0 s on] -dpms
pour réactiver la veille :
xset [-display :0 s on] +dpms
Voir aussi Option "DPMS" "off" dans xorg.conf
Supports de Stockage
modifierAnalyse de disques
modifierSmartmontools : http://doc.ubuntu-fr.org/smartmontools
Vitesse :
sudo hdparm -t --direct /dev/sda
Clonage
modifierdd if=/dev/sda of=/dev/sdc bs=64K conv=noerror,sync status=progress
https://wiki.archlinux.org/index.php/disk_cloning
Pour tronquer les images de disque :
Disques virtuels
modifierCréer un disque virtuel en mémoire vive :
mkdir /tmp/ramdisk0 mount -t tmpfs -o size=1m tmpfs /tmp/ramdisk0/
Différence entre tmpfs et ramfs
Sauvegarde analogique
modifierPermet d'enregistrer des données sur cassette audio.
Émission
modifiercat fichier | minimodem -t 300
- En cas de crachottement utiliser l'option -A (alsa au lieu de pulseaudio) ou passer par un fichier wav (-f fichier)
- ajuster les niveaux pour éviter la saturation, tant en émission qu'en réception.
Réception
modifierminimodem -r 300 >> fichier
- En cas de parasites ajuster le squelch avec -c valeur (défaut 1.5)
- L'option -A (alsa) peut également améliorer la réception avec certaines cartes sons.
Récupération
modifiertestdisk & photorec
modifierProgramme testdisk et photorec en root.
Tri des fichiers après photorec :
- Recherche odt par date :
for f in `find -name *.odt*|grep recup_`;do ls -go --time-style=+%F_%H:%M:%S $f|grep 2015-04-29;done for f in `find -name *.odt*|grep recup_`;do g=`ls -go --time-style=+%F_%H:%M:%S $f|grep 2015-04-29|cut -d ' ' -f 5`;cp $g ~/rescue/;done
- Recherche par extension et copie
for f in `find -name *.xcf`;do cp -v $f /home/harlock/Documents/sos/rescue/xcf/;done e=pdf;mkdir $e;for f in `find -name *.$e`;do mv -v $f $e/;done; ls -l $e/|wc -l
extundelete
modifierextundelete sur ext3/ext4 partitions.
Forcer la vérification d'un disque
modifiere2fsck -f -C 0 /dev/sdb6
Options :
- -f force la vérification même si le système semble propre
- -C 0 affiche une barre de progression
- -c -c effectue un test de lecture-ecriture non destructif et marque les blocs défectueux.
Vérification d'un disque DOS
modifierdosfsck -rtvV /dev/sdc1
Vérification basique d'un disque NTFS
modifierntfsfix /dev/sdc1
Fréquence de vérification du disque dur (Maximum mount count)
modifierPasser à 50 démarrage la fréquence de vérification de hdd1 par fsck :
tune2fs -c 50 /dev/hdd1
Vérification :
tune2fs -l /dev/hdd1
Formatages
modifierFormatage complet ext4
modifiermke2fs -t ext4 -L Archives -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdb1
Voir : My Newly Formatted (‘Ext4’) External Hard Disk is Busy, Even at Idle
Durée pour un disque neuf d'1 To : 7mn 7s
Formatage d'une clé USB en VFAT avec cfdisk
modifierAvec cfdisk, choisir type C. puis :
mkfs.vfat /dev/sdx1
cf
- http://www.win.tue.nl/~aeb/partitions/partition_types-1.html
- https://doc.ubuntu-fr.org/tutoriel/comment_reparer_clef_usb
EXFAT
modifierhttps://linuxfr.org/news/des-systemes-de-fichiers-pour-peripherique-amovible#comment-1854291
sudo mkexfatfs -n ToshibaBoucan /dev/sdb
UDF
modifierhttps://forum.ubuntu-fr.org/viewtopic.php?id=1131391
sudo mkudffs --media-type=hd -l="label" -b 512 /dev/sdc
Formater une disquette DOS
modifierFormatage de bas niveau avec vérification, suivi de la création d'une partition DOS :
fdformat /dev/fd0 mkdosfs -cv /dev/fd0
Pour les lecteurs USB, utiliser ufiformat
Détection de Clé USB (noyau 2.6.8)
modifierSi la détection de la clé USB ne marche plus :
- Réinstaller hotplug
et si ça ne marche toujours pas
- Charger les modules suivant, et copier les dans /etc/modules :
scsi_mod, usb-storage, sg, sd_mod
Montage automatique sous Xfce
modifier- Installer le paquet ivman et ses dépendances
- Mettre un lien vers ivman dans ~/.config/autostart
- Désactiver le lancement automatique de ivman au boot à l'aide de sysv-rc-conf (décocher la case ivman dans la colonne n°2)
Shell Bash
modifierHistorique
modifierPour augmenter la taille de l'historique, changer la variable HISTFILESIZE dans .bashrc (ou .bash_profile).
https://fre.applersg.com/change-length-bash-command-history
https://stackoverflow.com/questions/19454837/bash-histsize-vs-histfilesize
Les Parenthèses
modifierhttps://stackoverflow.com/questions/6270440/simple-logical-operators-in-bash
Expressions rationelles
modifiertravailler-avec-des-expressions-rationnelles
HTML : sed -E 's/<tag(.*)\/tag>//g'
locate --regex "/home/omt/omt/2.*\/[0-9]{3}-[0-9]{5}.pdf$"
Code de retour d'une commande
modifier$?
Repertoire du script
modifierdirname $0
Fichier entré en argument
modifier$1 dirname $1 basename $1
Figlet
modifierPermet l'affichage en gros caractères. Liste des polices disponibles :
for f in /usr/share/figlet/*.*lf;do n=$(basename $f);echo $n;figlet -W -f $n 120;done
Manipulation de texte
modifierDécouper un fichier
modifierExemple d'une vcard :
gawk ' /BEGIN:VCARD/ { ++a; fn=sprintf("card_%02d.vcf", a); print "Writing: ", fn } { print $0 >> fn; } ' example.vcf Writing: card_01.vcf Writing: card_02.vcf Writing: card_03.vcf Writing: card_04.vcf
http://unix.stackexchange.com/questions/76929/how-to-split-a-file-by-using-keyword-boundaries
Echanger des colonnes
modifierSéparateur ESPACE :
awk '{print $2,$1,$3}' A.xyz
Séparateur virgule :
awk -F, '{print $2,$1,$3}' OFS=, A.xyz
grep
modifier- grep avec deux motifs (motif 1 ou motif 2) : grep -E 'motif1|motif2'
- supprimer les lignes vides ou avec espace : grep "\S"
- vide et sans espace : grep .
Redirections
modifier- Copier la sortie standard vers un fichier : echo toto | tee fichier
- Rediriger la sortie et l'erreur standard vers un fichier : ajouter en fin de ligne :
&>fichier
- Ne pas afficher les messages d'erreur : ajouter en fin de ligne :
2>/dev/null
Rechercher et remplacer
modifiersed -i '78,$ s/a_rechercher/a_remplacer/g' fichier
Dans fichier, remplacer a_rechercher par a_remplacer à partir de la ligne 78
- -i : attend un fichier
- 78,$ : de la ligne 78 jusqu'à la fin du fichier
- s : substituer
- g : global (remplacer toutes les occurences de la ligne)
Remplace les | par des espaces et supprime les espaces de début :
sed 's/|/ /g ; s/^ *//g'
Remplace les caractères accolés '-' par un seul '-' :
sed 's/--*/-/g'
Rechercher et remplacer dans plusieurs fichiers
grep -rl 'windows' ./ | xargs sed -i 's/windows/linux/g'
Remplacer '*N' par ' N' où * est n'importe quel caractère de '!' à '@' ou 'a' à '}' :
perl -i -p -e 's/([!-@,a-}])N/\1 /' fichier
Raccourcis clavier
modifier- C-c : interromps une commande
- C-z : suspend une commande
- fg : reprend une commande
Edition de la ligne de commande
modifier- C-u : efface du curseur au début de ligne
- C-k : efface du curseur à la fin de la ligne
- C-t : transpose le caractère sous le curseur et le caractère précédent
- C-a : va au début de ligne
- C-e : va à la fin de la ligne
- C-l : clear screen
Séquences
modifier- De chaînes numériques :
for i in {000..009}
- De nombres :
for in in `seq 1 10`
Séparateur de liste
modifierLe séparateur de liste est la variable IFS (Internal Field Separator). Par défaut, cette valeur est réglée sur newline, tab et space. Si l'on veut lire le contenu d'un fichier avec "for i in $(< fichier)", i prendra toutes les valeurs séparées par un espace, une tabulation, ou une nouvelle ligne. Afin de pouvoir affecter à i des lignes entières, il faut régler l'IFS sur newline uniquement, en faisant IFS=$'\n'. Il est à noter que IFS peut prendre n'importe quelle valeur. Par exemple, si l'on pose IFS = azert , les lettres a,z,e,r,t seront individuellement utilisées comme séparateurs de liste.
Substitution de commande
modifier`commande`
ou $(commande)
. La seconde version permet l'imbrication.
Taille d'un fichier
modifierstat -c %s fichier
Test sur les chaînes
modifierL'égalité entre une variable et une chaines peut être testée des deux façons suivantes :
if [ "$i" = az ] if test "$i" = az
Ne pas oublier les espaces de part et d'autre de '[' et '=' et devant ']'
Pour tester si une variable contient quelque chose :
if [ -n "$var_pleine" ]; then echo OK;fi
Pour tester si une variable est vide :
if [ -z "$var_vide" ]; then echo OK;fi
Test sur les entiers
modifierif ((10<20)) if ((10==20)) >= <= A=1;if ((A==1));then echo TRUE;fi
ou
A=0;if ((A));then echo TRUE;else echo FALSE;fi
Test avec grep
modifierTeste le type d'un fichier :
if file fichier|grep nature>/dev/null; then echo OK;else echo BAD;fi
Teste un montage :
if ((`mount|grep -c sostopo`));then echo "Monté";else echo "Pas monté";fi
Opérations
modifierSoustraction :
echo $[7-6] echo $[0xa-6]
Voir aussi :
a-bashism-week-maths
echo
modifierSéquences d'échappement
modifierExemple d'utilisation d'une séquence d'échappement à l'intérieur d'une chaîne :
$ echo toto toto $ echo to\nto tonto $ echo to\\nto to\nto $ echo to'\n'to to\nto $ echo to$'\n'to to to $ echo to$\nto to$nto $ echo to$'\t'to to to
Retour chariot
modifierHorloge :
while true;do echo -n -e " "`date +%T`'\r';sleep 1;done
Compteur binaire :
for i in `seq 0 20`;do x=`echo "obase=2;$i" | bc`; printf ' %8s\r' $x;sleep 1;done
Aides
modifier- Pages de manuel joliement présentées : Alt+F2 pour appeler une ligne de commande, puis man:commande pour avoir la page de commande
- apropos mot : affiche la liste des pages de manuel contenant mot
- Perte de l'aide dans Gnome : réinstaller yelp
Compilation de nouveaux modules
modifier* Installer le paquet linux-source-2.6.x : celui-ci est copié dans /usr/src sous forme de fichier compressé * # cd /usr/src * # tar xvjf linux-source-2.6.x.tar.bz2 : création du répertoire linux-source-2.6.x, contenant les sources * cd linux-source-2.6.x * make menuconfig : choisir les modules en les marquant par <M> * make modules * make modules_install
Outils de compilation : apt-get install gcc libc6-dev
Clavier
modifierNumlock en console
modifierTo activate NumLock during normal bootup in TTY (Teletype) consoles 1-6 (tty1 -> tty6) add the following line to /etc/rc.local :
for tty in /dev/tty?; do /usr/bin/setleds -D +num < "$tty"; done
If the NumLock LED is on but the number pad still works as an arrow keypad it may be because of a conflict between setleds and Xserver. Limit the 'for' command only to the consoles you have set on /etc/inittab :
for tty in /dev/tty{1..6}; do ...
Préferer le point comme séparateur décimal :
modifierDans le fichier ~/.profile mettre :
export LC_NUMERIC=C
Pour modifier l'agencement du clavier en console :
modifierdpkg-reconfigure console-data
changer l'affectation des touches
modifier- Mettre les signes < et > sur la touche windows :
xmodmap -e "keycode 133 = less greater"
- Mettre un tilde mort sur la touche ² :
xmodmap -e "keycode 49 = twosuperior dead_tilde twosuperior asciitilde notsign notsign notsign notsign twosuperior asciitilde notsign notsign twosuperior asciitilde notsign notsign"
Il est possible de mettre les expressions dans un fichier, et le lancer par xmodmap fichier.
Corriger problème de répétition abusive des touches
modifierINTERFACE GRAPHIQUE
modifierGestionnaire de fenêtres par défaut
modifierDans la distribution Debian 2.0, celui-ci était déterminé par le fichier /etc/X11/window-managers: il contenait une liste de gestionnaires disponibles4.1 qui était parcourue dans l'ordre jusqu'au premier qui démarrait.
Depuis la version 2.2, Debian est revenue à une méthode de sélection plus traditionnelle : s'il existe, le fichier .xinitrc exécute le gestionnaire désiré, sinon xinit se sert de la redirection de /etc/alternative/x-window-manager. Exemples :
- kde : startkde
- xfce4 : xfwm4
Tout ceci est remis en question si vous utilisez xdm ou un équivalent (wdm, kdm) pour afficher au démarrage une invite de connexion graphique: dans le cas de xdm et aussi de wdm, c'est le fichier .xsession qui est exécuté (si vous choisissez le gestionnaire de fenêtre dit «par défaut»). Une astuce simple consiste à faire:
$ ln -s ~/.xinitrc ~/.xsession
Source : [4]
Fichiers de configuration
modifierxinitrc : contient les commandes shell exécutées au démarrage d'une session X.
Drivers
modifierRage IIC | 8 Mo | ati |
---|---|---|
Rage 128 pro | 32 Mo | r128 |
SIS6236 | 8 Mo | sis |
Informations sur les fenêtres en console
modifierMultiplication des fichiers .serverauth
modifierAu lancement de X, le système crée dans le répertoire utilisateur des fichiers .serverauth.* dont l'utilité m'est inconnue, et qui ne sont pas toujours effacés ensuite. Ceci provoque une accumulation de ces fichiers. Afin de remédier à ce problème, il faut éditer le fichier /usr/bin/startx, et trouver la ligne :
xserverauthfile=$HOME/.serverauth.$$
La commenter (#) et la remplacer par :
xserverauthfile=$XAUTHORITY
Raccourcis clavier
modifierAlt-home ouvre le dossier personnel
Menu Xfce4
modifierPour éditer le menu Xfce4, créer des fichiers desktop pour chaque nouvelle entrée dans /usr/share/applications/
Ecrans
modifierGestion des écrans avec xfconf-query
Linux Mint
modifierNumlock led clignotante
modifierContournement du problème : supprimer ou renommer le fichier /usr/lib/mate-settings-daemon/keyboard.mate-settings-plugin
Logo au démarrage
modifierVoir Utilisateur:Pierre_Brial/Linux#Boot
Mate : bordure de fenêtre rouge
modifierÉditer /usr/share/themes/Mint-X/gtk-3.0/gtk-widgets.css :
.solid-csd decoration { margin: 0; padding: 4px; background-color: @border; border: 1px solid @border; border-radius: 0; box-shadow: inset 0 0 0 3px red; }
cf https://www.reddit.com/r/linuxmint/comments/huznvq/thick_red_border_outline_around_some_apps_with/
Mate-settings-daemon : fuite de mémoire
modifierVoir mate-memory-leak
Visionneurs d'images qui plantent avec de grosses images
modifierVoir Eye of Gnome crashes :
If Eye of Gnome is crashing when attempting to load large images (think 10MB and up), you can typically fix it by modifying the kernel SHM (shared memory) settings – in this case upping the max shared memory to 512MB thus:
Try adding the following to /etc/sysctl.conf and run ‘sysctl -p’ or reboot:
kernel.shmmax=536870912
IMPRESSION
modifierConfiguration en ligne de Commande
modifierUtilitaires de ligne de commande CUPS
- lpstat -a : liste des imprimantes
- lpr -P HP_Deskjet_6500 -o page-ranges=1 rapport.pdf : imprime la page 1 d'un document.
Gros fichiers
modifierPour éviter le blocage de cups pour une impression de gros fichiers pour une imprimante donnée, il faut ajouter le paramètre mx#0 dans le fichier /etc/printcap :
SHARP_AR-M236|SHARP AR-M236:rm=vaio:rp=SHARP_AR-M236:mx#0:
Puis redémarrer Cups.
POLICES
modifierProblème d’accents circonflexe et tréma sous Openoffice
modifierDans le fichier /etc/X11/xorg.conf, et dans la section InputDevice concernant le clavier, commenter (#) ou supprimer l’option "XkbVariant" "latin9"
Utilisation de polices TTF par les programmes X11
modifierDans le fichier /etc/X11/xorg.conf, dans la section "Module", indiquer "freetype", et dans la section "Files", indiquer le chemin contenant les polices. Par exemple :
Section "Files" FontPath "/home/utilisateur/.fonts" EndSection
Si le fichier xorg.conf n'existe pas, il peut être crée pour ce seul usage.
Dans le répertoire contenant les polices, faire :
$ mkfontscale ;mkfontdir ;fc-cache -fv;xset fp rehash
Supprimer le lissage des polices dans Firefox
modifiercf http://forum.ubuntu-fr.org/viewtopic.php?id=352294
Dans une console
modifierPolice par défaut :
cat /etc/default/console-setup
Liste des polices :
ls /usr/share/consolefonts
Changer de police :
setfont Lat15-Terminus24x12
RESEAU
modifierTransmission analogique
modifierPermet d'enregistrer des données sur cassette audio.
Émission
modifiercat fichier | minimodem -t 300
- En cas de crachottement utiliser l'option -A (alsa au lieu de pulseaudio) ou passer par un fichier wav (-f fichier)
- ajuster les niveaux pour éviter la saturation, tant en émission qu'en réception.
Réception
modifierminimodem -r 300 >> fichier
- En cas de parasites ajuster le squelch avec -c valeur (défaut 1.5)
- L'option -A (alsa) peut également améliorer la réception avec certaines cartes sons.
Netcat et Serial comm
modifierMoyen de communication primitif :
Sur l'ordinateur 192.168.0.5 :
nc -lvp 6500
écoute (-l) ce qui arrive sur le port (-p) 6500. -v pour verbose.
Sur l'autre ordinateur :
nc -v 192.168.0.5 6500
Si cela ne fonctionne pas, ouvrir le port correspondant sur le premier ordinateur. En root :
iptables -A INPUT -p tcp --dport 6500 -j ACCEPT
Envoi ligne par ligne :
echo "TOTO" | nc -N 192.168.1.50 6500 # Émetteur nc -lkp 6500 # Récepteur
Ecoute UDP :
nc -lvu 127.0.0.1 10110
Pour rediriger un port série vers une connection tcp, sur l'ordinateur émetteur, faire :
ncat -lv 6500 > /dev/ttyUBLOX < /dev/ttyUBLOX
ou ?
mkfifo tampon_fifo; nc -lvp 6500 <tampon_fifo | plink -serial /dev/ttyUSB0 -sercfg 4800,8,n,1,n >tampon_fifo &
Et sur le récepteur :
nc -v 192.168.0.5 6500
Pour afficher sur la console et émettre en même temps, faire :
mkfifo tampon_fifo; nc -lvp 6500 <tampon_fifo | plink -serial /dev/ttyUSB0 -sercfg 300,8,n,1,n | tee tampon_fifo &
Utilisation du port série
modifier- Ouverture : stty -F /dev/ttyUSB0 1200
- Lecture : cat /dev/ttyUSB0
- Redirection : cat /dev/ttyUSB0 > /dev/ttyUSB1
- Redirection et affichage : cat /dev/ttyUSB0 | tee /dev/ttyUSB1
Port série virtuel
modifiersudo socat PTY,link=/dev/ttyS10,group=dialout,b9600 PTY,link=/dev/ttyACM0,group=dialout,b9600,mode=666
Ce qui est envoyé dans ttyS10 ressort de ttyACM0.
UDP vers port série virtuel :
sudo socat -d -d UDP-LISTEN:5500 pty,link=/dev/ttyS0,raw,echo=0,b4800
TCP vers port série virtuel :
sudo socat -d -d tcp:localhost:7777 pty,link=/dev/ttyvcom,mode=666,group=dialout,raw,echo=0,b4800
Sortie d'un script vers port série virtuel :
sudo socat EXEC:./read PTY,link=/dev/ttyS10,group=dialout,b9600
Se connecter à distance
modifier- Sur le serveur : sshd
- Sur le client, dans la barre d'adresse : sftp://adresse_ip_du_serveur
Bluetooth
modifierTransfert de fichiers via Obex
modifierRecherche de GSM bluetooth :
hcitool scan
Liste des services :
sdptool browse adresse
Vérifier l'existence d'un service OBEXFileTransfer Listing de la racine :
obexftp -b adresse -c / -l
Récupérer un fichier :
obexftp -b adresse -c /répertoire -g fichier
Envoyer un fichier :
obexftp -b adresse -c /répertoire -p fichier
Utiliser d'un ancien GSM comme modem bluetooth
modifierConfiguration : voir fichier /etc/bluetooth/hcid.conf Clé de liaison : /etc/bluetooth/pin
Configuration d'une connection internet via un téléphone portable bluetooth :
L'objectif est d'accéder à internet avec un ordinateur portable Sony Vaio VGN-TX2HP, en utilisant comme modem un téléphone portable Sony Ericsson T630, via une liaison bluetooth. Le réseau est SFR GPRS sur l'île de la Réunion.
- Paquetages installés :
gnome-bluetooth - GNOME Bluetooth tools. grml-btnet - Programs to quickly build a bluetooth network obexftp - file transfer utility for devices that use the OBEX protocol obexserver - Receive files with OBEX protocol python2.4-libbtctl - Python bindings for libbtctl Bluetooth library bluez-pcmcia-support - PCMCIA support files for BlueZ 2.0 Bluetooth tools bluez-pin - Bluetooth PIN helper with D-BUS support bluez-utils - Bluetooth tools and daemons libbluetooth1 - Library to use the BlueZ Linux Bluetooth stack libbtctl2 - GObject Bluetooth library libgnomebt0 - GNOME Bluetooth library gnome-ppp - modem internet connection tool for GNOME
Ces programmes ne sont peut-être pas tous indispensables pour ce que je souhaite faire, mais c'est ce qui est actuellement installé sur mon poste, et comme ça marche, je ne touche plus à rien :-)
- Rechercher le code pin de l'ordinateur (en général c'est 1234) :
$ sudo cat /etc/bluetooth/pin Password: ***** 1234
S’il n’y a pas de fichier pin : Editer /etc/bluetooth/hcid.conf : security auto Relancer bluetooth : /etc/init.d/bluetooth restart
- Apparier le téléphone et le PC à partir du téléphone.
- Rechercher l'adresse bluetooth du téléphone sur le PC :
$ hcitool scan Scanning ... 00:0E:07:30:6B:78 T630
- sdptool donne la liste des services d'un périphérique bluetooth donné. Rechercher dans la liste qui apparaît le service "Dial-up Networking" :
$ sdptool browse 00:0e:07:30:6b:78 Browsing 00:0E:07:30:6B:78 ... Service Name: Dial-up Networking Service RecHandle: 0x10000 Service Class ID List: "Dialup Networking" (0x1103) "Generic Networking" (0x1201) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 1 Profile Descriptor List: "Dialup Networking" (0x1103) Version: 0x0100
Noter le canal (ici 1)
- Créer un périphérique correspondant au téléphone avec rfcomm :
La syntaxe est : connect <n°périph. à créer> [addresse du périph.bluetooth] [canal]
$ rfcomm connect 0 00:0E:07:30:6B:78 1 Connected /dev/rfcomm0 to 00:0E:07:30:6B:78 on channel 1 Press CTRL-C for hangup
En cas d'erreur, remplacer rfcomm connect 0 par rfcomm connect 1. rfcomm crée le périphérique /dev/rfcomm0 (ou 1), qui devra être mentionné dans la configuration du modem.
- Dans /etc/ppp/options, désactiver lcp-echo-interval et lcp-echo-failure en ajoutant un # en début de ligne. Sinon, la connection risque d'être instable.
# If this option is given, pppd will send an LCP echo-request frame to the # peer every n seconds. Normally the peer should respond to the echo-request # by sending an echo-reply. This option can be used with the # lcp-echo-failure option to detect that the peer is no longer connected. #lcp-echo-interval 30 # If this option is given, pppd will presume the peer to be dead if n # LCP echo-requests are sent without receiving a valid LCP echo-reply. # If this happens, pppd will terminate the connection. Use of this # option requires a non-zero value for the lcp-echo-interval parameter. # This option can be used to enable pppd to terminate after the physical # connection has been broken (e.g., the modem has hung up) in # situations where no hardware modem control lines are available. #lcp-echo-failure 4
- Configuration de gnome-ppp :
Voir avec l'opérateur mobile pour les identifiants et numéro de téléphone. Pour une connection GPRS, les chaines d'initialisation peuvent être supprimées. La connection sera plus rapide.
Problèmes avec gvfs-fuse
modifierSi le répertoire ~/.gvfs reste vide, vérifier que le paquet gvfs-fuse est installé, et s'ajouter au groupe fuse.
Monter une partition SSH
modifierLe paquet sshfs doit être installé sur le poste client.
mount -t fuse sshfs#toto@192.168.1.10:repertoire_sous_toto /mnt/toto
Voir aussi la page SSHFS.
Samba
modifierDifficultés pour parcourir le réseau
modifierAs for connecting by host name, This is a long shot but it fits a patterns with wireless so you might want to give it a shot:
Edit /etc/samba/smb.conf as root and add the following line to the [global] section:
name resolve order = bcast host lmhosts wins
cf http://forums.linuxmint.com/viewtopic.php?f=110&t=75853
En ligne de commande
modifiercf http://forum.ubuntu-fr.org/viewtopic.php?id=330475
Monter une partition Samba
modifierEn théorie :
mount -t smbfs //nom_du_domaine/nom_de_l_ordinateur /mnt/point_de_montage \ -ousername=utilisateur_distant,password=mot_de_passe,uid=utilisateur_linux,gid=groupe_linux
avec : . username : nom de l'utilisateur du poste distant . password : son mot de passe . uid : nom de l'utilisateur linux auquel on désire affecter la partition . gid : nom du groupe linux auquel on désire affecter la partition
Dans mon fstab :
//PIII/C /mnt/audrey smbfs rw,user,auto,password=NULL,fmask=777,dmask=777 0 0
avec : . rw (read-write) : montage en lecture-écriture . user : tous les ustilisateurs peuvent monter la partition (mais voir ci-dessous*) . auto : montage automatique au boot . password : mot de passe de l'utilisateur du poste distant . fmask (file mask) : droits sur les fichiers montés . dmask (directory mask) : droits sur les répertoires montés . 0 : pas de sauvegarde à l'appel de dump (?) . 0 : pas de contrôle avec fsck
- Si on obtient le message d'erreur suivant avec smbmount ou smbumount :
"smbmnt must be installed suid root for direct user mounts"
Alors il faut faire :
chmod 4755 /usr/bin/smbmnt
Cela revient à activer l'option "Executer avec l'ID propr." dans la fonction chmod de mc. La valeur octale des permissions de ces fichiers passe alors de 100755 à 104755.
Veillez aussi à ce que le point de montage appartienne à l’utilisateur.
Résolution de nom
modifier- local name -> IP : ping
Jabber
modifierConfiguration du serveur
modifierAprès une nouvelle installation du serveur, éditer le fichier /etc/jabber/jabber.xml, et repérer la ligne :
<host><jabberd:cmdline flag="h">localhost</jabberd:cmdline></host>
et remplacer localhost par l'adresse du serveur, par exemple :
<host><jabberd:cmdline flag="h">192.168.0.5</jabberd:cmdline></host>
Modifier le fichier /etc/default/jabberd14 en commentant PARAMS :
#PARAMS="-h $HOSTNAME -s $SPOOL"
Puis redémarrer le serveur pour que la modification soit prise en compte :
dpkg-reconfigure jabberd14
WIFI
modifierRecherche de réseau :
iwlist eth1 scan
Connexion en ligne de commande (WEP uniquement ! ) :
- ifconfig wlan0 up
- iwlist wlan0 scan
- iwconfig wlan0 essid essid key s:key
- dhcpcd wlan0
Sécurité
modifier- lsof -i : liste les fichiers ouverts par des connections réseaux de type IP
- nmap -A adresse_ip : scanne les ports sur l'adresse ip indiquée
- nmap -sn 192.168.0.0/24 : liste les ordinateurs connectés sur le sous réseau 192.168.0.x (utiliser en root ! voir arp-scan)
- arp-scan 192.168.1.0/24 : liste les ordinateurs connectés sur le même réseau (utiliser en root). La commande
get-oui;get-iab
permet d'actualiser la liste des vendeurs, en cas de problème dans l'identification des machines - tcpdump -i eth0 : affiche les trames passant devant la carte eth0
- netstat -taupe : indique l'état des connexions réseau en cours
Connection via Internet
modifier- Récuperer l'adresse IP publique du réseau sur lequel se trouve l'ordinateur cible. Sur cet ordinateur faire :
curl ifconfig.me
Il s'agit de l'adresse donnant accès au routeur. A partir du routeur, il faut ouvrir un port de l'ordinateur cible (22 pour les connections ssh).
- Sur la page web du routeur :
Applications & Port Range Forwarding :
- Application : donner un nom quelconque
- Start : 22
- End : 22
- Protocol : Both
- IP Address : 192.168.0.xx
- Enable : checked
Puis cliquer sur "Save Settings"
XDMCP
modifierdans /etc/rc2.d/S13xdmcp :
X -query 192.168.0.5 -once shutdown -h -t 15 now
INTERNET
modifierProblème d'accès internet via ADSL au cours de l'installation Debian
modifierSymptôme : le concentrateur est détecté et pppoeconf se configure correctement, mais impossible d'accéder au réseau. A essayer au préalable :
poff -a ifconfig lo down ifconfig eth0 down ifconfig eth0 up pon dsl-provider
Si celà ne marche pas : Enlever la carte ethernet, installer Debian, réinstaller la carte, démarrer linux, charger le driver de la carte (exemple : modprobe 8139too), lancer pppoeconf. Tester avec ping orange.fr
Iptables : les bases du pare feux Linux
modifierPrincipe
modifierLe Pare-feux Linux est divisé en sections appelées "Tables". Il y a trois tables :
- Filter : filtre les paquets réseau
- NAT : Network Adresse Translation : gère la passerelle vers internet
- Mangle : Marque les paquets transitant par le réseau
Pour controller les regles en cours s'appliquant, par exemple, à la table NAT : iptables -t nat -L
Ouverture de port
modifier- Controller si un port est ouvert :
Vérifier si le port 12 est ouvert sur 192.168.1.1 :
nmap -P0 -sS -v -v -p12 192.168.1.1
- Ouvrir un port :
iptables -A INPUT -i eth1 -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp --dport XX -j ACCEPT iptables -A INPUT -p udp --dport XX+3 -j ACCEPT iptables -A INPUT -p udp --dport YY -j ACCEPT
Partage de Connexion Internet avec une machine Windows
modifierLa machine linux 192.168.0.1 est connecté sur le net, et veut partager sa connexion avec la machine Windows 192.168.0.3.
- Linux : en root, taper :
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.3 -j MASQUERADE
avec :
- -t nat : t=table : la table nat
- -A POSTROUTING : A=Add : Ajouter la chaine POSTROUTING (qui concerne les pacquet sortant)
- -o ppp0 : o=output : les paquets sont envoyés vers l'interface ppp0
- -s 192... : s=source : source d'ou proviennent les paquets devant être traités.
- -j MASQUERADE : j=jump : spécifie comment traiter le paquet. Ici, la passerelle est masquée.
- Windows : paramètres réseaux, TCP/IP, propriétés :
- Passerelle : 192.168.0.1
- DNS : activer le DNS et rentrer les adresses du fournisseur d'accès. Par exemple pour Orange.fr :
- Pour supprimer le partage de connection :
• iptables -t nat --line-numbers -L pour avoir le numéro de la règle • iptables -t nat -D POSTROUTING n pour détruire (-D) la chaine n
Exemple de réseau Linux
modifierVoici le schéma du réseau :
Laptop |
eth0 192.168.1.2 |
eth2 192.168.1.1 |
PC |
eth1 192.168.0.1 |
Modem |
192.168.0.9 |
internet |
Le PC sert de passerelle entre les sous-réseaux 192.168.1.0 et 192.168.0.0, et le modem sert de passerelle vers internet.
Les /etc/network/interfaces doivent être configurés ainsi :
Portable : sous iface eth0, rajouter :
gateway 192.168.1.1
Ceci indique au portable que la passerelle est le PC.
PC : sous iface eth1, rajouter :
gateway 192.168.0.9 up echo "1" > /proc/sys/net/ipv4/ip_forward
La première ligne indique que la passerelle est le modem, et la seconde active le transfert d'adresse ip par le PC (merci Marcel !)
Il faut ensuite relancer les réseaux (/etc/init.d/networking stop puis start). Mais ça ne marche toujours pas à cause du pare-feux. Il faut donc ajouter la règle iptable :
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE
Ceci autorise les paquets provenant du sous-réseau 192.168.1 à être transférés vers l'interface eth1.
Aspirateur de sites
modifiervoir Linuxfr
httrack www.gogol.fr -O websites/ : réalise une copie du site www.gogol.fr dans le répertoire local websites
Les images jpg, récursivement, niveau 1 :
modifierwget -r -l 1 https://www.fanactu.com/ -A jpg
Liens utiles
modifier- Moteur de recherche Linux : www.google.com/linux
- Documentation Linux : www.tldp.org (tldp : The Linux Documentation Project)
SÉCURITÉ
modifierBase64
modifierDécoder une image :
cat image.64 |base64 -d > image.jpg
ou
openssl enc -d -base64 -in ss.64 -out ss.jpg
Encoder un user:password :
echo -n "user:password"|base64
GPG
modifierChiffrement Asymétrique
modifier- Générer une paire de clé :
gpg --gen-key
Le "nom réel" demandé sera le nom de la clé.
- Afficher la liste des clés :
gpg --list-keys
- Générer une version ascii de la clé publique :
gpg --armor --output pubkey.txt --export 'nom_de_la_clé'
'-armor' ou '-a' crée une version ASCII. Sinon un fichier binaire est crée.
- Crypter un fichier avec la clé publique ou privée :
gpg --import pubkey.txt gpg --encrypt --recipient 'nom_de_la_clé' toto.txt
'--import' n'a pas d'effet et est inutile lorsqu'on utilise sa propre clé
- Decrypter :
gpg --output foo.txt --decrypt toto.txt.gpg
Sans l'option --output, le fichier est affiché à l'écran. Sans --decrypt, le fichier toto.txt est crée.
Chiffrement Symétrique
modifierEncrypter :
modifiergpg --symmetric toto.txt
ou
gpg -c toto.txt
Décrypter :
modifiergpg --decrypt toto.txt.gpg
ou
gpg toto.txt.gpg
Répertoire :
modifierPour crypter un répertoire :
gpg-zip -c -o dirname.gpg dirname
Pour décrypter un répertoire :
gpg-zip -d dirname.gpg
Voir comment-crypter-decrypter-un-fichier-ou-un-repertoire-sous-linux
Keyring sur Linux Mint
modifierSupprimer le keyring :
rm -v ~/.local/share/keyrings/*.keyring
puis ne pas entrer de mot de passe à la prochaine demande.
SSH
modifiersshpass
modifierUtiliser SSH avec le mot de passe en ligne de commande.
MULTIMEDIA
modifierAudio
modifierSortie son par défaut
modifierhttps://rastating.github.io/setting-default-audio-device-in-ubuntu-18-04/
Empêcher le changement automatique de sortie son
modifiersudo mcedit /etc/pulse/default.pa
Comment out the line with "load-module module-switch-on-connect"
Restart PulseAudio :
pulseaudio -k
- https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/
- https://gist.github.com/Kangaroux/46bb853f13a637c071b1f890e1217724
- https://danielgibbs.co.uk/2019/06/prevent-automatic-change-of-audio-device-ubuntu/
Arecord
modifierLe format et échantillonnage par défaut (8 bit 8000 Hz) donne un signal craqué. Utiliser :
arecord -f FLOAT -r 44100 -t wav /tmp/mon.wav
Beep sans speaker
modifierplay -n -q synth 1 sine A
Apollo Quindar Tones
modifierhttps://www.hq.nasa.gov/alsj/quindar.html
- start (2515 Hz, 250 ms) : play -n -q synth 0.25 sine 2525 vol 0.5
- stop (2475 Hz, 250 ms) : play -n -q synth 0.25 sine 2475 vol 0.5
Graver un CD
modifierwodim -raw speed=0 image.iso
Graver un DVD
modifierwodim -v speed=0 image.iso
Extraction de CD
modifier- Extraction et encodage en flac avec compression maximale :
abcde -x -o flac:"-8"
Pour n'avoir que les pistes 1, 5 et 8 à 12
abcde -x -o flac:"-8" 1 5 8-12
Encodage MP3
modifierlame -q 0 musique.wav sox musique.wav musique.mp3 for f in *.ogg;do echo $f;sox $f ${f%.*}.mp3;done;mv -v *.mp3 /media/harlock/POD/ #ogg2mp3
Encodage faac (m4a) pour Nintendo DS
modifierfaac -w -b 96 -c 44100 musique.wav
(voir aussi avec -b 192)
Gifs animés
modifierconvert -resize 10% -delay 20 -loop 0 *.png animated.gif
ou
mplayer -nosound -ss 20 -endpos 5 -vo png underwater.ogv mogrify -resize 960 -crop 960x355+0+0 -format gif *.png gifsicle --colors=256 --delay=4 --loopcount=0 --dither -O3 *.gif > animation.gif
Vidéo
modifierExtraire une image ISO de CD ou DVD
modifierAttention !!! Ces procédures sont à éviter avec un dvd vidéo !!!
dd
modifierAprès avoir monté le dvd, faire :
dd if=/dev/sr0 of=cd.iso
Un DVD Vidéo ainsi extrait peut être lu avec Gnome Mplayer.
Si le disque est endommagé, faire :
dd if=/dev/sr0 of=cd.iso conv=noerror,sync
Pour voir la progression de la copie, sur une autre console, faire :
kill -USR1 xxxx
avec xxxx étant le numéro de processus.
Cf. Tesdisk wiki :
ddrescue -n -b2048 /dev/cdrom cdimage mapfile ddrescue -d -r1 -b2048 /dev/cdrom cdimage mapfile
DVDbackup
modifierdvdbackup -i /dev/sr0 -o repertoire -M
Extrait la structure du dvd dans le répertoire indiqué par -o. Préférable à dvdcpy pour les DVDs protégés.
dvdcopy
modifierdvdcpy -m /dev/sr0 -o repertoire
Extrait la structure du dvd dans le répertoire indiqué par -o (fonctionne aussi avec une image iso à la place de /dev/sr0).
Vidéos Flash
modifierRechercher des vidéos flash :
find ~/.mozilla/ -exec ls -sh {} \; -exec file {} \;|grep Video ls -lh `find ~/.mozilla/ -exec ls -sh {} \; -exec file {} \;|grep Video|cut -d ':' -f 1`
Mplayer / FFMPEG
modifierConcaténer
modifierffmpeg -f concat -safe 0 -i <(for f in ./*.AVI; do echo "file '$PWD/$f'"; done) -c copy sortie.avi
Accélerer la lecture d'une vidéo
modifierEn théorie, s'effectue avec -speed ou -fps. Celà marche bien pour ralentir mais pas toujours pour accélerer. Dans ce cas il faut réencoder en diminuant le nombre de frames (ici en retenant 1 frame sur 3) :
mencoder -nosound -vf framestep=3 -ovc x264 -x264encopts preset=fast entree.avi -o sortie.avi
puis jouer en accélerant (exemple x3):
mplayer -speed 3 sortie.avi
ou si le fps d'origine était 30 :
mplayer -fps 90 sortie.avi
On peut aussi réencoder directement en accéléré. Exemple x3, avec un fps initial de 30 :
mencoder -nosound -fps 90 -ofps 30 -ovc x264 -x264encopts preset=fast entree.avi -o sortiex3.avi
(-ofps est facultatif mais sinon ça réencode à 90 fps et ça fait donc un fichier plus gros).
Extraire les frames d'une video
modifierExemple avec images sauvegardées en png compression 4 dans le sous-répertoire images :
mplayer -nosound -vo png:z=4:outdir=images/ video.avi
A essayer : Utiliser -sstep n pour sauter n secondes après chaque frame lue, et -vf framestep=n pour sauter n frames.
Ou :
ffmpeg -i video.mp4 images/image%08d.png
Lire les videos en 2.7K sur les systèmes lents
modifiermplayer -ao sdl -vo gl -lavdopts threads=2 GOPR2921.MP4
Supprimer le scintillement (flickering)
modifierffmpeg -fflags +genpts -i flicker.mp4 -fflags +genpts -i flicker.mp4 -filter_complex "[0:v]setpts=PTS-STARTPTS[top]; [1:v]setpts=PTS-STARTPTS+.03333/TB, format=yuva420p, colorchannelmixer=aa=0.5[bottom]; [top][bottom]overlay=shortest=1" -c:v libx264 -crf 26 -an NOFLICKER.mp4
Mencoder
modifierOptions
modifierListe des codecs
modifiermencoder -oac help mencoder -ovc help
Problème de frames qui sautent avec ovc copy
modifierAjouter l'option -mc 0
Redimentionnement
modifier- Echelle : -vf scale=640:-3
- Echelle en arrondissant au plus proche multiple de 16 : -vf scale=640:-11
- Echelle en modifiant le ratio : -vf dsize=640:480
- Crop : -vf crop=640:480:10:10
- Agrandir le canevas : -vf expand=800:600:0:20 (agrandi le canevas à 800x600 et place l'original aux coordonnées 0,20
Encoder à partir d'une liste d'images
modifier# En x264, à 24 fps :
mencoder mf://*.png -mf fps=24:type=png -ovc x264 -x264encopts pass=1:subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=4:b_pyramid=normal:weight_b -oac copy -audiofile audio.mp3 -o sortie.avi
# Ou en motion-png :
mencoder mf://*.png -mf fps=24:type=png -ovc copy -oac copy -o sortie.avi
# Encodage en ne retenant qu'une image sur deux :
mencoder -ofps 30 mf://*.png -mf fps=60:type=png -ovc x264 -x264encopts preset=veryslow -nosound -o sortie.avi
# avec ffmpeg :
ffmpeg -i image%08d.png -r 30 sortie.mp4
# avec ffmpeg, compatible Whatsapp :
ffmpeg -i image%08d.png -r 30 -c:v libx264 -profile:v baseline -level 3.0 -pix_fmt yuv420p out.mp4
Extraire une partie d'une video
modifiermencoder -ss 0:24:00 -endpos 0:05:00 -oac copy -ovc copy -o sortie.avi video.avi
-endpos : durée
En cas de refus de copie de l'audio (format faac), ajouter -fafmttag 0x706D
Redimensionner une vidéo
modifierExemple à 640x :
mencoder input.mov -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac pcm -vf scale=640:-3 -o output.avi
Faire scale=640:-11 pour imposer une largeur de 640 px en respectant le ratio d'origine.
Cropper, exemple xvid
modifiermencoder -vf crop=750:410 -ovc xvid -oac copy -xvidencopts pass=1 -o radar2.avi radar.avi
Extraire de la musique d’une vidéo
modifiermplayer -ao pcm:file=musique.wav -af volnorm video.mov oggenc -q 6 musique.wav
- voir aussi :
mplayer -dumpaudio nodame_theme.flv -dumpfile nodame_theme.mp3
- du chapitre 12 de la piste 8 d’un dvd :
mplayer -ao pcm:file=musique.wav -af volnorm -dvd-device /dev/hdc dvd://8 -chapter 12
Extraire un fichier video d'une vidéo, et réencoder avec un fichier son différent ("muxer")
modifiermencoder -idx -ovc copy -nosound VideoIn.flv -o VideoNoSound.avi mencoder -oac copy -ovc copy -audiofile 001.mp3 -o VideoOut.avi VideoNoSound.avi
ou
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac output.mp4
ou
ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a copy output.mp4
Encodage x264
modifierMeilleure qualité avec CRF :
mencoder -oac faac -ovc x264 -x264encopts partitions=all:subq=9:direct_pred=auto:frameref=10:b_adapt:me=umh:bframes=3:trellis=2:8x8dct:crf=15:threads=auto -o sortie.avi entree.avi
CRF 17 ou 18 visuellement lossless (https://trac.ffmpeg.org/wiki/Encode/H.264)
Meilleure qualité sans CRF :
mencoder -oac mp3lame -ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b -o sortie.avi entree.avi
ou
mencoder -oac mp3lame -ovc x264 -x264encopts preset=veryslow -o sortie.avi entree.avi
Modification de l'image :
mencoder -ovc x264 -x264encopts pass=1:subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b -nosound -vf eq2=1:2:0:1:1.1:1.1:1 -o sortie.avi entree.avi
- <0.1-10> initial gamma value (default: 1.0)
- <-2-2> initial contrast, where negative values result in a negative image (default: 1.0)
- <-1-1> initial brightness (default: 0.0)
- <0-3> initial saturation (default: 1.0)
- <0.1-10> gamma value for the red ?
MKV :
mencoder -oac pcm -srate 8000 -af channels=1,lavcresample=8000 -aid 128 -nosub -sws 7 -vf hqdn3d=2:1:2,harddup -o sortie -ovc x264 -x264encopts deblock=1,1:aq_strength=0.6:subq=10:direct_pred=auto:frameref=32:b_adapt=2:me=umh:merange=24:rc_lookahead=60:bframes=6:trellis=2:crf=18:threads=8 entree.avi
L'option -vf hqdn3d=2:1:2 paraît être adaptée aux dessins animés. -aid est le canal de sous-titres (la valeur est variable)
mencoder -nosound -nosub -zoom -aspect 16/9 -vf crop=768:428:0:74,harddup -ovc x264 -x264encopts deblock=1,1:aq_strength=0.6:subq=10:direct_pred=auto:frameref=32:b_adapt=2:me=umh:merange=24:rc_lookahead=60:bframes=6:trellis=2:crf=18:threads=8 entree -o sortie.avi
mencoder -oac pcm -srate 8000 -af channels=1,lavcresample=8000 -aid 137 -sws 7 -nosub -zoom -aspect 16/9 -vf crop=768:428:0:74,harddup -ovc x264 -x264encopts deblock=1,1:aq_strength=0.6:subq=10:direct_pred=auto:frameref=32:b_adapt=2:me=umh:merange=24:rc_lookahead=60:bframes=6:trellis=2:crf=18:threads=8 *.vob -o Yamato.avi
Exemples
modifier- Fichier d'origine (GOPRO) : 168.5 Mo (168516912 o) 45" 29944 Kb/s 1920x1440
- preset=veryslow : 18.7 Mo (18743776 o)
- mpng : 1.3 Go (1261814144 o)
- subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=3:b_pyramid=normal:weight_b : 23.5 Mo (23489530 o)
- subq=9:partitions=all:8x8dct:me=umh:frameref=10:bframes=3:direct_pred=auto:b_adapt:trellis=2:crf=10:threads=auto : 280.5 Mo (280502980 o)
- id crf=12 : 235.2 Mo (235208506 o)
- id crf=15 : 181.9 Mo (181923622 o)
subq | partitions | 8x8dct | me | frameref | bframes | direct_pred | b_adapt | trellis | crf | threads ̣ | taille |
---|---|---|---|---|---|---|---|---|---|---|---|
preset=veryslow | 18.7 Mo | ||||||||||
6 | all | x | umh | 5 | 3 | b_pyramid=normal:weight_b | 23.5 Mo | ||||
GOPRO original | 168.5 Mo | ||||||||||
9 | all | x | umh | 10 | 3 | auto | x | 2 | 15 | auto | 181.9 Mo |
9 | all | x | umh | 10 | 3 | auto | x | 2 | 12 | auto | 235.2 Mo |
9 | all | x | umh | 10 | 3 | auto | x | 2 | 10 | auto | 280.5 Mo |
motion-png | 1261.8 Mo |
Dans cet exemple, taille = -19.6 × crf + 473.8
Encodage MP4 pour HTML5
modifierExemple à partir d'un lot d'images :
mencoder mf://*.png -mf fps=60:type=png -ofps 30 -ovc x264 -x264encopts partitions=all:subq=9:direct_pred=auto:frameref=10:b_adapt:me=umh:bframes=3:trellis=2:8x8dct:crf=15:threads=auto -of lavf -nosound -o intermediaire.mp4 ffmpeg -i intermediaire.mp4 -vcodec copy sortie.mp4
Modifier un lot d’image
modifier- mogrify -[options] *.*
- -crop 1300x2200+535+523 *.pbm ( ! utiliser +repage pour réaligner le canevas après crop ou rotate )
- -monitor : indique la progression de l’opération en pourcentage
- -channel R -level 5%,95% -channel G -level 40%,100% -channel B -level 32%,100% : Niveaux Red Green Blue
- -verbose : indique ce qui est fait
- -resize 800x600 : redimensionne aux valeurs maximales indiquées. La proportion de l’image est respectée. Si l'image est réduite par un ratio entier, utiliser :
- -filter box -resize 800x600 : réechantillonne les pixels, et permet ainsi une réduction du bruit.
- -resize 800 : même chose avec une largeur maximale de 800 pixels
- -resize x600 : même chose avec une hauteur maximale de 600 pixels
- -modulate x,y,z : modifie luminosité/saturation/teinte en pourcentage (y puis z optionnel)
- -quality 95 : comprime un jpeg à 95 %
- -unsharp :
Matching GIMP unsharp :
Take gimp radius and add 1 => IM sigma Threshold divide by 255 => IM Threshold
So GIMP radius=1 amount=0.5 threshold=20 results in :
-unsharp 0x2+0.5+0.0784
Exemple :
mogrify -monitor -format png -resize 1355x1355 *.tif
- Transforme un lot d’image tif en png avec un taux de compression maximale, et réduites à 1355 pixels.
ed component (default: 1.0)
- <0.1-10> gamma value for the green component (default: 1.0)
- <0.1-10> gamma value for the blue component (default: 1.0)
- <0-1> The weight parameter can be used to reduce the effect of a high
gamma value on bright image areas, e.g. keep them from getting overamplified and just plain white. A value of 0.0 turns the gamma correction all the way down while 1.0 leaves it at its full strength (default: 1.0).
Rotation
modifier180° :
-vf mirror,flip
Réparer index
modifierffmpeg -i input.avi -c copy output.avi
Kino
modifierExport
modifierAutres / XVid / High Quality full size, VBR,...
Autres Traitements Videos
modifier- Lecture d’un camescope par port DV : dvgrab --size 0
- Edition et sauvegarde en avi ou mpeg : kino (Autres / XVid / High Quality full size, VBR,... )
- Conversion d’un mpeg en fichiers DVD video : dvdauthor -o mondvd -x mondvd.xml
- Extraction d’un DVD video : dvdbackup
- Création d’une image iso de DVD vidéo à partir des fichiers video_ts : mkisofs -dvd-video -o mondvd.iso mondvd/
- Copie de DVD : lxdvdrip, dvd95
- Encodage de DVD : acidrip
- Encoder pour html5 : ffmpeg -i video.avi -vcodec libvpx -quality best -vb 300k -maxrate 350k -bufsize 1000k -qmin 10 -qmax 42 -threads 2 -r 30 -an -strict -2 video.webm
Videos Sous-Marines (GoPro)
modifier- Extraire les frames :
mplayer -nosound -vo png:z=4:outdir=frames/ video.avi
- traiter les frames avec imagemagick :
# réduire les images (optionnel) :
mogrify -filter Hermite -resize 640x480 *.png
# augmenter la dynamique et le contraste :
## ancienne méthode :
mogrify -auto-level -channel RGB -sigmoidal-contrast 5,100% *.png
## nouvelle méthode (pour profondeur 10-15 m) :
ls *.JPG | parallel mogrify -colorspace Lab -channel 0 -auto-level -level 0%,100%,0.8 -channel 1 -level -20%,100% -channel 2 -level 17%,90% +channel -unsharp 0x2+0.5+0.078 -format png
- Créer la vidéo en motion-png ou en x264 :
mencoder mf://*.png -mf fps=30:type=png -ovc copy -nosound -o Sortie-mpng.avi mencoder mf://*.png -mf fps=30:type=png -nosound -ovc x264 -x264encopts subq=6:partitions=all:8x8dct:me=umh:frameref=5:bframes=4:b_pyramid=normal:weight_b -o Sortie-x264.avi
Webcam
modifierAvec mplayer :
mplayer tv:// -vo gl2 mplayer tv:// -tv device=/dev/video2 -vo gl2
Concaténer deux PDF
modifierpdftk pdf1.pdf pdf2.pdf cat output pdf-final.pdf
Extraire la page 5
modifierpdftk pdf1.pdf cat 5 output pdf-final.pdf
Tourner une page
modifierpdftk plan1.pdf cat 1west output plan2.pdf
Réduire résolution d'images à l'intérieur d'un pdf
modifiergs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook -dNOPAUSE -dQUIET -dBATCH -sOutputFile=OUTPUT.pdf INPUT.pdf
For your reference:
-dPDFSETTINGS=/screen (screen-view-only quality, 72 dpi images)
-dPDFSETTINGS=/ebook (low quality, 150 dpi images)
-dPDFSETTINGS=/printer (high quality, 300 dpi images)
-dPDFSETTINGS=/prepress (high quality, color preserving, 300 dpi imgs)
-dPDFSETTINGS=/default (almost identical to /ebook)
Réduction de format de fichiers PDF images
modifierpdfimages source.pdf ./ mogrify -crop 1300x2200+535+523 *.pbm convert *.pbm cible.tif tiff2pdf cible.tif > cible.pdf
Conversion d'un PDF en images
modifierpdftoppm source.pdf cible
Extraction des images situées de la page 10 à la page 12, et enregistrement au format png avec une résolution de 300dpi (le défaut est 150) :
pdftoppm -f 10 -l 12 -r 300 -png source.pdf cible
Transformation d’images jpg en un pdf
modifierEssayer en premier :
convert *.jpg cible.pdf
ou
convert *.png -resize 50% -filter box -compress Zip -units PixelsPerInch -density 367 sortie.pdf
En cas d'erreur voir : Concersion PDF non autorisée
Sinon :
convert *.jpg cible.tif tiff2pdf -z -o cible.pdf cible.tif
tiff2pdf est inclu dans le paquet libtiff-tools. L'option "z" active la compression d'image. Un bug constaté dans la version 3.9.4-5 de libtiff-tools génère un fichier corrompu lorsque les images sont compressées en jpg. Dans ce cas utiliser la procédure suivante :
convert -compress LZW *.jpg cible.tif tiff2pdf -z -o cible.pdf cible.tif
Si celà ne marche pas bien, convertir au préalable les jpg en png :
mogrify -format png *.jpg convert -compress LZW *.jpg cible.tif tiff2pdf -z -o cible.pdf cible.tif
Ou essayer via tiff2ps :
tiff2ps -a cible.tif> cible.ps ps2pdf cible.ps cible.pdf
Transformation d’images xcf en un pdf
modifierhttps://patrick-nagel.net/blog/archives/199
Modifier la couleur de police
modifier- Décompresser le pdf :
pdftk input.pdf output output.pdf uncompress
- les paramètres de couleur précèdent les opérateurs CS, cs, SC, SCN, sc, scn, G, g, RG, rg, K, k (cf PDF specifications p.112)
- par exemple, une police d'écriture en gris sera paramétrée sous la forme : 0.353 scn. Pour avoir une écriture en noir, remplacer les occurences dans le pdf avec un éditeur hexadécimal, ou :
sed -i 's/0.353 scn/0.000 scn/g' output.pdf
ebook vers pdf
modifierebook-convert in.epub out.pdf --paper-size a4 --pdf-default-font-size 10
Images
modifierModifier un lot d’image
modifier- mogrify -[options] *.*
- -crop 1300x2200+535+523 *.png ( !!! utiliser +repage après rotate ou crop pour réaligner le canevas de l'image)
- -monitor : indique la progression de l’opération en pourcentage
- -verbose : indique ce qui est fait
- -resize 800x600 : redimensionne aux valeurs maximales indiquées. La proportion de l’image est respectée. Si l'image est réduite par un ratio entier, utiliser :
- -filter box -resize 800x600 : réechantillonne les pixels, et permet ainsi une réduction du bruit.
- -resize 800 : même chose avec une largeur maximale de 800 pixels
- -resize x600 : même chose avec une hauteur maximale de 600 pixels
- -modulate x,y,z : modifie luminosité/saturation/teinte en pourcentage (y puis z optionnel)
- -quality 95 : comprime un jpeg à 95 %
- -unsharp :
Matching GIMP unsharp :
Take gimp radius and add 1 => IM sigma Threshold divide by 255 => IM Threshold
So GIMP radius=2 amount=1.5 threshold=5 results in :
-unsharp 0x3+1.5+0.0196
GIMP radius=1 amount=0.5 threshold=20 results in :
-unsharp 0x2+0.5+0.078
Exemple : Transforme un lot d’image tif en png avec un taux de compression maximale, et réduites à 1355 pixels :
mogrify -monitor -format png -resize 1355x1355 *.tif
Traitement d'un livre scanné, A4 paysage, avec un contraste faible :
for f in *.png;do echo $f;mogrify -crop 1050x820+200+60 -level 45%,85% -unsharp 0x2+0.5+0.0784 $f;done for f in *.png;do mogrify -format pdf -border 60x0 -bordercolor none -page 842x595 $f;done; pdftk *.pdf cat output livre.pdf
Traitement d'un livre scanné, contraste faible, autre méthode :
for f in *.png;do echo $f;mogrify -sigmoidal-contrast 10%,30% -format pdf $f;done qpdf --empty --pages *.pdf -- livre.pdf
G'Mic pour Gimp
modifierTunnel SSH
modifierVideo
modifierssh user@ip ffmpeg -an -f video4linux2 -r 10 -i /dev/video0 -b "100k" -f "ogg" - | cvlc -
- -an : pas d'audio
- -r : framerate
- -b "100k" : max bitrate
Audio
modifierssh user@ip arecord - | vlc -
VIRTUALISATION - Émulation
modifierVMWare
modifierMove or Copy ?
modifierMove !!!
Usage excessif du Swap par VMWare
modifierNormalement, la mémoire Swap devient active lorsque 60 % de la RAM est utilisée :
# cat /proc/sys/vm/swappiness 60
Dans le fichier/etc/sysctl.conf, ajouter :
vm.swappiness=0
De cette façon, la Swap ne sera utilisée que lorsque la mémoire vive sera pleine.
Erreurs diverses
modifierFailed to lock the file :
supprimer les fichier *.lck et *.LOCKfile dans /var/lib/vmware/Virtual\ Machines/Nom_de_la_machine/
VMWare Player empèche l'installation de paquets Debian
modifierUse /etc/insserv/overrides. Do the following :
Create /etc/insserv/overrides/vmware with the following :
### BEGIN INIT INFO # Provides: vmware # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 5 # Default-Stop: 2 3 5 # Short-Description: VMware VMX service for virtual machines # Description: Allows running of VMware virtual machines. ### END INIT INFO
Create /etc/insserv/overrides/vmware-USBArbitrator with the following :
### BEGIN INIT INFO # Provides: vmware-USBArbitrator # Required-Start: $remote_fs $syslog vmware # Required-Stop: $remote_fs $syslog vmware # Default-Start: 2 3 5 # Default-Stop: 2 3 5 # Short-Description: Start daemon when vmware starts # Description: Enable service provided by daemon. ### END INIT INFO
Then run :
chmod +x /etc/insserv/overrides/vmware*
Androïd
modifierSCIENCE
modifierGnuPlot
modifierTracé interactif
modifierEn attendant mieux :
Test du Ping :
rm fplot;while :;do ping -c 3 orange.fr|grep trans|cut -d ' ' -f 10|cut -d m -f 1 >>fplot;echo "plot [0:200] [0:15000] 'fplot' with lines;pause 120"|gnuplot;done
PROGRAMMATION
modifierGTK
modifierLibrairies : gtk-compiling