Anamnese         


La puissance d'Unix par rapport au système informatique le moins posix et le plus diffusé au monde ne réside pas que dans sa stabilité. Les possibilités de configuration sont infinies, et les outils de gestion du sytème très performants, en particulier la ligne de commande (shell / console) qui permet de presque tout faire avec. Ce ne sont pas les pages internet sur le sujet qui manquent, aussi je ne peux que conseiller de s'y reporter pour des explications plus complètes.

Voir par exemple : http://fr.wikipedia.org/wiki/Unix pour une présentation générale et l'histoire d'Unix.

Nous n'allons pas faire d'explications détaillées sur le système, mais donner quelques indications qui peuvent servir pour mieux l'appréhender, le comprendre ou le dépanner.

Cela peut également m'aider pour avoir toujours sous la main les diverses astuces que j'ai pu découvrir au fil du temps.
Les notes qui vont suivre proviennent toutes soit de découvertes personnelles, soit de renseignements pris sur internet. À utiliser à vos propres risques. Je suis également constamment en train de les réorganiser, donc il peut y avoir des inversions, de mauvais placements etc.

Quelques conseils additionnels :
Même si un système de fenêtrage et de bureau comme celui livré avec KDE ou Gnome est très intéressant, il peut être très instructif d'essayer quelque chose de moins « convivial », mais qui permet un apprentissage plus rationnel du système. WindowMaker est tout indiqué, car même si une partie est très intuitive, il nécessite quand même d'utiliser certaines commandes en console. Loin d'être rébarbative, la console est un outil très puissant.

Consulter la source de ce document au format txt2tags

Ce travail est publié sous licence Creative Commons BY-NC-SA




Linux


Actuellement le système qui a le vent en poupe et est le plus connu du grand public, il a permis le développement de nombreux projets liés aux Unix.

Voir des info pour d'autres OS :



Debian


Ici, quelques spécificités à la distribution Debian.


Réinstaller un système à l'identique


dpkg --get-selections >mes_paquets
pour obtenir la liste des paquets depuis l'ancien ordinateur
dpkg --set-selections < mes_paquets
apt-get dselect-upgrade
(voir éventuellement (apt-get upgrade))

On peut également utiliser debconf :

# debconf-get-selections --installer > preseed.cfg
# debconf-get-selections >> preseed.cfg

Il suffit ensuite de récupérer le fichier généré pour le passer en paramètre à d-i au démarrage de l'installation avec l'option et les arguments (au choix) suivants :

preseed/url=http://some.example.com/preseed.cfg preseed/file=/floppy/preseed.cfg


Récupérer de vieux paquets


http://snapshot.debian.net/


préparer l'installation d'un paquet tandis qu'un autre est déjà en train de s'installer


inotifywait -e close /var/lib/dpkg/lock && apt-get install paquet

(inotify-tools)


effacer un paquet qui pose probleme


dpkg --purge --force-remove-reinstreq paquet


reconstruire un paquet debian


fakeroot -u dpkg-repack paquet

Créer un paquet :


  • depuis les sources :

    apt-get source programme
    cd programme
    dpkg-buildpackage -rfakeroot

  • depuis le début :
    http://www.debian.org/doc/devel-manuals#maint-guide

  • créer un paquet depuis les sources
    (méthode non officielle)

    faire : ./configure --prefix=/usr && make && make install prefix=/tmp/programme/

    récupérer les fichiers générés dans /tmp/programme et construire l'arborescence debian à partir de là.


ou utiliser checkinstall (à la place de make install) qui peut créer spécialement des paquets à partir des sources.


checkinstall --dpkgflags=--force-overwrite

