Utilisateur:Pierre Brial/Linux
![](http://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Tux.png/220px-Tux.png)
SYSTEME
[modifier | modifier le code]Infos
[modifier | modifier le code]inxi -Fxzd
Installation
[modifier | modifier le code]Installation réseau sans support amovible
[modifier | modifier le code]Voir : 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
[modifier | modifier le code]GRUB 2
[modifier | modifier le code]GRUB 2 est un truc de geek.
Personnalisation
[modifier | modifier le code]La 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
[modifier | modifier le code]Appuyer 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
[modifier | modifier le code]Pas-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
[modifier | modifier le code]Tableau des codes pour le paramètre « vga »
[modifier | modifier le code]Il 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 | modifier le code]- 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 | modifier le code]- 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
[modifier | modifier le code]Information
[modifier | modifier le code]Voir les différents fichiers du répertoire /proc avec la commande cat. Par exemple cat cpuinfo donne des informations sur le microprocesseur.
Processus
[modifier | modifier le code]- 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 | modifier le code]- 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
[modifier | modifier le code]Gnome
[modifier | modifier le code]Le 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
[modifier | modifier le code]Pour 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
[modifier | modifier le code]Affichage 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
[modifier | modifier le code]facl : Gestion fine des droits
[modifier | modifier le code]setfacl -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
[modifier | modifier le code]L'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
[modifier | modifier le code]Gè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
[modifier | modifier le code]Liste des paquets présents
[modifier | modifier le code]dpkg-query -W -f '${Package}:${Status}\n' *motif*
Créer un dépot local
[modifier | modifier le code]# 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
[modifier | modifier le code]Pour 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
[modifier | modifier le code]Pour 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
[modifier | modifier le code]Console
[modifier | modifier le code]Dé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
[modifier | modifier le code]pour 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
[modifier | modifier le code]Analyse de disques
[modifier | modifier le code]Smartmontools : http://doc.ubuntu-fr.org/smartmontools
Vitesse :
sudo hdparm -t --direct /dev/sda
Clonage
[modifier | modifier le code]dd 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
[modifier | modifier le code]Cré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
[modifier | modifier le code]Permet d'enregistrer des données sur cassette audio.
Émission
[modifier | modifier le code]cat 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
[modifier | modifier le code]minimodem -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
[modifier | modifier le code]testdisk & photorec
[modifier | modifier le code]Programme 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
[modifier | modifier le code]extundelete sur ext3/ext4 partitions.
Forcer la vérification d'un disque
[modifier | modifier le code]e2fsck -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
[modifier | modifier le code]dosfsck -rtvV /dev/sdc1
Vérification basique d'un disque NTFS
[modifier | modifier le code]ntfsfix /dev/sdc1
Fréquence de vérification du disque dur (Maximum mount count)
[modifier | modifier le code]Passer à 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
[modifier | modifier le code]Formatage complet ext4
[modifier | modifier le code]mke2fs -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
[modifier | modifier le code]Avec 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
[modifier | modifier le code]https://linuxfr.org/news/des-systemes-de-fichiers-pour-peripherique-amovible#comment-1854291
sudo mkexfatfs -n ToshibaBoucan /dev/sdb
UDF
[modifier | modifier le code]https://forum.ubuntu-fr.org/viewtopic.php?id=1131391
sudo mkudffs --media-type=hd -l="label" -b 512 /dev/sdc
Formater une disquette DOS
[modifier | modifier le code]Formatage 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)
[modifier | modifier le code]Si 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 | modifier le code]- 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
[modifier | modifier le code]Historique
[modifier | modifier le code]Pour 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
[modifier | modifier le code]https://stackoverflow.com/questions/6270440/simple-logical-operators-in-bash
Expressions rationelles
[modifier | modifier le code]travailler-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 | modifier le code]$?
Repertoire du script
[modifier | modifier le code]dirname $0
Fichier entré en argument
[modifier | modifier le code]$1 dirname $1 basename $1
Figlet
[modifier | modifier le code]Permet 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
[modifier | modifier le code]Découper un fichier
[modifier | modifier le code]Exemple 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
[modifier | modifier le code]Séparateur ESPACE :
awk '{print $2,$1,$3}' A.xyz
Séparateur virgule :
awk -F, '{print $2,$1,$3}' OFS=, A.xyz
grep
[modifier | modifier le code]- 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 | modifier le code]- 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
[modifier | modifier le code]sed -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 | modifier le code]- C-c : interromps une commande
- C-z : suspend une commande
- fg : reprend une commande
Edition de la ligne de commande
[modifier | modifier le code]- 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 | modifier le code]- De chaînes numériques :
for i in {000..009}
- De nombres :
for in in `seq 1 10`
Séparateur de liste
[modifier | modifier le code]Le 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 | modifier le code]`commande`
ou $(commande)
. La seconde version permet l'imbrication.
Taille d'un fichier
[modifier | modifier le code]stat -c %s fichier
Test sur les chaînes
[modifier | modifier le code]L'é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
[modifier | modifier le code]if ((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
[modifier | modifier le code]Teste 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
[modifier | modifier le code]Soustraction :
echo $[7-6] echo $[0xa-6]
Voir aussi :
a-bashism-week-maths
echo
[modifier | modifier le code]Séquences d'échappement
[modifier | modifier le code]Exemple 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
[modifier | modifier le code]Horloge :
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 | modifier le code]- 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 | modifier le code]* 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
[modifier | modifier le code]Numlock en console
[modifier | modifier le code]To 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 :
[modifier | modifier le code]Dans le fichier ~/.profile mettre :
export LC_NUMERIC=C
Pour modifier l'agencement du clavier en console :
[modifier | modifier le code]dpkg-reconfigure console-data
changer l'affectation des touches
[modifier | modifier le code]- 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
[modifier | modifier le code]https://bbs.archlinux.org/viewtopic.php?pid=1279290
INTERFACE GRAPHIQUE
[modifier | modifier le code]Gestionnaire de fenêtres par défaut
[modifier | modifier le code]Dans 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
[modifier | modifier le code]xinitrc : contient les commandes shell exécutées au démarrage d'une session X.
Drivers
[modifier | modifier le code]Rage IIC | 8 Mo | ati |
---|---|---|
Rage 128 pro | 32 Mo | r128 |
SIS6236 | 8 Mo | sis |
Informations sur les fenêtres en console
[modifier | modifier le code]Multiplication des fichiers .serverauth
[modifier | modifier le code]Au 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
[modifier | modifier le code]Alt-home ouvre le dossier personnel
Menu Xfce4
[modifier | modifier le code]Pour éditer le menu Xfce4, créer des fichiers desktop pour chaque nouvelle entrée dans /usr/share/applications/
Ecrans
[modifier | modifier le code]Gestion des écrans avec xfconf-query
Linux Mint
[modifier | modifier le code]Numlock led clignotante
[modifier | modifier le code]Contournement du problème : supprimer ou renommer le fichier /usr/lib/mate-settings-daemon/keyboard.mate-settings-plugin
Logo au démarrage
[modifier | modifier le code]Voir Utilisateur:Pierre_Brial/Linux#Boot
Mate : bordure de fenêtre rouge
[modifier | modifier le code]É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
[modifier | modifier le code]Voir mate-memory-leak
Visionneurs d'images qui plantent avec de grosses images
[modifier | modifier le code]Voir 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
[modifier | modifier le code]Configuration en ligne de Commande
[modifier | modifier le code]Utilitaires 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
[modifier | modifier le code]Pour é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
[modifier | modifier le code]Problème d’accents circonflexe et tréma sous Openoffice
[modifier | modifier le code]Dans 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
[modifier | modifier le code]Dans 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
[modifier | modifier le code]cf http://forum.ubuntu-fr.org/viewtopic.php?id=352294
Dans une console
[modifier | modifier le code]Police par défaut :
cat /etc/default/console-setup
Liste des polices :
ls /usr/share/consolefonts
Changer de police :
setfont Lat15-Terminus24x12
RESEAU
[modifier | modifier le code]Transmission analogique
[modifier | modifier le code]Permet d'enregistrer des données sur cassette audio.
Émission
[modifier | modifier le code]cat 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
[modifier | modifier le code]minimodem -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
[modifier | modifier le code]Moyen 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 | modifier le code]- 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
[modifier | modifier le code]sudo 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 | modifier le code]- Sur le serveur : sshd
- Sur le client, dans la barre d'adresse : sftp://adresse_ip_du_serveur
Bluetooth
[modifier | modifier le code]Transfert de fichiers via Obex
[modifier | modifier le code]Recherche 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
[modifier | modifier le code]Configuration : 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
[modifier | modifier le code]Si 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
[modifier | modifier le code]Le 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
[modifier | modifier le code]Difficultés pour parcourir le réseau
[modifier | modifier le code]As 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
[modifier | modifier le code]cf http://forum.ubuntu-fr.org/viewtopic.php?id=330475
Monter une partition Samba
[modifier | modifier le code]En 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 | modifier le code]- local name -> IP : ping
Jabber
[modifier | modifier le code]Configuration du serveur
[modifier | modifier le code]Aprè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
[modifier | modifier le code]Recherche 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 | modifier le code]- 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 | modifier le code]- 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
[modifier | modifier le code]dans /etc/rc2.d/S13xdmcp :
X -query 192.168.0.5 -once shutdown -h -t 15 now
INTERNET
[modifier | modifier le code]Problème d'accès internet via ADSL au cours de l'installation Debian
[modifier | modifier le code]Symptô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
[modifier | modifier le code]Principe
[modifier | modifier le code]Le 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 | modifier le code]- 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
[modifier | modifier le code]La 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
[modifier | modifier le code]Voici 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
[modifier | modifier le code]voir 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 :
[modifier | modifier le code]wget -r -l 1 https://www.fanactu.com/ -A jpg
Liens utiles
[modifier | modifier le code]- Moteur de recherche Linux : www.google.com/linux
- Documentation Linux : www.tldp.org (tldp : The Linux Documentation Project)
SÉCURITÉ
[modifier | modifier le code]Base64
[modifier | modifier le code]Dé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
[modifier | modifier le code]Chiffrement Asymétrique
[modifier | modifier le code]- 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
[modifier | modifier le code]Encrypter :
[modifier | modifier le code]gpg --symmetric toto.txt
ou
gpg -c toto.txt
Décrypter :
[modifier | modifier le code]gpg --decrypt toto.txt.gpg
ou
gpg toto.txt.gpg
Répertoire :
[modifier | modifier le code]Pour 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
[modifier | modifier le code]Supprimer le keyring :
rm -v ~/.local/share/keyrings/*.keyring
puis ne pas entrer de mot de passe à la prochaine demande.
SSH
[modifier | modifier le code]sshpass
[modifier | modifier le code]Utiliser SSH avec le mot de passe en ligne de commande.
Voir Bloguelinux.ca/emission-81
MULTIMEDIA
[modifier | modifier le code]Audio
[modifier | modifier le code]Sortie son par défaut
[modifier | modifier le code]https://rastating.github.io/setting-default-audio-device-in-ubuntu-18-04/
Empêcher le changement automatique de sortie son
[modifier | modifier le code]sudo 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
[modifier | modifier le code]Le 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
[modifier | modifier le code]play -n -q synth 1 sine A
Apollo Quindar Tones
[modifier | modifier le code]https://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
[modifier | modifier le code]wodim -raw speed=0 image.iso
Graver un DVD
[modifier | modifier le code]wodim -v speed=0 image.iso
Extraction de CD
[modifier | modifier le code]- 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
[modifier | modifier le code]lame -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
[modifier | modifier le code]faac -w -b 96 -c 44100 musique.wav
(voir aussi avec -b 192)
Gifs animés
[modifier | modifier le code]convert -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
[modifier | modifier le code]Extraire une image ISO de CD ou DVD
[modifier | modifier le code]Attention !!! Ces procédures sont à éviter avec un dvd vidéo !!!
dd
[modifier | modifier le code]Aprè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
[modifier | modifier le code]dvdbackup -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
[modifier | modifier le code]dvdcpy -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
[modifier | modifier le code]Rechercher 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
[modifier | modifier le code]Concaténer
[modifier | modifier le code]ffmpeg -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
[modifier | modifier le code]En 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
[modifier | modifier le code]Exemple 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
[modifier | modifier le code]mplayer -ao sdl -vo gl -lavdopts threads=2 GOPR2921.MP4
Supprimer le scintillement (flickering)
[modifier | modifier le code]ffmpeg -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
[modifier | modifier le code]Options
[modifier | modifier le code]Liste des codecs
[modifier | modifier le code]mencoder -oac help mencoder -ovc help
Problème de frames qui sautent avec ovc copy
[modifier | modifier le code]Ajouter l'option -mc 0
Redimentionnement
[modifier | modifier le code]- 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 | modifier le code]# 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
[modifier | modifier le code]mencoder -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
[modifier | modifier le code]Exemple à 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
[modifier | modifier le code]mencoder -vf crop=750:410 -ovc xvid -oac copy -xvidencopts pass=1 -o radar2.avi radar.avi
Extraire de la musique d’une vidéo
[modifier | modifier le code]mplayer -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")
[modifier | modifier le code]mencoder -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
[modifier | modifier le code]Meilleure 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 | modifier le code]- 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
[modifier | modifier le code]Exemple à 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 | modifier le code]- 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
[modifier | modifier le code]180° :
-vf mirror,flip
Réparer index
[modifier | modifier le code]ffmpeg -i input.avi -c copy output.avi
Kino
[modifier | modifier le code]Export
[modifier | modifier le code]Autres / XVid / High Quality full size, VBR,...
Autres Traitements Videos
[modifier | modifier le code]- 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 | modifier le code]- 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
[modifier | modifier le code]Avec mplayer :
mplayer tv:// -vo gl2 mplayer tv:// -tv device=/dev/video2 -vo gl2
Concaténer deux PDF
[modifier | modifier le code]pdftk pdf1.pdf pdf2.pdf cat output pdf-final.pdf
Extraire la page 5
[modifier | modifier le code]pdftk pdf1.pdf cat 5 output pdf-final.pdf
Tourner une page
[modifier | modifier le code]pdftk plan1.pdf cat 1west output plan2.pdf
Réduire résolution d'images à l'intérieur d'un pdf
[modifier | modifier le code]gs -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
[modifier | modifier le code]pdfimages source.pdf ./ mogrify -crop 1300x2200+535+523 *.pbm convert *.pbm cible.tif tiff2pdf cible.tif > cible.pdf
Conversion d'un PDF en images
[modifier | modifier le code]pdftoppm 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
[modifier | modifier le code]Essayer 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
[modifier | modifier le code]https://patrick-nagel.net/blog/archives/199
Modifier la couleur de police
[modifier | modifier le code]- 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
[modifier | modifier le code]ebook-convert in.epub out.pdf --paper-size a4 --pdf-default-font-size 10
Images
[modifier | modifier le code]Modifier un lot d’image
[modifier | modifier le code]- 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
[modifier | modifier le code]Tunnel SSH
[modifier | modifier le code]Video
[modifier | modifier le code]ssh 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
[modifier | modifier le code]ssh user@ip arecord - | vlc -
VIRTUALISATION - Émulation
[modifier | modifier le code]VMWare
[modifier | modifier le code]Move or Copy ?
[modifier | modifier le code]Move !!!
Usage excessif du Swap par VMWare
[modifier | modifier le code]Normalement, 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
[modifier | modifier le code]Failed 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
[modifier | modifier le code]Use /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
[modifier | modifier le code]Voir Utiliser des apk Androïd sous Linux
SCIENCE
[modifier | modifier le code]GnuPlot
[modifier | modifier le code]Tracé interactif
[modifier | modifier le code]En 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
[modifier | modifier le code]GTK
[modifier | modifier le code]Librairies : gtk-compiling