UNIX %!target: xhtml %!options: --toc-level 4 --css-sugar --no-headers %!options: --toc --outfile ../pageunix.php %!style: styleunixx.css %!style: griss.css %!postproc(xhtml): '(?i)(
' '" | sed s/"<[/]*code>"/""/g
curl checkip.dyndns.org
== Messagerie ==
=== Jabber ===
- server [ejabberd http://www.ejabberd.im] : 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
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 http://fr.wikipedia.org/wiki/ssh]
pour une connexion distante sécurisée (remplace [telnet http://fr.wikipedia.org/wiki/]) ``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
%(http://forum.macbidouille.com/index.php?showtopic=16698) (filtrage ip)
``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
```
=== 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)
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.
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 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)
- Terminal coloré
PS1='\[\033[1;32m\][\t]\[\033[1;33m\][\u@\h]\[\033[0;36m\]\w\$\[\033[0m\] '
Autoriser un utilVariables dans le prompt:
\d pour ajouter la date (format anglais)
\t pour ajouter l'heure (HH:MM:SS)
\u pour ajouter le nom de l'utilisateur
\r pour un retour à la ligne
\w pour ajouter le chemin complet du répertoire courant
\W pour ajouter le répertoire courant
\h pour ajouter le nom de la machine
Couleur dans le prompt:
PS1='\[\033[couleurm]prompt_voulu\033[0m]'
Noir 0;30
Rouge 0;31
Vert 0;32
Brun 0;33
Bleu 0;34
Violet 0;35
Cyan 0;36
Gris Clair 0;37
Gris 1;30
Rose 1;31
Vert Clair 1;32
Brun Clair 1;33
Bleu Clair 1;34
Violet Clair 1;35
Cyan Clair 1;36
Blanc 1;37
http://understudy.net/custom.html
http://wiki.archlinux.org/index.php/Color_Bash_Prompt
voir http://mercury.chem.pitt.edu/~sasha/LinuxFocus/English/May2004/article335.shtml
www.linuxexposed.com/Articles/General/Automating-the-Login-Script.html
http://www.rodolf.free.fr/linux.htm
=== 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 ===
%http://www.hants.lug.org.uk/cgi-bin/wiki.pl?LinuxHints/PseudoRoot
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 ===
==== 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
```
- 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
==== 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 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
```
==== 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 ====
```
mkdir convert
for A in *.jpg ; do convert -quality 84 -geometry 1280x1280 $A convert/label_$A ; done
```
==== 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
```
for a in * ;
do zip -r "$a".cbz "$a" ;
done
ls *.cbz > comics.txt
```
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
==== 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 tous les liens symboliques :
```find ~/dossier -type l
- trouver des fichiers dans des sous-répertoires :
``` find ./ -depth -maxdepth 3 -name '*.xml'
- 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 arguements : 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
Astuces diverses
De par leur faible taille, ces astuces 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
Console :
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
& : à 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
/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/peripheriqueoudisque : 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]*'
- 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 :
ex :
``` awk -F":" '{ print $1 " " $3 }' /etc/passwd
=== 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;sx]s"[1+l>] s>[q]s-[d77/3*2-s;47l"x-P1+d78>`]s`0[d23/.5-3*s:0l`xr10P1+d24>$]ds$x'|dc
== Configuration et système ==
=== 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
=== 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
=== 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à.
- créer un paquet binaire :
http://www.csquad.org/pub/deb_binary/deb_binary.html
dpkg-deb --build paquet
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 ===
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 http://wiki.archlinux.org/index.php/Pacman]
``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
Archassistant : aide à la configuration
[Installer depuis une distribution existante http://wiki.archlinux.org/index.php/Install_From_Existing_Linux]
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
% exemple pacman-static : $(LDFLAGS) -all-static'
==== 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.
=== Résolution de problèmes typiques ===
==== Archlinux ====
Pas d'accès aux clés usb : se rajouter dans le groupe "storage" : sudo gpasswd -a son_login storage
==== 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 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 ===
==== 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
==== 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
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
==== 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 ===
- accélérer l'affichage
utiliser le mode raster avec `` -graphicssystem raster``, par exemple ``konqueror -graphicssystem raster``
- Dcop
```
while true ; do
dcop amarok player start
sleep 7
dcop amarok player pause
sleep 5
done
```
http://www.volny.cz/bwian/dcop.html
Equivalent linux général : Dbus
http://www.freedesktop.org/wiki/Software_2fDbusProjects
=== 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é
% (Mes favoris sont kde avec kstep, windowmaker, fluxbox, xfce... site sur le sujet : http://xwinman.org/)
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 -pA3 -PA4 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
- 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 fichier1.pdf fichier2.pdf fichier3.pdf --fitpaper false --paper a4paper --outfile nouveaufichier.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) ====
%``` transcode -i video1.mpg -V -Z 360x288 -w 900 -b 80 -U video2 -y ffmpeg -F mpeg4 -w 1618
- 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)
- 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)
==== 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
- monkey / .ape
``` mac infile.ape outfile.wav -d
éventuellement : ``bchunk -w image.wav image.cue result``
(cf. http://gimpel.gi.funpic.de/wiki/index.php?title=Howto:convert_ape_to_wav/mp3/ogg_on_Linux )
``` 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.
%Le premier chiffre est fixe (0) puis on fait évoluer les dizaines (0 à 4) puis les unités (0 à 9).
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.
== 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
=== Ecran et carte graphique ===
- Extensions composites xorg
http://wiki.archlinux.org/index.php/Using_the_Composite_extension
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
- 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
==== 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
%(si on ne fait pas le -f apparemment cela ne fonctionne pas, j'ai pas mal buté là dessus au début)
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.
== divers ==
=== Linux 64 ===
compiler en 32 bits :
``` configure CFLAGS="-m32 -O3" CXXFLAGS="-m32 -O3 -fno-strict-aliasing"
=== 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
http://wiki.archlinux.fr
- Statistiques de navigateurs et OS :
- http://gs.statcounter.com
- http://www.statowl.com/
- http://www.atinternet-institute.com/fr-fr/equipement-internaute/systemes-d-exploitation-aout-2009/index-1-1-7-176.html
- [Comparaison des différents supports des navigateurs http://caniuse.com]
==== Graphismes et typo ====
polices libres/gratuites
- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=Gentium
- http://www.josbuivenga.demon.nl/delicious.html
- http://www.campivisivi.net/titillium/
- http://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released
==== Thèmes ====
- fluxbox
http://mirror.usu.edu/mirrors/gentoo/distfiles/fluxbox-styles-fluxmod-20050128.tar.bz2
==== 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.
```
== Haiku / BeOS ==
[Haiku http://www.haiku-os.org/] 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
=== 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 ===
- http://www.haiku-files.org
- http://www.haikuware.com/
- http://www.bebits.com/
- http://haikufire.com/?p=software
- http://www.haikuzone.net/
- http://tiltos.com : gestionnaire de paquets pour haiku
= 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
- monter sys existant :
zpool import -R /mnt/temp rpool
mount -F zfs rpool/ROOT/opensolaris /mnt/temp/
ou voir zpool import
http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf
== 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
= logiciels =
== Dessin ==
- [MyPaint http://mypaint.intilinux.com/]. Similaire à Painter
== Musique ==
- [Songs http://songs.sourceforge.net/]. Création de livres de chansons
- [mhWaveEdit http://gna.org/projects/mhwaveedit/]. Éditeur / convertisseur léger de sons
- http://audacity.sourceforge.net/
- Rosegarden
- http://www.linux-sound.org/snded.html
== Pratique ==
- Verbiste
- Stardict : dictionnaire de langues
- dictionnaire Littré :
```
wget http://prdownloads.sourceforge.net/stardict/stardict-xmlittre-2.4.2.tar.bz2?download
tar jxvf stardict-xmlittre-2.4.2.tar.bz2
sudo mv stardict-xmlittre-2.4.2 /usr/share/stardict/dic
```
- Français-Anglais
```
wget http://prdownloads.sourceforge.net/stardict/stardict-woaifayu-fe-2.4.2.tar.bz2?download
tar jxvf stardict-woaifayu-fe-2.4.2.tar.bz2
sudo mv stardict-woaifayu-fe-2.4.2 /usr/share/stardict/dic
```
- Anglais-Français
```
wget http://prdownloads.sourceforge.net/stardict/stardict-woaifayu-ef-2.4.2.tar.bz2?download
tar jxvf stardict-woaifayu-ef-2.4.2.tar.bz2
sudo mv stardict-woaifayu-ef-2.4.2 /usr/share/stardict/dic
```
- Stellarium : carte du ciel
- [Dictionnaire Littré http://code.google.com/p/dictionnaire-le-littre/] seul, avec une superbe interface.
== 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 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
$ VBoxManage setextradata "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
$ VBoxManage setextradata "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 !
%%% s
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.
%%% s
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
%%% s
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
%%% s
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.
%%% s
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
%%% s
/etc/init.d/iptable save active
On charge les modules noyaux
%%% s
modprobe kqemu
modprobe tun
Ou pour garder apres un reboot (noyau 2.4)
%%% s
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.
%%% s
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 dsl]$ 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 : 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 :
%%CLASSPATH=/usr/share/java/saxon.jar:$CLASSPATH
export CLASSPATH
java -ms15000000 com.icl.saxon.StyleSheet $1 $2 $3 $4 $5 $6 $7 $8 $9%%
tester :
tbprepare test
tbtolatex -t test
== 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 ==
=== convertir des polices d'un format en un autre avec fontforge ===
http://www.stuermer.ch/blog/convert-otf-to-ttf-font-on-ubuntu.html
http://www.se.eecs.uni-kassel.de/~thm/OpenOffice.org/bugs.html
#!/usr/local/bin/fontforge
# Quick and dirty hack: converts a font to truetype (.ttf)
Print("Opening "+$1);
Open($1);
Print("Saving "+$1:r+".ttf");
Generate($1:r+".ttf");
Quit(0);
Save the script as otf2ttf.sh and type:
fontforge -script otf2ttf.sh FONTNAME.otf
#!/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
== 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 https://addons.mozilla.org/fr/firefox/addon/67651/] : pour éviter de recharcher au démarrage les onglets sauvegardés.
- Adblock Plus
- ChatZilla
- DownThemAll
- FireFTP
- Flashblock
- Greasemonkey peut être utile
- Readability
- SQLite Manager
- Web Developer
- [ScrapBook https://addons.mozilla.org/en-US/firefox/addon/427/] : récupérer des bouts de site web et les organiser et sauvegarder.
=== 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==
===UAE (amiga)===
dans uaerc : gfx_linemde=double
F12 + G pour bloquer la souris et la libérer (grab the mouse)
=== 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):
```
A witty comment
Uno Commento
```
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
```
==== 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 http://vale.homelinux.net/wordpress/2007/09/29/nimbus-beauty-for-your-ubuntu-desktop/]
==== 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 INDEX@jeux]
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 =
== Sco Unix ==
regarder la charge système : sar -u 1 20
------------------------
//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
%%
% //pages générées le %%mtime(%m/%d/%Y)//
%!include: date.txt