La puissance d'Unix par rapport au système informatique le moins posix et le plus diffusé au monde ne réside pas que dans sa stabilité. Les possibilités de configuration sont infinies, et les outils de gestion du sytème très performants, en particulier la ligne de commande (shell / console) qui permet de presque tout faire avec. Ce ne sont pas les pages internet sur le sujet qui manquent, aussi je ne peux que conseiller de s'y reporter pour des explications plus complètes.
Voir par exemple : http://fr.wikipedia.org/wiki/Unix pour une présentation générale et l'histoire d'Unix.
Nous n'allons pas faire d'explications détaillées sur le système, mais donner quelques indications qui peuvent servir pour mieux l'appréhender, le comprendre ou le dépanner.
Cela peut également m'aider pour avoir toujours sous la main les diverses astuces que j'ai pu découvrir au fil du temps.
Les notes qui vont suivre proviennent toutes soit de découvertes personnelles, soit de renseignements pris sur internet. À utiliser à vos propres risques. Je suis également constamment en train de les réorganiser, donc il peut y avoir des inversions, de mauvais placements etc.
Quelques conseils additionnels :
Même si un système de fenêtrage et de bureau comme celui livré avec KDE ou Gnome est très intéressant, il peut être très instructif d'essayer quelque chose de moins « convivial », mais qui permet un apprentissage plus rationnel du système. WindowMaker est tout indiqué, car même si une partie est très intuitive, il nécessite quand même d'utiliser certaines commandes en console. Loin d'être rébarbative, la console est un outil très puissant.
Consulter la source de ce document au format txt2tags
Ce travail est publié sous licence Creative Commons BY-NC-SA
Linux
Actuellement le système qui a le vent en poupe et est le plus connu du grand public, il a permis le développement de nombreux projets liés aux Unix.
Voir des info pour d'autres OS :
Debian
Ici, quelques spécificités à la distribution Debian.
Réinstaller un système à l'identique
dpkg --get-selections >mes_paquets
pour obtenir la liste des paquets depuis l'ancien ordinateur
dpkg --set-selections < mes_paquets
apt-get dselect-upgrade
(voir éventuellement (apt-get upgrade))
On peut également utiliser debconf :
# debconf-get-selections --installer > preseed.cfg
# debconf-get-selections >> preseed.cfg
Il suffit ensuite de récupérer le fichier généré pour le passer en paramètre à d-i au démarrage de l'installation avec l'option et les arguments (au choix) suivants :
preseed/url=http://some.example.com/preseed.cfg
preseed/file=/floppy/preseed.cfg
Récupérer de vieux paquets
http://snapshot.debian.net/
préparer l'installation d'un paquet tandis qu'un autre est déjà en train de s'installer
inotifywait -e close /var/lib/dpkg/lock && apt-get install paquet
(inotify-tools)
effacer un paquet qui pose probleme
dpkg --purge --force-remove-reinstreq paquet
reconstruire un paquet debian
fakeroot -u dpkg-repack paquet
Créer un paquet :
ou utiliser checkinstall (à la place de make install) qui peut créer spécialement des paquets à partir des sources.
checkinstall --dpkgflags=--force-overwrite
(en cas d'installation à problème)
dpkg -i archive.deb : installation paquet debian
dpkg -s archive.deb : info sur une archive
dpkg -l : liste les paquets disponibles
dpkg --extract paquet.deb /répertoire/ : extraire un paquet deb
ar vx package.deb && tar -xzvf data.tar.gz : extraire un paquet deb si vous n'utilisez pas Debian
dpkg -P programme : suppression packetage debian
dpkg --force-overwrite -i nomdupaquet.deb
dpkg-deb --build paquet : générer un paquet debian
dpkg --get-selections > selections.txt : liste des paquets installés
apt-get remove --purge archive.deb : supprime une archive
apt-cache search nom : cherche des infos dans les paquets disponible
apt-cache show paquet.deb : liste les infos sur un paquet.
Debian : pas de touche supérieur / inférieur : éditer /etc/X11/XF86Config et mettre XkbModel "pc104" - XkbModel "pc105"
apt-cache search kernel-image
apt-get install kernel-image
http://www.debian.org/distrib/packages
Exemple de création d'un paquet binaire Debian
install the dependencies for compiling:
sudo apt-get install libglib2.0-dev libgnome2-dev libossp-uuid-dev libgnomevfs2-dev libgtkhtml3.14-dev libxml2-dev libgconf2-dev libgtk2.0-dev libgtkspell-dev libdbus-glib-1-dev libgtksourceview2.0-dev libgnomecanvas2-dev libpango1.0-dev libgnomeui-dev
libsdl1.2-dev libsdl-mixer1.2-dev
create the folders (for example)
/opt/Debian/gnome-inform7_5U92_i386/usr
/opt/Debian/gnome-inform7_5U92_i386/DEBIAN
create the /opt/Debian/gnome-inform7_5U92_i386/DEBIAN/control file
Package: gnome-inform7
Version: 5U18
Section: contrib
Priority: optional
Architecture: i386
Depends: libgtk2.0-0, libgnomeui-0, libuuid1, libgtksourceview2.0-0, libgtkhtml3.14-19, libgtkspell0, libfreetype6, libsdl-image1.2, libsdl-sound1.2, libsdl-mixer1.2, libpng12-0, libdbus-glib-1-2
Suggests: frotz, gargoyle
Maintainer: Your name
Description: GNOME port of the Inform 7 IDE
GNOME Inform 7 is a GNOME port of the Inform 7 integrated development environment for Inform 7. Inform 7 is a "natural" programming language for writing interactive fiction (also known as text adventures.)
(maybe I've required too many dependencies, but I think it needs most of them...)
create a copyright file :
/opt/Debian/gnome-inform7_5U92_i386/usr/share/gnome-inform7/copyright
uncompress the sources in a temp folder
then
./configure --prefix=/usr
make
make install prefix=/opt/Debian/gnome-inform7_5U92_i386/usr
Then from /opt/Debian run :
dpkg-deb --build gnome-inform7_5U92_i386
Mes mises à jour les plus courantes
apt-get install abcm2ps abcmidi fluxbox inform psi konqueror kate parted qtparted gimp inkscape blender gimp-svg xpdf grisbi gnucash gv vlc xmms iceweasel icedove firefox thunderbird pstoedit gorm xfe worker gftp gaim nedit
Archlinux
Ici, quelques spécificités à la distribution Archlinux.
- pacman -Syu : mettre à jour le système complet
- pacman -Sy : mettre à jour la base des paquets pour les installations individuelles
- pacman -Ss paquet : recherche ce qui est relatif à paquet
- pacman -S paquet : installe le paquet
- pacman -Rs paquet : retire un paquet (avec confirmation)
- pacman -Rdd paquet : retire un paquet en forçant même s'il y a des dépendances manquantes par la suite
Créer un paquet pour AUR
http://wiki.archlinux.org/index.php/AUR_User_Guidelines
Aur permet aux utilisateurs de contribuer aux recettes de compilation de paquets.
Éditer le PKGBUILD
makepkg -s
nettoyer le dossier et le compresser
l'envoyer sur les dépôts avec aurup
éventuellement utiliser aurcreate pour générer le paquet.
http://arm.kh.nu/ : anciens paquets en cas de problème de mise à jour.
Divers
- Pas d'accès aux clés usb : se rajouter dans le groupe "storage" : sudo gpasswd -a son_login storage
- Clavier en français sous Archlinux, fichiers à modifier :
- /etc/X11/xorg.conf.d/10-evdev.conf : Option "XkbLayout" "fr"
- /etc/hal/fdi/policy/10-keymap.fdi
- /etc/rc.conf
- http://wiki.archlinux.fr
Administration réseau et internet
Configurer le réseau manuellement
ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up
route add default gateway 192.168.0.2
echo "nameserver 193.252.19.3" >> /etc/resolv.conf
# l'exemple donné est celui de Wanadoo
echo "nameserver 194.2.0.20" >> /etc/resolv.conf
# oleane (ainsi que 194.2.0.50)
pour modifier sous Debian le type d'interface (dhcp ou ip fixe) :
/etc/network/interfaces
indiquer INET = DHCP ou INET=STATIC
DNS
les DNS (système de noms de domaine) se trouvent dans le fichier de configuration /etc/resolv.conf
Normalement il vaut mieux utiliser un serveur de son fournisseur d'accès, mais en cas de panne on peut en utiliser un public, par ex :
nameserver 193.22.143.11
# serveur DNS public de Cyrealis : Clubic, Jeuxvideo.com
on trouve une liste de DNS publics ici :
http://80.247.230.136/dns.htm (attention au phishing quand même...)
Désactiver ipv6
si vous n'avez pas accès à l'ipv6, autant le désactiver.
- debian
In /etc/modprobe.d/aliases
alias net-pf-10 off
alias ipv6 off
http://beranger.org/index.php?article=1127
- suse
Changer dans /etc/modprobe.conf
alias net-pf-10 ipv6
->
alias net-pf-10 off
alias ipv6 off
(Reboot éventuel)
Désactiver le window scaling TCP
Il est parfois mal perçu par certains parefeu ou routeur :
temporairement :
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
il est possible de modifier plus finement :
echo 4096 65536 65536 >/proc/sys/net/ipv4/tcp_rmem
echo 4096 65536 65536 >/proc/sys/net/ipv4/tcp_wmem
définitivement : mettre "net.ipv4.tcp_window_scaling=0" dans /etc/sysctl.conf
Régler le MTU
Il est possible de modifier le MTU (maximum transfert unit, c-à-d la taille maximale de chaque paquet IP transmis) avec :
ifconfig ppp0 mtu 800
La valeur par défaut est de 1500. Baisser cette valeur peut être efficace sur une connexion modem ou qui a des difficultées.
Changer le protocole de négociation (half / full duplex)
Services http
Il permettent une gestion de la machine au travers d'un navigateur internet
divers
IP Masquerade
faire un script dans ce style, et le lancer au démarrage de la machine, ou après la connexion :
#!/bin/bash
case $1 in
start)
echo Starting IP Masquerade
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -t nat -F
/sbin/iptables -t nat -X
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
echo "1">/proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
;;
stop)
echo Stopping IP Masquerade - not yet implemented -
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage : ipmask {start|stop|restart}"
exit 1
esac
exit 0
wakeonlan
Alarme
Sur eeepc par exemple :
sudo sh -c 'echo "2009-03-22 00:00:00" > /proc/acpi/alarm'
(attention, décaler d'une heure éventuellement car cela utilise l'heure bios)
Installer un proxy apache
modifier httpd.conf en retirant les commentaires (débutant par #) des lignes qui parlent de proxy
ex :
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
et ensuite inclure ces lignes :
<IfModule mod_proxy.c>
ProxyRequests On
<Proxy *>
Order deny,allow
Deny from all
Allow from 192.168.0.2
Allow from 192.168.0.3
#indiquer l'ip des ordinateurs qui se connecteront à ce proxy.
#Ensuite renseigner ces ordinateurs avec adresseserveur:port,
#par ex 192.168.0.1:80]
</Proxy>
</IfModule>
Ports
rpcinfo -p
: liste des ports
lsof -i
: liste les fichiers n rapport avec une connexion internet
netstat -a
: info sur les connexions
fuser
ifconfig
: entre-autres permet de savoir sa propre adresse ip
iftop
: liste les connexions
htop
: top amélioré
ntop
: top pour les connections
pppstatus
: liste le traffic réseau
cat /proc/net/dev
: activité réseau.
sudo lsof -i -n -P
: voir les ports ouverts
netstat -pan | grep :21
(par exemple ici port 21)
netstat -lntup
: Pour connaîtres les programmes derrière les ports ouverts (en root)
iptables -L -v -n
: voir les ports
Infos sur un site
- avec le paquet dnsutils :
host -t any site.org
dig site.org
Bloquer un site avec iptables
Ex :
iptables -A FORWARD -d ebuddy.com -j DROP
iptables -I INPUT -s 38.99.72.122 -j DROP
iptables -A FORWARD -d rtl.fr -j DROP
iptables -I INPUT -s 81.52.140.9 -j DROP
iptables -A FORWARD -d badoo.com -j DROP
iptables -I INPUT -s 194.228.191.30 -j DROP
Installer LAMP (Linux, Apache, MySQL, Php)
(voir http://www.ac-creteil.fr/reseaux/systemes/linux/installation-lamp-debian.html)
Ou sinon utiliser xampp si c'est juste pour du développement : http://www.apachefriends.org/fr/xampp.html
Sous Debian, apt-get install phpmyadmin devrait suffire à tout installer du fait des dépendances.
Installer les paquets de base pour compiler en C
Quelques ip courantes
Des moteurs de recherche alternatifs
Faire une copie d'écran d'un site en mode console
kwebdesktop 800 600 vignette.png http://ifiction.free.fr/
Modifier le nom de machine
hostname nomdemachine
: défini le nom de machine
modifier également /etc/hosts /etc/hostname
éventuellement /etc/samba/smb.conf
Samba
voici la partie qu'il faudra ajouter à fstab pour monter directement un partage distant, et en autoriser l'accès à tous les utilisateurs de la machine :
//cheminreseau /mnt/chemindemontage smbfs auto,users,umask=0777,username=votrelogin,password=votremotdepasse,rw, 0 0
Si le montage ne se fait pas correctement, taper : mount -a ou mount //serveur/repertoire
Pour un montage direct :
mount -t smbfs -o username=votrelogin,password=votremotdepasse //cheminreseau /mnt/chemindemontage
Du côté serveur (au sens large, c'est à dire ordinateur où on se connecte), soit cela tourne sous MSWindows et il n'y a qu'à définir les partages et les mots de passe à partir de là, soit il faut modifier sous linux ce fichier en ajoutant ce type d'entrée :
section /etc/samba/smb.conf :
[eric]
comment = Eric
path = /home/eric
browseable = yes
read only = no
puis :
/etc/init.d/samba restart
Ne pas oublier de définir un ou des utilisateurs Samba avec la commande :
smbpasswd -a login motdepasse
pour configurer un serveur public sans aucune restriction d'accès, il faut avoir un fichier smb.conf sur ce modèle :
[global]
workgroup = votre-groupe-de-travail
netbios name = nom-ordinateur
os level = 20
encrypt passwords = true
server string = Serveur public
security = share
[partage]
writeable = yes
public = yes
path = /partage
browseable = yes
read only = no
force user = root
force group = root
Nfs
Il peut sembler plus logique d'utiliser NFS si toutes les
machines tournent sous linux : voir les fichiers /etc/exports,
/etc/hosts.allow, /etc/hosts.deny (exportfs -ra après edition)
/etc/exports contiendra par exemple :
# repertoire liste-machines-autorisées (liste-options)
/home/fichierpartage machine1(ro) machine2(rw)
en plus avancé :
/home/fichierpartage 192.168.31.137(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongid=65534) 192.168.31.142(rw,fsid=0,insecure,no_subtree_check,sync,anonuid=65534,anongid=65534)
pour valider, faire exportfs -a
et relancer le service nfs
pour monter un répertoire nfs distant, modifier dans fstab :
adresseip:/home/fichierpartage /mnt/pointdemontage nfs defaults,nfsvers=2 0 0
(nfsvers=2 est optionel, uniquement pour les vieux serveurs unix nfs par exemple)
mount -t nfs adresseip:/home/fichierpartage /mnt/pointdemontage
ou pour les vieux serveurs unix :
mount -o nfsvers=2 adresseip:/home/fichierpartage /mnt/pointdemontage
Webdav
Box
Il est possible de monter un répertoire webdav distant dans l'arborescence de fichiers. Exemple avec box.com :
- Installez davfs, par exemple
yaourt davfs2
, apt-get install davfs2
ou yum install davfs2
- Créez le point de montage, par exemple
mkdir /mnt/box
- rajoutez dans /etc/fstab :
https://www.box.com/dav /mnt/box davfs rw,user,noauto 0 0
- rajoutez dans /etc/davfs2/secrets
https://www.box.com/dav utilisateur@email.com motdepasse
- éditez /etc/davfs2/davfs2.conf et modifiez
# use_locks 1
vers use_locks 0
- montez le dossier
mount /mnt/box
(en root)
- vérifiez les droits pour /mnt/box (par exemple avec chmod ou chown)
Ftp
utiliser vsftpd, rapide et facile à configurer
si cela bloque à cause de xinetd : kill -hup `pgrep xinetd`
voir
http://www.siliconvalleyccie.com/linux-hn/ftp-server.htm
sinon
avec pure-ftp
http://www.trustonme.net/didactels/?rub=57
En fait pour lancer le serveur, une commande comme :
pure-ftpd -A -H
peut suffire (je pense qu'il doit y avoir quelques sécurités là dessus, contrairement à la commande toute seule).
Par contre il faut juste configurer quel répertoire sera partagé, et pour cela je conseille de lire cette page : http://www.trustonme.net/didactels/57.html
en gros c'est :
# mkdir /var/ftp
(ou /srv/ftp)
Vérifier que notre utilisateur/groupe ftp n'existe pas déjà:
# cat /etc/passwd|grep ftp
ftp:x:14:50:FTP User:/var/ftp:
# cat /etc/group|grep ftp
ftp:x:50:
Comme on peut le voir ici, l'utilisateur ftp existe déjà avec /var/ftp (ou /srv/ftp) comme répertoire maison et il appartient au groupe ftp. Donc rien a faire en théorie, mais pour les besoins de l'exemple on va faire comme si on avait rien vu ;-)
Création de l'utilisateur ftp:
$ su
Password:
# groupadd -g 23 ftp
# useradd -d /var/ftp -g 23 -u 14 ftp -s /bin/false
c'est pas bien difficile, et une fois que c'est fait, on est tranquille, il y a juste à lancer le serveur à distance.
Ici il y a une note pour avoir une adresse à jour avec dyndns :
http://guides.ovh.com/DynDns/contenu.html
regarder du côté du script Addns.pl
- client ftp : synchroniser un site ftp avec du local
lftp -u username,password -e "mirror --reverse --delete --only-newer --verbose path/to/source_directory path/to/target_directory" ftpsite
(attention, efface sur le serveur tout ce qui n'existe pas en local...)
lftp -u username,password -e "mirror --reverse --only-newer --verbose path/to/source_directory path/to/target_directory" ftpsite
(pour ne pas tout effacer)
pour faire un miroir local :
lftp -u username,password -e "mirror --delete --only-newer --verbose path/to/source_directory path/to/target_directory" ftpsite
Messagerie
Jabber
- server ejabberd : si utilisation locale, ne pas utiliser localhost, mais un nom commun sur le réseau pour toutes les machines connectées (à rajouter dans /etc/hosts). Si pas de connexion sur le port 5222, mettre 1080 par exemple, à modifier dans /etc/ejabberd/ejabberd.cfg
- démarrer le serveur avec ejabberdctl start
- L'admin locale peut se faire sur http://localhost:5280/admin/
Forward de mail
- 1 (recommandé)
Avec sendmail, il suffit d'avoir un fichier .forward dans le dossier de l'utilisateur. Une ligne par adresse de courriel, en indiquant en premier l'adresse locale si on veut en avoir une copie dans la boîte habituelle:
.forward
martin
martin.trucmuche@yahoo.fr
- 2 (alternative)
Il est possible également d'avoir dans le fichier /etc/fetchmailrc
poll pop.wanadoo.com with proto POP3
user "martin@domaine.fr.fto" there with password "azerty" is e.martin here
/etc/aliases :
e.martin: martin, martin.trucmuche@yahoo.fr
(où martin est le login sur le serveur)
(et finir avec newaliases pour activer l'alias)
Supprimer un forward de mail de façon conviviale
Pour que l'utilisateur puisse supprimer ou réactiver son forward de mail sans avoir à se logger sur le serveur, il est possible d'utiliser procmail pour lancer un script qui annule ou réactive le forward. (Exemple ici vers un blackberry)
Créer un fichier /etc/procmailrc (normalement cela devrait être possible d'utiliser un ~/.procmailrc dans le dossier de l'utilisateur, mais je n'ai pas réussi à le faire fonctionner ainsi)
:0
* ^Subject: .*berry_stop
|/home/login_utilisateur/scripts/blackberrystop.sh
:0
* ^Subject: .*berry_start
|/home/login_utilisateur/scripts/blackberrystart.sh
Créer un fichier ~/forwardstop_blackberry avec juste l'adresse locale de l'utilisateur
Créer un fichier ~/forwardstart_blackberry avec l'adresse locale de l'utilisateur + l'adresse vers laquelle transférer (voir plus haut pour le .forward)
Créer 2 scripts à appeler par procmail :
blackberrystop.sh
#!/bin/sh
echo "Vos messages ne seront **plus** transferes sur le blackberry a partir de maintenant."| mail login_utilisateur -s "STOP transferts vers blackberry"
sleep 40
cp /home/login_utilisateur/forwardstop_blackberry /home/login_utilisateur/.forward
blackberrystart.sh
#!/bin/sh
cp /home/login_utilisateur/forwardstart_blackberry /home/login_utilisateur/.forward
echo "Vos messages seront transferes sur le blackberry a partir de maintenant." | mail login_utilisateur -s "transferts messages vers blackberry"
Ainsi votre utilisateur pourra s'envoyer un courriel avec le sujet berry_start pour activer le forward, et avec berry_stop pour le désactiver.
Attention, le fait que cela soit dans /etc/procmailrc au lieu de ~/.procmailrc fera que n'importe quelle adresse ciblée sur le domain activera le script. De plus n'importe de l'extérieur qui connaîtra le truc pourra s'amuser à activer ou désactiver la redirection. Il devrait être possible d'affiner la règle selon l'adresse d'envoi par exemple.
sécurité
Parefeu
partage réseau, manage firewall : firestarter
- Redirection de port
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 5151 -j DNAT --to 192.168.0.45:22
ceci redirige le traffic tcp arrivant sur le port 5151 vers la machine locale 192.168.0.45 port 22
et pour sauvegarder la règle (sous fedora dans l'exemple) :
/sbin/iptables-save > /etc/sysconfig/iptables
- ouvrir un port :
/sbin/iptables -A INPUT -p tcp --dport 8080 -m state --state NEW -j ACCEPT
ou
/sbin/iptables -A public -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
la règle : -A public -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
- pour ouvrir un port public :
/sbin/iptables -A public -p tcp --dport 80 -j ACCEPT
- voir les redirections :
/sbin/iptables -nL -t nat
- voir les informations sur iptables :
/sbin/iptables -nL -v --line-numbers
- retirer une règle :
iptables -D <chain> <rule nb#>
Il est possible également de retirer une règle en passant la même commande que pour l'ajouter, mais en remplacant -I ou -A par -D
ssh
- Connexion shell sécurisée ssh
pour une connexion distante sécurisée (remplace telnet)
ssh utilisateur@serveur
- limiter l'accès ssh a quelques utilisateurs seulement
ajouter à /etc/ssh/sshd_config la ligne :
AllowUsers user1 user2
Port 9022 % change le port
PermitRootLogin no
MaxStartups 2 %limite le nombre de tentatives de connexions
MaxAuthTries 2
pour avoir les logs des utilisateurs connectés de la semaine
cat /var/log/secure.* | grep Accepted | awk -F' ' '{print $1" "$2" "$9}' | uniq -u
sous Red Hat
ou
cat /var/log/auth.* | grep Accepted | awk -F' ' '{print $1" "$2" "$9}' | uniq -u
sous Debian / Archlinux et autres
vérifier rapidement les connexions :
cat /var/log/auth.* | grep port
installer également denyhosts / fail2ban
- Ouvrir un ou des tunnels SSH
Cette commande permet d'ouvrir un tunnel ssh à un port que vous choisirez. Traditionnellement, pour les ports systèmes (en dessous de 1000), on rajoute 1000 à ce port.
sudo ssh -N -f monlogin@serveur -L1080:192.168.26.166:80 sleep 60
sudo ssh -N -f monlogin@serveur -L1022:192.168.26.166:22 -L1080:192.168.26.166:80 -X -L5901:192.168.26.166:5901 -L5900:192.168.26.166:5900 sleep 60
Pour se connecter sur un port donné, il suffit de se connecter en local sur le port indiqué. Par exemple pour faire du X forward en passant par un serveur qui n'a pas X11 :
ssh monlogin@localhost -p 1022 -X
- VPN par pptp
pptpsetup --create pptp --server ipduserveur --username "login" --password "motdepasse" --start --encrypt
- Vérifier les utilisateurs qui se sont loggés récemment en ssh
cat /var/log/secure.1 /var/log/secure | grep Accepted | awk -F' ' '{print $1" "$2" "$9}' | uniq -u | mail youremail-or-login -s "Login Report"
ou
cat /var/log/auth* | grep Accepted | awk -F' ' '{print $1" "$2" "$9}' | uniq -u | mail youremail-or-login -s "Login Report"
nmap (Scanner des adresses ip)
nmap -vv -sV adresse
(attention, cette commande peut être mal interprétée ou considérée comme une attaque sur le réseau...)
juste sur un port :
nmap -vv -sV -p 80 adresse
nmap -sS -O -PI -PT 192.168.0.0/24
: voir les machines sur le réseau + diverses info
nmap -sP 192.168.0.0/24
: liste simplement les machines sur un réseau local
conseils sécurités réseau
(trouvé sur linuxfr, librement adapté)
sécurité info :
Pour les vecteurs d'attaque, en général
- L'échelon 1 est de charger un script php ou ruby qui va permettre d'avoir un pseudo-shell.
- L'échelon 2 est accéder a un compte ssh, pour ça on va casser en brute force tout les mots de passe dispo dans des htpasswd et autre lisibles
- L'échelon 3 on essaye de passer root (sudo, suid, ou kernel vulnérable)
- L'échelon 4 on maquille le tout
Pour se protéger :
- NE LAISSEZ JAMAIS LISIBLE par l'utilisateur sous lequel les script php tournent les fichiers contenant des mots de passe
- utilisez des mot de passe aléatoires pour les accès à la base de donnée sql
- ne jamais utiliser un mot de passe pour le compte unix utilisé dans une base sql (sinon ils auront qu'à faire un coup de john et ils ont l'accès ssh)
- ne pas mettre une pubkey pour ssh dans son home (s'ils obtiennent le compte unix, un accès ftp, pop ou autre c'est game over)
- ne pas mettre de sudo root (ou alors le désactiver automatiquement à la déconnexion)
scp
scp permet de copier d'une machine à une autre de façon sécurisée (sur le modèle de la connexion ssh), il remplace rcp. Sa syntaxe est :
scp -P22 fichier nom@url:chemin
voir aussi :
sftp://serveur dans konqueror
secpanel (http://www.pingx.net/secpanel/)
Anonymat
- Tor + privoxy permet d'ajouter une couche de sécurité supplémentaire (proxy)
- i2p : http://www.i2p2.de/
- cookies : javascript:alert(document.cookie); affiche les cookies implanté sur la page
- Autorisation de redémarrage par [alt]+[ctrl]+[del] :
Dans /etc/inittab, modifier la ligne ca::ctrlaltdel:/sbin/shutdown -r now (ou équivalente) par ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now
mettre un fichier nommé shutdown.allow dans le répertoire /etc , et inclure dans ce fichier le nom des utilisateurs autorisés à rebooter par [alt]+[ctrl]+[del]
Pour autoriser tout le monde à le faire par défaut, sans créer de nouveau fichier shutdown.allow, il suffit de changer la même ligne par :ca::ctrlaltdel:/sbin/shutdown -t3 -h now
sinon utiliser sudo halt
ssh et rsync
créer un fichier pour ssh2 (id_dsa et id_dsa.pub)
ssh-kengen -t dsa
copier la clé sur le serveur où on veut avoir une connexion automatique :
scp .ssh/id_dsa.pub login@serveur:.ssh/keys2
et une fois sur le serveur copier la clé générée à la fin du fichier authorized_keys2 :
cat keys2 » authorized_keys2
(http://linux.developpez.com/secubook/node64.php)
dans le cas où vous voulez une clé sans mot de passe, pour un serveur rsync par exemple :
Générer la clé, en root, sur le client : ssh-keygen -t dsa
choisir comme destination par exemple /root/.ssh/remotehost.id_dsa
mot de passe vide
dans /root/.ssh/config :
Host remotehost
User root
Compression yes
Protocol 2
RSAAuthentication yes
StrictHostKeyChecking no
ForwardAgent yes
ForwardX11 yes
IdentityFile /root/.ssh/remotehost.id_dsa
copier /root/.ssh/remotehost.id_dsa.pub et copier le contenu à la fin du fichier du serveur : /root/.ssh/authorized_keys2 file
(http://killyridols.net/rsyncssh.shtml)
(http://www.jdmz.net/ssh/)
script de sauvegarde :
#!/bin/sh
#########################################################
# Script to do incremental rsync backups
# Adapted from script found on the rsync.samba.org
# Brian Hone 3/24/2002
# adapted later...
# This script is freely distributed under the GPL
# http://www.fr.linuxfocus.org/Francais/March2004/article326.shtml
#########################################################
##################################
# Configure These Options
##################################
###################################
# mail address for status updates
# - This is used to email you a status report
###################################
MAILADDR=youremail@yourhostname
###################################
# HOSTNAME
# - This is also used for reporting
###################################
HOSTNAME=yourhostname
###################################
# directory to backup
# - This is the path to the directory you want to archive
###################################
BACKUPDIR=/home
BACKUPDIR2=/var/spool/mail
###################################
# excludes file - contains one wildcard pattern per line of files to exclude
# - This is a rsync exclude file. See the rsync man page and/or the
# example_exclude_file
###################################
EXCLUDES=/home/exclude_rsync
###################################
# root directory to for backup stuff
###################################
ARCHIVEROOT=root@192.168.26.164:/home/sauvegardes/
#########################################
# From here on out, you probably don't #
# want to change anything unless you #
# know what you're doing. #
#########################################
# directory which holds our current datastore
CURRENT=main
# directory which we save incremental changes to
INCREMENTDIR=`date +%Y-%m-%d`
# options to pass to rsync
OPTIONS="-e ssh --force --ignore-errors --delete --delete-excluded \
--exclude-from=$EXCLUDES --backup --backup-dir=$ARCHIVEROOT/$INCREMENTDIR -avz"
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin
# make sure our backup tree exists
install -d $ARCHIVEROOT/$CURRENT
# our actual rsyncing function
do_rsync()
{
rsync $OPTIONS $BACKUPDIR $ARCHIVEROOT/$CURRENT
rsync $OPTIONS $BACKUPDIR2 $ARCHIVEROOT/$CURRENT
}
# our post rsync accounting function
do_accounting()
{
echo "Backup Accounting for Day $INCREMENTDIR on $HOSTNAME:">/tmp/rsync_script_tmpfile
echo >> /tmp/rsync_script_tmpfile
echo "############################">>/tmp/rsync_script_tmpfile
du -sh $ARCHIVEROOT/* >> /tmp/rsync_script_tmpfile
echo "############################">>/tmp/rsync_script_tmpfile
df -h >> /tmp/rsync_script_tmpfile
echo "Mail $MAILADDR -s $HOSTNAME < /tmp/rsync_script_tmpfile"
Mail $MAILADDR -s $HOSTNAME < /tmp/rsync_script_tmpfile
echo "rm /tmp/rsync_script_tmpfile"
rm /tmp/rsync_script_tmpfile
}
# some error handling and/or run our backup and accounting
if [ -f $EXCLUDES ]; then
if [ -d $BACKUPDIR ]; then
# now the actual transfer
do_rsync && do_accounting
else
echo "cant find $BACKUPDIR"; exit
fi
else
echo "cant find $EXCLUDES"; exit
fi
Sauvegardes incrémentielles
- Utilisation de rsync
rsync -cvrtz --delete --stats --progress --backup
--backup-dir="Backups/"`eval date +%Y%m%d-%H%M%S`"/" --suffix=""
--exclude="Backups/" --exclude="Temp/" /chemin/dossier
rsync://serveur/utilisateur
front end : WINrsync
- Utilisation de unison
http://www.jalix.org/ressources.maison/2s/unison/html/index.html
unison nom où nom.prf est le fichier de configuration situé dans le répertoire .unison (il est bien sûr possible de le faire fonctionner en ligne de commande pour débuter, avec deux répertoires bidons).
root = ssh://machine//rep répertoire racine distant
root = replocal répertoire racine local
path = sousrep sous-répertoire de root à synchroniser
follow = symlink suivre le lien symbolique symlink
ignore = Name *.o ignorer les fichiers .o
log = true créer un fichier log
logfile = .unison/log le nom du fichier log
include = nom include le fichier nom.prf du répertoire .unison
par exemple chez moi j'ai cela pour archiver mes documents de travail : ~/.unison/wd.prf
# Unison preferences file
root = /home/eric/_mesdocs
root = /media/WDPASSPORT5/ERIC/_mesdocs
prefer = /home/eric/_mesdocs
#supply a ssh key without a password
# sshargs = -p 1022 # si vous passez par un accès distant ssh, par un tunnel etc...
#file attributes
#times = true
#owner = true
#group = true
#merge = diff3 -m CURRENT1 OLD CURRENT2 > NEW
#backup
backup = Name * #backup everything
#backuplocation = central #do not store in same dir
#backupdir = /tmp/unisonbackup #store here
maxbackups = 5
#minbackups = 2 #deprecated ?
#delete after 30 days
#maxbackupage = 30 #deprecated ?
ignore = Name Thumbs.db
ignore = Name *~
ignore = Name *.tmp
ignore = Name .DS_Store
ignore = Name ._.DS_Store
# place new files at the top of the list
sortnewfirst = true
Administration de machine, système
Fichiers et dossiers de configuration utiles
/etc/inittab : conf demarrage machine
/etc/rc.local : lancer des commandes au démarrage
/etc/motd : message of the day : celui qui figure après chaque authentification.
/etc/issue : message de pré-connection
/etc/apt/source.list : fichiers mise à jour debian
/etc/mozilla-firefox/pref/unix.js : config firefox
/usr/share/apps/ksplash/Themes/Default/splash_top.png : logo démarrage KDE
distributor-logo.png : fichier à rechercher pour modifier l'icône du menu "applications" de gnome
/etc/apt/apt.conf : permet de modifier la version debian :
-> APT::Default-Release "unstable"; (ou testing etc.)
/etc/sysconfig
/usr/sbin/kbdconfig : configuration langue du clavier
Login automatique
mingetty http://easymamecab.mameworld.net/html/autologin.htm
/etc/inittab file, before and after.
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
1:2345:respawn:/sbin/mingetty --autologin utilisateur tty1
2:2345:respawn:/sbin/mingetty tty2
Effacer des fichiers
Effacer de manière sécurisée un fichier :
shred -uv -n 3 fichiertexte
(effacer avec 3 itérations, en version verbose)
Sauvegarder archive avec redondance
Voir parchive2 et la commande par2
Refaire le grub
mount -o bind /dev /mnt/root/dev
mount -t proc none /mnt/root/proc
mount -t sysfs none /mnt/root/sys (optionnel ? n'existe pas partout ainsi par exemple sysfs)
copier si nécessaire /etc/resolv.conf dans /mnt/root/etc
chroot /mnt/disque_a_refaire_le_grub /bin/bash
mount /dev/sda# /boot
grub-install /dev/sda
où le # dans /dev/sda# est le numéro de la partition (sda ou hda)
éventuellement /usr/sbin/update-grub
ensuite, éventuellement
faire un chroot ou au démarrage
grub
root (hd0,0)
setup (hd0)
(à adapter selon le cas réel)
et si nécessaire :
mknod /dev/console c 5 1
(après avoir démonté les proc et dev liés au système hôte)
shell et console
Quelques commandes générales Unix
ces commandes ne sont pas à proprement parler des programmes complets, ce sont des utilitaires livrés avec le "shell", l'interface de la console. On les trouve en général sur toutes les distributions de Linux, et parfois sur Unix.
permet d'entrer du code directement à copier / coller dans la console, jusqu'à la partie EOF
cat > fichier << "EOF"
ls -all # code...
df -h # code etc...
EOF
usermod -a -G wheel eric
: ajoute l'utilisateur eric au groupe wheel
lynx -head http://site...
: donne des info sur le serveur du site
mkdir -p /chemin/suitechemin/dossier
: créer un répertoire avec chemins complets
ps -afx
: liste processus avec arborescence hiérarchique
ps axfw
: variante
procinfo -a
: infos sur la machine et ce qui tourne dessus.
strace -eopen programme
: voir les différentes procédures exécutée et les appels de modules lors du démarrage d'un programme
clear
/ ctrl + l
: efface l'écran de la console (remet à 0)
free -mt
: utilisation de la ram (indications en Mo)
vmstat -S M -s
: ram
dmesg
: messages utiles sur la configuration, générés par le noyau
lesspipe
: permet d'afficher le contenu de diverses archives avec less.
Sous bash export LESSOPEN="| /usr/bin/lesspipe %s"
.
Dans certaines distribution les commandes lesspipe et less sont déjà liées.
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
: affiche les dossiers sous forme d'arborescence (équivalent à tree
).
chown eric /home/eric -R : change l'appartenance de tous les fichiers du répertoire /home/eric et ses sous répertoire
killall programme
: arrête le programme
ln -s /chemin/source/ /chemin/lien
: créé un lien symbolique de lien vers source
modprobe ehci-hcd
: active USB2 ?
modprobe -r usb-ohci
: desactive module usb-ohci
modprobe -c
: liste les modules
echo "test" > /dev/pts/9
: affiche le message "test" sur l'écran virtuel 9 (valable également pour tty1 etc...)
printf '\e[31m mon message en rouge \e[0m' > /dev/`finger eric | grep "on pts" | cut -f 9 -d' '`
(ne fonctionne pas forcément avec bash?)
http://ordiluc.net/fs/libetc/ : pour changer le chemin des fichiers de config en .
xterm -hold -e commande
: permet de passer une commande dans un nouveau terminal
chvt 1 / chvt 2 : permet de changer de console (simule alt+f1, alt+f2 etc)
- aller dans un répertoire contenant une fichier passé en argument avec $1 par exemple : cd "${1%/*}"
- terminal sans X : changer la police de caractère :
setfont drdos8x16
(tester avec cybercafe par exemple)
- résolution du terminal sans X :
Colors ( depth) 640x480 800x600 1024x768 1280x1024 1600x1200
---------------+-------+-------+--------+---------+---------
256 ( 8 bit)| 769 771 773 775 796
32,768 (15 bit)| 784 787 790 793 797
65,536 (16 bit)| 785 788 791 794 798
16.8M (24 bit)| 786 789 792 795 799
Passer l'argument dans grub (menu.lst) :
kernel /vmlinuz-2.6 root=/dev/hda3 ro vga=794 (à adapter selon ses besoins bien sûr)
Screen
Screen permet d'avoir plusieurs sessions shell dans la même console.
Quelques commandes :
ctrl + a puis ctrl + c (C-a c) : créer une nouvelle session
C-a w : affiche la session courante
C-a n : session suivante - C-a p : session précédente
C-a " : liste les fenêtres
C-a d : détache une session / screen -r : réattache la session
C-a S : (split) Sépare la fenêtre en deux / C-a : navigue entre les fenêtres. / C-a " permet d'affecteur une session à une fenêtre vide.
C-a x : depuis une autre session permet de suivre ce qui se passe.
Sudo
sudo permet à un utilisateur normal de lancer des commandes d'un superutilisateur, en tapant :
sudo commande
Il faut pour cela inclure dans le fichier /etc/group les utilisateurs en question, et éditer le fichier /etc/sudoers (il est recommandé de le faire avec visudo)
# sudoers file.
#
# This file MUST be edited with the "visudo" command as root.
#
# See the man page for details on how to write a sudoers file.
# sudoers file.
#
# Host alias specification
Host_Alias ICI = localhost, nommachine, 192.168.100.2
Host_Alias LOCALNET = 192.168.100.*
# User alias specification
User_Alias ROOT_FRIENDS = utilisateur1, utilisateur2
# Cmnd alias specification
Cmnd_Alias SOUND = /usr/bin/xmms
Cmnd_Alias SHUTDOWN = /sbin/shutdown, /sbin/halt, /sbin/reboot
Cmnd_Alias PPPCMD = /etc/ppp/scripts/pppconnect, /etc/ppp/scripts/pppdisconnect
Cmnd_Alias PRINTINGCMDS = /usr/bin/lpq, /usr/bin/lprm
# Runas alias specification
# User privilege specification
# root peut tout !
root ALL=(ALL) ALL
# Les amis de root peuvent lancer les commandes
# du groupe SHUTDOWN
ROOT_FRIENDS ICI = NOPASSWD: SHUTDOWN
# ils peuvent aussi administrer l'imprimante (mais sous
# le compte de lpadmin, avec un mot de passe) :
ROOT_FRIENDS ICI = PRINTINGCMDS
# tout le monde peux lancer xmms avec les droit de root (pour le
# mode 'temps réel') en local
ALL ICI = NOPASSWD: SOUND
# tout le monde sur le réseau local peut demander l'établisement
# de la liaison internet
ALL LOCALNET = NOPASSWD: PPPCMD
#Dave a un répit de 200 minutes avant de rentrer de nouveau le mot de passe
#indiquer -1 pour ne l'entrer qu'une seule fois
Defaults:dave timestamp_timeout=200, passwd_tries=5
créer une série de liens
for A in * ; do ln -sf `pwd`/$A /../chemin/$A ; done
s'il y a des espaces dans les noms de fichiers, préférer :
for a in *; do ln -s "$a" "$(echo $a | tr '[A-Z]' '[a-z]')" ; done
On peut également redéfinir la variable d'environnement "IFS" (Internal Field Separator), par défaut à l'espace pour éviter cela :
export IFS=@
for A in * ; do ln -sf $A `echo $A | tr '[A-Z]' '[a-z]'` ; done
Petits scripts utiles
Rechercher des mots
Installer words (pour /usr/share/dict/), et taper par exemple :
grep '^va..er$' /usr/share/dict/french
mot de passe pour bloquer un programme
note : cette astuce peut être facilement contournable
#!/bin/bash
Password=`zenity --entry --hide-text --text "Entrez le mot de passe"`
Pass2=`echo $Password | md5sum | cut -c1-32`
if [ $Pass2 = "b8b4a79df11085fe608c17f6d7340002" ]; then
/usr/bin/firefox
else
zenity --error --text "Mot de passe incorrect"
fi
Pour trouver le checksum du mot de passe (ex ici : buzz
), tapez (en rajoutant le \c pour supprimer le retour à la ligne) :
- echo -e "buzz\c" | md5sum
ou
- php -r 'echo md5("buzz");'
modifier les espaces
find . -type f -name "* *" -print0 | \
perl -n0e '$old = $_; s/ /_/g; rename $old, $_'
changer la casse des fichiers d'un répertoire
#!/bin/sh
for i in *
do
j=`echo $i | tr '[A-Z]' '[a-z]'`
mv $i $j
done
retirer espace dans une liste de fichier
- changer en _
- bash :
for i in *" "* ; do
j=`echo $i | sed -e 's/ /_/g' `
mv "$i" "$j"
done
ou avec %20 si nécessaire
for i in *.pdf ; do
j=`echo $i | sed -e 's/%20/_/g' `
mv "$i" "$j"
done
- en une ligne à copier/coller
for i in *" "* ; do j=`echo $i | sed -e 's/ /_/g' `mv "$i" "$j" ; done
Changer l'extension d'un fichier
for file in *.htm ; do mv $file `echo $file | sed 's/\(.*\.\)htm/\1html/'` ; done
Remplacer une chaîne de caractère unique dans plusieurs fichiers en même temps
par exemple pour remplacer le point d'interrogation (symbole 3F) de fichiers html récupérés par wget (gestionnaire de téléchargement en ligne de commande) : (à tester avant pour être certain de ne pas effacer les fichiers de destination...)
for i in *.htm* ; do sed -i -e "s/%3F/@/g" $i ; done (à corriger sans doute)
Convertir des fichiers pdf en ps et vice versa
(attention, travaillez sur une copie du dossier, ça efface les fichiers pdf d'origine)
for A in *.pdf ; do pdf2ps $A ; done ; for B in *.pdf ; do ps2pdf $B ; done ; for C in *.pdf.pdf ; do mv -f $C `echo $C | sed 's/\.pdf\.pdf/.pdf/'` ; done ; rm -fr *.ps
Convertir du texte en dos / unix / mac
- mac2unix :
cat $1 | tr '\r' '\n'
- unix2mac :
cat $1 | tr '\n' '\r'
- dos2unix :
cat $1 | tr -d '\r'
ou utiliser le programme existant : dos2unix -b -d fichier.txt
- unix2dos :
nawk 'sub("$", "\r")' unixfile.txt > dosfile.txt
(awk ou gawk, nawk...)
ou utiliser le programme existant : unix2dos unixfile.txt dosfile.txt
- en Perl
- DOS -> Unix :
perl -p -e 's/\r$//' < dosfile.txt > unixfile.txt
- Unix -> DOS :
perl -p -e 's/$/\r/' < unixfile.txt > dosfile.txt
Utiliser les regex dans geany
- remplacer du texte + des chiffres qui changent :
- TITRE 345 (etc)
^TITRE ([0-9]+)$
Utiliser de l'unicode dans Vim
:edit ++enc=utf-8
Commandes utiles Vim
- pour mettre vim par défaut avec la commande vi :
sudo update-alternatives --config vi
- Créer un onglet
:tabnew
- Vérifier l'orthographe
:set spell
- Donner des statistiques pour un document (nb de mots, caractères...)
:set statusline=…
- Activer les retours à la ligne dynamique
:set wrap
* Do not split words over two lines
Default vim behavior
* Display line numbers
:set nu
* Highlight current line
:set cursorline
* Highlight matching bracket
Default in vim 7
- Dupliquer une ligne :
yy
puis p
(yank & paste)
- couper les lignes aux mots et non pas à la lettre :
:set lbr!
Convertir un dossier de iso-8859-15 vers utf8 (titre des fichiers)
convmv -r -f iso-8859-15 -t utf8 .
Cela affiche tout les changement qui vont être effectués et si c'est bon, on rajoute juste --notest
ou utiliser utf8migrationtool
Convertir le contenu de fichiers d'iso-8859 vers utf8
direct (pour un seul type de fichier), mais pose pb si le fichier est déjà uft8 :
#!/bin/sh
mkdir backup.iso8859
for ii in *.php
do
iconv -f ISO-8859-15 -t UTF-8 "$ii" -o "$ii.utf8"
mv "$ii" "backup.iso8859/$ii.iso8859.old"
mv "$ii.utf8" "$ii"
done
avec test :
#!/bin/sh
# http://utrac.sourceforge.net/ est nécessaire pour ce script
mkdir backup.iso8859
#chemin=`pwd`
for ii in *.t2t *.txt *.php *.htm*
do
# tt=`file "$ii" | grep ISO-8859`
tt=`utrac -p "$ii"`
if [ "$tt" == ISO-8859-1 ] || [ "$tt" == ISO-8859-15 ]
then
echo "$ii est en $tt, il sera converti en utf8"
iconv -f ISO-8859-15 -t UTF-8 "$ii" -o "$ii.utf8"
mv "$ii" "backup.iso8859/$ii.iso8859.old"
mv "$ii.utf8" "$ii"
else
echo "$ii est déjà en $tt, il ne sera pas modifié"
fi
done
echo "Vos anciens fichiers ont été archivé dans backup.iso8859"
Utiliser un autre encodage de façon temporaire
export LANG=fr_FR@euro && programme
export LANG=fr_FR.UTF-8 && programme
avec `dpkg-reconfigure`
locales auparavant si l'encodage n'est pas déjà installé.
renommer une série d'images (ou autres)
n=0
for i in *.jpg; do
n=$((n+1))
result=`printf 'photos%04d.jpg' $n`
mv "$i" $result
done
Renommer une partie d'un nom de fichier
- par exemple pour renommer part_5465.pdf et part_5467.pdf en newname_5465.pdf et newname_5467.pdf
for old in *part*.pdf
do
new=`echo $old | sed 's/part/newname/g'`
mv $old $new
done
ou pour des photos numériques :
for old in *IMG*.jpg
do
new=`echo $old | sed 's/IMG/newname/g'`
mv $old $new
done
- en tiff, rajouter -compress lzw
Renommer des images selon leur date exif
Pour obtenir à partir de par exemple DSC_2236.JPG
-> DSC_2012-05-09_201941.jpg
de la forme NOM-de-BASE_année-mois-jour_heureminutesecondes.jpg
Utiliser jhead :
jhead -nDSC_%Y-%m-%d_%H%M%S *.JPG
avec option -ss 0 -t 0:00:30 pour ne garder qu'une plage
Pour archiver avec une meilleure qualité :
for old in DSC*.MOV
do
new=`mediainfo $old |grep -i Tagged |uniq | cut -d 'C' -f 2 | sed -e "s/://g" |sed -e "s/ /_/g"`
ffmpeg -i $old -threads 2 -rc_lookahead 16 -level 116 -acodec libvorbis -ac 2 -b:a 96k -ar 44100 -qmin 1 -qmax 15 -minrate 1500k -maxrate 4000k -s 640x424 video$new.webm; done
(l'option -deinterlace n'est pas toujours adaptée, si la qualité de base est bonne sans entrelacement, il vaut mieux l'éviter)
changer la qualité d'images jpg ou convertir depuis un autre format
mkdir convert
for A in *.png ; do convert -quality 82 $A convert/$A.jpg ; done
Mettre des photos numériques dans un format plus correct pour l'envoi par courriel (resample)
mkdir convert
for A in *.jpg ; do convert -auto-orient -quality 84 -geometry 1280x1280 $A convert/label_$A ; done
(auto-orient permet de suivre les directives exif pour orienter la photo correctement dans l'exportation)
Réduire le poids (la résolution) des images d'un document OpenOffice/LibreOffice
Vous (ou un de vos proches) avez voulu créer un document avec openoffice, mais les images incluses, sorties tout droit d'un appareil photo numérique à 10M de pixels, sont dans une résolution beaucoup trop grosse par rapport à la qualité d'impression nécessaire, si bien que votre ordinateur rame et votre document n'est pas facilement gérable (par exemple il faut 100 Mo avec 30 images dedans).
Bien entendu, vous ne vous y ferez pas reprendre 2 fois, mais en attendant, ce petit script permet de corriger cela, il suffit tout d'abord de créer une copie de votre document, nommée doc.odt.
Le fichier résultant, doc2.odt, devrait être au moins 4 ou 5 fois plus léger, et les images garderont placement et taille d'affichage d'origine.
Attention, si vous avez dedans des images avec une taille correcte, ces images également seront réduites. Il est possible de passer les commandes à la main et éventuellement de garder certaines images du dossier originel avant de copier dedans les images exportées et réduites.
Il est possible également (mais pas systématique) qu'openoffice indique que le fichier résultant soit corrompu, mais il peut corriger les erreurs sans problème apparement.
unzip doc.odt -d doc
cd doc/Pictures
mkdir export
for A in *.jpg ; do convert -scale 40% $A export/$A ; echo "$A scaled by 40%" ; done
cp -fr export/* ./
rm -fr export
cd ../
zip -r ../doc2.odt *
rm -fr doc
Désactiver le diaporama automatique (pps)
pour qu'une diapo de type powerpoint, au format pps (slide) ne s'ouvre pas automatiquement en diaporama dans OpenOffice, il suffit de la renommer en .ppt, et on pourra afficher les images une à une.
récupérer les photos d'écran d'un site
for i in `cat listeUrls.txt`;
do
firefox -remote "openurl($i)" # open url in firefox
xwd -id xxx | wxdtopnm|pnmtopng > "$i".png # capture firerox window to png
done
Créer un fichier cbz à partir d'une liste d'images
lisible par comix (ou son successeur mcomix)
for a in * ;
do zip -r "$a".cbz "$a" ;
done
ls *.cbz > comics.txt
Pour convertir d'un pdf en image (jpg) :
pdfimages -j fichier.pdf nom_image
Renommer :
for file in *.rar ; do mv "$file" `echo "$file" | sed 's/\(.*\.\)rar/\1cbr/'` ; done
for file in *.rar ; do mv "$file" "$file".cbr ; done
télécharger des fichiers avec wget
si la valeur s'incrémente et que l'on n'a pas accès à l'index :
#!/bin/bash
i=1
while [ $i -le 300 ] ; do
wget http://www.site.com/$i.jpg
i=$(($i + 1))
done
renuméroter :
#!/bin/bash
i=10
while [ $i -le 99 ] ; do
mv $i.jpg 0$i.jpg
i=$(($i + 1))
done
- pour ne télécharger que certains types de fichiers :
wget -A gif,jpg,pdf
- récupérer la source d'une liste de fichiers wikipedia :
i=1
while [ $i -le 34 ] ; do
wget https://fr.wikisource.org/wiki/Pantagruel/Chapitre_$i?action=raw
i=$(($i + 1))
done
- assembler :
i=1
while [ $i -le 34 ] ; do
cat Chapitre_$i\?action\=raw >> pantagruel.t2t
i=$(($i + 1))
done
Télécharger un fichier avec wget sur dl.free.fr
#First step is set cookie
wget --save-cookies cookie.txt --keep-session-cookies urlFichier -O tmpFile
#Second step is retry with cookie
wget -c --load-cookies cookie.txt urlFichier
#Then clean tmp file
rm tmpFile cookie.txt
pour charger un fichier depuis la ligne de commande :
http://dl.free.fr/cx2Y3q5Gt/free_upload.rb
limiter la vitesse de téléchargement
wget --limit-rate=15k
limiter la charge CPU
cpulimit -efirefox-bin -l25
Pour ne pas que firefox utilise plus de 25% du CPU.
changer la fréquence du CPU
- mettre une fréquence dynamique : echo ondemand | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
(il faudra peut-être avoir les paquets cpufrequtils et sysfsutils d'installés..., et que le module cpufreq_ondemand soit actif)
info cpu : cpufreq-info
pour l'avoir de façon permanente : modifier /etc/sysfs.conf et ajouter :
devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand # à la place de performance
ou choisir le module cpufreq_conservative qui est plus progressif
limiter le téléchargement à des sous-dossiers uniquement
wget -r -np
(--no-parent et recursif)
-R rejlist (ou --reject rejlist) : pour éviter de télécharger certains types de fichiers
modifier le format de la date
date '+ %Y-%d-%m %H:%M:%S' //(par exemple)//
Trouver un fichier / un programme
find ~/ -name '*.txt'
- Trouver tous les liens symboliques :
find ~/dossier -type l
- trouver les fichiers qui n'ont pas été accédés depuis au moins 60 jours dans le /home
find ~ -maxdepth 1 -iname '.*' -atime +60
Créer un script qui recherche et convertit des fichiers :
rm -fr /tmp/xml
mkdir /tmp/xml
cp `find ./ -depth -maxdepth 3 -name '*.xml'` /tmp/xml
cd /tmp/xml
for ii in *.xml
do
sed -i -e "s/encoding=\"UTF-8\"/encoding=\"ISO-8859-15\"/g" $ii
iconv -f UTF-8 -t ISO-8859-15 "$ii" -o "$ii.txt"
done
rm -fr /tmp/xml/*.xml
Trouver une machine, une adresse IP
nmblookup nom_netbios : permet de trouver l'ip d'une machine dont on connait le nom de partage samba
Astuces du shell
- !! refait la dernière commande
- !cmd refait la dernière commande commençant par cmd
- !cmd:p permet de visualiser sans executer la dernière commande commençant par cmd
- !$ permet de retrouver la dernière commande entrée commençant par cette lettre
- !cmd:$ est le dernier mot de la dernière ligne de commande commençant par cmd
- !* est l'ensemble de la dernière ligne de commande à part le premier mot
- & : à la fin d'une commande en console, permet l'exécution de nouvelles commandes
- [tab] : autocomplétion des commandes
history
: liste des dernières commandes
- [ctrl]+r : recherche d'une dernière commande tapée
!commande
: retape la dernière commande qui débute de cette manière
De par leur faible taille, les astuces suivantes ne méritent pas forcément un paragraphe dédié
- Calculer :
echo 5/2+3*2 |bc -l
: calcule 5 divisé par deux, et additionne 3 multiplié par 2
bc
: calculette mode console
- scale=20 ajoute 20 digits de précisions à bc
aterm -tr -trsb -shading 85 -fade 65
: effet sur la console aterm
aterm -tr -trsb -shading 45 -fade 75 -fg white
aterm -tr -fg white -bg black -sh 35 -trsb
- /proc/kcore : ce fichier apparemment gros n'est qu'une image de la mémoire physique : le supprimer n'est pas pertinent.
fuser -vm /mnt/peripherique_ou_disque
: indique qui utilise quoi
adduser
: ajouter un utilisateur
userdel -r utilisateur
: retire un utilisateur
passwd utilisateur
: changer le mot de passe d'un utilisateur
- trouver occurence de mots :
cat texte.txt | tr " " "\n" | sort | uniq -c | sort -n >> resultat.txt
- Trouver les mots où une lettre est présente dans un texte (par exemple ici avec 'z') :
cat texte.txt | sed "s/ /\n/g" | grep 'z'
ou encore :
cat texte.txt | grep -o '[a-z]*a[a-z]*'
crontab
Ne pas oublier de faire tourner crond en daemon
fichier /etc/crontab (debian ?)
ou fichier crontab perso à éditer avec crontab -e
(lequel se trouvera ensuite dans /var/spool/cron/votre_login )
* * * * * script
remplacer les étoiles par :
minute heure jour_du_mois mois_de_année jour_de_semaine
ou placer un script dans /etc/cron.daily ou /etc/cron.### etc.
(http://www.ac-creteil.fr/reseaux/systemes/linux/cron.html)
Utilisez de préférence le chemin complet des applications.
- éteindre le système dans 30 minutes : shutdown -h +30
- éteindre le système à 23h : shutdown -h 23:00
- redémarrer à 23 h : shutdown -r 23:00
at
faire tourner atd
et démarrer at avec par exemple ``` at now +2 minutes
Entrer la commande. S'il s'agit d'une application graphique, rajouter la variable DISPLAY, par ex :
DISPLAY=:0.0 /usr/bin/dillo
Voir les travaux en cours avec ``` atq
Application graphique pour gérer cela : gnome-schedule
GCC
Anecdotes
- envoie un message amusant au root
echo "rpub \"w'nv yr cnffjbeq ebbg\"|znvy ebbg" |tr a-mn-z n-za-m|/bin/sh
- Affiche une fractale dans la console
echo '9k[l:l;s<s=0l>x]s"[1+l<dd*l=d*-l;+ds<rl=2**l:+ds=d*rd*+4<-d15>>] s>[q]s-[d77/3*2-s;47l"x-P1+d78>`]s`0[d23/.5-3*s:0l`xr10P1+d24>$]ds$x'|dc
Résolution de problèmes typiques
Firefox
- Performances :
- Régler intervalle de snapshots : browser.sessionstore.interval
- nombre de back/forward : browser.sessionhistory.max_entries
- pages chargées en mémoire : browser.sessionhistory.max_total_viewers : mettre -1 ?
- tab fermées que l'on peut recharger : browser.sessionstore.max_tabs_undo
voir http://kb.mozillazine.org/About:config_entries
Debian
- apt: Dynamic MMap ran out of room :
-> editer /etc/apt/apt.conf et augmenter APT::Cache-Limit 25165824;
- Plus d'icône dans Gnome (surtout linux PPC) :
rm /usr/share/icons/*/icon-theme.cache
- message : Gtk-WARNING **: Icon cache '/usr/share/icons/hicolor/icon-theme.cache' is invalid
sudo rm /usr/share/pixmaps/hicolor/autopackage-installer.png
sudo rm /usr/share/icons/hicolor/autopackage-installer.png
- ssh: symbol lookup error: ssh: undefined symbol: EVP_Cipher : réinstaller openssl
- la souris s'affiche normalement au démarrage, puis si on redémarre le serveur X, le curseur disparaît :
Modifier dans /etc/X11/xorg.conf, ajouter dans la Section "Device"
Option "HWCursor" "false"
(si beryl est activé, sans cette option, ou sans SWCursor, à On, la souris risque de clignoter).
- plus de montage automatique (konqueror ou autre) :
voir si ce n'est pas : /usr/share/hal/fdi/policy/gparted-disable-automount.fdi
- ssh_exchange_identification: Connection closed by remote host
ajouter le code :
sshd:ALL
dans le fichier /etc/hosts.allow
VNC
Fatal server error:
could not open default font 'fixed'
indiquer :
vncserver -fp /usr/share/fonts/misc/ (ou un chemin correct)
Noyau debian plus récent
ajouter :
deb http://kernel-archive.buildserver.net/debian-kernel trunk main
Fichier partagé hors du chemin
Si un programme doit avoir une bibliothèque partagée qui ne se trouve pas dans le chemin habituel, par exemple /home/moi/monprojet, il suffit d'ajouter une entrée à
/etc/ld.so.conf.d/malibperso.conf
php
le passage de paramètres dans l'url ne fonctionne pas :
editer /etc/php5/apache2/php.ini
et mettre register_long_arrays à On
(le mieux est d'écrire du code complet avec $_GET['id'] par ex)
il est possible également d'écrire :
<?
foreach ($_POST as $key => $value) $$key = addslashes($value);
foreach ($_GET as $key => $value) $$key = addslashes($value);
?>
ou dans .htaccess :
php_flag register_long_arrays On
php_flag register_globals on
C / CPP
error: ‘strlen’ was not declared in this scope
-> #include <string.h> dans le fichier incriminé.
LaTeX
Fatal format file error; I'm stymied
lancer en tant qu'utilisateur :
fmtutil --all
pdflatex.fmt doesn't match pdftex.pool
- effacer ~/.texmf-var et / ou ~/.texlive/texmf-var
Noyau
compiler le noyau
1/ récupérer les sources du noyau avec yast ou smart ou synaptic (ou autre...)
2/ vérifier que /usr/src/linux pointe bien vers ces sources.
3/ faire un :
cp /boot/config-2.6.18.2-34-default /usr/src/linux/.config_mylogin (ou n'importe quel autre nom)
4/ Changer une ou des options, par exemple éditer le fichier copié dans le /usr/src/linux, et à la ligne :
# CONFIG_USB_DEVICEFS is not set
mettre :
CONFIG_USB_DEVICEFS=y
5/ aller dans le répertoire source (en root) :
# cd /usr/src/linux
# make mrproper
# make menuconfig
choisir l'option Load an Alternate Configuration File et relisez votre config en entrant son nom (.config_mylogin )
vous pouvez un peu bidouiller dedans mais bon, attention quand même
Vous pouvez notamment optimiser votre noyau pour votre archi.
Mais sinon vous pouvez seulement sauvegarder :
Do you wish to save your new kernel configuration?
et cela sauvegarde dans le fichier .config. Je pense également que l'on peut dès le début taper cp /boot/config-2.6.18.2-34-default /usr/src/linux/.config , éditer le fichier et le compiler direct.
6/ pour la compilation :
# make
# make modules_install
# make install
compiler des modules
vérifier que le fichier /usr/src/linux/include/linux/utsrelease.h existe bien.
Sinon :
make oldconfig
make prepare
convertir de iso vers utf
iconv -f iso-8859-1 -t utf-8 fichier > fichier2
récupérer un texte perdu en mémoire
cp /proc/kcore /tmp/mem.dump
strings /tmp/mem.dump > /tmp/mem.txt
rm /tmp/mem.dump
grep /tmp/mem.txt|less
ou bien
grep -a -C 50 "extrait du texte" /proc/kcore > /tmp/recup.txt
ou encore :
sudo cp /proc/kcore /tmp/Image_RAM && strings /tmp/Image_RAM | grep 'extrait du texte'
scanmem : modifier la mémoire
scanmem permet de modifier des données en mémoire. Utile pour tricher dans des jeux, y compris des jeux dans un émulateur (atari st par exemple)
récupérer le pid du logiciel à scanner (avec top par exemple)
sudo scanmem 45210 (numéro de pid)
au prompt, indiquer la valeur à modifier. Attendre qu'elle se modifie une seconde fois ou plus. Lorsqu'une seul occurence est trouvée, la modifier avec "set valeur".
- choisir la langue du système
utiliser : set-language-env http://www.libordux.org/debian-docs/config.php
- date et heure
date -s 20:00:00 : mettre le système à l'heure (ici 20:00)
date 032820352004 : changer heure + date système (ici 28/03/2004, à 20:35) (Linux)
date 200403282035 : changer heure + date système (BSD) hwclock --systohc : changer heure matériel (bios)
ntpdate ntp.univ-tln.fr / ntpdate ntp.univ-lyon1.fr : mettre à l'heure le système à partir d'un serveur de temps.
liste sur http://www.cru.fr/NTP/serveurs_francais.html
cal 1450 : afficher le calendrier de l'an 1450
- Home persistant (livecd)
Pour accéder à un répertoire utilisateur persistant d'une version à l'autre de Knoppix, il faut donner le chemin complet lors du démarrage :
ex :
knoppix lang=fr home=/dev/hda5/.knoppix.img
- Démarrage automatique de programmes / scripts
Créer un script dans /etc/init.d/
chmod +x /etc/init.d/nomduscript
update-rc.d -f nomduscript start 98 5 . (par exemple)
update-rc.d nomduscript start 20 2 3 4 5 . stop 20 0 1 6 .
Il y a également plus rapide si vous avez certains scripts à démarrer, c'est de faire un script principal de cette forme :
bootup.sh :
#!/bin/sh
/home/adresse/script.sh
vncserver :port
sshd
puis :
cp ./bootup.sh /etc/init.d/
chmod +x /etc/init.d/bootup.sh
update-rc.d -f bootup start 20 2 3 4 5 . stop 20 0 1 6 .
résultat :
/etc/rc0.d/K20bootup.sh -> ../init.d/bootup.sh
/etc/rc1.d/K20bootup.sh -> ../init.d/bootup.sh
/etc/rc6.d/K20bootup.sh -> ../init.d/bootup.sh
/etc/rc2.d/S20bootup.sh -> ../init.d/bootup.sh
/etc/rc3.d/S20bootup.sh -> ../init.d/bootup.sh
/etc/rc4.d/S20bootup.sh -> ../init.d/bootup.sh
/etc/rc5.d/S20bootup.sh -> ../init.d/bootup.sh
Utilisation d'un outil graphique : bum, ksysv ou rcconf en mode console
ou alors modifier le fichier /etc/rc.local
- Conversion système de fichier ext2 en ext3
Si le noyau le supporte, utiliser :
tune2fs -j /dev/hda3
#utiliser le nom correct de partition
tune2fs -o 0 /dev/hda3
changer ensuite :
/dev/hda3 / ext2 noatime 0 0
en :
/dev/hda3 / ext3 noatime 0 0
pour la partition racine :
Se connecter en root
Editer /etc/fstab et changer ext2 to ext3 dans la ligne faisant référence au répertoire racine
tune2fs -j /dev/hda5
cd /boot
mv initrd-2.4.18-26.8.0.img initrd-2.4.18-26.8.0.img.ext2
mkinitrd initrd-2.4.18-26.8.0.img 2.4.18-26.8.0
redémarrer
- redimensionner un système de fichier
si vous clonez une partition avec dd, sur une partition de plus grande taille, la nouvelle partition ne semblera pas plus grande (avec la commande df par exemple). Il faut donc corriger cela avec la commande :
resize2fs -f /dev/hd##
À faire lorsque la partition est démontée !
(éventuellement en vérifiant avant et après que tout est correct avec e2fsck -f -y
)
- Installer des paquets rpm
rpm -ivh archive.rpm : installation rpm
rpm -ivh archive.rpm force --nodeps archive.rpm : installation rpm forcée (si pb dépendances)
rpm -Uvh archive.rpm : mise à jour rpm
rpm -e programme : suppression rpm
- Archivage de fichiers
tar -zxvf fichier.tar.gz : décompresse un fichier zippé
tar -zcvf backup.tar.gz /home/eric : crée un fichier zippé
tar -tvf exemple.tar : liste le contenu
bzip2 -k fichier : compresse un fichier dans le format bz2, en gardant le fichier original
bunzip2 -k fichier.bz2 : décompresse un fichier bz2, en gardant l?archive originale (-v : verbose, verbeux)
- Modules
- linux
insmod module : ajouter un module
modprobe module : charger un module en mémoire (temporairement)
modconf : charger ou retirer des modules de façon définitive
/etc/modules : liste des modules chargés au démarrage
Opérations disques / partitions
Démarrer sur une autre partition
Modifier l'emplacement du répertoire /home
J'avais une partition trop petite là où j'ai installé mon système knoppix. Aussi pour gagner de la place, j'ai déplacé mon répertoire /home vers une autre partition (/hda6) là où il y avait plus de place (en rognant sur celle de mswindows :) ). Marche à suivre :
(on suppose pour cela que la nouvelle partition d'accueil est déjà préparée, avec un utilitaire ad-hoc, sinon taper : mke2fs /dev/hda6 )
Monter la nouvelle partition sur un point de montage temporaire, déplacer le ou les répertoires utilisateurs vers ce point, démonter le point de montage, et le remonter dans /home, ce qui donne :
mount -t ext2 /dev/hda6 /rep_temp
mv /home/_users_ /rep_temp # si nécessaire plusieurs fois
umount /rep_temp
mount -t ext2 /dev/hda6 /home
tester si tout fonctionne, et modifier /etc/fstab en conséquence :
/dev/hda6 /home ext2 defaults,errors=remount-ro 0 1
Changer la taille d'une partition
utiliser qtparted ou avec parted :
parted /dev/hda
print # (relever les données de debut et de fin, et le n° de partition)
resize 1 1024 2048 # (en Mo)
pour une image qemu :
dd bs=1 if=/dev/zero of=disk.img seek=2G count=0
(vérifier si c'est bon avec : qemu-img info disk.img )
modifier la taille des partitions avec qtparted par ex.
Formatter complètement un disque et effacer toutes les données
dd if=/dev/zero of=/dev/hda bs=1M
Récupérer un disque corrompu
if=/dev/old_disk of=image_file conv=noerror
ou
dd if=/dev/old_disk of=/dev/new_disk conv=noerror,sync
ou ddrescue qui semble le plus efficace
#récupérer en priorité le plus de zones mémoires saines:
ddrescue -B -n /dev/old_disk /dev/new_disk rescued.log
#puis essayez de récuperer le plus de zones mémoires endommagées possible:
ddrescue -B -r 1 /dev/old_disk /dev/new_disk rescued.log
Copier un système de fichier sur un autre
en démarrant d'un live-cd :
rsync -avx /media/disque01 /media/disque02
(-a préserve les liens symboliques, les attributs, les permissions et -x évite d'utiliser ce qui sort du système de fichier). On peut rajouter -z pour compresser, si ça se fait sur le réseau, et -S pour les fichiers épars (?)
similaire à
cp -ax /media/disque01 /media/disque02
Trouver des informations sur un disque dur
sudo hdparm -I /dev/sda
pour du sata ou
sudo hdparm -i /dev/hda
pour de l'ide
df -h
: utilisation des disques
find / -type d -exec du -ks {} \; | sort -n
: liste des répertoires les plus gros du disque.
du -Sh | sort -n : affiche les plus gros répertoires
du --all -h --max-depth=2|sort -n : affiche les plus gros répertoires dans 2 niveaux de sous-répertoires.
du -s -h /repertoire : affiche la taille totale d'un répertoire
ls -lR | sort +4n : trouver les plus gros fichiers du disque
ncdu est une interface console à "du"
Récupérer la session précédente d'un disque cdrom
mount /dev/cdrom /mnt/cdrom -t iso9660 -o session=0
Ralentir la vitesse de rotation d'un cdrom
eject -x 4 /dev/cdrom
Appliquer un patch
patch -p0 <new-patch
ou
patch -p1 <new-patch
(selon le répertoire courant par rapport au patch)
créer un patch :
diff -Naur olddir newdir > new-patch
ou
diff -Naur oldfile newfile > new-patch
ou diff -crB oldfile newfile > new-patch
(c pour contextuel, r pour récursif, B pour éviter les lignes blanches)
Changer l'espace réservé (ext3)
tune2fs -m 1 /dev/sda5 # (réduit espace de maintenance à 1% au lieu de 5 %)
tune2fs -r 75000 /dev/sda5 # (réduit espace de maintenance à 75000 blocs)
Changer la fréquence des vérifications du système de fichier (ext3)
pour mettre par exemple tous les 60 redémarrages sur la première partition :
tune2fs -c 60 /dev/sda1
pour désactiver temporairement toute vérification éventuelle :
```# touch /fastboot
ce fichier sera effacé après le prochain redémarrage.
Créer un ramdisk
mkdir /tmp/ramdisk0
mke2fs /dev/ram0
mount /dev/ram0 /tmp/ramdisk0 # (exemple tiré de http://www.linuxfocus.org/English/November1999/article124.html)
Vitesses de transfert
USB1.1 :
lent (1,5 Mbit/s)
rapide (12 Mbit/s)
http://fr.wikipedia.org/wiki/Universal_serial_bus
USB 2.0
full speed : 12 Mbit/s (ex USB 1.1)
High Speed : jusqu'à 480Mbit/s (ex USB 2.0)
http://fr.wikipedia.org/wiki/FireWire
FireWire
400 Mb/s en version 1 (s400 ou IEEE 1394a)
800 Mb/s en version 2 (s800 ou IEEE 1394b)
8bit =1 octet. Donc 200Mbit/s ca fait 25Mo/s.
1ko=1024 bits (2^10)
1Mo=1024ko=1024x1024bits=1048576bits (2^20)
1Go=1024Mo=1073741824bits (2^30)
1To=1024Go=1099511627776bits (2^40)
1Po=1024To=1125899906842624bits (2^50)
1Eo=1024Po=1152921504606846976bits
1Zo=1024Eo=1180591620717411303424bits
1Yo=1024Zo=1208925819614629174706176bits
"1 Méga" = 1 Mbit/s = 1 024 kbit/s = 128 ko/s
Chiffrer une partition
Linux
- 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
- Load the cryptsetup module.
sudo modprobe dm-crypt
- Decrypt your file system.
sudo cryptsetup luksOpen /dev/sda1 crypt
- Get the live CD to recognize (activate) your LVM.
sudo vgscan --mknodes
sudo vgchange -ay
- You can now access / mount the crypt
sudo mkdir /media/crypt_root
sudo mount /dev/mapper/root /media/crypt_root
Vérification signature pgp
pgp fichier.tar.gz.sig fichier.tar.gz
gpg --verify fichier.tar.gz.sig fichier.tar.gz
Sauvegarder un système linux
cd /
shopt -s dotglob (pour désactiver les fichiers cachés dans le bash)
for i in `ls`; if [ -d $i ]; do tar -cvjf $i.tar.bz2 $i;done (Si répertoire à la racine, le compresser dans un fichier portant un nom identique avec l'extension '.tar.bz2')
Sauvegarder les fichiers compressés (.tar.bz2).
Pour la restauration du backup, il suffit de réinstaller un système de base avec le package bz2, décompresser les tar.bz2 dans ce système, modifier /etc/fstab (si la table des partitions a changé) et /etc/lilo.conf
Récupérer un cd ou autre défecteux
Rescue the most important part of the disc first.
ddrescue -i0 -s50M /dev/hdc hdimage logfile
ddrescue -i0 -s1M -r3 /dev/hdc hdimage logfile
Then rescue some key disc areas.
ddrescue -i30G -s10G /dev/hdc hdimage logfile
ddrescue -i230G -s5G /dev/hdc hdimage logfile
Now rescue the rest (does not recopy what is already done).
ddrescue -r3 /dev/hdc hdimage logfile
bureau et sessions graphiques
Autostart
les fichiers peuvent se trouver dans :
/etc/xdg/autostart
/usr/share/autostart (kde4 ?)
~/.config/autostart/
~/.kde/Autostart
~/.gnome2/session-manual
~/.config/lxsession/
/usr/share/lxsession/
/etc/xdg/lxsession/LXDE/autostart
etc... (bon courage :) )
kde
gnome
- lancer nautilus sans utiliser gnome : nautilus --no-desktop
- Retirer le thème geramik
laid et encombrant, à l'image de son modèle keramik, il peut être avantageux de l'éradiquer
mv /etc/gtk/gtkrc /etc/gtk/gtkrc-old
mv /etc/gtk-2.0/gtkrc /etc/gtk-2.0/gtkrc-old
apt-get install gtk-engines-industrial
apt-get install gtk2-engines-industrial
apt-get install gtk-theme-switch
apt-get remove gtk2-engines-geramik*
apt-get remove gtk-engines-geramik*
apt-get install kdeartwork #thème plastik
apt-get install metacity-themes #thème alternatif
- Configuration gtk
Par exemple pour modifier l'apparence de l'éditeur html bluefish :
http://micmacfr.homeunix.org/bluefish/doc/book.html
Créer un fichier .gtkrc-2.0 dans le répertoire /home/utilisateur :
style "bluefish"
{
# For up and down arrows grouped together at right side
GtkNotebook::has_secondary_forward_stepper = 1
GtkNotebook::has_secondary_backward_stepper = 1
# Editor background color
# (background of editor view)
base[NORMAL]="#cccccc"
# GUI normal background color
# (most of the GUI)
bg[NORMAL]="#dbe9e9"
# GUI highlighted background color
#(GUI when mouse over elements)
bg[PRELIGHT]="#c6e9e9"
# GUI unactive background color
#(GUI disabled elements)
bg[INSENSITIVE]="#9fb2b2"
# GUI active background color
#(GUI enabled elements)
bg[ACTIVE]="#c7d4d4"
}
class "GtkWidget" style "bluefish"
Pour donner un aspect NeXTstep aux applications gtk :
http://www.linuks.mine.nu/workstation/
thème sympa gtk : http://cimi.netsons.org/pages/murrine.php
changer le thème gtk : switch2 ou gtk-chtheme
LXDE
xinit /usr/bin/openbox
ck-launch-session lxsession
parcellite : gestionnaire de presse-papier
Enlightenment
- installer E17 (debian)
modifier source.list
deb http://edevelop.org/debian/ unstable main
sudo apt-get update
epplets
esound
examine
engage
entice
elicit
eterm
edb-tools
edje0-bin
edje0-test
emodules
iconbar
GNUstep
Changer de thème
http://www.roard.com/gnustep/Camaelon-2.0.tgz
http://www.roard.com/gnustep/Nesedah.theme.tgz
untar
pmake
copier theme -> ~/GNUstep/Library/Themes
defaults write NSGlobalDomain GSAppKitUserBundles '( "YourLocationTo/Camaelon.themeEngine" )'
defaults write Camaelon Theme Nesedah
et peut etre avoir un jour : http://jesseross.com/clients/gnustep/ui/concepts/
Pour mettre un thème *Step sur GTK :
http://shweps.free.fr/wiki/wakka.php?wiki=GtkThemes
Astuces bureau
- Lancement automatique du gestionnaire de fenêtre préféré
Editer ou créer dans le répertoire utilisateur le fichier .xinitrc
La dernière ligne doit indiquer le bon gestionnaire de fenêtre (ex : /usr/bin/wmaker& ou exec /usr/bin/wmaker )
(Pour utiliser un environnement de bureau en plus, indiquer par exemple :
afterstep &
exec gnome-session)
En ligne de commande taper : startx
eventuellement : lancer kdm ou gdm à la place
xinit -e /chemindugestionnaire : permet de ne lancer que le gestionnaire et non pas l'environnement de bureau complet (KDE ou Gnome)
Lancement d'une seconde session graphique / ouverture d'une session vnc :
startx -- :1.0
autre solution :
X -query localhost -once :1
A tester : http://www.x-desktop.org/
(alt+ ctrl + backspace : termine la session x brutalement)
- Utilisation de Xnest (session X dans X)
Xnest -ac :1
export DISPLAY=localhost:1
wmaker
option :
export WINDOWMANAGER=/usr/bin/gnome-session
export WINDOWMANAGER=/usr/X11R6/bin/twm
startx -- :1
x :1 &
export DISPLAY=localhost:1
wmaker &
- Autoriser un utilisateur distant à se connecter graphiquement sur X
- Lancer une application graphique depuis un autre utilisateur
xauth merge /home/user/.Xauthority
: évite le ? connection to ":0.0" refused by server '
ssh -l root -X localhost
: idem
en tant que root : xhost +
(attention : retire toute sécurité)
ou :
éditer /etc/X11/Xwrapper.config
vérifier que cette valeur est présente :
allowed_users=anybody
- Lancer une session graphique sur un poste distant
poste 1 :
modifier : /etc/ssh/sshd_config :
X11Forwarding yes
Xnest -ac -geometry 1024xf768 :1 &
ssh login@ip -X -C
poste 2 : (loggé depuis le poste 1)
export DISPLAY=ip_poste1:1
wmaker
ou
ssh login@ip -X -C
( -C active la compression de données -X le forward de l'environnement graphique x11)
- Utilisation de freenx
freenx est un protocole similaire dans ses résultats à vnc, mais avec une plus grande rapidité.
Connexion via ssh et l'utilisateur habituel
Il y a plusieurs manières de se connecter à un serveur NX. Une solution souple et pratique est de le faire en passant par l'authentification habituelle d'un utilisateur via ssh :
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
Passer un fichier A4 en A3 pour faire une grande affiche
(ne fonctionne pas correctement)
pdf2ps fichier.pdf
psresize -PA4 -pA3 fichier.ps fichierA3.ps
--psresize -w42cm -h59.4cm -W21cm -H29.7cm fichier.ps fichierA3.ps--
--pstops -d 1:0@2 fichier.ps fichierA3.ps--
ps2pdf fichierA3.ps
capture d'écran
import -window root image.png
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
Utiliser le format DJVU
for A in *.tif* ; do cjb2 $A $A.djvu ; done
n=0; for I in *.djvu ; do n=$((n+1)) ; result=`printf 'doc%04d.djvu' $n` ; mv "$I" $result; done
for J in *.djvu ; do ~/scripts/djvu_ocr.sh "$J" ; done
djvm -c merged_doc.djvu doc*.djvu
où djvu_ocr.sh est le script ici : http://en.wikisource.org/wiki/Help:DjVu_files/OCR_with_Tesseract
On peut le modifier et modifier la partie avec $lang = "fra"; au lieu de $lang = "eng"; pour optimiser la reconnaissance en français, mais parfois cela peut être pire pour certains mots.
Voir également http://chunchung.blogspot.com/2008/06/adding-ocr-to-djvu-file.html mais semble plus compliqué à utiliser
Voir également http://theowoll.netau.net/
On peut extraire du texte d'un document djvu avec OCR en utilisant l'outil djvutxt
modifier metadata
- lire les meta informations d'un document : ``` djvused merged_doc.djvu -e 'print-meta'
- modifier (remplacer) les metadata d'un document et le sauvegarder aussitôt : ``` djvused merged_doc.djvu -e 'set-meta meta.txt' -s
- en une seule opération : ``` echo -e "Title \"Titre du document\" \nAuthor \"Auteur\" \nSubject \"sujet et mots clés\" " > /tmp/meta.txt ; djvused merged_doc.djvu -e 'set-meta /tmp/meta.txt' -s
- retirer les metadata : ``` djvused merged_doc.djvu -e 'remove-meta' -s
convertir une video (changer de format)
pour faire une rotation de video, il est possible d'utiliser avidemux
Exemple pour encoder une liste de fichiers avec un rendu correct en 640x480 :
for a in *.AVI *.MOV *.avi *.mov
do
ffmpeg -i $a \
-acodec libvorbis -ac 2 -ab 96k -ar 44100 \
-b 1100k -s 640x480 fichier_$a.webm
done
- Sortir pour 2 ou 3 versions compatibles HTML5 :
for a in *.AVI *.MOV *.avi *.mov
do
ffmpeg -i $a \
-acodec libvorbis -ac 2 -ab 96k -ar 44100 \
-b 1100k -s 640x480 ${a%%.*}.webm
ffmpeg -i $a -ar 24000 -ab 96k \
-vcodec libx264 \
-b:v 1100k -s 640x480 -r 29.97 -strict -2 ${a%%.*}.mp4
#ffmpeg -i $a \
# -acodec libvorbis -ac 2 -ab 96k -ar 44100 \
# -b 1100k -s 640x480 ${a%%.*}.ogv
done
(theora (ogv) est déconseillé car la qualité est moindre que le webm et les navigateurs supportant theora supportent webm maintenant)
autre exemple avec diverses options (30 premières secondes), et bitrate non constant (recommandé) :
ffmpeg -i fichier -threads 2 -rc_lookahead 16 -level 116 -ss 0 -t 0:00:30 -acodec libvorbis -ac 2 -b:a 96k -ar 44100 -qmin 1 -qmax 31 -minrate 0 -maxrate 1500k -s 640x480 -deinterlace fichier.webm
exemple ubuntu (non recommandé, la seconde passe n'étant pas forcément meilleure) :
rm /tmp/pass1.*.log
ffmpeg -i VTS_02_1.VOB -ss 0 -t 0:00:30 -threads 3 -vcodec libvpx -b:v 1500k -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 1 -qmax 51 -minrate 0 -maxrate 1500k -an -pass 1 -passlogfile /tmp/pass1.fpf -deinterlace /tmp/fichier7.webm
ffmpeg -i VTS_02_1.VOB -ss 0 -t 0:00:30 -threads 3 -vcodec libvpx -b:v 1500k -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 1 -qmax 51 -minrate 0 -maxrate 1500k -deinterlace -acodec libvorbis -b:a 96k -ar 44100 -ac 2 -pass 2 -passlogfile /tmp/pass1.fpf /tmp/fichier7b.webm
exemple de script pour récupérer des vidéos d'un dvd (sans modifier la résolution) :
for a in VTS_02_1.VOB VTS_04_1.VOB VTS_07_1.VOB VTS_08_1.VOB
do
ffmpeg -i $a -threads 3 -rc_lookahead 16 -level 116 -acodec libvorbis -ac 2 -b:a 96k -ar 44100 -qmin 1 -qmax 31 -minrate 0 -maxrate 1500k -deinterlace /tmp/fichier_$a.webm
done
ou
ffmpeg -i foo.avi foo.webm
ffmpeg -i foo.avi foo.ogv
plus d'info sur http://doc.ubuntu-fr.org/ffmpeg
- ffmpeg2theora :
- haute qualité :
ffmpeg2theora suga-001.vob -o my_theora_video2.ogv \
--videoquality 9 --audioquality 4 \
--croptop 0 --cropbottom 0 --cropleft 0 --cropright 0 \
--width 720 --height 576 \
--title "Video Title" --artist "Artist Name" --date "1997-12-31"
- réduction de taille :
ffmpeg2theora suga-001.vob -o my_theora_video2.ogv \
--videoquality 9 --audioquality 4 \
--croptop 0 --cropbottom 0 --cropleft 0 --cropright 0 \
--width 368 --height 294 \
--title "Video Title" --artist "Artist Name" --date "1997-12-31"
- 360 x 288 pour 5:3
- 368 x 294 pour 4:3
- Avec vlc, encoder en vorbis et theora :
vlc fichier.mp4 \
--sout-theora-quality=9 \
--sout-vorbis-quality=4 \
--sout="#transcode{venc=theora,vcodec=theo,\
scale=0.5,deinterlace=0,croptop=0,\
cropbottom=0,cropleft=0,cropright=0,\
acodec=vorb,channels=2,samplerate=44100}\
:standard{access=file,mux=ogg,\
dst='my_theora_video.ogv'}"
(qualité de 0 à 10)
Couper un extrait d'une vidéo
mencoder input.avi -oac copy -ovc copy -ss 00:02:00 -endpos 00:04:00 -o output.avi
ou utiliser openshot
Créer une vidéo à partir de fichiers statiques
ffmpeg -f image2 -sameq -b 200k -r 20:1 -y -i anim-%d.jpg anim.mpg
(garde a la même qualité)
puis de mpg en theora:
ffmpeg2theora -v 7 -a 3 anim.mpg
pour modifier la taille par exemple : ffmpeg2theora -v 7 -a 3 -x 320 -y 240 anim.mpg
Son
encoder en ogg vorbis
oggenc fichier.wav --downmix -b 64 -M 96 -q 6 -o fichier.ogg (qualité mono) (-b ou -m ?)
oggenc fichier.wav -b 128 -M 192 -q 6 -o fichier.ogg (qualité stéréo)
cdparanoia -wB -d /dev/hdc ; oggenc -b192 *.wav -t "titre" -a "artiste" -c "AUTREINFO=nouveau champ"
for i in *.wav; do oggenc "$i" -m 64 -M 128 -o $i.ogg; done (qualité moyenne, pour jeu informatique par exemple)
Encoder en Flac
Encore plus simple avec ce format sans perte : ``` flac --best fichier.wav
Encapsuler un mp3 (ou autre) dans un .avi
ffmpeg -i file.mp3 -acodec copy file.avi
http://www.catswhocode.com/blog/19-ffmpeg-commands-for-all-needs
et rajouter une image :
ffmpeg -f image2 -i image.jpg -i file.mp3 -acodec copy file.avi
convertir les mauvais formats de fichier
- wma
for i in *.wma; do mplayer -ao pcm -ao pcm:file="${i%.wma}.wav" "$i";\ oggenc -m 256 "${i%.wma}.wav"; rm -f "${i%.wma}.wav"; done
for i in *.ram; do mplayer -ao pcm -ao pcm:file="${i%.ram}.wav" "$i";\ oggenc -m 256 "${i%.ram}.wav"; rm -f "${i%.ram}.wav"; done
for i in *.ape; do mac "$i" "${i%.ape}.wav" -d ; oggenc -m 256 "${i%.ape}.wav"; done
- clonecd : utiliser ccd2iso
- fichier .xtm (couper des fichiers) : utiliser xtmsplit :
xtmsplit -paste fichier.001.xtm
(ne semble pas correctement fonctionner sur les fichiers de plus de 2 Go)
ou plus simple : ``cat fichier.[0-4][0-9].xtm > film.avi `` (ne semble pas fonctionner non plus.
Sinon utiliser avec wine : http://xtremsplit.fr/
Synthétiseurs virtuels
artsbuilder
Configurer Timidity (lecture musique midi)
Timidity est un puissant lecteur midi utilisant des banques de sons. Si timidity est installé, il suffit d'avoir un répertoire avec soit une banque sous forme de « patterns » (.pat), soit sous forme de fontes (.sf2 etc., TimGM6mb.sf2 est une bonne banque par ex. que l'on trouve ici http://ocmnet.com/saxguru/Timidity.htm ). Il faut renseigner ensuite un fichier de configuration.
/etc/timidity.cfg
dir /usr/share/timidity/
# dir /usr/share/timidity/patches
dir /usr/share/timidity/sndfont
soundfont fonte_de_son.sf2
bank 0
drumset 0
0 acpiano
#/.../
4 honky
etc...
bank 0 se réfère aux fontes dans sndfont, 0 acpiano à des fichiers de sons dans sndfont.
On invoque timidity par : timidity fichiermidi.mid. Il est possible d'utiliser beaucoup de commandes annexes.
timidity -s 5000 fichier.mid : faible fréquence pour ordinateur lent
timidity -Ow -o fichier.wav fichier.mid
timidity -q 5.0 fichier.mid : avec cache
- Pour convertir du format abc directement vers la musique
abc2midi abc.abc | timidity -s 9000 abc1.mid
- Connecter Timidity et d'autres programmes
/usr/bin/timidity -iA -B2,8 -Os &
noteedit &
vkeybd
aconnect 131:0 128:1
aconnect 133:0 128:1
aconnect 133:0 131:0
aconnect 129:0 128:1
- Timidity et alsa
vérifier que le fichier /dev/snd/seq existe bien, sinon le créer :
mknod -m 666 /dev/snd/seq c 116 1
puis lancer timidity en tant que synthétiseur logique, connecté à alsa (devient /dev/snd/seq) :
timidity -iA -B2,8 -Os -EFreverb=0
- Produit des sons avec beep :
su -c 'beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 1 10 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047-l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 2 30 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460'
Audio Linux
- Pour enregistrer un flux midi :
- démarrer qjackctl
- démarrer qsynth, le paramétrer pour midi (alsa_seq) et audio (jack, 48000).
- démarrer rosegarden
- démarrer ardour
- dans qjackctl, connecter qynth1 left avec ardour audio 1/in 1
- connecter qynth1 right avec ardour audio 2/in 1
- enregistrer avec ardour, lire avec rosegarden
- avec tuxguitar: jack sequencer / midi port : synth input port
- Juste pour jouer un son depuis un clavier maître :
- démarrer qjackctl
- démarrer qsynth, le paramétrer pour midi (alsa_seq) et audio (jack, 48000). Jack client name ID à fluidsynth (auto connect partout)
- dans qjackctl, partie Alsa, connecter l'interface midi (par exemple USB Uno Midi interface etc) avec "Fluid Synth", et dans Audio, vérifier que le client fluidsynth est bien relié à playback.
Alsa et OSS
si problème avec /dev/dsp
charger le module snd_pcm_oss (modprobe snd_pcm_oss
)
Video
- Transmageddon
- ogmrip
- handbrake (ghb)
- vlc
périphériques et matériels
Processeurs
- Désactiver un ou plusieurs coeurs :
dans grub, indiquer maxcpus=1 par exemple à la fin de la ligne débutant par "kernel"
lecteur disquette
fdutils
: utilitaires de gestion du lecteur de disquette
fdformat /dev/fd0
superformat /dev/fd0 : formatter disquette A:
mke2fs /dev/fd0 : formatter disquette (créer système de fichier)
schéma d'une prise murale RJ45
M0 M1 O0 O1
7 8 1 2
6 4 5 3
V1 B1 BO V0
ports :
M = marron
O = Orange
V = vert
B = Bleu
1 indique un fil de couleur pleine
0 indique un fil blanc + couleur
cable croisé : V0:1 V1:2 O0:3 B:4 B0:5 O1:6 M0:7 M1:8
un seul des embouts doit être croisé !
Prise Molex et ventilateur
Pour du 5V on aura: Rouge (Ventilateur) vers Rouge (Alim) et Noir (Ventilateur) vers Noir (Alim)
Pour du 12V on aura: Rouge (Ventilateur) vers Jaune (Alim) et Noir (Ventilateur) vers Noir (Alim)
Pour du 7V on aura: Rouge (Ventilateur) vers Jaune (Alim) et Noir (Ventilateur) vers Rouge (Alim)
tiré de http://www.homemedia.fr/tests-guides/42-Tutorial-Connecter-ses-ventilateurs-en-5V-0.html
Écran et carte graphique
ajouter les paquets de http://debian.linux-systeme.com/
# /etc/apt/sources.list:
deb http://debian.linux-systeme.com sid main
deb-src http://debian.linux-systeme.com sid main
il faut avoir dans /etc/X11/xorg.conf ces lignes (pour une nvidia par ex.) :
Section "Extensions"
Option "Composite" "true"
Option "RENDER" "Enable"
EndSection
Section "Device"
#VideoRam 8192
# Insert Clocks lines here if appropriate
Identifier "NVIDIA GeForce"
Driver "nvidia"
Option "AllowGLXWithComposite" "True"
Option "RenderAccel" "True"
EndSection
ctrl + alt + "+" ou "-" : modifie la résolution d'écran
xdpyinfo : donne des infos sur la résolution et l'écran
xgamma -gamma .75 : change la luminosité
xset : permet de changer des paramètres du serveur X. Ex : écran de veille etc...
Xorg -configure : autodétection des paramètres de l'écran. Tester le fichier de sortie avec Xorg -config xorg.conf.new
bsetbg : défini le fond d'écran
idem fbsetbg image.png ou display -window root image.png
X -configure : créer automatiquement un fichier xorg.conf
Clavier
install-keymap fr-latin1
: changement mapping clavier
xset r rate 550 23
: vitesse répétition clavier (kbdrate existe aussi pour cela)
/usr/bin/loadkeys /usr/lib/kbd/keytables/fr-latin1.map
ou : setxkbmap -layout fr
ou alors utiliser : wget http://chrisix.free.fr/pycoincoin/xmodmaprc && xmodmap xmodmaprc
- pour dvorak :
setxkbmap dvorak et revenir avec setxkbmap fr
pour les accents : ``` setxkbmap -model pc105 -layout dvorak -option compose:rwin
ou juste la touche compose avec ``` xmodmap -e 'keycode 115 = Multi_key'
- utiliser le clavier comme une souris
On peut contrôler le curseur de la souris avec les chiffres du pavé numérique. Il suffit de presser shift + Verr num (NumLock) pour l'activer. Pour cliquer, on choisit le bouton avec /,*,- puis avec 5 pour un simple clique, 5 5 pour un double et 0 mouvement 5 pour un dragage. (tiré de http://linuxfr.org/tips/)
- Changement langue de certaines applications
taper dans la console, ou insérer dans le fichier .profile :
export LANG=fr_FR
export LANGUAGE=fr_FR
export LC_ALL="fr_FR@euro"
export LANG=fr_FR
export LANGUAGE=fr_FR
export LC_ALL="fr_FR@euro"
éventuellement :
dpkg-reconfigure locales
ou éditer /etc/sysconfig/i18n
trouver le code d'une touche
xev
- réparer les autorisations (non testé)
for item in $(find /home/yourlogin/);
do [ -f $item ] && chmod 644 $item; [ -d $item ] && chmod 755 $item;
done; umask 0022 /home/yourlogin; chown -R yourlogin:yourlogin /home/yourlogin
- Modifier la virgule du pavé numérique
utiliser ce script :
#!/bin/bash
val=`xmodmap -pke | grep "keycode 91 = KP_Delete KP_Decimal"`
echo $val
if [ -n "$val" ]
then
xmodmap -e 'keycode 91 = KP_Delete comma'
else
xmodmap -e 'keycode 91 = KP_Delete KP_Decimal'
fi
- Activation du pavé numérique
Pour la console
dans .profile
INITTY=/dev/tty[1-6]
for tty in $INITTY;
do setleds -D +num < $tty
done
sous Xwindows
Editer le fichier /usr/X11R6/lib/X11/xkb/types (basic)
Si vous ne trouver pas le fichier tapez :
"find /usr/X11R6 -name basic"
Repérer les lignes :
type 'KEYPAD"{
modifiers=Shift+Numlock;
map[none]=level 1; (remplacer level 1 par level 2)
map[Shift]=level 2; (remplacer level 2 par level 1)
map[numlock]=level 2;...........
ou installer le paquet numlockx
apt-get install numlockx
/etc/inputrc :
set bell-style none : retirer la cloche de console
set bell-style visible : mettre un flash à la place de la cloche
xset -b : retire le son de la console X11 (plus sur http://www.linux.se/doc/HOWTO/mini/Visual-Bell-7.html)
modprobe -r pcspkr snd_pcsp
rajouter blacklist pcspkr dans /etc/modprobe.d/blacklist (debian)
ou MODULES=(!pcspkr !snd_pcsp) dans /etc/rc.conf (archlinux)
echo -e "\\33[11;0]
en console virtuelle : setterm -blength 0
Souris
- Inverser les boutons de la souris (mode gaucher)
Temporairement : dans une console, taper :
xmodmap -e 'pointer = 3 2 1'
Si le système se plaint qu'il manque des boutons, essayer par exemple :
xmodmap -e 'pointer = 3 2 1 4 5'
Indiquer 'pointer = 1 2 3' pour revenir au mode droitier
Ceci fonctionne normalement pour tous les gestionnaires de fenêtre puisque c'est géré par X.
Définitivement : insérer cette même ligne dans .xinitrc, avant le lancement du gestionnaire de fenêtre.
- Supprimer le clic du milieu
(dommage car c'est très pratique...)
xmodmap -e 'pointer = 1 6 3 4 5 2'
- liste des curseurs de souris
arrow based_arrow_down based_arrow_up boat bogosity bottom_left_corner bottom_right_corner
bottom_side bottom_tee box_spiral center_ptr circle clock coffee_mug cross cross_reverse crosshair
diamond_cross dot dotbox double_arrow draft_large draft_small draped_box exchange fleur gobbler
gumby hand1 hand2 heart icon iron_cross left_ptr left_side left_tee leftbutton ll_angle lr_angle man
middlebutton mouse pencil pirate plus question_arrow right_ptr right_side right_tee rightbutton
rtl_logo sailboat sb_down_arrow sb_h_double_arrow sb_left_arrow sb_right_arrow sb_up_arrow
sb_v_double_arrow shuttle sizing spider spraycan star target tcross top_left_arrow top_left_corner
top_right_corner top_side top_tee trek ul_angle umbrella ur_angle watch X_cursor xterm
xsetroot -cursor_name hand1
: change le curseur de la souris (serveur X)
bitmap
: editeur icones X
xcursorgen
: pour générer des curseurs d'après une liste de fichiers png
- Changer le thème de la souris
Editer /usr/X11R6/lib/X11/icons/default/index.theme (parfois ce peut être usr/share/icons/default/index.theme à la place)
[Icon Theme]
Inherits=core #theme d'origine, sinon utiliser whiteglass
Économies d'énergie et mise en veille
- script efficace pour la mise en veille : voir uswsusp qui fournit s2ram et s2disk.
http://www.lesswatts.org/tips/ : site sur les économies d'énergie.
xset dpms 0 0 180 : éteindre l'écran après 180 secondes
Imprimantes
- Imprimer
Imprimer à partir de firefox / thunderbird
utiliser le gestionnaire de kde : entrer dans les préférences avancés : kprinter --stdin
- Configurer une imprimante
Diverses méthodes existent... Une possibilité :
* lancer le service cups (dépend peut-être des installations, cupsenable ou cups start
* lancer un navigateur à l'adresse locale : http://127.0.0.1:631 et entrer les bonnes options
pour le réseau voir : http://trustonme.net/didactels/?rub=268
* Ajouter à la section [global] les lignes :
load printers = yes
printing = cups
printcap name = cups
et la section à la fin :
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
public = yes
guest ok = yes
writable = no
printable = yes
printer admin = root
[print$]
comment = Printer Drivers
path = /etc/samba/drivers
browseable = yes
guest ok = no
read only = yes
write list = root
Scanner
numérisation et OCR avec gscan2pdf et tesseract
Asus EEE
- lancer un script au démarrage : il faut modifier /usr/bin/startsimple.sh
Pocket PC
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
CDROM ou DVDROM bloqué
- message de type "VFS: busy inodes on changed media or resized disk sr0"
pour éjecter et remettre le cd, tapez :
eject sr0
eject -t sr0
éventuellement sudo umount /dev/sr0
si cela bloque toujours, regarder le processus utilisant sr0 ou gvfs, et le tuer :
ps -aef |grep -i sr0
divers
Linux PPC
Ventilateur ibook
Pour lever le déclenchement du ventilateur à 50°C sous linux (contre 60°C sous osx) il faut indiquer "therm_adt746x limit_adjust=5" dans /etc/modules -> augmente la limitation à 5°C.
installer debian sur ppc
http://chamblandes.tuxfamily.org/installationMac/installation2.html
Réparer une partition hfsplus sous linux
hpmount /dev/hda13
hpumount
installer (configurer) mysql
mysql_install_db
mysql_secure_installation
changer le mot de passe mysql
mysqladmin -u root password mypassword
Liens linux
http://chl.be/migrations/ (Migrations linux)
http://www.unixtech.be/
http://www.labo-linux.org
http://www.aidelinux.org/
http://www-spi.lip6.fr/~queinnec/Books/ABCdUNIX/uunix-toc.html (abc unix)
Danger de sécurité : http://www.lebars.org/sec/tcpa-faq.html
O/S sécurisé : http://www.ixus.net
Différentes distributions de Linux : http://www.distrowatch.com/
Un historique du système NeXTSTEP : http://www.levenez.com/NeXTSTEP/
PocketPc + Linux : http://familiar.handhelds.org/
Icones en 3D isométrique : http://www.iconfactory.com/howto_copland.asp
Icones en 3D isométrique : http://www.pixture.com/icons.php
http://www.din.or.jp/~irondv/warehouse.html
http://zapatopi.net/icons.html
http://www.iconarchive.com/icon
http://www.icontown.net/
http://alpesinfografik.chez.tiscali.fr/icons7.html
Graphismes : http://linuxgraphic.org/
http://www.operating-system.org/ : tous les systèmes d'exploitation
http://aboutdebian.com/
Guide détaillé Debian : http://www.togaware.com/linux/survivor/
Encore une formation linux / debian : http://formation-debian.via.ecp.fr/
http://www.calle.com/world/FR/ : coordonnées géographiques du mondes (utile dans kstar)
http://www.onlamp.com/linux/cmd/ bcp de commandes linux (publié par Oreilly)
Une distribution intéressante est la Knoppix : http://www.knoppix-fr.org (aide sur http://thefredsite.free.fr), et en version francisée kaella : http://kaella.linux-azur.org/
Une autre est Slax : http://slax.linux-live.org/
De l'aide détaillée sur linux de façon générale figure sur :
http://www.delafond.org/survielinux/
http://www.nerdtests.com/ft_nq.php?im
http://www.phpzoom.com/linfaq/single.htm
et
http://archilinux.free.fr/telecharger/linux.html
http://www.funix.org
http://www.tldp.org/
http://www.togaware.com/linux/survivor/
http://www.digilife.be/quickreferences/QRC/LINUX%20Admin%20Quick%20Reference.pdf
http://entreelibre.com/scastro/debian-secinst/debian-secinst.txt securité Debian
http://debiantips.dyndns.org/
http://www.brunolinux.com/
Quelques commandes usuelles (listes à imprimer) : http://perso.club-internet.fr/ccb/publications/memo/
Liste des logiciels équivalents Linux / MSWindows : http://www.om-conseil.com/sections.php?op=viewarticle&artid=42
Et encore des listes de logiciels : http://forum.hardware.fr/hardwarefr/OSAlternatifs/sujet-27876-1.htm
divers:
projets intéressants : http://www.alternc.org/index.php.en (admin apache, ftp)
/etc/apt/sources.list puis
deb http://debian.alternc.org debian/
deb-src http://debian.alternc.org debian/
http://pythoncard.sourceforge.net/v
http://rpm.pbone.net/ : base rpm
http://www.ductape.net/~mitja/freeunix.shtml (free shells accounts)
http://www.guidebookgallery.org/guis : interfaces graphiques
- Statistiques de navigateurs et OS :
- Installer linux facilement et rapidement depuis le réseau et un ordinateur windows :
Thèmes
Livres
http://www.framabook.org/docs/SCU.pdf (livre linux, mais axé ub*ntu malheureusement)
http://java.developpez.com/cours/ (livres et cours java, notamment "Programmation Java pour les enfants, les parents et les grands parents")
wiki
http://wiki.splitbrain.org/wiki%3AFAQ : dokuwiki
Citations
Those who do not understand Unix are condemned to reinvent it, poorly -- Henry Spencer
Ceux qui ne comprennent pas Unix sont condamnés à le réinventer, en moins bien.
The purpose of a graphical user interface is to make simple things simpler and complex things impossible.
logiciels
Graphisme
typo
polices libres/gratuites
GhostScript et police Type 1
Sous debian, si on a defoma qui est installé, il est possible d'installer directement des polices Type 1 de cette façon :
cp *.pfb /var/lib/defoma/gs.d/dirs/fonts
type1inst
cat Fontmap >> /var/lib/defoma/gs.d/dirs/fonts/Fontmap
Les polices seront accessibles pour GhostScript (gs). Pour pouvoir les utiliser avec par exemple openoffice.org, il faut utiliser l'installateur de police de kde (dans kcontrol)
Sous d'autres systèmes linux, cela sera plutôt :
/usr/share/ghostscript/8.63/lib/Fontmap.GS (adapter suivant la version de gs)
et polices à mettre dans /usr/share/fonts/Type1/
Fontforge
#!/usr/local/bin/fontforge
# Quick and dirty hack: converts a font to truetype (.ttf)
# use : fontforge -script otf2ttf.sh FONTNAME.otf
# for tt in *.otf ;do fontforge -script ~/otf2ttf.sh $tt ; done
Print("Opening "+$1);
Open($1);
Print("Saving "+$1:r+".ttf");
Generate($1:r+".ttf");
Quit(0);
#!/usr/bin/fontforge
# Quick and dirty hack: converts a font to Postscript Type one (.pfb)
i=1
while ( i<$argc )
Print("Opening : " +$argv[i]);
if($argv[i]:e != "otf")
Print( "Skipping ... Expecting an OpenType font [.otf]" )
else
Open($argv[i])
Print("Saving : " +$argv[i]:r+".pfb");
# If the font is a cid keyed font, you may want to flatten the cid map
# To do this, uncomment the command below :
# CIDFlatten()
SetFontOrder(3)
SelectAll()
Simplify(128+32+8,1.5)
ScaleToEm(1000)
DontAutoHint()
Generate($argv[i]:r + ".pfb")
endif
i = i+1
endloop
Musique
TTS : synthétiseur vocal
espeak -g 1.3 -p 55 -s 150 -v french --stdout < texte.txt | aplay
espeak -g 1.3 -p 55 -s 150 -v french --stdout < texte.txt > fichier.wav
Pratique
Système
- palimpsest : utilitaire disques (données smart etc)
- baobab : visualisation graphique taille des plus gros fichiers
- statifier : créer un paquet statique à partir de bibliothèques dynamiques (partagées)
Bench
super pi :
ftp://pi.super-computing.org/
./super_pi 20 : pour calculer 1 million de décimales.
chm (lire du)
convertir depuis le format chm (aide windows) :
http://archmage.sourceforge.net/
http://xchm.sourceforge.net/ (pour lire)
http://htmlhelp.berlios.de/api/python/
Nettoyer le système
http://detox.sourceforge.net/
http://www.pixelbeat.org/fslint/
kleansweep
Virtual Box
VBoxManage list vms
VBoxManage startvm NetBSD -type headless
VBoxManage controlvm NetBSD vrdp on
rdesktop-vrdp localhost -k fr
ou
rdesktop -t 3389 -k fr localhost
VBoxManage controlvm NetBSD savestate
vbox_build_module : refaire les modules après mise à jour noyau.
Accéder à la machine via ssh (forward de port)
$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
$ VBoxManage setextradata <guestname> "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
arrêter la machine invité et la redémarrer.
Qemu
(ce logiciel ne devrait plus poser de pb, idem pour l'installation de kqemu. Sinon il reste toujours virtualbox, plus rapide et plus pratique au quotidien, suivant l'utilisation qu'on en a)
http://genibel.org/blog/index.php/2005/11/08/45-utiliser-qemu-avec-l-acceleration-kqemu
faire image disque :
dd of=hd.img bs=1024 seek=1000000 count=0
utiliser une image de disquette de démarrage (ex sur http://www.bootdisk.com/bootdisk.htm)
qemu -m 32 -fda WIN98SEC.IMG -hda win98.img -boot a
(ou utiliser qemu-fast)
fdisk
reboot
FORMAT C:/S
reboot
qemu -m 32 -fda WIN98SEC.IMG -hda win98.img -cdrom /dev/cdrom -boot a -user-net
alternative :
créer un iso
qemu -m 32 -fda WIN98SEC.IMG -hda win98.img -cdrom win98.iso -boot a -user-net
après 1ère installation,
qemu -hda win98.img -cdrom /dev/cdrom -boot c -user-net
et rebooter autant de fois que nécessaire
Réseau :
telecharger vde sur sf.net
vde_switch -tap tap0 -daemon ou
vde_switch -tap tun -daemon
ifconfig tun 192.168.254.254
chmod 666 /tmp/vde.ctl
vdeq qemu myimage.img
sinon :
sudo modprobe tun
http://lists.gnu.org/archive/html/qemu-devel/2004-09/msg00150.html
http://turinglabs.com/gl/article.php?story=20050511201732846
procedure complete :
Installation de qemu
http://linuxfr.org/~sytoka/19391.html
Récuperation de la dernière snapshot de qemu sur
http://www.dad-answers.com/qemu/
Par exemple, le fichier
qemu-snapshot-2005-07-07_23.tar.bz2
Ce qui peux se faire avec l'uniligne
wget http://www.dad-answers.com/qemu/qemu-snapshot-2005-07-07_23.tar.bz2
On extrait les fichiers de l'archive
tar xvjf qemu-snapshot-2005-07-07_23.tar.bz2
Récuperation de kqemu sur
http://fabrice.bellard.free.fr/qemu/download.html
par exemple le fichier
kqemu-0.6.2-1.tar.gz
Ce qui peux se faire avec l'uniligne
wget http://fabrice.bellard.free.fr/qemu/kqemu-0.6.2-1.tar.gz
On extrait les fichiers dans le dossier qemu-snapshot-2005-07-07_23
cd qemu-snapshot-2005-07-07_23
tar xvzf ../kqemu-0.6.2-1.tar.gz
Récuperation des en-tête du noyau (2.4) ou des sources du noyau (2.6). On met le lien à jour vers linux et on change les droits pour qu'un utilisateur lambda puisse modifier les sources !
aptitude install kernel-headers-2.4.27-2-686
cd /usr/src
rm -f linux
ln -s kernel-headers-2.4.27-2-686 linux
chmod -R ugo+rwX kernel-headers-2.4.27-2-686
chmod -R ugo+rwX kernel-headers-2.4.27-2
On installe les paquets qui manque généralement et on vire le paquet qemu qui gêne.
aptitude install libsdl1.2-dev uml-utilities texi2html sudo
aptitude purge qemu
On retourne en utilisateur lambda dans son dossier qemu
cd qemu-snapshot-2005-07-07_23
./configure
On doit avoir la ligne SDL et kqemu à 'yes'.
make
On retourne sous le compte root pour faire l'installation et bidouiller un fichier système qui manque ensuite (si on veut le réseau) et on installe de nouveau les sources propres
make install
echo '#!/bin/sh' > /etc/qemu-ifup
echo 'sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1' >> /etc/qemu-ifup
chmod a+rx /etc/qemu-ifup
aptitude reinstall kernel-headers-2.4.27-2-686 kernel-headers-2.4.27-2
On fait de même avec sudo. Lancer en root la commande
grep -q '%users ALL = NOPASSWD: /sbin/ifconfig tun0 172.20.0.1' /etc/sudoers || echo '%users ALL = NOPASSWD: /sbin/ifconfig tun0 172.20.0.1' >> /etc/sudoers
/etc/init.d/sudo start
Activer le port forwarding dans le noyau. Mettre les bonnes règles pour faire du NAT.
grep -q 'net/ipv4/ip_forward=1' /etc/sysctl.conf || echo 'net/ipv4/ip_forward=1' >> /etc/sysctl.conf
sysctl -p
/sbin/iptables -A INPUT -i tun0 -j ACCEPT
/sbin/iptables -A OUTPUT -o tun0 -j ACCEPT
/sbin/iptables -A FORWARD -i tun0 -j ACCEPT
/sbin/iptables -A FORWARD -o tun0 -j ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -s 172.20.0.0/24 -i tun0 -o eth0 -p tcp -j ACCEPT
On peux sauver les règles iptables pour un prochain reboot
/etc/init.d/iptable save active
On charge les modules noyaux
modprobe kqemu
modprobe tun
Ou pour garder apres un reboot (noyau 2.4)
grep -q 'kqemu' /etc/modules || echo 'kqemu' >> /etc/modules
grep -q 'tun' /etc/modules || echo 'tun' >> /etc/modules
Si cela marche pas, il peux manquer le périphérique kqemu. Normalement, l'installation doit avoir tout fait.
mknod /dev/kqemu c 250 0
chmod 666 /dev/kqemu
changer taille partition :
(vers 1 Go par ex.)
dd if=/dev/zero of=image.img seek=1024000 count=1024000
attention, modifier le partitionnement de l'image peut affecter le système émulé.
Commandes utiles : Ctrl-Alt-f = passe en plein écran.
kqemu :
modprobe kqemu
mknod /dev/kqemu c 250 0
chmod 666 /dev/kqemu
version 2
Qemu
(voir aussi http://compsoc.dur.ac.uk/~djw/qemu.html)
First, edit /etc/sudoers with "visudo" and add your account
Add the "qemu" group to /etc/groups and add your userid to this group in /etc/passwd
Next, I wrote a little script to load all the right modules and change device perms -
Code:
#!/bin/sh
# change some runtime parameters
echo 1024 > /proc/sys/dev/rtc/max-user-freq
# insert the tuntap module
/sbin/modprobe tun
# check to see if it loaded
lsmod | grep tun
# insert the bridge module
/sbin/modprobe bridge
# check to see if it loaded
lsmod | grep bridge
# insert the kqemu module
/sbin/modprobe kqemu major=0
# check to see if it loaded
lsmod | grep kqemu
# change perms on /dev/kqemu
chown root:qemu /dev/kqemu
chmod 0660 /dev/kqemu
ls -l /dev/kqemu
# change perms on /dev/net/tun
chown root:qemu /dev/net/tun
chmod 0660 /dev/net/tun
ls -l /dev/net/tun
Another script to setup the network in bridged mode -
Code:
#!/bin/sh
ifdown eth0
brctl addbr br0
ifconfig eth0 up
brctl addif br0 eth0
# may need to add either line below to start dhcpcd (dhcp client)
# dhcpcd br0
# dhclient br0
NB - tuntap was already available in the FC4 kernels. I used yum to install bridge-utils.
Finally, I used the following script - /etc/qemu-ifup -
Code:
#!/bin/sh
sudo /sbin/ifconfig $1 up
sudo /usr/sbin/brctl addif br0 $1
When you start a VM, the following line appears on stdout -
Code:
drosser@gemini$ qemu -cdrom dsl-2.0.iso -boot d
Connected to host network interface: tun0
Finally, what /sbin/ifconfig output looks like when everything's running -
br0 Link encap:Ethernet HWaddr 00:14:2A:13:46:B6
inet addr:192.168.0.201 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12515 errors:0 dropped:0 overruns:0 frame:0
TX packets:7746 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6625538 (6.3 MiB) TX bytes:881838 (861.1 KiB)
eth0 Link encap:Ethernet HWaddr 00:14:2A:13:46:B6
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:142299 errors:0 dropped:0 overruns:0 frame:0
TX packets:107316 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:168299488 (160.5 MiB) TX bytes:9176095 (8.7 MiB)
Interrupt:233 Base address:0xe000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4310 errors:0 dropped:0 overruns:0 frame:0
TX packets:4310 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6274814 (5.9 MiB) TX bytes:6274814 (5.9 MiB)
tun0 Link encap:Ethernet HWaddr 2A:BC:99:A4:EA:CA
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:33 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:1522 (1.4 KiB) TX bytes:7372 (7.1 KiB)
Synergy
Permet de partager clavier et écran entre 2 ordinateurs.
Installer quicksynergy sur le serveur (c.à.d. ordinateur avec clavier et souris) et synergy sur le client (écran), renseigner le nom d'hôte dans quicksynergy pour autoriser l'accès, ensuite lancer sur le client "synergyc -f ip-du-serveur".
Wine
wine msiexec /i programme.msi
: permet d'installer un programme msi
utiliser un programme nécessitant IE6 :
WINEPREFIX=/path/vers/ies4linux/ie6 wine tonprogrammequicasselesbonbons.exe
Zope / Plone
http://www.ngogeeks.com/book/print/65
port par défaut : http://machine:9673
LaTeX
Step 1: Convert the font to pc ttf format with pfaedit (see pfaedit.sf.net). Save the fonts in "/Library/Fonts/Hoefler Text.dfont" as ehtr16.ttf, ehtri16.ttf, ehtc16.ttf, and ehtci16.ttf Step 2: Install from the command line: ttf2tex ttf2tex --batch --install -N --foundry apple --font hoeflert eht --expert Step 3: Enable the eht.map with updmap (I don't know the exact syntax) or by editing pdftex.cfg
Réduire les coupures de mots : augmenter la valeur de \hyphenpenalty (vaut 50 par défaut)
voir également \pretolerance=150 , \tolerance (defaut 200) et \emergencystretch ex : \setlength{\emergencystretch}{3em}
résoudre les mots qui sortent de la justification (overfull hbox): indiquer \sloppy (defaut 9999)
Ex :
\newenvironment{tolerant}[1]{%
\par\tolerance=#1\relax
}{%
\par
}
mettre à jour tetex : texhash
mettre à jour les polices : updmap --enable Map /chemin/fichier.map
voire à la place updmap --syncwithtrees
kpsewhich <fichier de police> : trouve si un fichier est bien reconnu par tex
variations sur LaTeX : Lout
GELLMU
tbook
Tbook
Installer tbook
installer depuis les sources (linux) ou un rpm
installer saxon : apt-get install lib-saxon-java
créer un script "saxon" dans /usr/bin :
export CLASSPATH
java -ms15000000 com.icl.saxon.StyleSheet $1 $2 $3 $4 $5 $6 $7 $8 $9%%
tester :
tbprepare test
tbtolatex -t test
txt2tags
puissant système de formatage qui permet d'exporter en html, latex etc (ce document est généré avec txt2tags)
http://txt2tags.sourceforge.net/
Mutt
créer un fichier .muttrc dans /home/utilisateur/
set realname = "blabla"
set from = "blabla@fournisseur.fr"
# Mail Folder
set folder = ~/Mail # Directory that contains all mail files (mailboxes)
set spoolfile = +Inbox # Default spoolfile
set mbox = +Inbox # Where mail is appended to from spoolfile
set mbox_type = mbox # Type of mail files
set postponed = +Unsent # Where to save postponed mail
set copy = yes # Save copies of outgoing mail?
set record = +Sent # Where to save copies of outgoing mail
#set pop_delete
set pop_host="pop.serveur.fr"
#set pop_port=110
set pop_pass=" mot de passe "
set pop_user=" utilisateur "
# unset pop_last
liste plus complète ici : http://sebastien.dinot.free.fr/dotmuttrc.html
Récupérer le courrier avec « G ».
envoyer une pièce jointe directement :
mutt -s "Test mail" -a fichier.tar.gz nom@adresse.com < /tmp/mailmessage.txt
Pour envoyer un message via smtp sans utiliser de logiciel spécifique de courrier sortant, il est possible d'utiliser ce script :
http://www2.zdo.com/articles/mutt-smtp-wrapper.php
Java
Définir Java de Sun par défaut sous debian :
# update-java-alternatives -s java-6-sun
Firefox
Firefox
Installer le plugin java dans mozilla / firefox
(adapter selon votre chemin du jre)
sudo ln -s /usr/share/jre1.5.0_01/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/mozilla-firefox/plugins/
( eventuellement ?
sudo ln -s /usr/share/jre1.5.0_01/lib/i386/libjavaplugin_jni.so /usr/lib/mozilla-firefox/plugins/ )
Dans firefox3, j'ai été obligé de créer un dossier /usr/lib/i386/ et de faire :
sudo ln -s /usr/lib/jvm/java-6-sun/jre/lib/i386/libjava* /usr/lib/i386/
et dans about:config mettre pour java.java_plugin_library_name : libjavaplugin_nscp.so
pour java.default_java_location_others : /usr/lib/jvm/java-6-sun/jre/lib/i386
installer flash sur amd64 :
télécharger flash player : http://www.macromedia.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash
editer "flashplayer-installer", ligne 249 "i[3456]86)" en "i[3456]86|x86_64)"
lancer l'installation
Il faut pour cela avoir une version 32 bits de firefox !
Extensions firefox
- BarTab : pour éviter de recharcher au démarrage les onglets sauvegardés. => remplacé par browser.sessionstore.max_concurrent_tabs = 0 dans about:config
- Adblock Plus
- ChatZilla
- DownThemAll
- FireFTP
- Flashblock
- Greasemonkey peut être utile
- Readability
- SQLite Manager
- Web Developer
- ScrapBook : récupérer des bouts de site web et les organiser et sauvegarder.
- add-on compatibility reporter : désactiver la vérification des greffons
Extensions thunderbird
- AttachmentExtractor
- Display Mail User Agent
- Enigmail
- FireTray
- Fournisseur pour Google Agenda
- Google Contacts
- Lightning
- LightningButton
- Quicktext
- Remove Duplicate Messages
- Select Addressbook Text
- ThunderBirthDay
- Zindus
Google Chrome
Retirer les pubs (équivalent à adblock) :
- installer privoxy et rajouter la variable d'environnement :
- export http_proxy="http://127.0.0.1:8118"
- redémarrer chrome (<!> cela peut ralentir la navigation)
Emulation
Dosemu
alt+ctrl+f : active le mode plein écran
augmenter la vitesse : dans /etc/dosemu/dosemu.conf augmenter la valeur de HogThreshold à la moitié de celle de la valeur de bogomips de la machine.
Dosbox
Respecter les pixels :
```output=openglnb
dans .dosboxrc ou équivalent (nb = no blur)
Tango
http://tango-project.org/Tango_Icon_Library : des icones pour gnome et kde
http://www.oxygen-icons.org/ : projet similaire
installer tango : (icones kde)
cd ~/.kde/share/icons && wget "http://www.zuurstofcel.nl/Tango-1.0.tar.gz" && tar -xvzf Tango-1.0.tar.gz && rm Tango-1.0.tar.gz && kcmshell icons && cd ~
Mime type
http://stackoverflow.com/questions/30931/register-file-extensions-mime-types-in-linux
Use xdg-utils from freedesktop.org Portland.
Register the icon for the MIME type:
xdg-icon-resource install --context mimetypes --size 48 myicon-file-type.png x-application-mytype
Create a configuration file (freedesktop Shared MIME documentation):
<??>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="application/x-mytype">
<comment>A witty comment</comment>
<comment xml:lang="it">Uno Commento</comment>
<glob pattern="*.myapp"/>
</mime-type>
</mime-info>
Install the configuration file:
xdg-mime install mytype-mime.xml
This gets your files recognized and associated with an icon. xdg-mime default can be used for associating an application with the MIME type after you get a .desktop file installed.
- les mime par défaut peuvent se retrouver dans :
~/.local/share/applications/mimeapps.list
~/.local/share/applications/defaults.list
Wine peut polluer les menus. On peut corriger cela en supprimant ces fichiers :
rm -fr ~/.local/share/applications/wine-extension-*
rm -fr ~/.local/share/mime/packages/*wine-extension*
rm -fr ~/.local/share/icons/*wine-extension*
pour changer un mime-type par défaut, on peut utiliser "mimeopen" (mimeopen -d fichier.ext
).
En parlant d'extensions, pour supprimer les extensions de départ lors d'un renommage bash on a :
~% FILE="example.tar.gz"
~% echo "${FILE%%.*}"
example
~% echo "${FILE%.*}"
example.tar
~% echo "${FILE#*.}"
tar.gz
~% echo "${FILE##*.}"
gz
midgard
cms interessant ? : http://www.midgard-project.org/documentation/installation-distros/
Ifs-compose
des fractales dans gimp : http://tigert.gimp.org/gimp/ifs-compose/
Java
changer le look java
java -jar -Dswing.defaultlaf=com.sun.java.swing.plaf.motif.MotifLookAndFeel Jif.jar
java -jar -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel Jif.jar
java -jar -Dswing.gtkthemefile=/usr/share/themes/Default/gtk/gtkrc Jif.jar
java -jar -Dswing.metalTheme=steel Jif.jar
(cf. http://java.sun.com/docs/books/tutorial/uiswing/misc/plaf.html )
java -jar -Dswing.defaultlaf=com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
http://java.sun.com/developer/technicalArticles/javase/java6u10/index.html
Créer look Nimbus sous Debian
sudo apt-get install fakeroot dpkg-dev devscripts icon-naming-utils intltool
wget -c http://dlc.sun.com/osol/jds/downloads/extras/nimbus-0.0.8.tar.bz2
wget -c http://zap.tartarus.org/~ds/debian/dists/sid/main/source/nimbus_0.0.6-1.diff.gz
tar xf nimbus-0.0.8.tar.bz2
cd nimbus-0.0.8
zcat ../nimbus_0.0.6-1.diff.gz | patch -p1
chmod +x debian/rules
debchange -v 0.0.8-1
sudo apt-get build-dep gtk2-engines-clearlooks
fakeroot dpkg-buildpackage -us -uc
Explications trouvées ici
créer paquet java debian
apt-get install java-package
make-jpkg jre-***-linux-i586.bin
dpkg -i sun-j2re***_i386.deb
Quelques programmes à connaître (en construction)
Certains de ces programmes étant installés sur la plupart des distributions, il peut être intéressant d'essayer de les lancer.
Graphiques
speedcrunch : calculatrice
kate : éditeur de texte KDE, autorise de multiples fichiers ouverts, et garde en mémoire ces fichiers pour les sessions suivantes.
ethereal : analyse réseau
openoffice : remplacement de microsoft office
scribus, sketch, sodipodi : éditeur dessin vectoriel
inkscape / sodipodi : éditeur dessin vectoriel
blender : modeleur 3D
kstar : planétarium / carte du ciel
noteedit : editeur de partitions
rosegarden : éditeur de partitions
xftree
- redshift : permet de modifier la température de l'écran en fonction de l'heure, pour reposer les yeux. Ex : ``` redshift -l 48.18:4.2 -t 5700:4600 -g 1 -m vidmode -v
pour Paris : ``` redshift -l 48.52:2.20 -t 5700:4600 -g 1 -m vidmode -v
Mode texte
cfdisk : équivalent de fdisk (partitionnement des disques)
tune2fs : ?
netcardconfig
soundcardconfig
watch : permet de relancer à intervale régulier la même commande (par exemple free)
mkpersistenthome : créer répertoire utilisateur Knoppix
/user/sbin/save config : sauver config knoppix
soundcardconfig : configuration carte son
cupsconfig : configuration imprimantes
lilypond
gentoo, xwc, filerunner : gestionnaires fichiers
qtparted : maintenance des partitions (équivalent "partition magic") : retailler, modifier les disques durs
lvm : partitionnement dynamique
ginf ? edit html
nvu (idem)
fortune : affiche une citation
starfile : converti un fichier texte en citation pour fortune.
Jeux voir cette page
Nicotine : client soulseek
WindowMaker :
wmakerconf
fsviewer : gestionnaire de fichier de GnuStep / WindowMaker
worker : gestionnaire fichier
aterm : émulateur de terminal
/etc/X11/WindowMaker/menu.hook : fichier de config du menu
wmsetbg -e /chemin/image.jpg : fond écran (transparence supportée)
FluxBox :
fbdesk
fbpager
fluxconf
fluxspace
idesk : icones
bsetbg -c /chemin/image.jpg : fond écran (sans transparence)
session.screen0.rootCommand: bsetbg -f ~/backgrounds/zimdib_dark.png
ion3 :
cfg_debian.lua
ajouter :
META="Mod4+"
ALTMETA="Shift+"
apprentissage de ion3 : http://dev.nozav.org/intro_ion.html
Knoppix :
GNUstep :
gridlock : divers jeux
gworkspace : gestionnaire de fenêtres
sitar : donne des informations sur le système et le matériel.
inxi -v 5 : donne des informations sur le système et le matériel.
Utilitaires généraux
Voici les « indispensables » à connaître
Open Office : Traitement de texte, tableur, etc.
Firefox : Navigateur internet
Thunderbird : Client courriel
Gimp : Editeur image
Utilitaires intéressants pour une configuration légère
Nedit : éditeur ascii
Worker : gestionnaire de fichiers (basé sur Directory Opus) : http://www.boomerangsworld.de/worker/
Xfe : gestionnaire de fichier conventionnel
Dillo : navigateur simple et rapide.
Fspanel : barre de tâche
amaya : editeur html wysiwyg
xli : visualiseur d'images
vlc : joue vidéo et musique / video & music
http://backarrow.sourceforge.net/index.php?id=download
Windows :
TestDisk : indispensable si une table de partition ou le MBR lâche : http://www.cgsecurity.org/index.html?testdisk.html
Calypso : Client courriel Calypso : Client courriel (windows)
Emulateurs :
http://aranym.sourceforge.net/ (Atari)
http://www.aros.org (Amiga)
Fichiers de configuration
~/.profile
export PATH="$HOME/.dist/bin:/usr/share/jre1.5.0_01/lib/:/usr/share/jre1.5.0_01
/bin/:$PATH:"
export LANG=fr_FR@euro
#PS1='\[\033[0;33m\][\t]\[\033[0;32m\]\[\033[0;36m\]\w\$\[\033[0m\] \a'
PS1='\[\033[1;30m\][\t]\[\033[1;32m\][\u@\h]\[\033[0;36m\]\w\$\[\033[0m\] '
#Autre effet (retour à la ligne)
PS1='┌─\
\[\033[1;32m\][\
\[\033[1;33m\]\u\
\[\033[1;37m\]@\
\[\033[1;36m\]\h\
\[\033[1;37m\]:\
\[\033[1;37m\]\w\
\[\033[1;32m\]]-[\
\[\033[0;32m\]\t\
\[\033[1;32m\]]
\[\033[0;32m\]└─>\
\[\033[1;31m\]$\
\[\033[0;32m\] '
#Autre effet (retour à la ligne)
PS1='┌─\
\[\033[1;32m\][\
\[\033[1;33m\]\u\
\[\033[1;37m\]@\
\[\033[1;36m\]\h\
\[\033[1;37m\]:\
\[\033[1;37m\]\w\
\[\033[1;32m\]]-[\
\[\033[0;32m\]\t\
\[\033[1;32m\]]
\[\033[0;32m\]└─>\
\[\033[1;31m\]$\
\[\033[0;32m\]\[\033[0m\] '
PROMPT=$'%{\e[0;36m%}[%t] %{\e[0;32m%}%~$%{\e[0m%} '
alias ..="cd .."
alias which="type -path"
alias where="type -all"
alias ll="ls -l --color=auto" # -G à la place de --color=auto sur BSD
alias l="ls -a --color=auto"
alias rm="rm -i"
alias mv="mv -i"
alias cp="cp -i"
alias psg='ps auxww | grep'
alias la="ls -la --color=auto"
alias ls="ls --color=auto"
alias trouve="find ./ -type f | xargs grep -l "
alias cherche-et-trouve="find / -maxdepth 50 -type f | xargs grep -l "
# alias free="sysctl -a | grep -i memory " # sous bsd uniquement
~/.bashrc
[ -f /etc/profile ] && . /etc/profile && . ~/.profile
~/.zshrc
.zshrc
[ -f /etc/profile ] && . /etc/profile && . ~/.profile
#complist
#autoload -U compinit
#compinit
#ZLS_COLORS=$LS_COLORS
~/.torsmorc
torsmo permet d'afficher des info sur l'image de fond (conky est son remplaçant)
# set to yes if you want tormo to be forked in the background
background no
cpu_avg_samples 3
net_avg_samples 3
# X font when Xft is disabled, you can pick one with program xfontsel
#font 5x7
#font 6x10
#font 7x13
#font 8x13
#font 7x12
#font *mintsmild.se*
#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*
# Use Xft?
use_xft yes
# Xft font when Xft is enabled
xftfont Bitstream Vera Sans:size=8
# Text alpha when using Xft
xftalpha 0.8
# mail spool
mail_spool $MAIL
# Update interval in seconds
update_interval 60
# Create own window instead of using desktop (required in nautilus)
own_window no
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer no
# Minimum size of text area
minimum_size 280 5
# Draw shades?
draw_shades yes
# Draw outlines?
draw_outline no
# Draw borders around text
draw_borders no
# Stippled borders?
stippled_borders 8
# border margins
border_margin 4
# border width
border_width 1
# Default colors and also border colors
default_color white
default_shade_color black
default_outline_color black
# Text alignment, other possible values are commented
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
gap_x 12
gap_y 12
# Subtract file system buffers from used memory?
no_buffers yes
# set to yes if you want all text to be in uppercase
uppercase no
# boinc (seti) dir
# seti_dir /opt/seti
# Possible variables to be used:
#
# Variable Arguments Description
# acpiacadapter ACPI ac adapter state.
# acpifan ACPI fan state
# acpitemp ACPI temperature.
# adt746xcpu CPU temperature from therm_adt746x
# adt746xfan Fan speed from therm_adt746x
# battery (num) Remaining capasity in ACPI or APM
# battery. ACPI battery number can be
# given as argument (default is BAT0).
# buffers Amount of memory buffered
# cached Amount of memory cached
# color (color) Change drawing color to color
# cpu CPU usage in percents
# cpubar (height) Bar that shows CPU usage, height is
# bar's height in pixels
# downspeed net Download speed in kilobytes
# downspeedf net Download speed in kilobytes with one
# decimal
# exec shell command Executes a shell command and displays
# the output in torsmo. warning: this
# takes a lot more resources than other
# variables. I'd recommend coding wanted
# behaviour in C and posting a patch :-).
# execi interval, shell Same as exec but with specific interval.
# command Interval can't be less than
# update_interval in configuration.
# fs_bar (height), (fs) Bar that shows how much space is used on
# a file system. height is the height in
# pixels. fs is any file on that file
# system.
# fs_free (fs) Free space on a file system available
# for users.
# fs_free_perc (fs) Free percentage of space on a file
# system available for users.
# fs_size (fs) File system size
# fs_used (fs) File system used space
# hr (height) Horizontal line, height is the height in
# pixels
# i2c (dev), type, n I2C sensor from sysfs (Linux 2.6). dev
# may be omitted if you have only one I2C
# device. type is either in (or vol)
# meaning voltage, fan meaning fan or temp
# meaning temperature. n is number of the
# sensor. See /sys/bus/i2c/devices/ on
# your local computer.
# kernel Kernel version
# loadavg (1), (2), (3) System load average, 1 is for past 1
# minute, 2 for past 5 minutes and 3 for
# past 15 minutes.
# machine Machine, i686 for example
# mails Mail count in mail spool. You can use
# program like fetchmail to get mails from
# some server using your favourite
# protocol. See also new_mails.
# mem Amount of memory in use
# membar (height) Bar that shows amount of memory in use
# memmax Total amount of memory
# memperc Percentage of memory in use
# new_mails Unread mail count in mail spool.
# nodename Hostname
# outlinecolor (color) Change outline color
# pre_exec shell command Executes a shell command one time before
# torsmo displays anything and puts output
# as text.
# processes Total processes (sleeping and running)
# running_processes Running processes (not sleeping),
# requires Linux 2.6
# shadecolor (color) Change shading color
# stippled_hr (space), Stippled (dashed) horizontal line
# (height)
# swapbar (height) Bar that shows amount of swap in use
# swap Amount of swap in use
# swapmax Total amount of swap
# swapperc Percentage of swap in use
# sysname System name, Linux for example
# time (format) Local time, see man strftime to get more
# information about format
# totaldown net Total download, overflows at 4 GB on
# Linux with 32-bit arch and there doesn't
# seem to be a way to know how many times
# it has already done that before torsmo
# has started.
# totalup net Total upload, this one too, may overflow
# updates Number of updates (for debugging)
# upspeed net Upload speed in kilobytes
# upspeedf net Upload speed in kilobytes with one
# decimal
# uptime Uptime
# uptime_short Uptime in a shorter format
#
# seti_prog Seti@home current progress
# seti_progbar (height) Seti@home current progress bar
# seti_credit Seti@hoome total user credit
# variable is given either in format $variable or in ${variable}. Latter
# allows characters right after the variable and must be used in network
# stuff because of an argument
# stuff after 'TEXT' will be formatted on screen
#${exec date}
#TEXT
#$nodename - $sysname $kernel on $machine
#$stippled_hr
#${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
#${color lightgrey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 6}
#${color lightgrey}CPU Usage:$color $cpu% ${cpubar 6}
#${color lightgrey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 6}
#${color lightgrey}Processes:$color $processes ${color grey}Running:$color $running_processes
#$color$stippled_hr
#${color lightgrey}Networking:
# Up:$color ${upspeed eth0} k/s${color lightgrey} - Down:$color ${downspeed eth0} k/s
#${color lightgrey}File systems:
# / $color${fs_used /}/${fs_size /} ${fs_bar 6 /}
#${color}MPD: $mpd_artist - $mpd_title
#Name Usage PID
#${color lightgrey} ${top name 1} ${top usage 1} ${top pid 1}
#${color lightgrey} ${top name 2} ${top usage 2} ${top pid 2}
#${color lightgrey} ${top name 3} ${top usage 3} ${top pid 3}
#${color lightgrey} ${top name 4} ${top usage 4} ${top pid 4}
TEXT
${color cyan}DEBIAN $sysname $kernel on $nodename
${color white}$hr
${color lightgray}${time %a, }${color white}${time %B %e %G}
${color lightgray}${time %Z, }${color white}${time %H:%M:%S}
${color white}$hr
${color cyan}${execi 40000 cal}
${color white}$hr
${color green}UpTime: ${color lightgray}$uptime
${color white}$hr
${color white}NETWORK INFO
${color green}ETH0:
${color lightgray}Up :${color white} ${upspeedf eth0} k/s
${color lightgray}Down:${color white} ${downspeedf eth0} k/s ${color white}
${color white}$hr
${color lightgray}I N F O
${color green}CPU :${color white} $cpu%
$cpubar
${color green}RAM :${color lightgray} $memperc% $mem/$memmax
$membar
${color green}SWAP :${color white} $swapperc% $swap/$swapmax
$swapbar
${color green}ROOT :${color lightgray} ${fs_free_perc /}% ${fs_free /}/ ${fs_size /}
${fs_bar /}
${color green}ALL PROCESSES: ${color cyan} $processes
${color green}ACTIVE PROCESSES: ${color cyan} $running_processes
$hr
${color white}Temp:
${color white}M/B: ${exec expr `cat /sys/bus/i2c/devices/1-0290/temp1_input` / 1000} C
CPU: ${exec expr `cat /sys/bus/i2c/devices/1-0290/temp2_input` / 1000} C
Temp3: ${exec expr `cat /sys/bus/i2c/devices/1-0290/temp3_input` / 1000} C
root-tail.sh
root-tail -g 800x150+12+510 -font -schumacher-clean-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 /var/log/dmesg,white
fichier hosts
127.0.0.1 doubleclick.net
127.0.0.1 addthis.com
Divers
Autres Unix et apparentés
Haiku / BeOS
Haiku n'est pas vraiment un Unix, mais il est très posix et possède un terminal avec bash.
"Ease-of-use from the Mac, a heavily UNIX-like foundation, and Minesweeper from Windows."
Midi
Pour avoir un midi fonctionnel :
cd /boot/system/data/synth
wget http://ocmnet.com/saxguru/TimGM6mb.sf2
ln -s TimGM6mb.sf2 big_synth.sy
Attributs
On peut les éditer graphiquement avec jellikit :
http://members.tripod.com/~random___boy/BeOS/#jellikit
grouper les onglets
- setdecor SATDecorator » dans un terminal. La touche « Option » (Windows par défaut) + souris
Divers
/boot/system/etc/hosts
- changer entre gcc2 et gcc4 : setgcc gcc4
libm : déjà inclu, retirer -lm si nécessaire à la compilation
Liens Haiku
Sco Unix
regarder la charge système : sar -u 1 20
OpenSolaris
Fort de l'expérience de Sun dans le domaine d'Unix, OpenSolaris est un système élégant qui se pose comme une nouvelle alternative.
http://opensolaris.org/
live-cd :
http://www.genunix.org/distributions/belenix_site/
http://www.genunix.org/
Depuis le rachat de Sun par Oracle, la volonté d'Oracle n'étant pas de garder OpenSolaris, un fork existe, [[:fr:Illumos]] : http://www.illumos.org/
Équivalent de top
psrstat
Équivalent de locate
utiliser findutils (glocate)
Monter partition ext3 sous solaris
editer /etc/vfstab sous solaris et editer la ligne pour la partition linux (par exemple /dev/hda6)
#Device mount point partiton type options
/dev/hda6 /linux ext3 noatime,exec,rw 0 0
(à condition que le noyau ait ces modules)
sinon on peut utiliser les paquets FSWpart et FSWfsmisc
http://www.genunix.org/distributions/belenix_site/binfiles/FSWpart.tar.gz
and
http://www.genunix.org/distributions/belenix_site/binfiles/FSWfsmisc.tar.gz
install them both with the command pkgadd.
pkgadd -d . FSWfsmisc
now you can use the tool prtpart to see what is available. a mount command should finally do the trick:
mount -F ext2fs /dev/dsk/c5t0d0p2 /mnt/
P.S. support is only read only :-/
http://blogs.sun.com/ajaykumar/entry/access_ntfs_partition_from_solaris
Répertoires spécial Solaris
/usr/ccs est pour les binaires spécifiques au développement et à la compilation en C. Peuvent être utiles à installer dans le $PATH de bashrc
idem pour /usr/sfw
Ajouter des dépots OpenSolaris
Solaris
These repositories can be added with the "pkg set-repository" command:
pkg set-authority -O URL FRIENDLYNAME
e.g.
pkg set-authority -O http://pkg.sunfreeware.com:9000/ Companion
pkg set-authority -O http://blastwave.network.com:10000/ Blastwave
Diverses commandes
liste les partitions pfexec prtpart /dev/dsk/c6d0p0 -ldevs
équivalent de sudo : pfexec
chercher le nom du disque avec cmde format
c: controller
d: disk
p: partition (primary fdisk)
s: slice (kind of extended partition inside the Solaris partition)
t: target (SCSI)
You can get the disks connected by using the format command. Just exit after the disks names have been shown.
Another useful command to get more information about the disks is "kstat -c device_error"
Utiliser Linux dans Solaris
voir brandz : http://opensolaris.org/os/community/brandz/
installer les additions clients solaris dans virtualbox
pfexec pkgadd -d VBoxSolarisAdditions.pkg
Liens Solaris
http://www.blastwave.org : paquets pour Solaris
http://www.sunfreeware.com
http://solaris.onera.fr
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
mots clés pour ce document :
- Unix, linux, opensource, mac os x, freebsd, bsd, solaris, opensolaris, posix, gnu
- Cours, notes, pense-bête, astuces et formation linux en français
@@DIV.footer1@@Dernière modification de cette page le 24/10/2012 à 15:53@@/DIV@@