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