(en cas d'installation à problème)

dpkg -i archive.deb : installation paquet debian
dpkg -s archive.deb : info sur une archive
dpkg -l : liste les paquets disponibles
dpkg --extract paquet.deb /répertoire/ : extraire un paquet deb

ar vx package.deb && tar -xzvf data.tar.gz : extraire un paquet deb si vous n'utilisez pas Debian

dpkg -P programme : suppression packetage debian
dpkg --force-overwrite -i nomdupaquet.deb
dpkg-deb --build paquet : générer un paquet debian
dpkg --get-selections > selections.txt : liste des paquets installés
apt-get remove --purge archive.deb : supprime une archive
apt-cache search nom : cherche des infos dans les paquets disponible
apt-cache show paquet.deb : liste les infos sur un paquet.
Debian : pas de touche supérieur / inférieur : éditer /etc/X11/XF86Config et mettre XkbModel "pc104" - XkbModel "pc105"
apt-cache search kernel-image
apt-get install kernel-image
http://www.debian.org/distrib/packages


Exemple de création d'un paquet binaire Debian


install the dependencies for compiling:

sudo apt-get install libglib2.0-dev libgnome2-dev libossp-uuid-dev libgnomevfs2-dev libgtkhtml3.14-dev libxml2-dev libgconf2-dev libgtk2.0-dev libgtkspell-dev libdbus-glib-1-dev libgtksourceview2.0-dev libgnomecanvas2-dev libpango1.0-dev libgnomeui-dev
libsdl1.2-dev libsdl-mixer1.2-dev

create the folders (for example)

/opt/Debian/gnome-inform7_5U92_i386/usr
/opt/Debian/gnome-inform7_5U92_i386/DEBIAN

create the /opt/Debian/gnome-inform7_5U92_i386/DEBIAN/control file

Package: gnome-inform7
Version: 5U18
Section: contrib
Priority: optional
Architecture: i386
Depends: libgtk2.0-0, libgnomeui-0, libuuid1, libgtksourceview2.0-0, libgtkhtml3.14-19, libgtkspell0, libfreetype6, libsdl-image1.2, libsdl-sound1.2, libsdl-mixer1.2, libpng12-0, libdbus-glib-1-2
Suggests: frotz, gargoyle
Maintainer: Your name
Description: GNOME port of the Inform 7 IDE
GNOME Inform 7 is a GNOME port of the Inform 7 integrated development environment for Inform 7. Inform 7 is a "natural" programming language for writing interactive fiction (also known as text adventures.)

(maybe I've required too many dependencies, but I think it needs most of them...)

create a copyright file :

/opt/Debian/gnome-inform7_5U92_i386/usr/share/gnome-inform7/copyright

uncompress the sources in a temp folder

then

./configure --prefix=/usr
make
make install prefix=/opt/Debian/gnome-inform7_5U92_i386/usr

Then from /opt/Debian run :

dpkg-deb --build gnome-inform7_5U92_i386


Mes mises à jour les plus courantes


apt-get install abcm2ps abcmidi fluxbox inform psi konqueror kate parted qtparted gimp inkscape blender gimp-svg xpdf grisbi gnucash gv vlc xmms iceweasel icedove firefox thunderbird pstoedit gorm xfe worker gftp gaim nedit

Archlinux


Ici, quelques spécificités à la distribution Archlinux.


  • pacman -Syu : mettre à jour le système complet
  • pacman -Sy : mettre à jour la base des paquets pour les installations individuelles

  • pacman -Ss paquet : recherche ce qui est relatif à paquet
  • pacman -S paquet : installe le paquet

  • pacman -Rs paquet : retire un paquet (avec confirmation)

  • pacman -Rdd paquet : retire un paquet en forçant même s'il y a des dépendances manquantes par la suite

  • pacman -Qeq : liste les paquets installé

  • pacman -Scc : vide le cache

  • tupac -Qdt : trouver et effacer les paquets orphelins (à utiliser avec prudence...)

  • pacman -Qo fichier : à quel paquet appartient ce fichier (own)

    autres options

    head -n 1 /var/log/pacman.log | awk '{print $1" "$2}' : trouver la date de première installation de archlinux

  • Créer une liste des paquets installés : ``` pacman -Qe | sed -e "s-.*/\(.*\)-\1-" | cut -d ' ' -f 1 > liste
  • réinstaller archlinux à partir de cette liste : ``` pacman -S `cat liste`

    Variante :
  • yaourt --backup
  • yaourt -Qet --backupfile pacman-indicesauveparyaourt.tar.bz2 > TopLevelPackages.txt
  • yaourt -S TopLevelPackages.txt

  • installer un paquet d'un dépôt particulier : pacman -Sy testing/kde (activer testing auparavant dans /etc/pacman.conf, faire une mise à jour de la base avec pacman -Sy, puis désactiver testing ensuite)

  • makepkg : créé un paquet installable par "pacman -U paquet" à partir d'un pkgbuild de AUR

  • équivalent checkinstall: http://www.methylblue.com/wocka/ + nstallwatch

  • Shaman : interface graphique gestion des paquets (déprécié, maintenant uniquement pour le fork d'Arch nommé chakra)
  • pkgbrowser : interface graphique affichage des paquets
  • appset-qt (+packer) : interface graphique gestion des paquets
  • Archassistant : aide à la configuration

    Installer depuis une distribution existante

    Quelques paquets utiles pour un bureau complet :

    pacman -S sudo ardour audacity automake compiz-decorator-kde compiz-manager dvd+rw-tools fbpanel flashplayer-standalone flashplugin gedit gtk-engine-murrine gtk-theme-switch2 kmplayer vlc ktorrent lxpanel lxde-common openoffice-fr putty rosegarden tango-icon-theme-extras tellico thunderbird tightvnc txt2tags windowmaker wine vim openbox blender inkscape gimp k3b digikam xfce4 gnome geany kde firefox thunderbird make checkinstall gcc freemind alsa-utils xorg mesa

    quelques paquets additionnel à installer avec yaourt :

    `` yaourt -S gnome-inform7 abcm2ps-latest gargoyle inform love nfrotz frotz aurtools aurup milkytracker schismtracker-cvs kernel26-rt

Créer un paquet pour AUR


http://wiki.archlinux.org/index.php/AUR_User_Guidelines

Aur permet aux utilisateurs de contribuer aux recettes de compilation de paquets.
Éditer le PKGBUILD
makepkg -s
nettoyer le dossier et le compresser
l'envoyer sur les dépôts avec aurup

éventuellement utiliser aurcreate pour générer le paquet.

http://arm.kh.nu/ : anciens paquets en cas de problème de mise à jour.


Divers


  • Pas d'accès aux clés usb : se rajouter dans le groupe "storage" : sudo gpasswd -a son_login storage

  • Clavier en français sous Archlinux, fichiers à modifier :
    • /etc/X11/xorg.conf.d/10-evdev.conf : Option "XkbLayout" "fr"
    • /etc/hal/fdi/policy/10-keymap.fdi
    • /etc/rc.conf

  • http://wiki.archlinux.fr

Administration réseau et internet


Configurer le réseau manuellement


ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up
route add default gateway 192.168.0.2
echo "nameserver 193.252.19.3" >> /etc/resolv.conf
# l'exemple donné est celui de Wanadoo
echo "nameserver 194.2.0.20" >> /etc/resolv.conf
# oleane (ainsi que 194.2.0.50)

pour modifier sous Debian le type d'interface (dhcp ou ip fixe) :


/etc/network/interfaces

indiquer INET = DHCP ou INET=STATIC


  • rajouter un second réseau :

    ifconfig eth0:1 192.168.12.15

  • info sur la route :
    ip route show

DNS


les DNS (système de noms de domaine) se trouvent dans le fichier de configuration /etc/resolv.conf

Normalement il vaut mieux utiliser un serveur de son fournisseur d'accès, mais en cas de panne on peut en utiliser un public, par ex :


nameserver 193.22.143.11
# serveur DNS public de Cyrealis : Clubic, Jeuxvideo.com

on trouve une liste de DNS publics ici :

http://80.247.230.136/dns.htm (attention au phishing quand même...)


Désactiver ipv6


si vous n'avez pas accès à l'ipv6, autant le désactiver.


  • debian
    In /etc/modprobe.d/aliases
    alias net-pf-10 off
    alias ipv6 off

    http://beranger.org/index.php?article=1127

  • suse
    Changer dans /etc/modprobe.conf
    alias net-pf-10 ipv6
    ->
    alias net-pf-10 off
    alias ipv6 off
    (Reboot éventuel)

Désactiver le window scaling TCP


Il est parfois mal perçu par certains parefeu ou routeur :

temporairement :


echo 0 > /proc/sys/net/ipv4/tcp_window_scaling

il est possible de modifier plus finement :


echo 4096 65536 65536 >/proc/sys/net/ipv4/tcp_rmem
echo 4096 65536 65536 >/proc/sys/net/ipv4/tcp_wmem

définitivement : mettre "net.ipv4.tcp_window_scaling=0" dans /etc/sysctl.conf


Régler le MTU


Il est possible de modifier le MTU (maximum transfert unit, c-à-d la taille maximale de chaque paquet IP transmis) avec :


ifconfig ppp0 mtu 800

La valeur par défaut est de 1500. Baisser cette valeur peut être efficace sur une connexion modem ou qui a des difficultées.


Changer le protocole de négociation (half / full duplex)


  • Linux
    mii-tool -F 100baseTx-FD eth0

    les options possibles sont : 100baseTx-FD, 100baseTx-HD, 10baseT-FD, or 10baseT-HD

Services http


Il permettent une gestion de la machine au travers d'un navigateur internet


  • swat (http://localhost:901) pour configurer le partage samba

  • webmin (http://localhost:10000) pour configurer le système

  • cups (http://localhost:631) pour configurer les imprimantes

  • vmware : les ports nécessaires sont HTTPS sur le port 443, MUI1 sur le port 8222 (non sécurisé, redirige vers le suivant), MUI2 sur le port 8333 (port sécurisé), vmware-authd sur le port 902.

  • ejabberd (http://localhost:5280/admin/) pour configurer un serveur ejabberd

divers


IP Masquerade


faire un script dans ce style, et le lancer au démarrage de la machine, ou après la connexion :


#!/bin/bash
case $1 in
start)
echo Starting IP Masquerade
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
echo "1">/proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
;;
stop)
echo Stopping IP Masquerade - not yet implemented -
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage : ipmask {start|stop|restart}"
exit 1
esac
exit 0

wakeonlan


  • installer ethtool et wakeonlan

  • sur la machine de destination à réveiller, activer wol avec :

    ethtool -s eth0 wol g

  • vérifier l'état avec ethtool eth0

    Il devrait y avoir :
    Supports Wake-on: g
    Wake-on: g

    Si Wake-on est à d cela signifie qu'il n'est pas activé (disabled)

  • Récupérer l'adresse mac de la machine avec ifconfig.

  • Lancer le réveil sur le poste client avec wakeonlan #adressemac

  • Sur un réseau internet, utiliser l'ip et éventuellement un port, comme ceci :

    wakeonlan -i adresseip -p 9 00:15:58:45:91:72 ou 00:1E:8C:8F:22:27

    Sur une freebox, on peut activer un proxy WOL

  • Attention sur certaines cartes nvidia (forcedeth), parfois il faut inverser les nombres de l'adresse mac pour que le WOL fonctionne

Alarme


Sur eeepc par exemple :


sudo sh -c 'echo "2009-03-22 00:00:00" > /proc/acpi/alarm'

(attention, décaler d'une heure éventuellement car cela utilise l'heure bios)


Installer un proxy apache


modifier httpd.conf en retirant les commentaires (débutant par #) des lignes qui parlent de proxy
ex :


LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

et ensuite inclure ces lignes :


<IfModule mod_proxy.c>
ProxyRequests On
<Proxy *>
Order deny,allow
Deny from all
Allow from 192.168.0.2
Allow from 192.168.0.3
#indiquer l'ip des ordinateurs qui se connecteront à ce proxy.
#Ensuite renseigner ces ordinateurs avec adresseserveur:port,
#par ex 192.168.0.1:80]
</Proxy>
</IfModule>

Ports


rpcinfo -p : liste des ports

lsof -i : liste les fichiers n rapport avec une connexion internet

netstat -a : info sur les connexions

fuser

ifconfig : entre-autres permet de savoir sa propre adresse ip

iftop: liste les connexions

htop : top amélioré
ntop : top pour les connections

pppstatus : liste le traffic réseau

cat /proc/net/dev : activité réseau.

sudo lsof -i -n -P : voir les ports ouverts

netstat -pan | grep :21 (par exemple ici port 21)

netstat -lntup : Pour connaîtres les programmes derrière les ports ouverts (en root)

iptables -L -v -n : voir les ports


Infos sur un site


  • avec le paquet dnsutils :

    host -t any site.org

    dig site.org


Bloquer un site avec iptables


Ex :


iptables -A FORWARD -d ebuddy.com -j DROP
iptables -I INPUT -s 38.99.72.122 -j DROP


iptables -A FORWARD -d rtl.fr -j DROP
iptables -I INPUT -s 81.52.140.9 -j DROP

iptables -A FORWARD -d badoo.com -j DROP
iptables -I INPUT -s 194.228.191.30 -j DROP

Installer LAMP (Linux, Apache, MySQL, Php)


(voir http://www.ac-creteil.fr/reseaux/systemes/linux/installation-lamp-debian.html)
Ou sinon utiliser xampp si c'est juste pour du développement : http://www.apachefriends.org/fr/xampp.html

Sous Debian, apt-get install phpmyadmin devrait suffire à tout installer du fait des dépendances.


  • xampp bloqué pour mysql : faire :


    sudo chown -R nobody:nogroup /opt/lampp
    sudo chmod -R 777 /opt/lampp/ # (attention faille sécurité)
    sudo chmod -R 644 /opt/lampp/phpmyadmin/config.*
    sudo chmod -R 644 /opt/lampp/etc/


  • Tester le stress d'un serveur :

    par exemple :

    ab -n 100 -c 10 http://localhost/pmwiki-2.2.33/pmwiki.php

    (chez moi pmwiki procure 3 fois moins de stress que wordpress pour l'installation de base)

Installer les paquets de base pour compiler en C


  • Debian :

    apt-get install build-essential


Quelques ip courantes


  • pour tester une connexion si besoin est :

    http://www.google.com = 216.239.41.104
    http://mail.yahoo.fr = 216.109.127.30
    http://www.free.fr = 213.228.0.42


Des moteurs de recherche alternatifs




Faire une copie d'écran d'un site en mode console


kwebdesktop 800 600 vignette.png http://ifiction.free.fr/

Modifier le nom de machine


hostname nomdemachine : défini le nom de machine
modifier également /etc/hosts /etc/hostname
éventuellement /etc/samba/smb.conf


Samba


voici la partie qu'il faudra ajouter à fstab pour monter directement un partage distant, et en autoriser l'accès à tous les utilisateurs de la machine :


//cheminreseau /mnt/chemindemontage smbfs auto,users,umask=0777,username=votrelogin,password=votremotdepasse,rw, 0 0

Si le montage ne se fait pas correctement, taper : mount -a ou mount //serveur/repertoire

Pour un montage direct :


mount -t smbfs -o username=votrelogin,password=votremotdepasse //cheminreseau /mnt/chemindemontage

Du côté serveur (au sens large, c'est à dire ordinateur où on se connecte), soit cela tourne sous MSWindows et il n'y a qu'à définir les partages et les mots de passe à partir de là, soit il faut modifier sous linux ce fichier en ajoutant ce type d'entrée :

section /etc/samba/smb.conf :


[eric]
comment = Eric
path = /home/eric
browseable = yes
read only = no

puis :


/etc/init.d/samba restart

Ne pas oublier de définir un ou des utilisateurs Samba avec la commande :


smbpasswd -a login motdepasse

pour configurer un serveur public sans aucune restriction d'accès, il faut avoir un fichier smb.conf sur ce modèle :


[global]
workgroup = votre-groupe-de-travail
netbios name = nom-ordinateur
os level = 20
encrypt passwords = true
server string = Serveur public
security = share

[partage]
writeable = yes
public = yes
path = /partage
browseable = yes
read only = no
force user = root
force group = root

Nfs


Il peut sembler plus logique d'utiliser NFS si toutes les
machines tournent sous linux : voir les fichiers /etc/exports,
/etc/hosts.allow, /etc/hosts.deny (exportfs -ra après edition)

/etc/exports contiendra par exemple :
# repertoire liste-machines-autorisées (liste-options)
/home/fichierpartage machine1(ro) machine2(rw)

en plus avancé :

/home/fichierpartage 192.168.31.137(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongid=65534) 192.168.31.142(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongid=65534)

pour valider, faire exportfs -a et relancer le service nfs

pour monter un répertoire nfs distant, modifier dans fstab :


adresseip:/home/fichierpartage /mnt/pointdemontage nfs defaults,nfsvers=2 0 0

(nfsvers=2 est optionel, uniquement pour les vieux serveurs unix nfs par exemple)


mount -t nfs adresseip:/home/fichierpartage /mnt/pointdemontage

ou pour les vieux serveurs unix :


mount -o nfsvers=2 adresseip:/home/fichierpartage /mnt/pointdemontage

Webdav


Box


Il est possible de monter un répertoire webdav distant dans l'arborescence de fichiers. Exemple avec box.com :


  • Installez davfs, par exemple yaourt davfs2, apt-get install davfs2 ou yum install davfs2
  • Créez le point de montage, par exemple mkdir /mnt/box
  • rajoutez dans /etc/fstab :

    https://www.box.com/dav /mnt/box davfs rw,user,noauto 0 0

  • rajoutez dans /etc/davfs2/secrets

    https://www.box.com/dav utilisateur@email.com motdepasse

  • éditez /etc/davfs2/davfs2.conf et modifiez # use_locks 1 vers use_locks 0
  • montez le dossier mount /mnt/box (en root)
  • vérifiez les droits pour /mnt/box (par exemple avec chmod ou chown)

Ftp


utiliser vsftpd, rapide et facile à configurer
si cela bloque à cause de xinetd : kill -hup `pgrep xinetd`

voir
http://www.siliconvalleyccie.com/linux-hn/ftp-server.htm

sinon
avec pure-ftp
http://www.trustonme.net/didactels/?rub=57

En fait pour lancer le serveur, une commande comme :


pure-ftpd -A -H

peut suffire (je pense qu'il doit y avoir quelques sécurités là dessus, contrairement à la commande toute seule).

Par contre il faut juste configurer quel répertoire sera partagé, et pour cela je conseille de lire cette page : http://www.trustonme.net/didactels/57.html

en gros c'est :


# mkdir /var/ftp

(ou /srv/ftp)

Vérifier que notre utilisateur/groupe ftp n'existe pas déjà:


# cat /etc/passwd|grep ftp
ftp:x:14:50:FTP User:/var/ftp:
# cat /etc/group|grep ftp
ftp:x:50:

Comme on peut le voir ici, l'utilisateur ftp existe déjà avec /var/ftp (ou /srv/ftp) comme répertoire maison et il appartient au groupe ftp. Donc rien a faire en théorie, mais pour les besoins de l'exemple on va faire comme si on avait rien vu ;-)
Création de l'utilisateur ftp:


$ su
Password:
# groupadd -g 23 ftp
# useradd -d /var/ftp -g 23 -u 14 ftp -s /bin/false

c'est pas bien difficile, et une fois que c'est fait, on est tranquille, il y a juste à lancer le serveur à distance.

Ici il y a une note pour avoir une adresse à jour avec dyndns :
http://guides.ovh.com/DynDns/contenu.html

regarder du côté du script Addns.pl


  • client ftp : synchroniser un site ftp avec du local


    lftp -u username,password -e "mirror --reverse --delete --only-newer --verbose path/to/source_directory path/to/target_directory" ftpsite

    (attention, efface sur le serveur tout ce qui n'existe pas en local...)


    lftp -u username,password -e "mirror --reverse --only-newer --verbose path/to/source_directory path/to/target_directory" ftpsite

    (pour ne pas tout effacer)

    pour faire un miroir local :


    lftp -u username,password -e "mirror --delete --only-newer --verbose path/to/source_directory path/to/target_directory" ftpsite


  • trouver son adresse ip :

    wget -q -O - http://www.monadresseip.fr/ | grep -m 1 "<code>" | sed s/"<[/]*code>"/""/g

    curl checkip.dyndns.org


Messagerie


Jabber


  • server ejabberd : si utilisation locale, ne pas utiliser localhost, mais un nom commun sur le réseau pour toutes les machines connectées (à rajouter dans /etc/hosts). Si pas de connexion sur le port 5222, mettre 1080 par exemple, à modifier dans /etc/ejabberd/ejabberd.cfg
  • démarrer le serveur avec ejabberdctl start
  • L'admin locale peut se faire sur http://localhost:5280/admin/

Forward de mail


  • 1 (recommandé)
    Avec sendmail, il suffit d'avoir un fichier .forward dans le dossier de l'utilisateur. Une ligne par adresse de courriel, en indiquant en premier l'adresse locale si on veut en avoir une copie dans la boîte habituelle:

    .forward
    martin
    martin.trucmuche@yahoo.fr

  • 2 (alternative)

    Il est possible également d'avoir dans le fichier /etc/fetchmailrc

    poll pop.wanadoo.com with proto POP3
    user "martin@domaine.fr.fto" there with password "azerty" is e.martin here

    /etc/aliases :

    e.martin: martin, martin.trucmuche@yahoo.fr

    (où martin est le login sur le serveur)

    (et finir avec newaliases pour activer l'alias)

Supprimer un forward de mail de façon conviviale


Pour que l'utilisateur puisse supprimer ou réactiver son forward de mail sans avoir à se logger sur le serveur, il est possible d'utiliser procmail pour lancer un script qui annule ou réactive le forward. (Exemple ici vers un blackberry)

Créer un fichier /etc/procmailrc (normalement cela devrait être possible d'utiliser un ~/.procmailrc dans le dossier de l'utilisateur, mais je n'ai pas réussi à le faire fonctionner ainsi)


:0
* ^Subject: .*berry_stop
|/home/login_utilisateur/scripts/blackberrystop.sh

:0
* ^Subject: .*berry_start
|/home/login_utilisateur/scripts/blackberrystart.sh

Créer un fichier ~/forwardstop_blackberry avec juste l'adresse locale de l'utilisateur
Créer un fichier ~/forwardstart_blackberry avec l'adresse locale de l'utilisateur + l'adresse vers laquelle transférer (voir plus haut pour le .forward)

Créer 2 scripts à appeler par procmail :

blackberrystop.sh


#!/bin/sh
echo "Vos messages ne seront **plus** transferes sur le blackberry a partir de maintenant."| mail login_utilisateur -s "STOP transferts vers blackberry"
sleep 40
cp /home/login_utilisateur/forwardstop_blackberry /home/login_utilisateur/.forward

blackberrystart.sh


#!/bin/sh
cp /home/login_utilisateur/forwardstart_blackberry /home/login_utilisateur/.forward
echo "Vos messages seront transferes sur le blackberry a partir de maintenant." | mail login_utilisateur -s "transferts messages vers blackberry"

Ainsi votre utilisateur pourra s'envoyer un courriel avec le sujet berry_start pour activer le forward, et avec berry_stop pour le désactiver.

Attention, le fait que cela soit dans /etc/procmailrc au lieu de ~/.procmailrc fera que n'importe quelle adresse ciblée sur le domain activera le script. De plus n'importe de l'extérieur qui connaîtra le truc pourra s'amuser à activer ou désactiver la redirection. Il devrait être possible d'affiner la règle selon l'adresse d'envoi par exemple.


sécurité


Parefeu


partage réseau, manage firewall : firestarter


  • Redirection de port

    /sbin/iptables -t nat -A PREROUTING -p tcp --dport 5151 -j DNAT --to 192.168.0.45:22

    ceci redirige le traffic tcp arrivant sur le port 5151 vers la machine locale 192.168.0.45 port 22

    et pour sauvegarder la règle (sous fedora dans l'exemple) :

    /sbin/iptables-save > /etc/sysconfig/iptables

  • ouvrir un port :

    /sbin/iptables -A INPUT -p tcp --dport 8080 -m state --state NEW -j ACCEPT

    ou

    /sbin/iptables -A public -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

    la règle : -A public -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

  • pour ouvrir un port public :

    /sbin/iptables -A public -p tcp --dport 80 -j ACCEPT

  • voir les redirections :

    /sbin/iptables -nL -t nat

  • voir les informations sur iptables :


    /sbin/iptables -nL -v --line-numbers

  • retirer une règle :


    iptables -D <chain> <rule nb#>

    Il est possible également de retirer une règle en passant la même commande que pour l'ajouter, mais en remplacant -I ou -A par -D

ssh


  • Connexion shell sécurisée ssh

    pour une connexion distante sécurisée (remplace telnet) ssh utilisateur@serveur

  • limiter l'accès ssh a quelques utilisateurs seulement

    ajouter à /etc/ssh/sshd_config la ligne :
    AllowUsers user1 user2
    Port 9022 % change le port
    PermitRootLogin no
    MaxStartups 2 %limite le nombre de tentatives de connexions
    MaxAuthTries 2

    pour avoir les logs des utilisateurs connectés de la semaine

    cat /var/log/secure.* | grep Accepted | awk -F' ' '{print $1" "$2" "$9}' | uniq -u

    sous Red Hat

    ou

    cat /var/log/auth.* | grep Accepted | awk -F' ' '{print $1" "$2" "$9}' | uniq -u

    sous Debian / Archlinux et autres

    vérifier rapidement les connexions :

    cat /var/log/auth.* | grep port

    installer également denyhosts / fail2ban

  • Ouvrir un ou des tunnels SSH

    Cette commande permet d'ouvrir un tunnel ssh à un port que vous choisirez. Traditionnellement, pour les ports systèmes (en dessous de 1000), on rajoute 1000 à ce port.

    sudo ssh -N -f monlogin@serveur -L1080:192.168.26.166:80 sleep 60

    sudo ssh -N -f monlogin@serveur -L1022:192.168.26.166:22 -L1080:192.168.26.166:80 -X -L5901:192.168.26.166:5901 -L5900:192.168.26.166:5900 sleep 60

    Pour se connecter sur un port donné, il suffit de se connecter en local sur le port indiqué. Par exemple pour faire du X forward en passant par un serveur qui n'a pas X11 :

    ssh monlogin@localhost -p 1022 -X

  • VPN par pptp

    pptpsetup --create pptp --server ipduserveur --username "login" --password "motdepasse" --start --encrypt

  • Vérifier les utilisateurs qui se sont loggés récemment en ssh

    cat /var/log/secure.1 /var/log/secure | grep Accepted | awk -F' ' '{print $1" "$2" "$9}' | uniq -u | mail youremail-or-login -s "Login Report"

    ou

    cat /var/log/auth* | grep Accepted | awk -F' ' '{print $1" "$2" "$9}' | uniq -u | mail youremail-or-login -s "Login Report"


  • Régénérer les clés :

    ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
    ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key


nmap (Scanner des adresses ip)


nmap -vv -sV adresse (attention, cette commande peut être mal interprétée ou considérée comme une attaque sur le réseau...)

juste sur un port :


nmap -vv -sV -p 80 adresse

nmap -sS -O -PI -PT 192.168.0.0/24 : voir les machines sur le réseau + diverses info

nmap -sP 192.168.0.0/24 : liste simplement les machines sur un réseau local


conseils sécurités réseau


(trouvé sur linuxfr, librement adapté)

sécurité info :

Pour les vecteurs d'attaque, en général


  • L'échelon 1 est de charger un script php ou ruby qui va permettre d'avoir un pseudo-shell.
  • L'échelon 2 est accéder a un compte ssh, pour ça on va casser en brute force tout les mots de passe dispo dans des htpasswd et autre lisibles
  • L'échelon 3 on essaye de passer root (sudo, suid, ou kernel vulnérable)
  • L'échelon 4 on maquille le tout

    Pour se protéger :
    • NE LAISSEZ JAMAIS LISIBLE par l'utilisateur sous lequel les script php tournent les fichiers contenant des mots de passe
    • utilisez des mot de passe aléatoires pour les accès à la base de donnée sql
    • ne jamais utiliser un mot de passe pour le compte unix utilisé dans une base sql (sinon ils auront qu'à faire un coup de john et ils ont l'accès ssh)
    • ne pas mettre une pubkey pour ssh dans son home (s'ils obtiennent le compte unix, un accès ftp, pop ou autre c'est game over)
    • ne pas mettre de sudo root (ou alors le désactiver automatiquement à la déconnexion)

scp


scp permet de copier d'une machine à une autre de façon sécurisée (sur le modèle de la connexion ssh), il remplace rcp. Sa syntaxe est :


scp -P22 fichier nom@url:chemin

voir aussi :
sftp://serveur dans konqueror
secpanel (http://www.pingx.net/secpanel/)


Anonymat


  • Tor + privoxy permet d'ajouter une couche de sécurité supplémentaire (proxy)

  • i2p : http://www.i2p2.de/

  • cookies : javascript:alert(document.cookie); affiche les cookies implanté sur la page

  • Autorisation de redémarrage par [alt]+[ctrl]+[del] :

    Dans /etc/inittab, modifier la ligne ca::ctrlaltdel:/sbin/shutdown -r now (ou équivalente) par ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now

    mettre un fichier nommé shutdown.allow dans le répertoire /etc , et inclure dans ce fichier le nom des utilisateurs autorisés à rebooter par [alt]+[ctrl]+[del]

    Pour autoriser tout le monde à le faire par défaut, sans créer de nouveau fichier shutdown.allow, il suffit de changer la même ligne par :ca::ctrlaltdel:/sbin/shutdown -t3 -h now

    sinon utiliser sudo halt

ssh et rsync


créer un fichier pour ssh2 (id_dsa et id_dsa.pub)


ssh-kengen -t dsa

copier la clé sur le serveur où on veut avoir une connexion automatique :


scp .ssh/id_dsa.pub login@serveur:.ssh/keys2

et une fois sur le serveur copier la clé générée à la fin du fichier authorized_keys2 :


cat keys2 » authorized_keys2

(http://linux.developpez.com/secubook/node64.php)

dans le cas où vous voulez une clé sans mot de passe, pour un serveur rsync par exemple :

Générer la clé, en root, sur le client : ssh-keygen -t dsa choisir comme destination par exemple /root/.ssh/remotehost.id_dsa
mot de passe vide
dans /root/.ssh/config :


Host remotehost
User root
Compression yes
Protocol 2
RSAAuthentication yes
StrictHostKeyChecking no
ForwardAgent yes
ForwardX11 yes
IdentityFile /root/.ssh/remotehost.id_dsa

copier /root/.ssh/remotehost.id_dsa.pub et copier le contenu à la fin du fichier du serveur : /root/.ssh/authorized_keys2 file

(http://killyridols.net/rsyncssh.shtml)
(http://www.jdmz.net/ssh/)

script de sauvegarde :


#!/bin/sh

#########################################################
# Script to do incremental rsync backups
# Adapted from script found on the rsync.samba.org
# Brian Hone 3/24/2002
# adapted later...
# This script is freely distributed under the GPL
# http://www.fr.linuxfocus.org/Francais/March2004/article326.shtml
#########################################################

##################################
# Configure These Options
##################################

###################################
# mail address for status updates
# - This is used to email you a status report
###################################
MAILADDR=youremail@yourhostname

###################################
# HOSTNAME
# - This is also used for reporting
###################################
HOSTNAME=yourhostname

###################################
# directory to backup
# - This is the path to the directory you want to archive
###################################
BACKUPDIR=/home
BACKUPDIR2=/var/spool/mail

###################################
# excludes file - contains one wildcard pattern per line of files to exclude
# - This is a rsync exclude file. See the rsync man page and/or the
# example_exclude_file
###################################
EXCLUDES=/home/exclude_rsync

###################################
# root directory to for backup stuff
###################################
ARCHIVEROOT=root@192.168.26.164:/home/sauvegardes/

#########################################
# From here on out, you probably don't #
# want to change anything unless you #
# know what you're doing. #
#########################################

# directory which holds our current datastore
CURRENT=main

# directory which we save incremental changes to
INCREMENTDIR=`date +%Y-%m-%d`

# options to pass to rsync
OPTIONS="-e ssh --force --ignore-errors --delete --delete-excluded \
--exclude-from=$EXCLUDES --backup --backup-dir=$ARCHIVEROOT/$INCREMENTDIR -avz"

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin

# make sure our backup tree exists
install -d $ARCHIVEROOT/$CURRENT

# our actual rsyncing function
do_rsync()
{
rsync $OPTIONS $BACKUPDIR $ARCHIVEROOT/$CURRENT
rsync $OPTIONS $BACKUPDIR2 $ARCHIVEROOT/$CURRENT
}

# our post rsync accounting function
do_accounting()
{
echo "Backup Accounting for Day $INCREMENTDIR on $HOSTNAME:">/tmp/rsync_script_tmpfile
echo >> /tmp/rsync_script_tmpfile
echo "############################">>/tmp/rsync_script_tmpfile
du -sh $ARCHIVEROOT/* >> /tmp/rsync_script_tmpfile
echo "############################">>/tmp/rsync_script_tmpfile
df -h >> /tmp/rsync_script_tmpfile
echo "Mail $MAILADDR -s $HOSTNAME < /tmp/rsync_script_tmpfile"
Mail $MAILADDR -s $HOSTNAME < /tmp/rsync_script_tmpfile
echo "rm /tmp/rsync_script_tmpfile"
rm /tmp/rsync_script_tmpfile
}

# some error handling and/or run our backup and accounting
if [ -f $EXCLUDES ]; then
if [ -d $BACKUPDIR ]; then
# now the actual transfer
do_rsync && do_accounting
else
echo "cant find $BACKUPDIR"; exit
fi
else
echo "cant find $EXCLUDES"; exit
fi


  • copier juste un fichier (ici sur un port spécifique 2222 pour ssh) :

    rsync -avz ./fichier.txt -e 'ssh -p 2222' login@serveur:~login


  • en local :

    rsync -autv /home/* --exclude=foo bar

    copiera tout dans "bar" sauf les répertoires/fichiers ayant la chaîne foo

Sauvegardes incrémentielles


  • Utilisation de rsync

    rsync -cvrtz --delete --stats --progress --backup

    --backup-dir="Backups/"`eval date +%Y%m%d-%H%M%S`"/" --suffix=""

    --exclude="Backups/" --exclude="Temp/" /chemin/dossier

    rsync://serveur/utilisateur

    front end : WINrsync


  • Utilisation de unison

    http://www.jalix.org/ressources.maison/2s/unison/html/index.html

    unison nom où nom.prf est le fichier de configuration situé dans le répertoire .unison (il est bien sûr possible de le faire fonctionner en ligne de commande pour débuter, avec deux répertoires bidons).

    root = ssh://machine//rep répertoire racine distant
    root = replocal répertoire racine local
    path = sousrep sous-répertoire de root à synchroniser
    follow = symlink suivre le lien symbolique symlink
    ignore = Name *.o ignorer les fichiers .o
    log = true créer un fichier log
    logfile = .unison/log le nom du fichier log
    include = nom include le fichier nom.prf du répertoire .unison

    par exemple chez moi j'ai cela pour archiver mes documents de travail : ~/.unison/wd.prf

    # Unison preferences file

    root = /home/eric/_mesdocs
    root = /media/WDPASSPORT5/ERIC/_mesdocs
    prefer = /home/eric/_mesdocs

    #supply a ssh key without a password
    # sshargs = -p 1022 # si vous passez par un accès distant ssh, par un tunnel etc...

    #file attributes
    #times = true
    #owner = true
    #group = true

    #merge = diff3 -m CURRENT1 OLD CURRENT2 > NEW

    #backup
    backup = Name * #backup everything
    #backuplocation = central #do not store in same dir
    #backupdir = /tmp/unisonbackup #store here
    maxbackups = 5
    #minbackups = 2 #deprecated ?
    #delete after 30 days
    #maxbackupage = 30 #deprecated ?

    ignore = Name Thumbs.db
    ignore = Name *~
    ignore = Name *.tmp
    ignore = Name .DS_Store
    ignore = Name ._.DS_Store

    # place new files at the top of the list
    sortnewfirst = true


Administration de machine, système


Fichiers et dossiers de configuration utiles


/etc/inittab : conf demarrage machine

/etc/rc.local : lancer des commandes au démarrage

/etc/motd : message of the day : celui qui figure après chaque authentification.

/etc/issue : message de pré-connection

/etc/apt/source.list : fichiers mise à jour debian

/etc/mozilla-firefox/pref/unix.js : config firefox
/usr/share/apps/ksplash/Themes/Default/splash_top.png : logo démarrage KDE

distributor-logo.png : fichier à rechercher pour modifier l'icône du menu "applications" de gnome

/etc/apt/apt.conf : permet de modifier la version debian :
-> APT::Default-Release "unstable"; (ou testing etc.)
/etc/sysconfig

/usr/sbin/kbdconfig : configuration langue du clavier


Login automatique


mingetty http://easymamecab.mameworld.net/html/autologin.htm

/etc/inittab file, before and after.


1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

1:2345:respawn:/sbin/mingetty --autologin utilisateur tty1
2:2345:respawn:/sbin/mingetty tty2

Effacer des fichiers


Effacer de manière sécurisée un fichier :


shred -uv -n 3 fichiertexte

(effacer avec 3 itérations, en version verbose)


Sauvegarder archive avec redondance


Voir parchive2 et la commande par2


Refaire le grub


mount -o bind /dev /mnt/root/dev
mount -t proc none /mnt/root/proc
mount -t sysfs none /mnt/root/sys (optionnel ? n'existe pas partout ainsi par exemple sysfs)

copier si nécessaire /etc/resolv.conf dans /mnt/root/etc

chroot /mnt/disque_a_refaire_le_grub /bin/bash
mount /dev/sda# /boot
grub-install /dev/sda

où le # dans /dev/sda# est le numéro de la partition (sda ou hda)

éventuellement /usr/sbin/update-grub

ensuite, éventuellement

faire un chroot ou au démarrage

grub
root (hd0,0)
setup (hd0)

(à adapter selon le cas réel)

et si nécessaire :
mknod /dev/console c 5 1

(après avoir démonté les proc et dev liés au système hôte)


shell et console


Quelques commandes générales Unix


ces commandes ne sont pas à proprement parler des programmes complets, ce sont des utilitaires livrés avec le "shell", l'interface de la console. On les trouve en général sur toutes les distributions de Linux, et parfois sur Unix.

permet d'entrer du code directement à copier / coller dans la console, jusqu'à la partie EOF


cat > fichier << "EOF"
ls -all # code...
df -h # code etc...
EOF

usermod -a -G wheel eric : ajoute l'utilisateur eric au groupe wheel

lynx -head http://site... : donne des info sur le serveur du site

mkdir -p /chemin/suitechemin/dossier : créer un répertoire avec chemins complets

ps -afx : liste processus avec arborescence hiérarchique

ps axfw : variante

procinfo -a : infos sur la machine et ce qui tourne dessus.

strace -eopen programme : voir les différentes procédures exécutée et les appels de modules lors du démarrage d'un programme

clear / ctrl + l : efface l'écran de la console (remet à 0)

free -mt : utilisation de la ram (indications en Mo)

vmstat -S M -s : ram

dmesg : messages utiles sur la configuration, générés par le noyau

lesspipe : permet d'afficher le contenu de diverses archives avec less.
Sous bash export LESSOPEN="| /usr/bin/lesspipe %s".
Dans certaines distribution les commandes lesspipe et less sont déjà liées.

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/' : affiche les dossiers sous forme d'arborescence (équivalent à tree).

chown eric /home/eric -R : change l'appartenance de tous les fichiers du répertoire /home/eric et ses sous répertoire

killall programme : arrête le programme

ln -s /chemin/source/ /chemin/lien : créé un lien symbolique de lien vers source

modprobe ehci-hcd : active USB2 ?
modprobe -r usb-ohci : desactive module usb-ohci
modprobe -c : liste les modules

echo "test" > /dev/pts/9 : affiche le message "test" sur l'écran virtuel 9 (valable également pour tty1 etc...)


printf '\e[31m mon message en rouge \e[0m' > /dev/`finger eric | grep "on pts" | cut -f 9 -d' '`

(ne fonctionne pas forcément avec bash?)

http://ordiluc.net/fs/libetc/ : pour changer le chemin des fichiers de config en .

xterm -hold -e commande : permet de passer une commande dans un nouveau terminal

chvt 1 / chvt 2 : permet de changer de console (simule alt+f1, alt+f2 etc)


  • aller dans un répertoire contenant une fichier passé en argument avec $1 par exemple : cd "${1%/*}"

  • terminal sans X : changer la police de caractère : setfont drdos8x16 (tester avec cybercafe par exemple)

  • résolution du terminal sans X :


    Colors ( depth) 640x480 800x600 1024x768 1280x1024 1600x1200
    ---------------+-------+-------+--------+---------+---------
    256 ( 8 bit)| 769 771 773 775 796
    32,768 (15 bit)| 784 787 790 793 797
    65,536 (16 bit)| 785 788 791 794 798
    16.8M (24 bit)| 786 789 792 795 799

    Passer l'argument dans grub (menu.lst) :
    kernel /vmlinuz-2.6 root=/dev/hda3 ro vga=794 (à adapter selon ses besoins bien sûr)


Screen


Screen permet d'avoir plusieurs sessions shell dans la même console.
Quelques commandes :
ctrl + a puis ctrl + c (C-a c) : créer une nouvelle session
C-a w : affiche la session courante
C-a n : session suivante - C-a p : session précédente
C-a " : liste les fenêtres
C-a d : détache une session / screen -r : réattache la session
C-a S : (split) Sépare la fenêtre en deux / C-a : navigue entre les fenêtres. / C-a " permet d'affecteur une session à une fenêtre vide.
C-a x : depuis une autre session permet de suivre ce qui se passe.


Sudo


sudo permet à un utilisateur normal de lancer des commandes d'un superutilisateur, en tapant :


sudo commande

Il faut pour cela inclure dans le fichier /etc/group les utilisateurs en question, et éditer le fichier /etc/sudoers (il est recommandé de le faire avec visudo)


# sudoers file.
#
# This file MUST be edited with the "visudo" command as root.
#
# See the man page for details on how to write a sudoers file.

# sudoers file.
#
# Host alias specification
Host_Alias ICI = localhost, nommachine, 192.168.100.2
Host_Alias LOCALNET = 192.168.100.*

# User alias specification
User_Alias ROOT_FRIENDS = utilisateur1, utilisateur2

# Cmnd alias specification
Cmnd_Alias SOUND = /usr/bin/xmms
Cmnd_Alias SHUTDOWN = /sbin/shutdown, /sbin/halt, /sbin/reboot
Cmnd_Alias PPPCMD = /etc/ppp/scripts/pppconnect, /etc/ppp/scripts/pppdisconnect
Cmnd_Alias PRINTINGCMDS = /usr/bin/lpq, /usr/bin/lprm
# Runas alias specification
# User privilege specification
# root peut tout !
root ALL=(ALL) ALL
# Les amis de root peuvent lancer les commandes
# du groupe SHUTDOWN
ROOT_FRIENDS ICI = NOPASSWD: SHUTDOWN
# ils peuvent aussi administrer l'imprimante (mais sous
# le compte de lpadmin, avec un mot de passe) :
ROOT_FRIENDS ICI = PRINTINGCMDS
# tout le monde peux lancer xmms avec les droit de root (pour le
# mode 'temps réel') en local
ALL ICI = NOPASSWD: SOUND
# tout le monde sur le réseau local peut demander l'établisement
# de la liaison internet
ALL LOCALNET = NOPASSWD: PPPCMD
#Dave a un répit de 200 minutes avant de rentrer de nouveau le mot de passe
#indiquer -1 pour ne l'entrer qu'une seule fois
Defaults:dave timestamp_timeout=200, passwd_tries=5

créer une série de liens


for A in * ; do ln -sf `pwd`/$A /../chemin/$A ; done

s'il y a des espaces dans les noms de fichiers, préférer :


for a in *; do ln -s "$a" "$(echo $a | tr '[A-Z]' '[a-z]')" ; done

On peut également redéfinir la variable d'environnement "IFS" (Internal Field Separator), par défaut à l'espace pour éviter cela :


export IFS=@
for A in * ; do ln -sf $A `echo $A | tr '[A-Z]' '[a-z]'` ; done

Petits scripts utiles


Rechercher des mots


Installer words (pour /usr/share/dict/), et taper par exemple :


grep '^va..er$' /usr/share/dict/french

mot de passe pour bloquer un programme


note : cette astuce peut être facilement contournable


#!/bin/bash

Password=`zenity --entry --hide-text --text "Entrez le mot de passe"`
Pass2=`echo $Password | md5sum | cut -c1-32`
if [ $Pass2 = "b8b4a79df11085fe608c17f6d7340002" ]; then
/usr/bin/firefox
else
zenity --error --text "Mot de passe incorrect"
fi

Pour trouver le checksum du mot de passe (ex ici : buzz), tapez (en rajoutant le \c pour supprimer le retour à la ligne) :


  • echo -e "buzz\c" | md5sum

    ou

  • php -r 'echo md5("buzz");'

modifier les espaces


find . -type f -name "* *" -print0 | \
perl -n0e '$old = $_; s/ /_/g; rename $old, $_'

changer la casse des fichiers d'un répertoire


#!/bin/sh
for i in *
do
j=`echo $i | tr '[A-Z]' '[a-z]'`
mv $i $j
done

retirer espace dans une liste de fichier


  • avec ruby

    ruby -e'Dir["* *"].each{|f| File.rename(f,f.delete(" "))}'


  • changer en _

    • bash :

      for i in *" "* ; do
      j=`echo $i | sed -e 's/ /_/g' `
      mv "$i" "$j"
      done

      ou avec %20 si nécessaire

      for i in *.pdf ; do
      j=`echo $i | sed -e 's/%20/_/g' `
      mv "$i" "$j"
      done

    • en une ligne à copier/coller

      for i in *" "* ; do j=`echo $i | sed -e 's/ /_/g' `mv "$i" "$j" ; done


Changer l'extension d'un fichier


for file in *.htm ; do mv $file `echo $file | sed 's/\(.*\.\)htm/\1html/'` ; done

Remplacer une chaîne de caractère unique dans plusieurs fichiers en même temps


par exemple pour remplacer le point d'interrogation (symbole 3F) de fichiers html récupérés par wget (gestionnaire de téléchargement en ligne de commande) : (à tester avant pour être certain de ne pas effacer les fichiers de destination...)


for i in *.htm* ; do sed -i -e "s/%3F/@/g" $i ; done (à corriger sans doute)

Convertir des fichiers pdf en ps et vice versa


(attention, travaillez sur une copie du dossier, ça efface les fichiers pdf d'origine)


for A in *.pdf ; do pdf2ps $A ; done ; for B in *.pdf ; do ps2pdf $B ; done ; for C in *.pdf.pdf ; do mv -f $C `echo $C | sed 's/\.pdf\.pdf/.pdf/'` ; done ; rm -fr *.ps

Convertir du texte en dos / unix / mac


  • mac2unix : cat $1 | tr '\r' '\n'

  • unix2mac : cat $1 | tr '\n' '\r'

  • dos2unix : cat $1 | tr -d '\r' ou utiliser le programme existant : dos2unix -b -d fichier.txt

  • unix2dos : nawk 'sub("$", "\r")' unixfile.txt > dosfile.txt (awk ou gawk, nawk...)
    ou utiliser le programme existant : unix2dos unixfile.txt dosfile.txt

  • en Perl

    • DOS -> Unix :
      perl -p -e 's/\r$//' < dosfile.txt > unixfile.txt
    • Unix -> DOS :
      perl -p -e 's/$/\r/' < unixfile.txt > dosfile.txt

Utiliser les regex dans geany


  • remplacer du texte + des chiffres qui changent :

    • TITRE 345 (etc)

      ^TITRE ([0-9]+)$


Utiliser de l'unicode dans Vim


:edit ++enc=utf-8


Commandes utiles Vim


  • pour mettre vim par défaut avec la commande vi :
    sudo update-alternatives --config vi

  • Créer un onglet
    :tabnew
  • Vérifier l'orthographe
    :set spell
  • Donner des statistiques pour un document (nb de mots, caractères...)
    :set statusline=…
  • Activer les retours à la ligne dynamique
    :set wrap
    * Do not split words over two lines
    Default vim behavior
    * Display line numbers
    :set nu
    * Highlight current line
    :set cursorline
    * Highlight matching bracket
    Default in vim 7

  • Dupliquer une ligne : yy puis p (yank & paste)

  • couper les lignes aux mots et non pas à la lettre :
    :set lbr!


Convertir un dossier de iso-8859-15 vers utf8 (titre des fichiers)


convmv -r -f iso-8859-15 -t utf8 .

Cela affiche tout les changement qui vont être effectués et si c'est bon, on rajoute juste --notest

ou utiliser utf8migrationtool


Convertir le contenu de fichiers d'iso-8859 vers utf8


direct (pour un seul type de fichier), mais pose pb si le fichier est déjà uft8 :


#!/bin/sh

mkdir backup.iso8859
for ii in *.php
do
iconv -f ISO-8859-15 -t UTF-8 "$ii" -o "$ii.utf8"
mv "$ii" "backup.iso8859/$ii.iso8859.old"
mv "$ii.utf8" "$ii"
done

avec test :


#!/bin/sh
# http://utrac.sourceforge.net/ est nécessaire pour ce script

mkdir backup.iso8859
#chemin=`pwd`
for ii in *.t2t *.txt *.php *.htm*
do
# tt=`file "$ii" | grep ISO-8859`
tt=`utrac -p "$ii"`
if [ "$tt" == ISO-8859-1 ] || [ "$tt" == ISO-8859-15 ]
then
echo "$ii est en $tt, il sera converti en utf8"
iconv -f ISO-8859-15 -t UTF-8 "$ii" -o "$ii.utf8"
mv "$ii" "backup.iso8859/$ii.iso8859.old"
mv "$ii.utf8" "$ii"
else
echo "$ii est déjà en $tt, il ne sera pas modifié"
fi
done
echo "Vos anciens fichiers ont été archivé dans backup.iso8859"

Utiliser un autre encodage de façon temporaire


export LANG=fr_FR@euro && programme

export LANG=fr_FR.UTF-8 && programme

avec `dpkg-reconfigure` locales auparavant si l'encodage n'est pas déjà installé.


renommer une série d'images (ou autres)


n=0
for i in *.jpg; do
n=$((n+1))
result=`printf 'photos%04d.jpg' $n`
mv "$i" $result
done

Renommer une partie d'un nom de fichier


  • par exemple pour renommer part_5465.pdf et part_5467.pdf en newname_5465.pdf et newname_5467.pdf

for old in *part*.pdf
do
new=`echo $old | sed 's/part/newname/g'`
mv $old $new
done

ou pour des photos numériques :


for old in *IMG*.jpg
do
new=`echo $old | sed 's/IMG/newname/g'`
mv $old $new
done

  • en tiff, rajouter -compress lzw

  • pour retirer une double extention :

    rename .pbm.tiff .tiff *.pbm.tiff


Renommer des images selon leur date exif


Pour obtenir à partir de par exemple DSC_2236.JPG -> DSC_2012-05-09_201941.jpg de la forme NOM-de-BASE_année-mois-jour_heureminutesecondes.jpg

Utiliser jhead :


jhead -nDSC_%Y-%m-%d_%H%M%S *.JPG

  • Même chose pour des films :

    • pour extraire le nom :

      mediainfo DSC_0893.MOV |grep -i Tagged |uniq | cut -d 'C' -f 2 | sed -e "s/://g" |sed -e "s/ /_/g"

    • pour renommer :

      par sécurité, on ne fait que copier les fichiers avec le nouveau nom, à vous ensuite d'effacer les anciens fichiers

      for old in DSC*.MOV
      do
      new=`mediainfo $old |grep -i Tagged |uniq | cut -d 'C' -f 2 | sed -e "s/://g" |sed -e "s/ /_/g"`
      cp $old video$new.mov
      done

  • Enfin, pour réencoder en .webm et renommer en même temps :

    for old in DSC*.MOV
    do
    new=`mediainfo $old |grep -i Tagged |uniq | cut -d 'C' -f 2 | sed -e "s/://g" |sed -e "s/ /_/g"`
    ffmpeg -i $old -threads 2 -rc_lookahead 16 -level 116 -acodec libvorbis -ac 2 -b:a 96k -ar 44100 -qmin 1 -qmax 31 -minrate 0 -maxrate 1500k -s 640x424 video$new.webm
    done


avec option -ss 0 -t 0:00:30 pour ne garder qu'une plage

Pour archiver avec une meilleure qualité :


for old in DSC*.MOV
do
new=`mediainfo $old |grep -i Tagged |uniq | cut -d 'C' -f 2 | sed -e "s/://g" |sed -e "s/ /_/g"`
ffmpeg -i $old -threads 2 -rc_lookahead 16 -level 116 -acodec libvorbis -ac 2 -b:a 96k -ar 44100 -qmin 1 -qmax 15 -minrate 1500k -maxrate 4000k -s 640x424 video$new.webm; done

(l'option -deinterlace n'est pas toujours adaptée, si la qualité de base est bonne sans entrelacement, il vaut mieux l'éviter)


changer la qualité d'images jpg ou convertir depuis un autre format


mkdir convert
for A in *.png ; do convert -quality 82 $A convert/$A.jpg ; done

Mettre des photos numériques dans un format plus correct pour l'envoi par courriel (resample)


mkdir convert
for A in *.jpg ; do convert -auto-orient -quality 84 -geometry 1280x1280 $A convert/label_$A ; done

(auto-orient permet de suivre les directives exif pour orienter la photo correctement dans l'exportation)


Réduire le poids (la résolution) des images d'un document OpenOffice/LibreOffice


Vous (ou un de vos proches) avez voulu créer un document avec openoffice, mais les images incluses, sorties tout droit d'un appareil photo numérique à 10M de pixels, sont dans une résolution beaucoup trop grosse par rapport à la qualité d'impression nécessaire, si bien que votre ordinateur rame et votre document n'est pas facilement gérable (par exemple il faut 100 Mo avec 30 images dedans).

Bien entendu, vous ne vous y ferez pas reprendre 2 fois, mais en attendant, ce petit script permet de corriger cela, il suffit tout d'abord de créer une copie de votre document, nommée doc.odt.

Le fichier résultant, doc2.odt, devrait être au moins 4 ou 5 fois plus léger, et les images garderont placement et taille d'affichage d'origine.

Attention, si vous avez dedans des images avec une taille correcte, ces images également seront réduites. Il est possible de passer les commandes à la main et éventuellement de garder certaines images du dossier originel avant de copier dedans les images exportées et réduites.

Il est possible également (mais pas systématique) qu'openoffice indique que le fichier résultant soit corrompu, mais il peut corriger les erreurs sans problème apparement.


unzip doc.odt -d doc
cd doc/Pictures
mkdir export
for A in *.jpg ; do convert -scale 40% $A export/$A ; echo "$A scaled by 40%" ; done
cp -fr export/* ./
rm -fr export
cd ../
zip -r ../doc2.odt *
rm -fr doc

Désactiver le diaporama automatique (pps)


pour qu'une diapo de type powerpoint, au format pps (slide) ne s'ouvre pas automatiquement en diaporama dans OpenOffice, il suffit de la renommer en .ppt, et on pourra afficher les images une à une.


récupérer les photos d'écran d'un site


for i in `cat listeUrls.txt`;
do
firefox -remote "openurl($i)" # open url in firefox
xwd -id xxx | wxdtopnm|pnmtopng > "$i".png # capture firerox window to png
done

Créer un fichier cbz à partir d'une liste d'images


lisible par comix (ou son successeur mcomix)


for a in * ;
do zip -r "$a".cbz "$a" ;
done
ls *.cbz > comics.txt


Pour convertir d'un pdf en image (jpg) :


pdfimages -j fichier.pdf nom_image

Renommer :


for file in *.rar ; do mv "$file" `echo "$file" | sed 's/\(.*\.\)rar/\1cbr/'` ; done

for file in *.rar ; do mv "$file" "$file".cbr ; done


télécharger des fichiers avec wget


si la valeur s'incrémente et que l'on n'a pas accès à l'index :


#!/bin/bash
i=1
while [ $i -le 300 ] ; do
wget http://www.site.com/$i.jpg
i=$(($i + 1))
done

renuméroter :


#!/bin/bash
i=10
while [ $i -le 99 ] ; do
mv $i.jpg 0$i.jpg
i=$(($i + 1))
done

  • pour télécharger un site en php et rétablir le code html utiliser ces options :
    wget --mirror -p --html-extension --convert-links http://site


  • pour ne télécharger que certains types de fichiers :

    wget -A gif,jpg,pdf


  • récupérer la source d'une liste de fichiers wikipedia :
    i=1
    while [ $i -le 34 ] ; do
    wget https://fr.wikisource.org/wiki/Pantagruel/Chapitre_$i?action=raw
    i=$(($i + 1))
    done

  • assembler :

    i=1
    while [ $i -le 34 ] ; do
    cat Chapitre_$i\?action\=raw >> pantagruel.t2t
    i=$(($i + 1))
    done


Télécharger un fichier avec wget sur dl.free.fr


#First step is set cookie
wget --save-cookies cookie.txt --keep-session-cookies urlFichier -O tmpFile

#Second step is retry with cookie
wget -c --load-cookies cookie.txt urlFichier

#Then clean tmp file
rm tmpFile cookie.txt

pour charger un fichier depuis la ligne de commande :

http://dl.free.fr/cx2Y3q5Gt/free_upload.rb


limiter la vitesse de téléchargement


wget --limit-rate=15k

limiter la charge CPU


cpulimit -efirefox-bin -l25

Pour ne pas que firefox utilise plus de 25% du CPU.


changer la fréquence du CPU


  • mettre une fréquence dynamique : echo ondemand | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

    (il faudra peut-être avoir les paquets cpufrequtils et sysfsutils d'installés..., et que le module cpufreq_ondemand soit actif)

    info cpu : cpufreq-info

    pour l'avoir de façon permanente : modifier /etc/sysfs.conf et ajouter :

    devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand # à la place de performance

    ou choisir le module cpufreq_conservative qui est plus progressif

limiter le téléchargement à des sous-dossiers uniquement


wget -r -np

(--no-parent et recursif)

-R rejlist (ou --reject rejlist) : pour éviter de télécharger certains types de fichiers


modifier le format de la date


date '+ %Y-%d-%m %H:%M:%S' //(par exemple)//

Trouver un fichier / un programme


find ~/ -name '*.txt'

  • trouver des fichiers dans des sous-répertoires, en ignorant la casse :
    find ./ -iname '*partie_du_nom*'

    • avec plus de précision :
      find ./ -depth -maxdepth 4 -iname '*partie_du_nom*'


  • Trouver tous les liens symboliques :

    find ~/dossier -type l


  • trouver les fichiers qui n'ont pas été accédés depuis au moins 60 jours dans le /home
    find ~ -maxdepth 1 -iname '.*' -atime +60

Créer un script qui recherche et convertit des fichiers :


rm -fr /tmp/xml
mkdir /tmp/xml
cp `find ./ -depth -maxdepth 3 -name '*.xml'` /tmp/xml
cd /tmp/xml
for ii in *.xml
do
sed -i -e "s/encoding=\"UTF-8\"/encoding=\"ISO-8859-15\"/g" $ii
iconv -f UTF-8 -t ISO-8859-15 "$ii" -o "$ii.txt"
done
rm -fr /tmp/xml/*.xml

  • find /home/bozo/projects -mtime 1 : fichier du jour
  • find / -mtime -1 -size +50000 -print : fichier du jour + grand que 50 Mo
  • xdev : évite les fichiers hors du sytème
  • find / -name Makefile -print -xdev
  • find /usr -type f | xargs grep -l "Welcome to" : trouver la chaîne "welcome to" dans le répertoire /usr

    `grep -Eri "chaine de caractère" *` : chercher une chaîne dans un répertoire et ses sous-répertoires

    locate fichier : trouve un fichier

  • locate de findutils est souvent remplacé par mlocate qui fonctionne différemment, par exemple de base ça exclut le dossier /media des supports amovibles (à corriger si nécessaire dans /etc/updatedb.conf), et updatedb ne prend pas en compte l'affichage d'un support qui a été retiré (pour cela utiliser updatedb -l 0)
    Pour ne pas que l'update se fasse chaque nuit : chmod -x /etc/cron.daily/updatedb

    faire un script dans ce style pour pouvoir rechercher avec plusieurs arguments : locategrep.sh :

    locate -i $1 |grep -i $2

  • updatedb : met à jour la base de donnée de locate
  • updatedb -e dirs : exclure des répertoires de la mise à jour de updatedb
  • updatedb -f fstypes : exclure des systèmes de fichier de la mise à jour de updatedb

  • which programme : permet de trouver dans quel répertoire se trouve un programme

    http://freebooks.by.ru/view/RedHatLinux6Unleashed/rhl6u205.htm Remplacer du texte
    Attention, non vérifié pour le moment. A tester avant.

    find . -type f -exec sed -ie 's/texte original/texte à remplacer/;s/autre texte original/autre nouveau texte à remplacer/;' {} ';'


Trouver une machine, une adresse IP


nmblookup nom_netbios : permet de trouver l'ip d'une machine dont on connait le nom de partage samba


Astuces du shell


  • !! refait la dernière commande

  • !cmd refait la dernière commande commençant par cmd

  • !cmd:p permet de visualiser sans executer la dernière commande commençant par cmd
  • !$ permet de retrouver la dernière commande entrée commençant par cette lettre
  • !cmd:$ est le dernier mot de la dernière ligne de commande commençant par cmd
  • !* est l'ensemble de la dernière ligne de commande à part le premier mot
  • & : à la fin d'une commande en console, permet l'exécution de nouvelles commandes
  • [tab] : autocomplétion des commandes
  • history : liste des dernières commandes
  • [ctrl]+r : recherche d'une dernière commande tapée
  • !commande : retape la dernière commande qui débute de cette manière

    De par leur faible taille, les astuces suivantes ne méritent pas forcément un paragraphe dédié

  • Calculer : echo 5/2+3*2 |bc -l : calcule 5 divisé par deux, et additionne 3 multiplié par 2
  • bc : calculette mode console
  • scale=20 ajoute 20 digits de précisions à bc

  • aterm -tr -trsb -shading 85 -fade 65 : effet sur la console aterm
  • aterm -tr -trsb -shading 45 -fade 75 -fg white
  • aterm -tr -fg white -bg black -sh 35 -trsb

  • /proc/kcore : ce fichier apparemment gros n'est qu'une image de la mémoire physique : le supprimer n'est pas pertinent.

  • fuser -vm /mnt/peripherique_ou_disque : indique qui utilise quoi
  • adduser : ajouter un utilisateur
  • userdel -r utilisateur : retire un utilisateur
  • passwd utilisateur : changer le mot de passe d'un utilisateur

  • trouver occurence de mots :
    cat texte.txt | tr " " "\n" | sort | uniq -c | sort -n >> resultat.txt

  • Trouver les mots où une lettre est présente dans un texte (par exemple ici avec 'z') :
    cat texte.txt | sed "s/ /\n/g" | grep 'z'

    ou encore :
    cat texte.txt | grep -o '[a-z]*a[a-z]*'


  • supprimer les lignes commençant par *
    cat texte.txt |sed 's/^*\(.*\)$\r//g'


  • Trouver le nombre de lettres d'un fichier (sans les espaces)
    cat fichier.txt | perl -pe 's|[\s]||g' | wc -c

  • donne la version du noyau : ``` uname -r

  • classer / séparer des champs avec awk :
    awk -F":" '{ print $1 " " $3 }' /etc/passwd


crontab


Ne pas oublier de faire tourner crond en daemon
fichier /etc/crontab (debian ?)
ou fichier crontab perso à éditer avec crontab -e

(lequel se trouvera ensuite dans /var/spool/cron/votre_login )

* * * * * script

remplacer les étoiles par :
minute heure jour_du_mois mois_de_année jour_de_semaine

ou placer un script dans /etc/cron.daily ou /etc/cron.### etc.

(http://www.ac-creteil.fr/reseaux/systemes/linux/cron.html)

Utilisez de préférence le chemin complet des applications.


  • éteindre le système dans 30 minutes : shutdown -h +30
  • éteindre le système à 23h : shutdown -h 23:00
  • redémarrer à 23 h : shutdown -r 23:00

at


faire tourner atd
et démarrer at avec par exemple ``` at now +2 minutes

Entrer la commande. S'il s'agit d'une application graphique, rajouter la variable DISPLAY, par ex :


DISPLAY=:0.0 /usr/bin/dillo

Voir les travaux en cours avec ``` atq

Application graphique pour gérer cela : gnome-schedule


GCC


  • Compiler un binaire en statique :

    Rajouter -static au moment du linkage, par exemple :

    gcc -static -O -o binaire truc1.o truc2.o -Lglktermw -lglktermw -lncursesw


  • Compiler en 32 bits :

    configure CFLAGS="-m32 -O3" CXXFLAGS="-m32 -O3 -fno-strict-aliasing"


Anecdotes


  • envoie un message amusant au root

    echo "rpub \"w'nv yr cnffjbeq ebbg\"|znvy ebbg" |tr a-mn-z n-za-m|/bin/sh

  • Affiche une fractale dans la console

    echo '9k[l:l;s<s=0l>x]s"[1+l<dd*l=d*-l;+ds<rl=2**l:+ds=d*rd*+4<-d15>>] s>[q]s-[d77/3*2-s;47l"x-P1+d78>`]s`0[d23/.5-3*s:0l`xr10P1+d24>$]ds$x'|dc


Résolution de problèmes typiques


Firefox


  • Pas de police ni de menu dans kde4 + erreur :

    (firefox:20402): Gtk-WARNING **: Default font does not have a positive size
    (firefox:20402): Gtk-WARNING **: Default font does not have a family set

    • installer éventuellement gtk-kde4 et oxygen-gtk
    • effacer ~/.gtkrc-2.0-kde4
    • choisir des polices et leur taille dans "gtk style" du gestionnaire de config KDE

  • Performances :

    • Régler intervalle de snapshots : browser.sessionstore.interval
    • nombre de back/forward : browser.sessionhistory.max_entries
    • pages chargées en mémoire : browser.sessionhistory.max_total_viewers : mettre -1 ?
    • tab fermées que l'on peut recharger : browser.sessionstore.max_tabs_undo

      voir http://kb.mozillazine.org/About:config_entries

Debian


  • apt: Dynamic MMap ran out of room :
    -> editer /etc/apt/apt.conf et augmenter APT::Cache-Limit 25165824;

  • Plus d'icône dans Gnome (surtout linux PPC) :
    rm /usr/share/icons/*/icon-theme.cache

  • message : Gtk-WARNING **: Icon cache '/usr/share/icons/hicolor/icon-theme.cache' is invalid

    sudo rm /usr/share/pixmaps/hicolor/autopackage-installer.png
    sudo rm /usr/share/icons/hicolor/autopackage-installer.png

  • ssh: symbol lookup error: ssh: undefined symbol: EVP_Cipher : réinstaller openssl

  • la souris s'affiche normalement au démarrage, puis si on redémarre le serveur X, le curseur disparaît :
    Modifier dans /etc/X11/xorg.conf, ajouter dans la Section "Device"
    Option "HWCursor" "false"

    (si beryl est activé, sans cette option, ou sans SWCursor, à On, la souris risque de clignoter).

  • plus de montage automatique (konqueror ou autre) :
    voir si ce n'est pas : /usr/share/hal/fdi/policy/gparted-disable-automount.fdi

  • ssh_exchange_identification: Connection closed by remote host

    ajouter le code :
    sshd:ALL
    dans le fichier /etc/hosts.allow

VNC


Fatal server error:
could not open default font 'fixed'

indiquer :


vncserver -fp /usr/share/fonts/misc/ (ou un chemin correct)

Noyau debian plus récent


ajouter :
deb http://kernel-archive.buildserver.net/debian-kernel trunk main


Fichier partagé hors du chemin


Si un programme doit avoir une bibliothèque partagée qui ne se trouve pas dans le chemin habituel, par exemple /home/moi/monprojet, il suffit d'ajouter une entrée à

/etc/ld.so.conf.d/malibperso.conf


php


le passage de paramètres dans l'url ne fonctionne pas :
editer /etc/php5/apache2/php.ini
et mettre register_long_arrays à On

(le mieux est d'écrire du code complet avec $_GET['id'] par ex)

il est possible également d'écrire :


<?
foreach ($_POST as $key => $value) $$key = addslashes($value);
foreach ($_GET as $key => $value) $$key = addslashes($value);
?>

ou dans .htaccess :


php_flag register_long_arrays On
php_flag register_globals on

C / CPP


error: ‘strlen’ was not declared in this scope

-> #include <string.h> dans le fichier incriminé.


LaTeX


Fatal format file error; I'm stymied

lancer en tant qu'utilisateur :


fmtutil --all

pdflatex.fmt doesn't match pdftex.pool

  • effacer ~/.texmf-var et / ou ~/.texlive/texmf-var

Noyau


compiler le noyau


1/ récupérer les sources du noyau avec yast ou smart ou synaptic (ou autre...)
2/ vérifier que /usr/src/linux pointe bien vers ces sources.
3/ faire un :
cp /boot/config-2.6.18.2-34-default /usr/src/linux/.config_mylogin (ou n'importe quel autre nom)

4/ Changer une ou des options, par exemple éditer le fichier copié dans le /usr/src/linux, et à la ligne :


# CONFIG_USB_DEVICEFS is not set

mettre :


CONFIG_USB_DEVICEFS=y

5/ aller dans le répertoire source (en root) :


# cd /usr/src/linux
# make mrproper
# make menuconfig

choisir l'option Load an Alternate Configuration File et relisez votre config en entrant son nom (.config_mylogin )
vous pouvez un peu bidouiller dedans mais bon, attention quand même
Vous pouvez notamment optimiser votre noyau pour votre archi.
Mais sinon vous pouvez seulement sauvegarder :

Do you wish to save your new kernel configuration?

et cela sauvegarde dans le fichier .config. Je pense également que l'on peut dès le début taper cp /boot/config-2.6.18.2-34-default /usr/src/linux/.config , éditer le fichier et le compiler direct.

6/ pour la compilation :


# make
# make modules_install
# make install

compiler des modules


vérifier que le fichier /usr/src/linux/include/linux/utsrelease.h existe bien.
Sinon :


make oldconfig

make prepare

convertir de iso vers utf


iconv -f iso-8859-1 -t utf-8 fichier > fichier2


récupérer un texte perdu en mémoire


cp /proc/kcore /tmp/mem.dump
strings /tmp/mem.dump > /tmp/mem.txt
rm /tmp/mem.dump
grep /tmp/mem.txt|less

ou bien

grep -a -C 50 "extrait du texte" /proc/kcore > /tmp/recup.txt

ou encore :

sudo cp /proc/kcore /tmp/Image_RAM && strings /tmp/Image_RAM | grep 'extrait du texte'


scanmem : modifier la mémoire


scanmem permet de modifier des données en mémoire. Utile pour tricher dans des jeux, y compris des jeux dans un émulateur (atari st par exemple)

récupérer le pid du logiciel à scanner (avec top par exemple)


sudo scanmem 45210 (numéro de pid)

au prompt, indiquer la valeur à modifier. Attendre qu'elle se modifie une seconde fois ou plus. Lorsqu'une seul occurence est trouvée, la modifier avec "set valeur".


  • choisir la langue du système
    utiliser : set-language-env http://www.libordux.org/debian-docs/config.php

  • date et heure

    date -s 20:00:00 : mettre le système à l'heure (ici 20:00)
    date 032820352004 : changer heure + date système (ici 28/03/2004, à 20:35) (Linux)
    date 200403282035 : changer heure + date système (BSD) hwclock --systohc : changer heure matériel (bios)
    ntpdate ntp.univ-tln.fr / ntpdate ntp.univ-lyon1.fr : mettre à l'heure le système à partir d'un serveur de temps.
    liste sur http://www.cru.fr/NTP/serveurs_francais.html cal 1450 : afficher le calendrier de l'an 1450

  • Home persistant (livecd)
    Pour accéder à un répertoire utilisateur persistant d'une version à l'autre de Knoppix, il faut donner le chemin complet lors du démarrage :
    ex :
    knoppix lang=fr home=/dev/hda5/.knoppix.img

  • Démarrage automatique de programmes / scripts

    Créer un script dans /etc/init.d/

    chmod +x /etc/init.d/nomduscript

    update-rc.d -f nomduscript start 98 5 . (par exemple)

    update-rc.d nomduscript start 20 2 3 4 5 . stop 20 0 1 6 .

    Il y a également plus rapide si vous avez certains scripts à démarrer, c'est de faire un script principal de cette forme :

    bootup.sh :
    #!/bin/sh
    /home/adresse/script.sh
    vncserver :port
    sshd

    puis :
    cp ./bootup.sh /etc/init.d/
    chmod +x /etc/init.d/bootup.sh
    update-rc.d -f bootup start 20 2 3 4 5 . stop 20 0 1 6 .

    résultat :
    /etc/rc0.d/K20bootup.sh -> ../init.d/bootup.sh
    /etc/rc1.d/K20bootup.sh -> ../init.d/bootup.sh
    /etc/rc6.d/K20bootup.sh -> ../init.d/bootup.sh
    /etc/rc2.d/S20bootup.sh -> ../init.d/bootup.sh
    /etc/rc3.d/S20bootup.sh -> ../init.d/bootup.sh
    /etc/rc4.d/S20bootup.sh -> ../init.d/bootup.sh
    /etc/rc5.d/S20bootup.sh -> ../init.d/bootup.sh

    Utilisation d'un outil graphique : bum, ksysv ou rcconf en mode console

    ou alors modifier le fichier /etc/rc.local

  • Conversion système de fichier ext2 en ext3
    Si le noyau le supporte, utiliser :
    tune2fs -j /dev/hda3 #utiliser le nom correct de partition
    tune2fs -o 0 /dev/hda3 changer ensuite :
    /dev/hda3 / ext2 noatime 0 0

    en :
    /dev/hda3 / ext3 noatime 0 0

    pour la partition racine :
    Se connecter en root
    Editer /etc/fstab et changer ext2 to ext3 dans la ligne faisant référence au répertoire racine
    tune2fs -j /dev/hda5
    cd /boot
    mv initrd-2.4.18-26.8.0.img initrd-2.4.18-26.8.0.img.ext2
    mkinitrd initrd-2.4.18-26.8.0.img 2.4.18-26.8.0

    redémarrer

  • étendre la taille d'un disque avec vmware :

    vmware-vdiskmanager -x 10GB myDisk.vmdk

  • Pb installation vmware (vmnet, vmmon etc) : voir http://ftp.cvut.cz/vmware/ ou : http://www.vmware.com/community/thread.jspa?threadID=85612

  • étendra la taille d'un disque avec virtualbox :

    1. Démarrer sur un livecd virtual en montant la premiere partition a agrandir, et la seconde plus grande
    2. 'fdisk -l' ou cfdisk pour voir la référence des partitions, par exemple (hda) (hdb)
    3. 'dd if=/dev/hda of=/dev/hdb'.
    4. réarranger et redimensionner la nouvelle partition avec gparted par exemple

  • redimensionner un système de fichier

    si vous clonez une partition avec dd, sur une partition de plus grande taille, la nouvelle partition ne semblera pas plus grande (avec la commande df par exemple). Il faut donc corriger cela avec la commande :

    resize2fs -f /dev/hd##

    À faire lorsque la partition est démontée !

    (éventuellement en vérifiant avant et après que tout est correct avec e2fsck -f -y)

  • Installer des paquets rpm

    rpm -ivh archive.rpm : installation rpm
    rpm -ivh archive.rpm force --nodeps archive.rpm : installation rpm forcée (si pb dépendances)
    rpm -Uvh archive.rpm : mise à jour rpm
    rpm -e programme : suppression rpm

  • Archivage de fichiers
    tar -zxvf fichier.tar.gz : décompresse un fichier zippé
    tar -zcvf backup.tar.gz /home/eric : crée un fichier zippé
    tar -tvf exemple.tar : liste le contenu
    bzip2 -k fichier : compresse un fichier dans le format bz2, en gardant le fichier original
    bunzip2 -k fichier.bz2 : décompresse un fichier bz2, en gardant l?archive originale (-v : verbose, verbeux)

  • Modules

    • linux

      insmod module : ajouter un module

      modprobe module : charger un module en mémoire (temporairement)

      modconf : charger ou retirer des modules de façon définitive

      /etc/modules : liste des modules chargés au démarrage

Opérations disques / partitions


Démarrer sur une autre partition



Modifier l'emplacement du répertoire /home


J'avais une partition trop petite là où j'ai installé mon système knoppix. Aussi pour gagner de la place, j'ai déplacé mon répertoire /home vers une autre partition (/hda6) là où il y avait plus de place (en rognant sur celle de mswindows :) ). Marche à suivre :
(on suppose pour cela que la nouvelle partition d'accueil est déjà préparée, avec un utilitaire ad-hoc, sinon taper : mke2fs /dev/hda6 )
Monter la nouvelle partition sur un point de montage temporaire, déplacer le ou les répertoires utilisateurs vers ce point, démonter le point de montage, et le remonter dans /home, ce qui donne :
mount -t ext2 /dev/hda6 /rep_temp
mv /home/_users_ /rep_temp # si nécessaire plusieurs fois
umount /rep_temp
mount -t ext2 /dev/hda6 /home
tester si tout fonctionne, et modifier /etc/fstab en conséquence :
/dev/hda6 /home ext2 defaults,errors=remount-ro 0 1


Changer la taille d'une partition


utiliser qtparted ou avec parted :
parted /dev/hda
print # (relever les données de debut et de fin, et le n° de partition)
resize 1 1024 2048 # (en Mo)

pour une image qemu :

dd bs=1 if=/dev/zero of=disk.img seek=2G count=0

(vérifier si c'est bon avec : qemu-img info disk.img )

modifier la taille des partitions avec qtparted par ex.


Formatter complètement un disque et effacer toutes les données


dd if=/dev/zero of=/dev/hda bs=1M


Récupérer un disque corrompu


if=/dev/old_disk of=image_file conv=noerror
ou
dd if=/dev/old_disk of=/dev/new_disk conv=noerror,sync

ou ddrescue qui semble le plus efficace

#récupérer en priorité le plus de zones mémoires saines:
ddrescue -B -n /dev/old_disk /dev/new_disk rescued.log
#puis essayez de récuperer le plus de zones mémoires endommagées possible:
ddrescue -B -r 1 /dev/old_disk /dev/new_disk rescued.log


Copier un système de fichier sur un autre


en démarrant d'un live-cd :


rsync -avx /media/disque01 /media/disque02

(-a préserve les liens symboliques, les attributs, les permissions et -x évite d'utiliser ce qui sort du système de fichier). On peut rajouter -z pour compresser, si ça se fait sur le réseau, et -S pour les fichiers épars (?)

similaire à


cp -ax /media/disque01 /media/disque02

Trouver des informations sur un disque dur


sudo hdparm -I /dev/sda

pour du sata ou


sudo hdparm -i /dev/hda

pour de l'ide

df -h : utilisation des disques

find / -type d -exec du -ks {} \; | sort -n : liste des répertoires les plus gros du disque.

du -Sh | sort -n : affiche les plus gros répertoires
du --all -h --max-depth=2|sort -n : affiche les plus gros répertoires dans 2 niveaux de sous-répertoires.

du -s -h /repertoire : affiche la taille totale d'un répertoire
ls -lR | sort +4n : trouver les plus gros fichiers du disque

ncdu est une interface console à "du"


Récupérer la session précédente d'un disque cdrom


mount /dev/cdrom /mnt/cdrom -t iso9660 -o session=0


Ralentir la vitesse de rotation d'un cdrom


eject -x 4 /dev/cdrom


Appliquer un patch


patch -p0 <new-patch
ou
patch -p1 <new-patch
(selon le répertoire courant par rapport au patch)

créer un patch :
diff -Naur olddir newdir > new-patch
ou
diff -Naur oldfile newfile > new-patch

ou diff -crB oldfile newfile > new-patch
(c pour contextuel, r pour récursif, B pour éviter les lignes blanches)


Changer l'espace réservé (ext3)


tune2fs -m 1 /dev/sda5 # (réduit espace de maintenance à 1% au lieu de 5 %)
tune2fs -r 75000 /dev/sda5 # (réduit espace de maintenance à 75000 blocs)


Changer la fréquence des vérifications du système de fichier (ext3)


pour mettre par exemple tous les 60 redémarrages sur la première partition :


tune2fs -c 60 /dev/sda1

pour désactiver temporairement toute vérification éventuelle :

```# touch /fastboot

ce fichier sera effacé après le prochain redémarrage.


Créer un ramdisk


mkdir /tmp/ramdisk0
mke2fs /dev/ram0
mount /dev/ram0 /tmp/ramdisk0 # (exemple tiré de http://www.linuxfocus.org/English/November1999/article124.html)


Vitesses de transfert


USB1.1 :
lent (1,5 Mbit/s)
rapide (12 Mbit/s)

http://fr.wikipedia.org/wiki/Universal_serial_bus USB 2.0
full speed : 12 Mbit/s (ex USB 1.1)
High Speed : jusqu'à 480Mbit/s (ex USB 2.0)

http://fr.wikipedia.org/wiki/FireWire FireWire
400 Mb/s en version 1 (s400 ou IEEE 1394a)
800 Mb/s en version 2 (s800 ou IEEE 1394b)

8bit =1 octet. Donc 200Mbit/s ca fait 25Mo/s.

1ko=1024 bits (2^10)
1Mo=1024ko=1024x1024bits=1048576bits (2^20)
1Go=1024Mo=1073741824bits (2^30)
1To=1024Go=1099511627776bits (2^40)
1Po=1024To=1125899906842624bits (2^50)
1Eo=1024Po=1152921504606846976bits
1Zo=1024Eo=1180591620717411303424bits
1Yo=1024Zo=1208925819614629174706176bits

"1 Méga" = 1 Mbit/s = 1 024 kbit/s = 128 ko/s


Chiffrer une partition


Linux

  • encfs :

    mkdir -p ~/test/encrypted
    mkdir -p ~/test/decrypted

    encfs ~/test/encrypted ~/test/decrypted

    copier les fichiers dans ~/test/decrypted, et démonter la partition ensuite, avec fusermount -u ~/test/decrypted

  • dm-crypt :

    http://www.saout.de/misc/dm-crypt/ http://www.saout.de/tikiwiki/tiki-index.php

    apt-get install cryptsetup hashalot

    modprobe dm_mod
    modprobe dm_crypt
    modprobe aes

    /../

  • bcrypt

  • autre :
    # faire tout cela en root
    créer le point de montage
    dd if=/dev/urandom of=fichier.dat bs=1M count=50 # pour une partition de 50 Mo
    chmod 0600 fichier.dat # Eventuellement restreindre les droits
    modprobe loop
    modprobe cryptoloop
    modprobe aes # charger les modules
    losetup -e aes256 -o 1024 /dev/loop/0 fichier.dat # entrer un mot de passe de 20 caractères minimum
    mkfs.ext3 -j -m 0 -L "mon fichier" /dev/loop/0 # création du système
    (pour utiliser avec CrossCrypt sous windoze, il est possible de créer une partition fat32 : mkfs.vfat /dev/loop/0 )
    losetup -d /dev/loop/0 # suppression du dev

    mount -t ext3 -o defaults,user,loop,encryption=aes,offset=1024 fichier.dat /mnt/pointdemontage

    (pour partition fat32 : mount -t vfat -o user,loop,encryption=aes,offset=1024 fichier.dat /mnt/pointdemontage/)

(ancien)
mount -t ext3 -o loop,encryption=AES256 /mnt/flashdisk/.knoppix.img /home/me/knophome

(to umount, just type: umount /home/me/knophome )

If your distribution uses cryptoapi rather than loop-aes, you still
can mount your encrypted homedir using:

losetup -e aes -k 256 -p sha512 /dev/loop1 /mnt/flashdisk/.knoppix.img
mount -t ext3 /dev/loop1 /home/me/knophome

(to umount, use:
umount /home/me/knophome
losetup -d /dev/loop1
)

Latest version of cryptoapi uses the following syntax:
losetup -e aes -k 256 -H sha512 /dev/loop1 /mnt/flashdisk/.knoppix.img
mount -t ext3 /dev/loop1 /home/me/knophome

and you can mount the encrypted device in a single step using:
mount -t ext3 -o loop,encryption=aes,keybits=256,phash=sha512 /mnt/flashdisk/.knoppix.img /home/me/knophome
http://www.linuxpowered.com/LDP/HOWTO/Encrypted-Root-Filesystem-HOWTO/index.html http://www.scherrer.cc/crypt/ http://linuxfromscratch.org/~devine/erfs-howto.html
http://marc.waeckerlin.org/linux/crypt.php.en



  1. Load the cryptsetup module.

    sudo modprobe dm-crypt

  2. Decrypt your file system.

    sudo cryptsetup luksOpen /dev/sda1 crypt

  3. Get the live CD to recognize (activate) your LVM.

    sudo vgscan --mknodes

    sudo vgchange -ay

  4. You can now access / mount the crypt

    sudo mkdir /media/crypt_root

    sudo mount /dev/mapper/root /media/crypt_root


Vérification signature pgp


pgp fichier.tar.gz.sig fichier.tar.gz
gpg --verify fichier.tar.gz.sig fichier.tar.gz


Sauvegarder un système linux


cd /
shopt -s dotglob (pour désactiver les fichiers cachés dans le bash)
for i in `ls`; if [ -d $i ]; do tar -cvjf $i.tar.bz2 $i;done (Si répertoire à la racine, le compresser dans un fichier portant un nom identique avec l'extension '.tar.bz2')

Sauvegarder les fichiers compressés (.tar.bz2).
Pour la restauration du backup, il suffit de réinstaller un système de base avec le package bz2, décompresser les tar.bz2 dans ce système, modifier /etc/fstab (si la table des partitions a changé) et /etc/lilo.conf


Récupérer un cd ou autre défecteux


Rescue the most important part of the disc first.
ddrescue -i0 -s50M /dev/hdc hdimage logfile
ddrescue -i0 -s1M -r3 /dev/hdc hdimage logfile

Then rescue some key disc areas.
ddrescue -i30G -s10G /dev/hdc hdimage logfile
ddrescue -i230G -s5G /dev/hdc hdimage logfile

Now rescue the rest (does not recopy what is already done).
ddrescue -r3 /dev/hdc hdimage logfile


bureau et sessions graphiques


Autostart


les fichiers peuvent se trouver dans :

/etc/xdg/autostart
/usr/share/autostart (kde4 ?)
~/.config/autostart/
~/.kde/Autostart
~/.gnome2/session-manual
~/.config/lxsession/
/usr/share/lxsession/
/etc/xdg/lxsession/LXDE/autostart

etc... (bon courage :) )


kde



gnome


  • lancer nautilus sans utiliser gnome : nautilus --no-desktop

  • Retirer le thème geramik
    laid et encombrant, à l'image de son modèle keramik, il peut être avantageux de l'éradiquer
    mv /etc/gtk/gtkrc /etc/gtk/gtkrc-old
    mv /etc/gtk-2.0/gtkrc /etc/gtk-2.0/gtkrc-old
    apt-get install gtk-engines-industrial
    apt-get install gtk2-engines-industrial
    apt-get install gtk-theme-switch
    apt-get remove gtk2-engines-geramik*
    apt-get remove gtk-engines-geramik*
    apt-get install kdeartwork #thème plastik
    apt-get install metacity-themes #thème alternatif

  • Configuration gtk
    Par exemple pour modifier l'apparence de l'éditeur html bluefish :
    http://micmacfr.homeunix.org/bluefish/doc/book.html Créer un fichier .gtkrc-2.0 dans le répertoire /home/utilisateur :

    style "bluefish"
    {
    # For up and down arrows grouped together at right side
    GtkNotebook::has_secondary_forward_stepper = 1
    GtkNotebook::has_secondary_backward_stepper = 1

    # Editor background color
    # (background of editor view)
    base[NORMAL]="#cccccc"

    # GUI normal background color
    # (most of the GUI)
    bg[NORMAL]="#dbe9e9"

    # GUI highlighted background color
    #(GUI when mouse over elements)
    bg[PRELIGHT]="#c6e9e9"

    # GUI unactive background color
    #(GUI disabled elements)
    bg[INSENSITIVE]="#9fb2b2"

    # GUI active background color
    #(GUI enabled elements)
    bg[ACTIVE]="#c7d4d4"
    }
    class "GtkWidget" style "bluefish"

    Pour donner un aspect NeXTstep aux applications gtk :
    http://www.linuks.mine.nu/workstation/

thème sympa gtk : http://cimi.netsons.org/pages/murrine.php

changer le thème gtk : switch2 ou gtk-chtheme


LXDE


xinit /usr/bin/openbox
ck-launch-session lxsession

parcellite : gestionnaire de presse-papier


Enlightenment


  • installer E17 (debian)

    modifier source.list

    deb http://edevelop.org/debian/ unstable main

    sudo apt-get update

    epplets
    esound
    examine
    engage
    entice
    elicit
    eterm
    edb-tools
    edje0-bin
    edje0-test
    emodules
    iconbar

GNUstep


Changer de thème
http://www.roard.com/gnustep/Camaelon-2.0.tgz http://www.roard.com/gnustep/Nesedah.theme.tgz untar
pmake
copier theme -> ~/GNUstep/Library/Themes
defaults write NSGlobalDomain GSAppKitUserBundles '( "YourLocationTo/Camaelon.themeEngine" )'
defaults write Camaelon Theme Nesedah

et peut etre avoir un jour : http://jesseross.com/clients/gnustep/ui/concepts/ Pour mettre un thème *Step sur GTK :
http://shweps.free.fr/wiki/wakka.php?wiki=GtkThemes


Astuces bureau


  • Lancement automatique du gestionnaire de fenêtre préféré

    Editer ou créer dans le répertoire utilisateur le fichier .xinitrc
    La dernière ligne doit indiquer le bon gestionnaire de fenêtre (ex : /usr/bin/wmaker& ou exec /usr/bin/wmaker )
    (Pour utiliser un environnement de bureau en plus, indiquer par exemple :
    afterstep &
    exec gnome-session)

    En ligne de commande taper : startx
    eventuellement : lancer kdm ou gdm à la place
    xinit -e /chemindugestionnaire : permet de ne lancer que le gestionnaire et non pas l'environnement de bureau complet (KDE ou Gnome)
    Lancement d'une seconde session graphique / ouverture d'une session vnc :
    startx -- :1.0
    autre solution :
    X -query localhost -once :1
    A tester : http://www.x-desktop.org/

    (alt+ ctrl + backspace : termine la session x brutalement)

  • Utilisation de Xnest (session X dans X)

    Xnest -ac :1
    export DISPLAY=localhost:1
    wmaker

    option :

    export WINDOWMANAGER=/usr/bin/gnome-session
    export WINDOWMANAGER=/usr/X11R6/bin/twm
    startx -- :1

    x :1 &
    export DISPLAY=localhost:1
    wmaker &

  • Autoriser un utilisateur distant à se connecter graphiquement sur X

  • Lancer une application graphique depuis un autre utilisateur

    xauth merge /home/user/.Xauthority : évite le ? connection to ":0.0" refused by server '

    ssh -l root -X localhost : idem

    en tant que root : xhost + (attention : retire toute sécurité)

    ou :
    éditer /etc/X11/Xwrapper.config

    vérifier que cette valeur est présente :

    allowed_users=anybody

  • Lancer une session graphique sur un poste distant

    poste 1 :

    modifier : /etc/ssh/sshd_config :

    X11Forwarding yes
    Xnest -ac -geometry 1024xf768 :1 &
    ssh login@ip -X -C

    poste 2 : (loggé depuis le poste 1)
    export DISPLAY=ip_poste1:1
    wmaker

    ou
    ssh login@ip -X -C

    ( -C active la compression de données -X le forward de l'environnement graphique x11)

  • Utilisation de freenx
    freenx est un protocole similaire dans ses résultats à vnc, mais avec une plus grande rapidité.

Connexion via ssh et l'utilisateur habituel


Il y a plusieurs manières de se connecter à un serveur NX. Une solution souple et pratique est de le faire en passant par l'authentification habituelle d'un utilisateur via ssh :


  • Installez le serveur (freenx et/ou nx depuis http://www.nomachine.com/ ou votre distribution habituelle).
    Vous pouvez garder la clé de base, ou bien procéder à un échange de clés pour plus de sécurité.


    /opt/NX/bin/nxsetup --install --setup-nomachine-key

  • Installez le client

  • Veuillez à avoir ces options dans /opt/NX/etc/node.conf sur le serveur (notez bien les parties commentées avec #) :


    ENABLE_USERMODE_AUTHENTICATION="0"
    #ENABLE_PASSDB_AUTHENTICATION="0"
    ENABLE_SSH_AUTHENTICATION="1"
    #ENABLE_SU_AUTHENTICATION="0"
    #ENABLE_USER_DB="0"

    Ensuite, il est important de modifier /etc/hosts.allow pour permettre la connexion par ssh. Si vous ne le faites pas, vous ne pourrez vous authentifier en attaquant le port 22 (ssh) de l'ordinateur avec le serveur NX (la connexion sera refusée)

    On peut indiquer dans /etc/hosts.allow


    sshd: ALL

    pour autoriser la connexion depuis tout internet, ou alors une plage d'adresses ip ou un réseau local etc. pour gérer cela plus finement et de manière plus sécurisée.

    En faisant cela, cela permet d'utiliser son compte habituel sur l'ordinateur ciblé, depuis le logiciel nxclient. (ouverture de session gnome, kde, ou en console de base)

  • rdesktop
    rdesktop est pour se connecter selon le protocole de micorsoft sur un poste windows :
    rdesktop 192.168.0.160 -u login -p motdepasse -g 1024x768 -z -a 24 -b -k fr -N


Images et vidéo


  • Convertir des fichiers dans les divers formats vectoriels

pour eps vers svg : pstoedit -f plot-svg fichier.eps fichier.svg


réarrange un fichier postscript en copiant 2 pages A4 sur une seule


psnup -n2 fichier.ps out.ps

pdfnup fichier.pdf --nup 2x1 : même chose pour pdf

Impression livret (pour 16 pages, imprimante recto-verso):
pdfnup --nup 2x1 --paper a4paper --orient landscape input.pdf --outfile output.pdf --pages "16,1,2,15,14,3,4,13,12,5,6,11,10,7,8,9"

donc pour le recto ça doit être: "16,1,14,3,12,5,10,7"
et le verso "2,15,4,13,6,11,8,9"

voir peut-être également pdfbook tiré de l'outil pdfjam


  • Variante : mettre une affiche A4 copiée deux fois à l'identique et côte à côte au format A5 :


    cp fichier.pdf fichier2.pdf
    pdfjoin fichier2.pdf fichier.pdf
    pdfnup fichier-joined.pdf --nup 2x1 --frame true

    le résultat sera fichier-joined-2x1.pdf (ou fichier-joined-nup.pdf selon les versions) avec un trait de coupe (retirer --frame true pour ne pas avoir ce trait)

Passer un fichier A4 en A3 pour faire une grande affiche


(ne fonctionne pas correctement)


pdf2ps fichier.pdf

psresize -PA4 -pA3 fichier.ps fichierA3.ps
--psresize -w42cm -h59.4cm -W21cm -H29.7cm fichier.ps fichierA3.ps--

--pstops -d 1:0@2 fichier.ps fichierA3.ps--

ps2pdf fichierA3.ps




capture d'écran


import -window root image.png

  • convertir des images en vignettes (avec imagemagick)

    mkdir tb
    for A in *.jpg ; do convert $A -geometry '100x100>' -bordercolor white -border 50 -gravity center -crop 100x100+0+0 tb/tb_$A ; done

  • convertir une animation gif en "sprite sheet" sur une seule image (type planche contact) :

    montage -background "transparent" -depth 8 -type TrueColorMatte grenouille_smilies.gif -geometry 15x15 -tile 5x3 -matte -transparent "transparent" -type TrueColorMatte -depth 8 -flip -flop grenouille_tout.png

  • imagemagick pour avoir les quantités de couleurs d'une image:
    display -identify -verbose image.png

Conversion images vers pdf


convertir en tiff d'abord (les outils de conversion tiff sont mieux optimisés qu'ImageMagick)


for A in *.JPG ; do convert $A $A.tiff; done
tiffcp *.tiff fichier_sortie.tiff
tiff2pdf fichier_sortie.tiff -z -o fichierfinal.pdf


  • Conversion pdf vers images (extraction des sources)

    pdfimages -f 1 -l 10 -j fichier.pdf nom_image

    extrait les 10 premières pages du fichier fichier.pdf vers le format jpeg sous le nom nom_image-001.jpg etc

  • Si c'est un fichier pdf à retailler, utiliser briss, puis :

    pdftoppm -r 300 cropped.pdf base_fichier_sortie

    for A in *.ppm ; do convert -compress lzw $A $A.tiff ; done


  • Conversion pdf vers images ("copie d'écran")

    convert -quality 87 -density 300 fichier.pdf fichier.jpg

    Si le document contient plusieurs pages, celles-ci se présenteront sont la forme
    fichier-0.jpg, fichier-1.jpg etc.

  • modifier des pdf :
    • pdfjam, pdftk, pdfsam (split/merge en graphique) ou pdfchain (split/merge en graphique)
    • pdfshuffler (réorganiser des pages)

  • Pour imprimer un fichier postscript sous forme d'un petit livre en format A5 :

    psbook fichier_de_depart.ps | psnup -2 > mon_livre.ps

    psbook -s10 : pour grouper les livrets par 10 pages

    • variante pour avoir le double face du bon coté.

      psbook fichier.ps | psnup -2 | a2ps -1 -s tumble > bouquin.ps


  • Joindre des fichiers avec pdfjoin

    pdfjoin fichier01.pdf fichier02.pdf fichier03.pdf --fitpaper false --paper a4paper --outfile nouveaufichier.pdf

    Si nécessaire, rajouter ces options pour éviter les rotations non désirées : --no-landscape --fitpaper 'false' --rotateoversize 'false'

  • Joindre des documents tout en supprimant quelques pages (ici cela va copier les pages de fichier01 en intégralité, puis les pages de fichier02 à partir de la page 2 jusqu'à la fin (en excluant la page 1) :

    pdfjam fichier01.pdf '-' fichier02.pdf '2-' --outfile nouveaufichier.pdf


  • Joindre tous les fichiers pdf d'un répertoire avec gs :

    gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=output.pdf `ls *.pdf`


  • modifier la résolution

    convert -density 200 etc.

  • convertir en n&b

    for A in *.tif ; do convert $A -monochrome ../tiff3/$A ; done


Utiliser le format DJVU


for A in *.tif* ; do cjb2 $A $A.djvu ; done
n=0; for I in *.djvu ; do n=$((n+1)) ; result=`printf 'doc%04d.djvu' $n` ; mv "$I" $result; done
for J in *.djvu ; do ~/scripts/djvu_ocr.sh "$J" ; done
djvm -c merged_doc.djvu doc*.djvu

où djvu_ocr.sh est le script ici : http://en.wikisource.org/wiki/Help:DjVu_files/OCR_with_Tesseract

On peut le modifier et modifier la partie avec $lang = "fra"; au lieu de $lang = "eng"; pour optimiser la reconnaissance en français, mais parfois cela peut être pire pour certains mots.

Voir également http://chunchung.blogspot.com/2008/06/adding-ocr-to-djvu-file.html mais semble plus compliqué à utiliser

Voir également http://theowoll.netau.net/

On peut extraire du texte d'un document djvu avec OCR en utilisant l'outil djvutxt


modifier metadata


  • lire les meta informations d'un document : ``` djvused merged_doc.djvu -e 'print-meta'

  • modifier (remplacer) les metadata d'un document et le sauvegarder aussitôt : ``` djvused merged_doc.djvu -e 'set-meta meta.txt' -s

  • en une seule opération : ``` echo -e "Title \"Titre du document\" \nAuthor \"Auteur\" \nSubject \"sujet et mots clés\" " > /tmp/meta.txt ; djvused merged_doc.djvu -e 'set-meta /tmp/meta.txt' -s

  • retirer les metadata : ``` djvused merged_doc.djvu -e 'remove-meta' -s

convertir une video (changer de format)


pour faire une rotation de video, il est possible d'utiliser avidemux


  • depuis un disque :

    transcode -i /dev/cdrom -x dvd -V -Z 360x288 -w 900 -b 80 -U video2 -y xvid -w 1618


    transcode -i video01.mpg -Z 360x288 -w 900 -b 128 --no_split

    (Z = taille ; w = video bitrate ; b = audio bitrate ; y = module utilisé ; w = encoder bitrate)
    (-ss = index de départ en secondes, -t = temps d'encodage en secondes)

  • vers webm :

    ffmpeg -i input.mov \
    -acodec libvorbis -ac 2 -ab 96k -ar 44100 \
    -b 345k -s 640x480 output.webm

    augmentez -b pour une meilleure qualité vidéo (bitrate), et adaptez -s à la taille voulue.

    À tester :
  • -rc_lookahead 16 permet au codec de regarder les prochaines images pour adapter ces paramètres en conséquence.
  • -level 116 permet de passer en mode "lent". Cela active des améliorations graphiques mais augmente le temps d'encodage. Vous pouvez la modifier en 216 pour gagner un peu de temps ou 214, mais vous perdrez en qualité.
  • -threads 3 (sur un quadcore)

  • -qmin 1 -qmax 31 -minrate 0 -maxrate 2000k

Exemple pour encoder une liste de fichiers avec un rendu correct en 640x480 :


for a in *.AVI *.MOV *.avi *.mov
do
ffmpeg -i $a \
-acodec libvorbis -ac 2 -ab 96k -ar 44100 \
-b 1100k -s 640x480 fichier_$a.webm
done

  • Sortir pour 2 ou 3 versions compatibles HTML5 :
    for a in *.AVI *.MOV *.avi *.mov
    do
    ffmpeg -i $a \
    -acodec libvorbis -ac 2 -ab 96k -ar 44100 \
    -b 1100k -s 640x480 ${a%%.*}.webm
    ffmpeg -i $a -ar 24000 -ab 96k \
    -vcodec libx264 \
    -b:v 1100k -s 640x480 -r 29.97 -strict -2 ${a%%.*}.mp4
    #ffmpeg -i $a \
    # -acodec libvorbis -ac 2 -ab 96k -ar 44100 \
    # -b 1100k -s 640x480 ${a%%.*}.ogv
    done

    (theora (ogv) est déconseillé car la qualité est moindre que le webm et les navigateurs supportant theora supportent webm maintenant)

    autre exemple avec diverses options (30 premières secondes), et bitrate non constant (recommandé) :

    ffmpeg -i fichier -threads 2 -rc_lookahead 16 -level 116 -ss 0 -t 0:00:30 -acodec libvorbis -ac 2 -b:a 96k -ar 44100 -qmin 1 -qmax 31 -minrate 0 -maxrate 1500k -s 640x480 -deinterlace fichier.webm


exemple ubuntu (non recommandé, la seconde passe n'étant pas forcément meilleure) :


rm /tmp/pass1.*.log
ffmpeg -i VTS_02_1.VOB -ss 0 -t 0:00:30 -threads 3 -vcodec libvpx -b:v 1500k -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 1 -qmax 51 -minrate 0 -maxrate 1500k -an -pass 1 -passlogfile /tmp/pass1.fpf -deinterlace /tmp/fichier7.webm
ffmpeg -i VTS_02_1.VOB -ss 0 -t 0:00:30 -threads 3 -vcodec libvpx -b:v 1500k -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 1 -qmax 51 -minrate 0 -maxrate 1500k -deinterlace -acodec libvorbis -b:a 96k -ar 44100 -ac 2 -pass 2 -passlogfile /tmp/pass1.fpf /tmp/fichier7b.webm

exemple de script pour récupérer des vidéos d'un dvd (sans modifier la résolution) :


for a in VTS_02_1.VOB VTS_04_1.VOB VTS_07_1.VOB VTS_08_1.VOB
do
ffmpeg -i $a -threads 3 -rc_lookahead 16 -level 116 -acodec libvorbis -ac 2 -b:a 96k -ar 44100 -qmin 1 -qmax 31 -minrate 0 -maxrate 1500k -deinterlace /tmp/fichier_$a.webm
done

ou

ffmpeg -i foo.avi foo.webm

ffmpeg -i foo.avi foo.ogv

plus d'info sur http://doc.ubuntu-fr.org/ffmpeg


  • ffmpeg2theora :

    • haute qualité :


      ffmpeg2theora suga-001.vob -o my_theora_video2.ogv \
      --videoquality 9 --audioquality 4 \
      --croptop 0 --cropbottom 0 --cropleft 0 --cropright 0 \
      --width 720 --height 576 \
      --title "Video Title" --artist "Artist Name" --date "1997-12-31"

    • réduction de taille :


      ffmpeg2theora suga-001.vob -o my_theora_video2.ogv \
      --videoquality 9 --audioquality 4 \
      --croptop 0 --cropbottom 0 --cropleft 0 --cropright 0 \
      --width 368 --height 294 \
      --title "Video Title" --artist "Artist Name" --date "1997-12-31"

  • 360 x 288 pour 5:3
  • 368 x 294 pour 4:3

  • Avec vlc, encoder en vorbis et theora :


    vlc fichier.mp4 \
    --sout-theora-quality=9 \
    --sout-vorbis-quality=4 \
    --sout="#transcode{venc=theora,vcodec=theo,\
    scale=0.5,deinterlace=0,croptop=0,\
    cropbottom=0,cropleft=0,cropright=0,\
    acodec=vorb,channels=2,samplerate=44100}\
    :standard{access=file,mux=ogg,\
    dst='my_theora_video.ogv'}"

    (qualité de 0 à 10)

  • Avi en Flash :
    ffmpeg -i ma_video.avi -s 640x480 -ar 44100 -aspect 4:3 -pass 1 -b 768k -r 24 -acodec libmp3lame -ab 64 -f flv -y ma_video.flv


Couper un extrait d'une vidéo


mencoder input.avi -oac copy -ovc copy -ss 00:02:00 -endpos 00:04:00 -o output.avi

ou utiliser openshot


Créer une vidéo à partir de fichiers statiques


ffmpeg -f image2 -sameq -b 200k -r 20:1 -y -i anim-%d.jpg anim.mpg

(garde a la même qualité)

puis de mpg en theora:


ffmpeg2theora -v 7 -a 3 anim.mpg

pour modifier la taille par exemple : ffmpeg2theora -v 7 -a 3 -x 320 -y 240 anim.mpg


Son


encoder en ogg vorbis


oggenc fichier.wav --downmix -b 64 -M 96 -q 6 -o fichier.ogg (qualité mono) (-b ou -m ?)

oggenc fichier.wav -b 128 -M 192 -q 6 -o fichier.ogg (qualité stéréo)

cdparanoia -wB -d /dev/hdc ; oggenc -b192 *.wav -t "titre" -a "artiste" -c "AUTREINFO=nouveau champ"

for i in *.wav; do oggenc "$i" -m 64 -M 128 -o $i.ogg; done (qualité moyenne, pour jeu informatique par exemple)

Encoder en Flac


Encore plus simple avec ce format sans perte : ``` flac --best fichier.wav


Encapsuler un mp3 (ou autre) dans un .avi


ffmpeg -i file.mp3 -acodec copy file.avi

http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs

et rajouter une image :


ffmpeg -f image2 -i image.jpg -i file.mp3 -acodec copy file.avi

convertir les mauvais formats de fichier


  • wma
    for i in *.wma; do mplayer -ao pcm -ao pcm:file="${i%.wma}.wav" "$i";\ oggenc -m 256 "${i%.wma}.wav"; rm -f "${i%.wma}.wav"; done

    for i in *.ram; do mplayer -ao pcm -ao pcm:file="${i%.ram}.wav" "$i";\ oggenc -m 256 "${i%.ram}.wav"; rm -f "${i%.ram}.wav"; done


for i in *.ape; do mac "$i" "${i%.ape}.wav" -d ; oggenc -m 256 "${i%.ape}.wav"; done

  • clonecd : utiliser ccd2iso

  • fichier .xtm (couper des fichiers) : utiliser xtmsplit : xtmsplit -paste fichier.001.xtm (ne semble pas correctement fonctionner sur les fichiers de plus de 2 Go)
    ou plus simple : ``cat fichier.[0-4][0-9].xtm > film.avi `` (ne semble pas fonctionner non plus.

    Sinon utiliser avec wine : http://xtremsplit.fr/

Synthétiseurs virtuels


artsbuilder


  • configurer alsa


    sudo /usr/share/alsa-base/snddevices

    voir aussi alsaconf (en root)

Configurer Timidity (lecture musique midi)


Timidity est un puissant lecteur midi utilisant des banques de sons. Si timidity est installé, il suffit d'avoir un répertoire avec soit une banque sous forme de « patterns » (.pat), soit sous forme de fontes (.sf2 etc., TimGM6mb.sf2 est une bonne banque par ex. que l'on trouve ici http://ocmnet.com/saxguru/Timidity.htm ). Il faut renseigner ensuite un fichier de configuration.

/etc/timidity.cfg


dir /usr/share/timidity/
# dir /usr/share/timidity/patches
dir /usr/share/timidity/sndfont

soundfont fonte_de_son.sf2
bank 0
drumset 0

0 acpiano
#/.../
4 honky

etc...

bank 0 se réfère aux fontes dans sndfont, 0 acpiano à des fichiers de sons dans sndfont.
On invoque timidity par : timidity fichiermidi.mid. Il est possible d'utiliser beaucoup de commandes annexes.


timidity -s 5000 fichier.mid : faible fréquence pour ordinateur lent

timidity -Ow -o fichier.wav fichier.mid

timidity -q 5.0 fichier.mid : avec cache

  • Pour convertir du format abc directement vers la musique
    abc2midi abc.abc | timidity -s 9000 abc1.mid

  • Connecter Timidity et d'autres programmes

    /usr/bin/timidity -iA -B2,8 -Os &
    noteedit &
    vkeybd
    aconnect 131:0 128:1
    aconnect 133:0 128:1
    aconnect 133:0 131:0
    aconnect 129:0 128:1

  • Timidity et alsa

    vérifier que le fichier /dev/snd/seq existe bien, sinon le créer :
    mknod -m 666 /dev/snd/seq c 116 1
    puis lancer timidity en tant que synthétiseur logique, connecté à alsa (devient /dev/snd/seq) :
    timidity -iA -B2,8 -Os -EFreverb=0

  • Produit des sons avec beep :

    su -c 'beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 1 10 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047-l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 2 30 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460'

Audio Linux


  • Pour enregistrer un flux midi :
    • démarrer qjackctl
    • démarrer qsynth, le paramétrer pour midi (alsa_seq) et audio (jack, 48000).
    • démarrer rosegarden
    • démarrer ardour
    • dans qjackctl, connecter qynth1 left avec ardour audio 1/in 1
    • connecter qynth1 right avec ardour audio 2/in 1
    • enregistrer avec ardour, lire avec rosegarden

  • avec tuxguitar: jack sequencer / midi port : synth input port

  • Juste pour jouer un son depuis un clavier maître :
    • démarrer qjackctl
    • démarrer qsynth, le paramétrer pour midi (alsa_seq) et audio (jack, 48000). Jack client name ID à fluidsynth (auto connect partout)
    • dans qjackctl, partie Alsa, connecter l'interface midi (par exemple USB Uno Midi interface etc) avec "Fluid Synth", et dans Audio, vérifier que le client fluidsynth est bien relié à playback.

Alsa et OSS


si problème avec /dev/dsp

charger le module snd_pcm_oss (modprobe snd_pcm_oss)


Video


  • Transmageddon
  • ogmrip
  • handbrake (ghb)
  • vlc

périphériques et matériels


Processeurs


  • Désactiver un ou plusieurs coeurs :
    dans grub, indiquer maxcpus=1 par exemple à la fin de la ligne débutant par "kernel"

lecteur disquette


fdutils : utilitaires de gestion du lecteur de disquette

fdformat /dev/fd0

superformat /dev/fd0 : formatter disquette A:

mke2fs /dev/fd0 : formatter disquette (créer système de fichier)


schéma d'une prise murale RJ45


M0 M1 O0 O1
7 8 1 2

6 4 5 3
V1 B1 BO V0

ports :

M = marron
O = Orange
V = vert
B = Bleu

1 indique un fil de couleur pleine

0 indique un fil blanc + couleur

cable croisé : V0:1 V1:2 O0:3 B:4 B0:5 O1:6 M0:7 M1:8
un seul des embouts doit être croisé !


Prise Molex et ventilateur


Pour du 5V on aura: Rouge (Ventilateur) vers Rouge (Alim) et Noir (Ventilateur) vers Noir (Alim)
Pour du 12V on aura: Rouge (Ventilateur) vers Jaune (Alim) et Noir (Ventilateur) vers Noir (Alim)
Pour du 7V on aura: Rouge (Ventilateur) vers Jaune (Alim) et Noir (Ventilateur) vers Rouge (Alim)

tiré de http://www.homemedia.fr/tests-guides/42-Tutorial-Connecter-ses-ventilateurs-en-5V-0.html


Écran et carte graphique



ajouter les paquets de http://debian.linux-systeme.com/
# /etc/apt/sources.list:
deb http://debian.linux-systeme.com sid main
deb-src http://debian.linux-systeme.com sid main

il faut avoir dans /etc/X11/xorg.conf ces lignes (pour une nvidia par ex.) :


Section "Extensions"
Option "Composite" "true"
Option "RENDER" "Enable"
EndSection

Section "Device"
#VideoRam 8192
# Insert Clocks lines here if appropriate
Identifier "NVIDIA GeForce"
Driver "nvidia"
Option "AllowGLXWithComposite" "True"
Option "RenderAccel" "True"
EndSection

ctrl + alt + "+" ou "-" : modifie la résolution d'écran
xdpyinfo : donne des infos sur la résolution et l'écran
xgamma -gamma .75 : change la luminosité
xset : permet de changer des paramètres du serveur X. Ex : écran de veille etc...
Xorg -configure : autodétection des paramètres de l'écran. Tester le fichier de sortie avec Xorg -config xorg.conf.new
bsetbg : défini le fond d'écran
idem fbsetbg image.png ou display -window root image.png

X -configure : créer automatiquement un fichier xorg.conf


Clavier


install-keymap fr-latin1 : changement mapping clavier

xset r rate 550 23 : vitesse répétition clavier (kbdrate existe aussi pour cela)

/usr/bin/loadkeys /usr/lib/kbd/keytables/fr-latin1.map
ou : setxkbmap -layout fr
ou alors utiliser : wget http://chrisix.free.fr/pycoincoin/xmodmaprc && xmodmap xmodmaprc


  • pour dvorak :

    setxkbmap dvorak et revenir avec setxkbmap fr

    pour les accents : ``` setxkbmap -model pc105 -layout dvorak -option compose:rwin

    ou juste la touche compose avec ``` xmodmap -e 'keycode 115 = Multi_key'

  • utiliser le clavier comme une souris
    On peut contrôler le curseur de la souris avec les chiffres du pavé numérique. Il suffit de presser shift + Verr num (NumLock) pour l'activer. Pour cliquer, on choisit le bouton avec /,*,- puis avec 5 pour un simple clique, 5 5 pour un double et 0 mouvement 5 pour un dragage. (tiré de http://linuxfr.org/tips/)

  • Changement langue de certaines applications
    taper dans la console, ou insérer dans le fichier .profile :

    export LANG=fr_FR
    export LANGUAGE=fr_FR
    export LC_ALL="fr_FR@euro"

    export LANG=fr_FR
    export LANGUAGE=fr_FR
    export LC_ALL="fr_FR@euro"

    éventuellement :

    dpkg-reconfigure locales

    ou éditer /etc/sysconfig/i18n

trouver le code d'une touche


xev


  • réparer les autorisations (non testé)

    for item in $(find /home/yourlogin/);
    do [ -f $item ] && chmod 644 $item; [ -d $item ] && chmod 755 $item;
    done; umask 0022 /home/yourlogin; chown -R yourlogin:yourlogin /home/yourlogin

  • Modifier la virgule du pavé numérique

    utiliser ce script :


    #!/bin/bash
    val=`xmodmap -pke | grep "keycode 91 = KP_Delete KP_Decimal"`
    echo $val
    if [ -n "$val" ]
    then
    xmodmap -e 'keycode 91 = KP_Delete comma'
    else
    xmodmap -e 'keycode 91 = KP_Delete KP_Decimal'
    fi

  • Activation du pavé numérique

    Pour la console
    dans .profile

    INITTY=/dev/tty[1-6]
    for tty in $INITTY;
    do setleds -D +num < $tty
    done

    sous Xwindows
    Editer le fichier /usr/X11R6/lib/X11/xkb/types (basic)
    Si vous ne trouver pas le fichier tapez :
    "find /usr/X11R6 -name basic"
    Repérer les lignes :

    type 'KEYPAD"{
    modifiers=Shift+Numlock;
    map[none]=level 1; (remplacer level 1 par level 2)
    map[Shift]=level 2; (remplacer level 2 par level 1)
    map[numlock]=level 2;...........

    ou installer le paquet numlockx

    apt-get install numlockx


/etc/inputrc :
set bell-style none : retirer la cloche de console
set bell-style visible : mettre un flash à la place de la cloche
xset -b : retire le son de la console X11 (plus sur http://www.linux.se/doc/HOWTO/mini/Visual-Bell-7.html)


modprobe -r pcspkr snd_pcsp

rajouter blacklist pcspkr dans /etc/modprobe.d/blacklist (debian)
ou MODULES=(!pcspkr !snd_pcsp) dans /etc/rc.conf (archlinux)

echo -e "\\33[11;0]

en console virtuelle : setterm -blength 0


Souris


  • Inverser les boutons de la souris (mode gaucher)

    Temporairement : dans une console, taper :

    xmodmap -e 'pointer = 3 2 1'

    Si le système se plaint qu'il manque des boutons, essayer par exemple :
    xmodmap -e 'pointer = 3 2 1 4 5'

    Indiquer 'pointer = 1 2 3' pour revenir au mode droitier

    Ceci fonctionne normalement pour tous les gestionnaires de fenêtre puisque c'est géré par X.

    Définitivement : insérer cette même ligne dans .xinitrc, avant le lancement du gestionnaire de fenêtre.

  • Supprimer le clic du milieu
    (dommage car c'est très pratique...)
    xmodmap -e 'pointer = 1 6 3 4 5 2'

  • liste des curseurs de souris

    arrow based_arrow_down based_arrow_up boat bogosity bottom_left_corner bottom_right_corner
    bottom_side bottom_tee box_spiral center_ptr circle clock coffee_mug cross cross_reverse crosshair
    diamond_cross dot dotbox double_arrow draft_large draft_small draped_box exchange fleur gobbler
    gumby hand1 hand2 heart icon iron_cross left_ptr left_side left_tee leftbutton ll_angle lr_angle man
    middlebutton mouse pencil pirate plus question_arrow right_ptr right_side right_tee rightbutton
    rtl_logo sailboat sb_down_arrow sb_h_double_arrow sb_left_arrow sb_right_arrow sb_up_arrow
    sb_v_double_arrow shuttle sizing spider spraycan star target tcross top_left_arrow top_left_corner
    top_right_corner top_side top_tee trek ul_angle umbrella ur_angle watch X_cursor xterm

    xsetroot -cursor_name hand1 : change le curseur de la souris (serveur X)
    bitmap : editeur icones X
    xcursorgen : pour générer des curseurs d'après une liste de fichiers png

  • Changer le thème de la souris
    Editer /usr/X11R6/lib/X11/icons/default/index.theme (parfois ce peut être usr/share/icons/default/index.theme à la place)

    [Icon Theme]
    Inherits=core #theme d'origine, sinon utiliser whiteglass


Économies d'énergie et mise en veille


  • script efficace pour la mise en veille : voir uswsusp qui fournit s2ram et s2disk.

    http://www.lesswatts.org/tips/ : site sur les économies d'énergie.

    xset dpms 0 0 180 : éteindre l'écran après 180 secondes

Imprimantes


  • Imprimer
    Imprimer à partir de firefox / thunderbird

    utiliser le gestionnaire de kde : entrer dans les préférences avancés : kprinter --stdin

  • Configurer une imprimante
    Diverses méthodes existent... Une possibilité :
    * lancer le service cups (dépend peut-être des installations, cupsenable ou cups start
    * lancer un navigateur à l'adresse locale : http://127.0.0.1:631 et entrer les bonnes options
    pour le réseau voir : http://trustonme.net/didactels/?rub=268

    * Ajouter à la section [global] les lignes :
    load printers = yes
    printing = cups
    printcap name = cups

    et la section à la fin :
    [printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    public = yes
    guest ok = yes
    writable = no
    printable = yes
    printer admin = root

    [print$]
    comment = Printer Drivers
    path = /etc/samba/drivers
    browseable = yes
    guest ok = no
    read only = yes
    write list = root


Scanner


numérisation et OCR avec gscan2pdf et tesseract


Asus EEE


  • lancer un script au démarrage : il faut modifier /usr/bin/startsimple.sh

Pocket PC


  • V1

    pocket pc
    (avec noyau 2.6)

    installer synce
    modprobe -i ipaq
    dmesg (donne la réf. tty pour l'usb)
    synce-serial-config ttyUSB0
    dccm (connexion)
    synce-serial-start
    pstatus (donne l'état de la connexion)
    synce-matchmaker (créer un partenariat avec la machine)

    pppd &(peut-être)
    pcp copy files
    pls list directory contents
    pmkdir make directory
    pmv move (rename) files
    prm remove file
    prmdir remove an empty directory
    prun run a program
    pstatus display status about remote device
    synce-install-cab install a .cab file
    http://synce.sourceforge.net/

    http://adrian.dimulescu.free.fr/article.php3?id_article=10

    utilisation de multisync

    pppd[2695]: local IP address 192.168.131.102
    pppd[2695]: remote IP address 192.168.131.201

    raki : pour kde

    rapip:/

    PyRAPI

  • V2

    apt-get install synce-kde synce-serial synce-dccm librapi2-tools

    faire un dmesg et regarder la ligne :

    usb 2-2: PocketPC PDA converter now attached to ttyUSB0

    en root :

    synce-serial-config ttyUSB0 (la première fois seulement je pense)

    en utilisateur normal :
    dccm -f -d 3


en root :


synce-serial-start

en utilisateur normal synce-pstatus doit fonctionner et retourner certaines valeurs.
Sinon avec raki, c'est raki qui lance le démon dccm, avec vdccm à la place en fait.


applications pocketpc


jinzo paint : permet de faire du pixel art ( http://www.ueno.no-ip.org/~jinzo/ )


CD et DVD


Effacer un cd ou dvd rom


cdrecord -v blank=fast dev=/dev/cdrom

dvd+rw-format -blank=fast /dev/dvdrecorder

Graver un répertoire


growisofs -dvd-compat -Z /dev/dvdrecorder -J -R /home/sauvegardes

(plus de commandes : http://gorgonite.ftp-developpez.com/tutoriels/linux/gravure/Gravure.pdf )


convertir les mauvais formats de fichier


  • nrg
    nrg2iso ou encore la commande (non testée) `dd if=monimage.nrg of=monimage.iso bs=2048 skip=150`

  • .bin
    Installer bchunk
    `bchunk image.bin image.cue image` donnera image01.iso
    Ensuite pour mounter un iso :
    mount -t iso9660 image01.iso /path -o loop

  • mdf : mdf2iso

    Sinon il existe acetoneiso pour monter toutes sortes de formats.

CDROM ou DVDROM bloqué


  • message de type "VFS: busy inodes on changed media or resized disk sr0"

    pour éjecter et remettre le cd, tapez :
    eject sr0
    eject -t sr0

    éventuellement sudo umount /dev/sr0

    si cela bloque toujours, regarder le processus utilisant sr0 ou gvfs, et le tuer :

    ps -aef |grep -i sr0


divers


Linux PPC


Ventilateur ibook


Pour lever le déclenchement du ventilateur à 50°C sous linux (contre 60°C sous osx) il faut indiquer "therm_adt746x limit_adjust=5" dans /etc/modules -> augmente la limitation à 5°C.


installer debian sur ppc


http://chamblandes.tuxfamily.org/installationMac/installation2.html


Réparer une partition hfsplus sous linux


hpmount /dev/hda13
hpumount

installer (configurer) mysql


mysql_install_db
mysql_secure_installation

changer le mot de passe mysql


mysqladmin -u root password mypassword

Liens linux


http://chl.be/migrations/ (Migrations linux)

http://www.unixtech.be/

http://www.labo-linux.org

http://www.aidelinux.org/

http://www-spi.lip6.fr/~queinnec/Books/ABCdUNIX/uunix-toc.html (abc unix)

Danger de sécurité : http://www.lebars.org/sec/tcpa-faq.html O/S sécurisé : http://www.ixus.net Différentes distributions de Linux : http://www.distrowatch.com/

Un historique du système NeXTSTEP : http://www.levenez.com/NeXTSTEP/ PocketPc + Linux : http://familiar.handhelds.org/ Icones en 3D isométrique : http://www.iconfactory.com/howto_copland.asp Icones en 3D isométrique : http://www.pixture.com/icons.php http://www.din.or.jp/~irondv/warehouse.html http://zapatopi.net/icons.html http://www.iconarchive.com/icon

http://www.icontown.net/ http://alpesinfografik.chez.tiscali.fr/icons7.html Graphismes : http://linuxgraphic.org/
http://www.operating-system.org/ : tous les systèmes d'exploitation

http://aboutdebian.com/ Guide détaillé Debian : http://www.togaware.com/linux/survivor/ Encore une formation linux / debian : http://formation-debian.via.ecp.fr/

http://www.calle.com/world/FR/ : coordonnées géographiques du mondes (utile dans kstar)
http://www.onlamp.com/linux/cmd/ bcp de commandes linux (publié par Oreilly)

Une distribution intéressante est la Knoppix : http://www.knoppix-fr.org (aide sur http://thefredsite.free.fr), et en version francisée kaella : http://kaella.linux-azur.org/

Une autre est Slax : http://slax.linux-live.org/

De l'aide détaillée sur linux de façon générale figure sur :
http://www.delafond.org/survielinux/

http://www.nerdtests.com/ft_nq.php?im

http://www.phpzoom.com/linfaq/single.htm et
http://archilinux.free.fr/telecharger/linux.html http://www.funix.org http://www.tldp.org/ http://www.togaware.com/linux/survivor/
http://www.digilife.be/quickreferences/QRC/LINUX%20Admin%20Quick%20Reference.pdf
http://entreelibre.com/scastro/debian-secinst/debian-secinst.txt securité Debian
http://debiantips.dyndns.org/ http://www.brunolinux.com/ Quelques commandes usuelles (listes à imprimer) : http://perso.club-internet.fr/ccb/publications/memo/ Liste des logiciels équivalents Linux / MSWindows : http://www.om-conseil.com/sections.php?op=viewarticle&artid=42 Et encore des listes de logiciels : http://forum.hardware.fr/hardwarefr/OSAlternatifs/sujet-27876-1.htm divers:
projets intéressants : http://www.alternc.org/index.php.en (admin apache, ftp)
/etc/apt/sources.list puis
deb http://debian.alternc.org debian/
deb-src http://debian.alternc.org debian/
http://pythoncard.sourceforge.net/v

http://rpm.pbone.net/ : base rpm

http://www.ductape.net/~mitja/freeunix.shtml (free shells accounts)

http://www.guidebookgallery.org/guis : interfaces graphiques




- Installer linux facilement et rapidement depuis le réseau et un ordinateur windows :



Thèmes



Livres


http://www.framabook.org/docs/SCU.pdf (livre linux, mais axé ub*ntu malheureusement)

http://java.developpez.com/cours/ (livres et cours java, notamment "Programmation Java pour les enfants, les parents et les grands parents")


wiki


http://wiki.splitbrain.org/wiki%3AFAQ : dokuwiki


Citations


Those who do not understand Unix are condemned to reinvent it, poorly -- Henry Spencer
Ceux qui ne comprennent pas Unix sont condamnés à le réinventer, en moins bien.

The purpose of a graphical user interface is to make simple things simpler and complex things impossible.

logiciels


Graphisme



typo


polices libres/gratuites



GhostScript et police Type 1


Sous debian, si on a defoma qui est installé, il est possible d'installer directement des polices Type 1 de cette façon :


cp *.pfb /var/lib/defoma/gs.d/dirs/fonts
type1inst
cat Fontmap >> /var/lib/defoma/gs.d/dirs/fonts/Fontmap

Les polices seront accessibles pour GhostScript (gs). Pour pouvoir les utiliser avec par exemple openoffice.org, il faut utiliser l'installateur de police de kde (dans kcontrol)

Sous d'autres systèmes linux, cela sera plutôt :
/usr/share/ghostscript/8.63/lib/Fontmap.GS (adapter suivant la version de gs)
et polices à mettre dans /usr/share/fonts/Type1/


Fontforge



#!/usr/local/bin/fontforge
# Quick and dirty hack: converts a font to truetype (.ttf)
# use : fontforge -script otf2ttf.sh FONTNAME.otf

# for tt in *.otf ;do fontforge -script ~/otf2ttf.sh $tt ; done

Print("Opening "+$1);
Open($1);
Print("Saving "+$1:r+".ttf");
Generate($1:r+".ttf");
Quit(0);

#!/usr/bin/fontforge
# Quick and dirty hack: converts a font to Postscript Type one (.pfb)
i=1

while ( i<$argc )
Print("Opening : " +$argv[i]);
if($argv[i]:e != "otf")
Print( "Skipping ... Expecting an OpenType font [.otf]" )
else
Open($argv[i])
Print("Saving : " +$argv[i]:r+".pfb");
# If the font is a cid keyed font, you may want to flatten the cid map
# To do this, uncomment the command below :
# CIDFlatten()
SetFontOrder(3)
SelectAll()
Simplify(128+32+8,1.5)
ScaleToEm(1000)
DontAutoHint()
Generate($argv[i]:r + ".pfb")
endif
i = i+1
endloop


Musique



TTS : synthétiseur vocal


  • espeak :

    espeak -g 1.3 -p 55 -s 150 -v french --stdout 'bonjour, comment trouvez-vous ma voix ?' | aplay


espeak -g 1.3 -p 55 -s 150 -v french --stdout < texte.txt | aplay

espeak -g 1.3 -p 55 -s 150 -v french --stdout < texte.txt > fichier.wav

Pratique




Système


  • palimpsest : utilitaire disques (données smart etc)
  • baobab : visualisation graphique taille des plus gros fichiers
  • statifier : créer un paquet statique à partir de bibliothèques dynamiques (partagées)

Bench


super pi :
ftp://pi.super-computing.org/

./super_pi 20 : pour calculer 1 million de décimales.


chm (lire du)


convertir depuis le format chm (aide windows) :

http://archmage.sourceforge.net/

http://xchm.sourceforge.net/ (pour lire)

http://htmlhelp.berlios.de/api/python/


Nettoyer le système


http://detox.sourceforge.net/ http://www.pixelbeat.org/fslint/ kleansweep


Virtual Box


VBoxManage list vms

VBoxManage startvm NetBSD -type headless
VBoxManage controlvm NetBSD vrdp on

rdesktop-vrdp localhost -k fr
ou
rdesktop -t 3389 -k fr localhost
VBoxManage controlvm NetBSD savestate

vbox_build_module : refaire les modules après mise à jour noyau.

Accéder à la machine via ssh (forward de port)

$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP

arrêter la machine invité et la redémarrer.


Qemu


(ce logiciel ne devrait plus poser de pb, idem pour l'installation de kqemu. Sinon il reste toujours virtualbox, plus rapide et plus pratique au quotidien, suivant l'utilisation qu'on en a)

http://genibel.org/blog/index.php/2005/11/08/45-utiliser-qemu-avec-l-acceleration-kqemu

faire image disque :


dd of=hd.img bs=1024 seek=1000000 count=0
utiliser une image de disquette de démarrage (ex sur http://www.bootdisk.com/bootdisk.htm)
qemu -m 32 -fda WIN98SEC.IMG -hda win98.img -boot a
(ou utiliser qemu-fast)
fdisk
reboot
FORMAT C:/S
reboot
qemu -m 32 -fda WIN98SEC.IMG -hda win98.img -cdrom /dev/cdrom -boot a -user-net
alternative :
créer un iso
qemu -m 32 -fda WIN98SEC.IMG -hda win98.img -cdrom win98.iso -boot a -user-net
après 1ère installation,
qemu -hda win98.img -cdrom /dev/cdrom -boot c -user-net
et rebooter autant de fois que nécessaire
Réseau :
telecharger vde sur sf.net
vde_switch -tap tap0 -daemon ou
vde_switch -tap tun -daemon
ifconfig tun 192.168.254.254
chmod 666 /tmp/vde.ctl
vdeq qemu myimage.img

sinon :
sudo modprobe tun
http://lists.gnu.org/archive/html/qemu-devel/2004-09/msg00150.html

http://turinglabs.com/gl/article.php?story=20050511201732846
procedure complete :



Installation de qemu




http://linuxfr.org/~sytoka/19391.html

Récuperation de la dernière snapshot de qemu sur

http://www.dad-answers.com/qemu/

Par exemple, le fichier

qemu-snapshot-2005-07-07_23.tar.bz2

Ce qui peux se faire avec l'uniligne

wget http://www.dad-answers.com/qemu/qemu-snapshot-2005-07-07_23.tar.bz2

On extrait les fichiers de l'archive

tar xvjf qemu-snapshot-2005-07-07_23.tar.bz2

Récuperation de kqemu sur

http://fabrice.bellard.free.fr/qemu/download.html

par exemple le fichier

kqemu-0.6.2-1.tar.gz

Ce qui peux se faire avec l'uniligne

wget http://fabrice.bellard.free.fr/qemu/kqemu-0.6.2-1.tar.gz

On extrait les fichiers dans le dossier qemu-snapshot-2005-07-07_23

cd qemu-snapshot-2005-07-07_23
tar xvzf ../kqemu-0.6.2-1.tar.gz

Récuperation des en-tête du noyau (2.4) ou des sources du noyau (2.6). On met le lien à jour vers linux et on change les droits pour qu'un utilisateur lambda puisse modifier les sources !

aptitude install kernel-headers-2.4.27-2-686
cd /usr/src
rm -f linux
ln -s kernel-headers-2.4.27-2-686 linux
chmod -R ugo+rwX kernel-headers-2.4.27-2-686
chmod -R ugo+rwX kernel-headers-2.4.27-2

On installe les paquets qui manque généralement et on vire le paquet qemu qui gêne.

aptitude install libsdl1.2-dev uml-utilities texi2html sudo
aptitude purge qemu

On retourne en utilisateur lambda dans son dossier qemu

cd qemu-snapshot-2005-07-07_23
./configure

On doit avoir la ligne SDL et kqemu à 'yes'.

make

On retourne sous le compte root pour faire l'installation et bidouiller un fichier système qui manque ensuite (si on veut le réseau) et on installe de nouveau les sources propres

make install

echo '#!/bin/sh' > /etc/qemu-ifup
echo 'sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1' >> /etc/qemu-ifup
chmod a+rx /etc/qemu-ifup

aptitude reinstall kernel-headers-2.4.27-2-686 kernel-headers-2.4.27-2

On fait de même avec sudo. Lancer en root la commande

grep -q '%users ALL = NOPASSWD: /sbin/ifconfig tun0 172.20.0.1' /etc/sudoers || echo '%users ALL = NOPASSWD: /sbin/ifconfig tun0 172.20.0.1' >> /etc/sudoers
/etc/init.d/sudo start

Activer le port forwarding dans le noyau. Mettre les bonnes règles pour faire du NAT.

grep -q 'net/ipv4/ip_forward=1' /etc/sysctl.conf || echo 'net/ipv4/ip_forward=1' >> /etc/sysctl.conf
sysctl -p

/sbin/iptables -A INPUT -i tun0 -j ACCEPT
/sbin/iptables -A OUTPUT -o tun0 -j ACCEPT
/sbin/iptables -A FORWARD -i tun0 -j ACCEPT
/sbin/iptables -A FORWARD -o tun0 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -s 172.20.0.0/24 -i tun0 -o eth0 -p tcp -j ACCEPT

On peux sauver les règles iptables pour un prochain reboot

/etc/init.d/iptable save active

On charge les modules noyaux

modprobe kqemu
modprobe tun

Ou pour garder apres un reboot (noyau 2.4)

grep -q 'kqemu' /etc/modules || echo 'kqemu' >> /etc/modules
grep -q 'tun' /etc/modules || echo 'tun' >> /etc/modules

Si cela marche pas, il peux manquer le périphérique kqemu. Normalement, l'installation doit avoir tout fait.

mknod /dev/kqemu c 250 0
chmod 666 /dev/kqemu

changer taille partition :
(vers 1 Go par ex.)
dd if=/dev/zero of=image.img seek=1024000 count=1024000

attention, modifier le partitionnement de l'image peut affecter le système émulé.
Commandes utiles : Ctrl-Alt-f = passe en plein écran.
kqemu :
modprobe kqemu
mknod /dev/kqemu c 250 0
chmod 666 /dev/kqemu


version 2


Qemu


(voir aussi http://compsoc.dur.ac.uk/~djw/qemu.html)

First, edit /etc/sudoers with "visudo" and add your account

Add the "qemu" group to /etc/groups and add your userid to this group in /etc/passwd

Next, I wrote a little script to load all the right modules and change device perms -

Code:
#!/bin/sh

# change some runtime parameters
echo 1024 > /proc/sys/dev/rtc/max-user-freq

# insert the tuntap module
/sbin/modprobe tun

# check to see if it loaded
lsmod | grep tun

# insert the bridge module
/sbin/modprobe bridge

# check to see if it loaded
lsmod | grep bridge

# insert the kqemu module
/sbin/modprobe kqemu major=0

# check to see if it loaded
lsmod | grep kqemu

# change perms on /dev/kqemu
chown root:qemu /dev/kqemu
chmod 0660 /dev/kqemu
ls -l /dev/kqemu

# change perms on /dev/net/tun
chown root:qemu /dev/net/tun
chmod 0660 /dev/net/tun
ls -l /dev/net/tun

Another script to setup the network in bridged mode -

Code:
#!/bin/sh

ifdown eth0
brctl addbr br0
ifconfig eth0 up
brctl addif br0 eth0
# may need to add either line below to start dhcpcd (dhcp client)
# dhcpcd br0
# dhclient br0

NB - tuntap was already available in the FC4 kernels. I used yum to install bridge-utils.

Finally, I used the following script - /etc/qemu-ifup -

Code:
#!/bin/sh
sudo /sbin/ifconfig $1 up
sudo /usr/sbin/brctl addif br0 $1

When you start a VM, the following line appears on stdout -

Code:
drosser@gemini$ qemu -cdrom dsl-2.0.iso -boot d
Connected to host network interface: tun0

Finally, what /sbin/ifconfig output looks like when everything's running -


br0 Link encap:Ethernet HWaddr 00:14:2A:13:46:B6
inet addr:192.168.0.201 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12515 errors:0 dropped:0 overruns:0 frame:0
TX packets:7746 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6625538 (6.3 MiB) TX bytes:881838 (861.1 KiB)

eth0 Link encap:Ethernet HWaddr 00:14:2A:13:46:B6
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:142299 errors:0 dropped:0 overruns:0 frame:0
TX packets:107316 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:168299488 (160.5 MiB) TX bytes:9176095 (8.7 MiB)
Interrupt:233 Base address:0xe000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4310 errors:0 dropped:0 overruns:0 frame:0
TX packets:4310 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6274814 (5.9 MiB) TX bytes:6274814 (5.9 MiB)

tun0 Link encap:Ethernet HWaddr 2A:BC:99:A4:EA:CA
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:1522 (1.4 KiB) TX bytes:7372 (7.1 KiB)

Synergy


Permet de partager clavier et écran entre 2 ordinateurs.

Installer quicksynergy sur le serveur (c.à.d. ordinateur avec clavier et souris) et synergy sur le client (écran), renseigner le nom d'hôte dans quicksynergy pour autoriser l'accès, ensuite lancer sur le client "synergyc -f ip-du-serveur".


Wine


wine msiexec /i programme.msi : permet d'installer un programme msi

utiliser un programme nécessitant IE6 :


WINEPREFIX=/path/vers/ies4linux/ie6 wine tonprogrammequicasselesbonbons.exe

Zope / Plone


http://www.ngogeeks.com/book/print/65 port par défaut : http://machine:9673


LaTeX


Step 1: Convert the font to pc ttf format with pfaedit (see pfaedit.sf.net). Save the fonts in "/Library/Fonts/Hoefler Text.dfont" as ehtr16.ttf, ehtri16.ttf, ehtc16.ttf, and ehtci16.ttf Step 2: Install from the command line: ttf2tex ttf2tex --batch --install -N --foundry apple --font hoeflert eht --expert Step 3: Enable the eht.map with updmap (I don't know the exact syntax) or by editing pdftex.cfg
Réduire les coupures de mots : augmenter la valeur de \hyphenpenalty (vaut 50 par défaut)
voir également \pretolerance=150 , \tolerance (defaut 200) et \emergencystretch ex : \setlength{\emergencystretch}{3em}
résoudre les mots qui sortent de la justification (overfull hbox): indiquer \sloppy (defaut 9999)
Ex :

\newenvironment{tolerant}[1]{%
\par\tolerance=#1\relax
}{%
\par
}

mettre à jour tetex : texhash

mettre à jour les polices : updmap --enable Map /chemin/fichier.map

voire à la place updmap --syncwithtrees

kpsewhich <fichier de police> : trouve si un fichier est bien reconnu par tex

variations sur LaTeX : Lout
GELLMU
tbook
Tbook
Installer tbook

installer depuis les sources (linux) ou un rpm

installer saxon : apt-get install lib-saxon-java
créer un script "saxon" dans /usr/bin :

export CLASSPATH
java -ms15000000 com.icl.saxon.StyleSheet $1 $2 $3 $4 $5 $6 $7 $8 $9%%

tester :

tbprepare test
tbtolatex -t test


txt2tags


puissant système de formatage qui permet d'exporter en html, latex etc (ce document est généré avec txt2tags)
http://txt2tags.sourceforge.net/


Mutt


créer un fichier .muttrc dans /home/utilisateur/


set realname = "blabla"
set from = "blabla@fournisseur.fr"

# Mail Folder
set folder = ~/Mail # Directory that contains all mail files (mailboxes)
set spoolfile = +Inbox # Default spoolfile
set mbox = +Inbox # Where mail is appended to from spoolfile
set mbox_type = mbox # Type of mail files
set postponed = +Unsent # Where to save postponed mail
set copy = yes # Save copies of outgoing mail?
set record = +Sent # Where to save copies of outgoing mail

#set pop_delete
set pop_host="pop.serveur.fr"
#set pop_port=110
set pop_pass=" mot de passe "
set pop_user=" utilisateur "
# unset pop_last


liste plus complète ici : http://sebastien.dinot.free.fr/dotmuttrc.html

Récupérer le courrier avec « G ».

envoyer une pièce jointe directement :


mutt -s "Test mail" -a fichier.tar.gz nom@adresse.com < /tmp/mailmessage.txt

Pour envoyer un message via smtp sans utiliser de logiciel spécifique de courrier sortant, il est possible d'utiliser ce script :
http://www2.zdo.com/articles/mutt-smtp-wrapper.php


Java


Définir Java de Sun par défaut sous debian :

# update-java-alternatives -s java-6-sun


Firefox


Firefox
Installer le plugin java dans mozilla / firefox

(adapter selon votre chemin du jre)

sudo ln -s /usr/share/jre1.5.0_01/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla-firefox/plugins/

( eventuellement ?

sudo ln -s /usr/share/jre1.5.0_01/lib/i386/libjavaplugin_jni.so /usr/lib/mozilla-firefox/plugins/ )

Dans firefox3, j'ai été obligé de créer un dossier /usr/lib/i386/ et de faire :
sudo ln -s /usr/lib/jvm/java-6-sun/jre/lib/i386/libjava* /usr/lib/i386/

et dans about:config mettre pour java.java_plugin_library_name : libjavaplugin_nscp.so
pour java.default_java_location_others : /usr/lib/jvm/java-6-sun/jre/lib/i386

installer flash sur amd64 :
télécharger flash player : http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash editer "flashplayer-installer", ligne 249 "i[3456]86)" en "i[3456]86|x86_64)"
lancer l'installation
Il faut pour cela avoir une version 32 bits de firefox !


  • utiliser une version beta:

    ./firefox -no-remote -ProfileManager


Extensions firefox


  • BarTab : pour éviter de recharcher au démarrage les onglets sauvegardés. => remplacé par browser.sessionstore.max_concurrent_tabs = 0 dans about:config
  • Adblock Plus
  • ChatZilla
  • DownThemAll
  • FireFTP
  • Flashblock
  • Greasemonkey peut être utile
  • Readability
  • SQLite Manager
  • Web Developer
  • ScrapBook : récupérer des bouts de site web et les organiser et sauvegarder.
  • add-on compatibility reporter : désactiver la vérification des greffons

Extensions thunderbird


  • AttachmentExtractor
  • Display Mail User Agent
  • Enigmail
  • FireTray
  • Fournisseur pour Google Agenda
  • Google Contacts
  • Lightning
  • LightningButton
  • Quicktext
  • Remove Duplicate Messages
  • Select Addressbook Text
  • ThunderBirthDay
  • Zindus

Google Chrome


Retirer les pubs (équivalent à adblock) :


  • installer privoxy et rajouter la variable d'environnement :
  • export http_proxy="http://127.0.0.1:8118"
  • redémarrer chrome (<!> cela peut ralentir la navigation)

Emulation


Dosemu


alt+ctrl+f : active le mode plein écran
augmenter la vitesse : dans /etc/dosemu/dosemu.conf augmenter la valeur de HogThreshold à la moitié de celle de la valeur de bogomips de la machine.


Dosbox


Respecter les pixels :

```output=openglnb

dans .dosboxrc ou équivalent (nb = no blur)


Tango


http://tango-project.org/Tango_Icon_Library : des icones pour gnome et kde
http://www.oxygen-icons.org/ : projet similaire

installer tango : (icones kde)

cd ~/.kde/share/icons && wget "http://www.zuurstofcel.nl/Tango-1.0.tar.gz" && tar -xvzf Tango-1.0.tar.gz && rm Tango-1.0.tar.gz && kcmshell icons && cd ~


Mime type

http://stackoverflow.com/questions/30931/register-file-extensions-mime-types-in-linux

Use xdg-utils from freedesktop.org Portland.
Register the icon for the MIME type:
xdg-icon-resource install --context mimetypes --size 48 myicon-file-type.png x-application-mytype
Create a configuration file (freedesktop Shared MIME documentation):


<??>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="application/x-mytype">
<comment>A witty comment</comment>
<comment xml:lang="it">Uno Commento</comment>
<glob pattern="*.myapp"/>
</mime-type>
</mime-info>

Install the configuration file:
xdg-mime install mytype-mime.xml
This gets your files recognized and associated with an icon. xdg-mime default can be used for associating an application with the MIME type after you get a .desktop file installed.


  • Modifier un mime en console :


    xdg-mime query filetype fichier
    xdg-mime query default text/plain
    xdg-mime default gvim.desktop text/plain
    xdg-mime query default text/plain


  • les mime par défaut peuvent se retrouver dans :

    ~/.local/share/applications/mimeapps.list
    ~/.local/share/applications/defaults.list

    Wine peut polluer les menus. On peut corriger cela en supprimant ces fichiers :

    rm -fr ~/.local/share/applications/wine-extension-*
    rm -fr ~/.local/share/mime/packages/*wine-extension*
    rm -fr ~/.local/share/icons/*wine-extension*

pour changer un mime-type par défaut, on peut utiliser "mimeopen" (mimeopen -d fichier.ext).

En parlant d'extensions, pour supprimer les extensions de départ lors d'un renommage bash on a :


~% FILE="example.tar.gz"
~% echo "${FILE%%.*}"
example
~% echo "${FILE%.*}"
example.tar
~% echo "${FILE#*.}"
tar.gz
~% echo "${FILE##*.}"
gz

midgard


cms interessant ? : http://www.midgard-project.org/documentation/installation-distros/


Ifs-compose


des fractales dans gimp : http://tigert.gimp.org/gimp/ifs-compose/


Java


changer le look java


java -jar -Dswing.defaultlaf=com.sun.java.swing.plaf.motif.MotifLookAndFeel Jif.jar
java -jar -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel Jif.jar
java -jar -Dswing.gtkthemefile=/usr/share/themes/Default/gtk/gtkrc Jif.jar
java -jar -Dswing.metalTheme=steel Jif.jar

(cf. http://java.sun.com/docs/books/tutorial/uiswing/misc/plaf.html )

java -jar -Dswing.defaultlaf=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
http://java.sun.com/developer/technicalArticles/javase/java6u10/index.html


Créer look Nimbus sous Debian


sudo apt-get install fakeroot dpkg-dev devscripts icon-naming-utils intltool

wget -c http://dlc.sun.com/osol/jds/downloads/extras/nimbus-0.0.8.tar.bz2

wget -c http://zap.tartarus.org/~ds/debian/dists/sid/main/source/nimbus_0.0.6-1.diff.gz

tar xf nimbus-0.0.8.tar.bz2

cd nimbus-0.0.8

zcat ../nimbus_0.0.6-1.diff.gz | patch -p1

chmod +x debian/rules

debchange -v 0.0.8-1

sudo apt-get build-dep gtk2-engines-clearlooks

fakeroot dpkg-buildpackage -us -uc

Explications trouvées ici


créer paquet java debian


apt-get install java-package
make-jpkg jre-***-linux-i586.bin
dpkg -i sun-j2re***_i386.deb


Quelques programmes à connaître (en construction)


Certains de ces programmes étant installés sur la plupart des distributions, il peut être intéressant d'essayer de les lancer.


Graphiques


speedcrunch : calculatrice

kate : éditeur de texte KDE, autorise de multiples fichiers ouverts, et garde en mémoire ces fichiers pour les sessions suivantes.

ethereal : analyse réseau

openoffice : remplacement de microsoft office

scribus, sketch, sodipodi : éditeur dessin vectoriel

inkscape / sodipodi : éditeur dessin vectoriel

blender : modeleur 3D

kstar : planétarium / carte du ciel

noteedit : editeur de partitions

rosegarden : éditeur de partitions

xftree


  • redshift : permet de modifier la température de l'écran en fonction de l'heure, pour reposer les yeux. Ex : ``` redshift -l 48.18:4.2 -t 5700:4600 -g 1 -m vidmode -v
    pour Paris : ``` redshift -l 48.52:2.20 -t 5700:4600 -g 1 -m vidmode -v

Mode texte


cfdisk : équivalent de fdisk (partitionnement des disques)

tune2fs : ?

netcardconfig

soundcardconfig

watch : permet de relancer à intervale régulier la même commande (par exemple free)

mkpersistenthome : créer répertoire utilisateur Knoppix
/user/sbin/save config : sauver config knoppix
soundcardconfig : configuration carte son
cupsconfig : configuration imprimantes
lilypond
gentoo, xwc, filerunner : gestionnaires fichiers
qtparted : maintenance des partitions (équivalent "partition magic") : retailler, modifier les disques durs
lvm : partitionnement dynamique
ginf ? edit html
nvu (idem)
fortune : affiche une citation
starfile : converti un fichier texte en citation pour fortune.

Jeux voir cette page

Nicotine : client soulseek

WindowMaker :

wmakerconf
fsviewer : gestionnaire de fichier de GnuStep / WindowMaker
worker : gestionnaire fichier
aterm : émulateur de terminal
/etc/X11/WindowMaker/menu.hook : fichier de config du menu
wmsetbg -e /chemin/image.jpg : fond écran (transparence supportée)

FluxBox :

fbdesk
fbpager
fluxconf
fluxspace
idesk : icones
bsetbg -c /chemin/image.jpg : fond écran (sans transparence)
session.screen0.rootCommand: bsetbg -f ~/backgrounds/zimdib_dark.png

ion3 :

cfg_debian.lua
ajouter :
META="Mod4+"
ALTMETA="Shift+"

apprentissage de ion3 : http://dev.nozav.org/intro_ion.html

Knoppix :
GNUstep :
gridlock : divers jeux
gworkspace : gestionnaire de fenêtres
sitar : donne des informations sur le système et le matériel.

inxi -v 5 : donne des informations sur le système et le matériel.

Utilitaires généraux
Voici les « indispensables » à connaître
Open Office : Traitement de texte, tableur, etc.
Firefox : Navigateur internet
Thunderbird : Client courriel
Gimp : Editeur image

Utilitaires intéressants pour une configuration légère
Nedit : éditeur ascii
Worker : gestionnaire de fichiers (basé sur Directory Opus) : http://www.boomerangsworld.de/worker/ Xfe : gestionnaire de fichier conventionnel
Dillo : navigateur simple et rapide.
Fspanel : barre de tâche
amaya : editeur html wysiwyg
xli : visualiseur d'images
vlc : joue vidéo et musique / video & music
http://backarrow.sourceforge.net/index.php?id=download

Windows :
TestDisk : indispensable si une table de partition ou le MBR lâche : http://www.cgsecurity.org/index.html?testdisk.html Calypso : Client courriel Calypso : Client courriel (windows)

Emulateurs :
http://aranym.sourceforge.net/ (Atari)
http://www.aros.org (Amiga)


Fichiers de configuration


~/.profile


export PATH="$HOME/.dist/bin:/usr/share/jre1.5.0_01/lib/:/usr/share/jre1.5.0_01
/bin/:$PATH:"
export LANG=fr_FR@euro
#PS1='\[\033[0;33m\][\t]\[\033[0;32m\]\[\033[0;36m\]\w\$\[\033[0m\] \a'
PS1='\[\033[1;30m\][\t]\[\033[1;32m\][\u@\h]\[\033[0;36m\]\w\$\[\033[0m\] '

#Autre effet (retour à la ligne)
PS1='┌─\
\[\033[1;32m\][\
\[\033[1;33m\]\u\
\[\033[1;37m\]@\
\[\033[1;36m\]\h\
\[\033[1;37m\]:\
\[\033[1;37m\]\w\
\[\033[1;32m\]]-[\
\[\033[0;32m\]\t\
\[\033[1;32m\]]
\[\033[0;32m\]└─>\
\[\033[1;31m\]$\
\[\033[0;32m\] '


#Autre effet (retour à la ligne)
PS1='┌─\
\[\033[1;32m\][\
\[\033[1;33m\]\u\
\[\033[1;37m\]@\
\[\033[1;36m\]\h\
\[\033[1;37m\]:\
\[\033[1;37m\]\w\
\[\033[1;32m\]]-[\
\[\033[0;32m\]\t\
\[\033[1;32m\]]
\[\033[0;32m\]└─>\
\[\033[1;31m\]$\
\[\033[0;32m\]\[\033[0m\] '



PROMPT=$'%{\e[0;36m%}[%t] %{\e[0;32m%}%~$%{\e[0m%} '
alias ..="cd .."
alias which="type -path"
alias where="type -all"
alias ll="ls -l --color=auto" # -G à la place de --color=auto sur BSD
alias l="ls -a --color=auto"
alias rm="rm -i"
alias mv="mv -i"
alias cp="cp -i"
alias psg='ps auxww | grep'
alias la="ls -la --color=auto"
alias ls="ls --color=auto"
alias trouve="find ./ -type f | xargs grep -l "
alias cherche-et-trouve="find / -maxdepth 50 -type f | xargs grep -l "
# alias free="sysctl -a | grep -i memory " # sous bsd uniquement


~/.bashrc
[ -f /etc/profile ] && . /etc/profile && . ~/.profile

~/.zshrc
.zshrc
[ -f /etc/profile ] && . /etc/profile && . ~/.profile

#complist
#autoload -U compinit
#compinit
#ZLS_COLORS=$LS_COLORS


~/.torsmorc


torsmo permet d'afficher des info sur l'image de fond (conky est son remplaçant)


# set to yes if you want tormo to be forked in the background
background no

cpu_avg_samples 3
net_avg_samples 3

# X font when Xft is disabled, you can pick one with program xfontsel
#font 5x7
#font 6x10
#font 7x13
#font 8x13
#font 7x12
#font *mintsmild.se*
#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*

# Use Xft?
use_xft yes

# Xft font when Xft is enabled
xftfont Bitstream Vera Sans:size=8

# Text alpha when using Xft
xftalpha 0.8

# mail spool
mail_spool $MAIL

# Update interval in seconds
update_interval 60
# Create own window instead of using desktop (required in nautilus)
own_window no

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer no

# Minimum size of text area
minimum_size 280 5

# Draw shades?
draw_shades yes

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Stippled borders?
stippled_borders 8

# border margins
border_margin 4

# border width
border_width 1

# Default colors and also border colors
default_color white
default_shade_color black
default_outline_color black

# Text alignment, other possible values are commented
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right

# Gap between borders of screen and text
gap_x 12
gap_y 12

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# boinc (seti) dir
# seti_dir /opt/seti

# Possible variables to be used:
#
# Variable Arguments Description
# acpiacadapter ACPI ac adapter state.
# acpifan ACPI fan state
# acpitemp ACPI temperature.
# adt746xcpu CPU temperature from therm_adt746x
# adt746xfan Fan speed from therm_adt746x
# battery (num) Remaining capasity in ACPI or APM
# battery. ACPI battery number can be
# given as argument (default is BAT0).
# buffers Amount of memory buffered
# cached Amount of memory cached
# color (color) Change drawing color to color
# cpu CPU usage in percents
# cpubar (height) Bar that shows CPU usage, height is
# bar's height in pixels
# downspeed net Download speed in kilobytes
# downspeedf net Download speed in kilobytes with one
# decimal
# exec shell command Executes a shell command and displays
# the output in torsmo. warning: this
# takes a lot more resources than other
# variables. I'd recommend coding wanted
# behaviour in C and posting a patch :-).
# execi interval, shell Same as exec but with specific interval.
# command Interval can't be less than
# update_interval in configuration.
# fs_bar (height), (fs) Bar that shows how much space is used on
# a file system. height is the height in
# pixels. fs is any file on that file
# system.
# fs_free (fs) Free space on a file system available
# for users.
# fs_free_perc (fs) Free percentage of space on a file
# system available for users.
# fs_size (fs) File system size
# fs_used (fs) File system used space
# hr (height) Horizontal line, height is the height in
# pixels
# i2c (dev), type, n I2C sensor from sysfs (Linux 2.6). dev
# may be omitted if you have only one I2C
# device. type is either in (or vol)
# meaning voltage, fan meaning fan or temp
# meaning temperature. n is number of the
# sensor. See /sys/bus/i2c/devices/ on
# your local computer.
# kernel Kernel version
# loadavg (1), (2), (3) System load average, 1 is for past 1
# minute, 2 for past 5 minutes and 3 for
# past 15 minutes.
# machine Machine, i686 for example
# mails Mail count in mail spool. You can use
# program like fetchmail to get mails from
# some server using your favourite
# protocol. See also new_mails.
# mem Amount of memory in use
# membar (height) Bar that shows amount of memory in use
# memmax Total amount of memory
# memperc Percentage of memory in use
# new_mails Unread mail count in mail spool.
# nodename Hostname
# outlinecolor (color) Change outline color
# pre_exec shell command Executes a shell command one time before
# torsmo displays anything and puts output
# as text.
# processes Total processes (sleeping and running)
# running_processes Running processes (not sleeping),
# requires Linux 2.6
# shadecolor (color) Change shading color
# stippled_hr (space), Stippled (dashed) horizontal line
# (height)
# swapbar (height) Bar that shows amount of swap in use
# swap Amount of swap in use
# swapmax Total amount of swap
# swapperc Percentage of swap in use
# sysname System name, Linux for example
# time (format) Local time, see man strftime to get more
# information about format
# totaldown net Total download, overflows at 4 GB on
# Linux with 32-bit arch and there doesn't
# seem to be a way to know how many times
# it has already done that before torsmo
# has started.
# totalup net Total upload, this one too, may overflow
# updates Number of updates (for debugging)
# upspeed net Upload speed in kilobytes
# upspeedf net Upload speed in kilobytes with one
# decimal
# uptime Uptime
# uptime_short Uptime in a shorter format
#
# seti_prog Seti@home current progress
# seti_progbar (height) Seti@home current progress bar
# seti_credit Seti@hoome total user credit


# variable is given either in format $variable or in ${variable}. Latter
# allows characters right after the variable and must be used in network
# stuff because of an argument

# stuff after 'TEXT' will be formatted on screen

#${exec date}
#TEXT
#$nodename - $sysname $kernel on $machine
#$stippled_hr
#${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
#${color lightgrey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 6}
#${color lightgrey}CPU Usage:$color $cpu% ${cpubar 6}
#${color lightgrey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 6}
#${color lightgrey}Processes:$color $processes ${color grey}Running:$color $running_processes
#$color$stippled_hr
#${color lightgrey}Networking:
# Up:$color ${upspeed eth0} k/s${color lightgrey} - Down:$color ${downspeed eth0} k/s
#${color lightgrey}File systems:
# / $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
#${color}MPD: $mpd_artist - $mpd_title
#Name Usage PID
#${color lightgrey} ${top name 1} ${top usage 1} ${top pid 1}
#${color lightgrey} ${top name 2} ${top usage 2} ${top pid 2}
#${color lightgrey} ${top name 3} ${top usage 3} ${top pid 3}
#${color lightgrey} ${top name 4} ${top usage 4} ${top pid 4}

TEXT
${color cyan}DEBIAN $sysname $kernel on $nodename
${color white}$hr
${color lightgray}${time %a, }${color white}${time %B %e %G}
${color lightgray}${time %Z, }${color white}${time %H:%M:%S}
${color white}$hr
${color cyan}${execi 40000 cal}
${color white}$hr
${color green}UpTime: ${color lightgray}$uptime
${color white}$hr
${color white}NETWORK INFO
${color green}ETH0:
${color lightgray}Up :${color white} ${upspeedf eth0} k/s
${color lightgray}Down:${color white} ${downspeedf eth0} k/s ${color white}
${color white}$hr
${color lightgray}I N F O
${color green}CPU :${color white} $cpu%
$cpubar
${color green}RAM :${color lightgray} $memperc% $mem/$memmax
$membar
${color green}SWAP :${color white} $swapperc% $swap/$swapmax
$swapbar
${color green}ROOT :${color lightgray} ${fs_free_perc /}% ${fs_free /}/ ${fs_size /}
${fs_bar /}
${color green}ALL PROCESSES: ${color cyan} $processes
${color green}ACTIVE PROCESSES: ${color cyan} $running_processes
$hr

${color white}Temp:
${color white}M/B: ${exec expr `cat /sys/bus/i2c/devices/1-0290/temp1_input` / 1000} C
CPU: ${exec expr `cat /sys/bus/i2c/devices/1-0290/temp2_input` / 1000} C
Temp3: ${exec expr `cat /sys/bus/i2c/devices/1-0290/temp3_input` / 1000} C

root-tail.sh


root-tail -g 800x150+12+510 -font -schumacher-clean-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 /var/log/dmesg,white


fichier hosts


127.0.0.1 doubleclick.net
127.0.0.1 addthis.com


Divers


Autres Unix et apparentés


Haiku / BeOS


Haiku n'est pas vraiment un Unix, mais il est très posix et possède un terminal avec bash.

"Ease-of-use from the Mac, a heavily UNIX-like foundation, and Minesweeper from Windows."


Midi


Pour avoir un midi fonctionnel :


cd /boot/system/data/synth
wget http://ocmnet.com/saxguru/TimGM6mb.sf2
ln -s TimGM6mb.sf2 big_synth.sy

Attributs


On peut les éditer graphiquement avec jellikit :
http://members.tripod.com/~random___boy/BeOS/#jellikit


grouper les onglets


  • setdecor SATDecorator » dans un terminal. La touche « Option » (Windows par défaut) + souris

Divers


/boot/system/etc/hosts


  • changer entre gcc2 et gcc4 : setgcc gcc4

    libm : déjà inclu, retirer -lm si nécessaire à la compilation

Liens Haiku



Sco Unix


regarder la charge système : sar -u 1 20


OpenSolaris


Fort de l'expérience de Sun dans le domaine d'Unix, OpenSolaris est un système élégant qui se pose comme une nouvelle alternative.

http://opensolaris.org/

live-cd :
http://www.genunix.org/distributions/belenix_site/

http://www.genunix.org/

Depuis le rachat de Sun par Oracle, la volonté d'Oracle n'étant pas de garder OpenSolaris, un fork existe, [[:fr:Illumos]] : http://www.illumos.org/


Équivalent de top


psrstat


Équivalent de locate


utiliser findutils (glocate)


Monter partition ext3 sous solaris


editer /etc/vfstab sous solaris et editer la ligne pour la partition linux (par exemple /dev/hda6)

#Device mount point partiton type options
/dev/hda6 /linux ext3 noatime,exec,rw 0 0

(à condition que le noyau ait ces modules)

sinon on peut utiliser les paquets FSWpart et FSWfsmisc

http://www.genunix.org/distributions/belenix_site/binfiles/FSWpart.tar.gz

and

http://www.genunix.org/distributions/belenix_site/binfiles/FSWfsmisc.tar.gz

install them both with the command pkgadd.

pkgadd -d . FSWfsmisc

now you can use the tool prtpart to see what is available. a mount command should finally do the trick:

mount -F ext2fs /dev/dsk/c5t0d0p2 /mnt/

P.S. support is only read only :-/

http://blogs.sun.com/ajaykumar/entry/access_ntfs_partition_from_solaris


Répertoires spécial Solaris


/usr/ccs est pour les binaires spécifiques au développement et à la compilation en C. Peuvent être utiles à installer dans le $PATH de bashrc
idem pour /usr/sfw


Ajouter des dépots OpenSolaris


Solaris
These repositories can be added with the "pkg set-repository" command:

pkg set-authority -O URL FRIENDLYNAME
e.g.
pkg set-authority -O http://pkg.sunfreeware.com:9000/ Companion
pkg set-authority -O http://blastwave.network.com:10000/ Blastwave



Diverses commandes


liste les partitions pfexec prtpart /dev/dsk/c6d0p0 -ldevs

équivalent de sudo : pfexec

chercher le nom du disque avec cmde format

c: controller
d: disk
p: partition (primary fdisk)
s: slice (kind of extended partition inside the Solaris partition)
t: target (SCSI)

You can get the disks connected by using the format command. Just exit after the disks names have been shown.

Another useful command to get more information about the disks is "kstat -c device_error"


Utiliser Linux dans Solaris


voir brandz : http://opensolaris.org/os/community/brandz/


installer les additions clients solaris dans virtualbox


pfexec pkgadd -d VBoxSolarisAdditions.pkg


Liens Solaris


http://www.blastwave.org : paquets pour Solaris
http://www.sunfreeware.com http://solaris.onera.fr http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide




mots clés pour ce document :


  • Unix, linux, opensource, mac os x, freebsd, bsd, solaris, opensolaris, posix, gnu
  • Cours, notes, pense-bête, astuces et formation linux en français

@@DIV.footer1@@Dernière modification de cette page le 24/10/2012 à 15:53@@/DIV@@







A N A M N E S E

http://anamnese.fr.st
Copyright © 2008 - Droits réservés, site publié sous licence Creative Commons by-nc-nd, sauf les cours linux sous licence BSD ou CC-SA (selon votre préférence)

creative commons some rights reserved
page générée le 28/10/2020