#76 Le 03/04/2008, à 11:16
- Skippy le Grand Gourou
Re : Quelques fonctions très utiles [À completer]
Plein de choses intéressantes, en effet, merci !
Copier tout un dossier par ssh
Personellement j'ai jusqu'à maintenant ouvert une session ssh et envoyé des fichiers dossier avec netcat
ou, si netcat est bloqué par un firewall: taré le dossier, envoyer pas sftp, ouvert ssh puis décompresser le tar.J'ai trouvé mieux:
ssh <username@sourcehost> tar cf - -C <sourcedir> . | tar xvf -
Ou tout simplement :
scp -r <username@sourcehost>:<sourcedir> <destdir>
Hors ligne
#77 Le 03/04/2008, à 12:11
- scholi
Re : Quelques fonctions très utiles [À completer]
nice merci. Je connaissais l'utilisation d'url comme: scp://login@host/file qui permet d'ouvrir un fichier distant dans n'importe quel programme. Mais je ne savais pas que scp était une commande.
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#78 Le 03/04/2008, à 12:26
- scholi
Re : Quelques fonctions très utiles [À completer]
La stégano pour les nuls
La stéganographie est un procédé qui permet de cacher un message "secret" dans un autre message sans éveiller les soupçons d'autrui. L'avantage de la stégano sur la crypto et qu'avec la crypto tout le monde voit que c'est crypté, ce qui va encore plus attirer l'œil. Si on cache le message crypté dans une image anodine cela devient parfait.
Pour cela on peut jouer sur une propriété intéressante des fichiers ZIP. Leur "header" se trouve à la fin du fichier. Ainsi si on ouvre un .zip il va commencer par aller lire la fin du fichier, regarder la taille qu'indique le header et ignorer tout ce qui se trouve avant. La plus part des autres formats fonctionne à l'opposé: le header est au début et tout ce qui se trouve après est ignoré. C'est le cas des jpeg, png et gif. La solution est donc simple:
pour "cacher"
cat image_anodine.png secret_data.zip > image_avec_code.png
si vous "lancer" l'image:
xview image_avec_code.png
Vous verrez votre bête image et rien d'autre.
pour récupérer vos données, faites simplement:
unzip image_avec_code.png
et voila!
Encore une remarque. Veillez à ce que la taille de vos données reste assez petite par rapport à la taille de l'image. Car une PNG de 300x200 pixel qui fait 10 Mo ça passe pas inaperçu
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#79 Le 03/04/2008, à 13:58
- scholi
Re : Quelques fonctions très utiles [À completer]
Vous avez un clavier G15?
Pour les heureux détenteur d'un clavier Logitech G15, voici un petit scripte qui vous permettra d'afficher sur votre écran LCD l'état de vos chansons (avec amarok):
#!/usr/bin/python
#version: 0.2
import os, time, math
def get(name):
dcop=os.popen("dcop amarok player %s"%(name))
return dcop.read()[:-1]
def draw_clock(g15):
g15.write("DC 135 14 14 1 0\n")
for i in range(0,360,30):
c,s=math.cos(math.radians(i)), math.sin(math.radians(i))
g15.write("DL %i %i %i %i 1\n" %(135+int(c*13),14+int(s*13),135+int(c*14),14+int(s*14)))
t=time.localtime()
g15.write("DL 135 14 %i %i 1\n"%(135+int(11*math.cos((45+t[4])*math.pi/30)),14+int(11*math.sin((45+t[4])*math.pi/30))))
g15.write("DL 135 14 %i %i 1\n"%(135+int(8*math.cos((9+t[3]+t[4]/60.0)*math.pi/6)),14+int(8*math.sin((9+t[3]+t[4]/60.0)*math.pi/6))))
g15comp=os.popen("g15composer /tmp/amarok_g15")
scroll=[0,0]
while True:
g15=open("/tmp/amarok_g15","w")
info=["artist","title","trackCurrentTime","trackTotalTime"]
inf={}
for x in info:
inf[x]=unicode(get(x),"utf-8").encode()
g15.write("TO 10 5 2 0 \"%s\"\nTO 10 15 2 0 \"%s\"\n"%(inf["artist"][scroll[0]:],inf["title"][scroll[1]:]))
g15.write("PB 115 0 160 28 0 0 1\n")
# g15.write("DR 10 30 150 40 1 0\nDR 12 32 %i 38 1 1\n"%(12+int(inf["trackCurrentTime"])*136/int(inf["trackTotalTime"])))
g15.write("DB 10 32 150 40 1 %i %i 2\n"%(int(inf["trackCurrentTime"]),int(inf["trackTotalTime"])))
g15.write("MC 1\nMX 1\nTO 80 34 0 1 \"%i'%i - %i'%i\"\nMC 0\n"%(int(inf["trackCurrentTime"])/60,int(inf["trackCurrentTime"])%60,int(inf["trackTotalTime"])/60,int(inf["trackTotalTime"])%60))
for x in enumerate(["artist","title"]):
if(len(inf[x[1]])>12):
scroll[x[0]]+=1
if scroll[x[0]]>=len(inf[x[1]]):
scroll[x[0]]=0
else:
scroll[x[0]]=0
draw_clock(g15)
g15.close()
time.sleep(1)
Il est encore en développement. Pour ceux que ça intéresse, je vais mettre ce post à jour pour les nouvelles versions. (La deuxième ligne indique la version)
Dernière modification par scholi (Le 03/04/2008, à 14:55)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#80 Le 22/04/2008, à 16:06
- scholi
Re : Quelques fonctions très utiles [À completer]
Configurer lpr pour imprimer
La plus part des programmes utilisent CUPS pour imprimer et ce dernier est normalement configuré automatiquement avec la plus part des imprimantes, mais pour ce qui est d'imprimer un fichier postscript en ligne de commande ou d'imprimer depuis vim, vous devrez passer par lpr et ce dernier doit être configuré un minimum sinon cela ne marchera pas.
C'est en faite tout simple, il suffit de faire:
lpstat -a
pour afficher la liste de vos imprimantes
ensuite il suffit de faire:
lpoptions -d NOM_DE_L'IMPRIMANTE
et voilà votre imprimante par défaut est sélectionnée. Ainsi si vous faites:
lpr fichier.ps
Votre fichier postscript va directement être imprimé. Et la fonction :print sous vim marchera aussi très bien.
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#81 Le 23/04/2008, à 00:11
- Astier
Re : Quelques fonctions très utiles [À completer]
Pour l'impression il existe un petit programme bien sympa :gtklp.
A+
Hors ligne
#82 Le 23/04/2008, à 23:59
- Miss Maïka
Re : Quelques fonctions très utiles [À completer]
Sympa ce topic, j'ai moi aussi une petite note sur les codes qui me sont utiles, je vous la fait partager :
Conversion :
.flv en .avi :
ffmpeg -i nom_du_fichier.flv -f avi nom_du_fichier.avi
Vidéo .ogg ( .ogm ) en .avi :
mencoder -oac mp3lame -lameopts cbr=128:aq=0 -ovc copy ton_fichier.ogm -o ton_fichier_converti.avi
ffmpeg -i video.ogg video.avi
-------------------------------------------------------------------------------------------------------------------------------------
Récuperer le son d'une vidéo :
mplayer fichier.truc -dumpaudio -dumpfile son.mp3
ou
mplayer fichier.bidule -vo null -ao pcm:file=son.wav
-------------------------------------------------------------------------------------------------------------------------------------
Luminosité :
Smartdimmer -s[chiffre entre 0 et 21 ]
Note : J'utilise ce code avec ma carte Nvidia car mes touches et les applets de luminosité ne marche pas
-------------------------------------------------------------------------------------------------------------------------------------
Vérifier intégrité d'un .iso
Automatique :
~$ md5sum -c nom_du_fichier.iso.md5
Manuel :
~$ md5sum nom_du_fichier.iso
-------------------------------------------------------------------------------------------------------------------------------------
Écouter de la musique avec Vlc sur la console :
vlc -I ncurses ~/dossier-contenant-la-musique
-------------------------------------------------------------------------------------------------------------------------------------
Voir l'utilisation des ressources par les programmes : Top
Utilisation de la mémoire : Free -m
Voilà pour le moment, certains vous sembleront évidents, cette note est surtout un aide-mémoire pour moi
={ Gogo }=
Hors ligne
#83 Le 27/04/2008, à 16:15
- scholi
Re : Quelques fonctions très utiles [À completer]
ProgressBar facile en CGI
Bonjour à tous, pour une fois une astuce qui sort un peu de l'ordinaire puisque je propose un petit scripte bash pour faire rapidement des progressbar en svg. J'ai en effet un routeur avec un linux installé dessus et pour voir l'état des stats une progressbar est toujours utile, mais avec seulement 2Mb de ROM impossible de faire autrement...
On appel l'image de la sort pb.svg?percent&width&height
ou percent, width et height sont à remplacer par des valeurs numériques bien sûr...
Pour ceux qui n'aiment pas le svg, j'ai aussi fais une version ppm
#!/bin/bash
echo "Content-Type: image/svg+xml"
echo ""
perc=$(echo $QUERY_STRING | cut -d"&" -f1)
width=$(echo $QUERY_STRING | cut -d"&" -f2)
height=$(echo $QUERY_STRING | cut -d"&" -f3)
echo '<?xml version="1.0" encoding="utf-8"?>'
echo '<svg '
echo -e "\txmlns=\"http://www.w3.org/2000/svg\" "
echo -e "\txmlns:xlink=\"http://www.w3.org/1999/xlink\" "
echo -e "\txmlns:ev=\"http://www.w3.org/2001/xml-events\" "
echo -e "\tversion=\"1.1\" "
echo -e "\tbaseProfile=\"full\" "
echo -e "\tx=\"0\" "
echo -e "\ty=\"0\" "
echo -e "\twidth=\"${width}\" "
echo -e "\theight=\"${height}\" "
echo -e "\tid=\"svg2\">"
echo -e "\t<title>ProgressBar</title>"
echo -e "\t<rect "
echo -e "\t\twidth=\"${width}\" "
echo -e "\t\rheight=\"${height}\" "
echo -e "\t\tx=\"0\" "
echo -e "\t\ty=\"0\" "
echo -e "\t\tfill=\"green\" "
echo -e "\t\tid=\"pbg\" />"
echo -e "\t<rect "
let "z=${perc}*${width}/100"
echo -en "\t\twidth=\"$z\" "
echo -e "\t\rheight=\"${height}\" "
echo -e "\t\tx=\"0\" "
echo -e "\t\ty=\"0\" "
echo -e "\t\tfill=\"#00ff00\" "
echo -e "\t\tid=\"pb1\" />"
echo -e "</svg>"
PS: Pour ceux qui ont un routeur avec OpenWRT dessus, je peux vous fournir un cool scripte pour affcher des stats...
Dernière modification par scholi (Le 27/04/2008, à 16:17)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#84 Le 29/04/2008, à 09:16
- scholi
Re : Quelques fonctions très utiles [À completer]
Surveiller le résultat d'un processus
Il est dès fois utile de surveiller périodiquement ce que renvoie un programme. Il y a la commande watch faites pour vous.
watch -d ls -l
va exécuter ls -l toute les 2 secondes (par défaut) et affiche le résultat à l'écran (mais sans scroller. il va l'afficher toujours au même endroit).
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#85 Le 29/04/2008, à 09:36
- Skippy le Grand Gourou
Re : Quelques fonctions très utiles [À completer]
Pas mal ça.
La même chose pour ce qui se passe dans un fichier (par exemple un fichier log) :
tail -F fichier
(affichera la fin du fichier, et tout ce qui s'y rajoute en temps réel)
Et je sais plus si je l'ai dit, pour lister les processus sous forme d'arbre (avec relation père-fils) :
pstree
Hors ligne
#86 Le 22/05/2008, à 05:19
- olrind
Re : Quelques fonctions très utiles [À completer]
je remonte se sujet car tres utile, meme si ma contribution le sera moins...
je viens de remonter un sujet un peu similaire et y poster la meme chose
pour programmer l'extinction de son pc
sudo shutdown -h X
avec X=nombre de minutes
continuez a partager vos astuces !!
Hors ligne
#87 Le 31/05/2008, à 15:58
- scholi
Re : Quelques fonctions très utiles [À completer]
Personnaliser Xterm
J'avais déjà parler dans un post précédent d'ouvrir un xterm avec des options spécifique pour change la couleur du texte/fond, etc...
Je viens de découvrir que l'on peut même créer un fichier de config sauvant toutes les options nécessaire. Ce fichier est ~/.Xresources
Tout est très bien expliqué sur le site suivant (en anglais): http://www.fak3r.com/2006/02/23/howto-u … iguration/
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#88 Le 31/05/2008, à 18:35
- Dark-Sham
Re : Quelques fonctions très utiles [À completer]
Dans un terminal, si vous voulez stopper un programme, au lieu de changer de tty et de faire un
ps aux | grep commande
kill <PID de commande>
, faites Ctrl-Alt-Z et le programme s'arrêtera
Script de sauvegarde/restauration APT
Ubuntu 8.04 "Hardy Heron"
CPU : AMD Athlon XP 2800+ ; GPU : ATI Radeon 9250/9200 Series ; RAM : 2 Gigots + 512 Mégots ; Carte mère : Asus A7N8X-E Deluxe
Hors ligne
#89 Le 01/06/2008, à 00:16
- Yannick_LM
Re : Quelques fonctions très utiles [À completer]
tail -F fichier
J'en profite pour mentionner le petit programme tailf, qui fait la même chose, mais en mieux.
(en terme d'accès disque, notamment)
It is similar to tail -f but does not access the file when it is not growing
Problème : on ne peut pas préciser le nombre de lignes à afficher
Trucs et astuces pour Vim
Ma web page avec des trucs dessus ...
Hors ligne
#90 Le 04/06/2008, à 22:47
- Skippy le Grand Gourou
Re : Quelques fonctions très utiles [À completer]
Je viens de découvrir une commande très intéressante, pidstat. Elle est fournie avec iostat, entre autres, par le paquet sysstat. J'ai reformaté la sortie à l'aide d'un petit script, dont le but est de visualiser les processus en fonction de leur accès disque. Un « top » pour les entrées sorties en quelque sorte. Il y aurait pas mal de choses à faire pour l'améliorer, mais là j'ai la grosse flemme…
#!/bin/bash
# Délai d'affichage
DELAI=1
# Critère de tri : 3=lecture, 4=écriture, autres valeurs inutiles…
NN=3
# Doit être une tabulation, pas des espaces !!!
DELIM=' '
# Taille du terminal (automatique)
ROWS=`stty size |awk '{print $1}'`
ROWS=`expr $ROWS - 2`
COLS=`stty size |awk '{print $2}'`
# Here we go !
while true
do
clear
pidstat -d \
| grep -v `uname -n` \
| sort -rk$NN \
| tr -s ' ' \
| sed 's/ /\t/g' \
| cut -f2- -d"$DELIM" \
| head -n $ROWS
sleep $DELAI
echo -en "\033["$ROWS"A"
done
Ah oui : on quitte avec Ctrl+C, comme d'hab.
Dernière modification par Skippy le Grand Gourou (Le 04/06/2008, à 23:05)
Hors ligne
#91 Le 04/06/2008, à 23:04
- scholi
Re : Quelques fonctions très utiles [À completer]
hey je viens de découvrir un truc trop cool. Votre bash est remplit de texte inutile, je parie que vous faites "clear". Et bien j'ai trouvé plus simple: CTRL-L
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#92 Le 04/06/2008, à 23:10
- Skippy le Grand Gourou
Re : Quelques fonctions très utiles [À completer]
hey je viens de découvrir un truc trop cool. Votre bash est remplit de texte inutile, je parie que vous faites "clear". Et bien j'ai trouvé plus simple: CTRL-L
Au passage, reset est très efficace pour revenir à la normale quand le terminal n'affiche plus que des caractères cabbalistiques…
Et pour en revenir à mon post précédent, je voulais juste préciser que la suite logique serait d'afficher quels fichiers exactement monopolisent ces accès disques, mais je vois pas trop comment faire pour l'instant (lsof ?)…
Hors ligne
#93 Le 04/06/2008, à 23:25
- scholi
Re : Quelques fonctions très utiles [À completer]
Et pour en revenir à mon post précédent, je voulais juste préciser que la suite logique serait d'afficher quels fichiers exactement monopolisent ces accès disques, mais je vois pas trop comment faire pour l'instant (lsof ?)…
Ouais c'est la meilleurs/plus simple des solutions..
Sinon tant que je parlais du terminal, quelqu'un peut me dire pourquoi en prog le 90% des gens utilisent: system("clear") pour effacer l'écran plutôt que: printf("\033[H\033[J");
??? La deuxième méthode ne fait pas appel à un programme externe et envoie seulement 4 caractères. C'est quand même plus simple non?
PS: sinon vire ton grep -v `uname -a`et mets un tail -n +4
ah et tant que j'y suis, pourquoi ne pas utiliser un watch?
Je le verrais en une ligne
watch --no-title 'pidstat -d | tail -n +4 | sort -rk3'
Dernière modification par scholi (Le 04/06/2008, à 23:33)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#94 Le 04/06/2008, à 23:40
- Skippy le Grand Gourou
Re : Quelques fonctions très utiles [À completer]
Skippy le Grand Gourou a écrit :Et pour en revenir à mon post précédent, je voulais juste préciser que la suite logique serait d'afficher quels fichiers exactement monopolisent ces accès disques, mais je vois pas trop comment faire pour l'instant (lsof ?)…
Ouais c'est la meilleurs/plus simple des solutions..
Oui mais non, lsof renvoie la race de fichiers dont je me tape, je veux juste ceux dans lesquels on est en train de lire ou d'écrire.
En fait, mon firefox gèle parfois pendant quelques secondes, et conky et mes oreilles m'apprennent qu'à ces moments là il y a pas mal d'accès au disque. Firefox reprend la main à la fin des accès. À la base je cherche surtout à savoir à quoi correspondent ces accès. Or :
$ lsof |grep firefox|grep REG|wc -l
231
Je vais pas tous me les taper à la main…
Sinon tant que je parlais du terminal, quelqu'un peut me dire pourquoi en prog le 90% des gens utilisent: system("clear") pour effacer l'écran plutôt que: printf("\033[H\033[J");
??? La deuxième méthode ne fait pas appel à un programme externe et envoie seulement 4 caractères. C'est quand même plus simple non?
Euh, perso j'utilise la deuxième solution (enfin avec un cout… ), donc je peux pas te dire… Parce que c'est plus facile à retenir ?
PS: sinon vire ton grep -v `uname -a`et mets un tail -n +4
Pas con. +3, pour garder la légende.
ah et tant que j'y suis, pourquoi ne pas utiliser un watch?
Premièrement parce que je connaissais pas , et deuxièmement parce que là je suis trop crevé pour faire correspondre les guillemets correctement avec toutes les options…
Dernière modification par Skippy le Grand Gourou (Le 04/06/2008, à 23:46)
Hors ligne
#95 Le 04/06/2008, à 23:50
- scholi
Re : Quelques fonctions très utiles [À completer]
En fait, mon firefox gèle parfois pendant quelques secondes, et conky et mes oreilles m'apprennent qu'à ces moments là il y a pas mal d'accès au disque. Firefox reprend la main à la fin des accès. À la base je cherche surtout à savoir à quoi correspondent ces accès. Or :
$ lsof |grep firefox|grep REG|wc -l 231
Je vais pas tous me les taper à la main…
Regardes du côté des fichiers /proc/PID/
http://linux.die.net/man/5/proc
peut-être tu trouveras qqch
EDIT: perso j'ai pas trouvé grand chose
Dernière modification par scholi (Le 05/06/2008, à 09:33)
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#96 Le 05/06/2008, à 10:23
- n3o51
Re : Quelques fonctions très utiles [À completer]
Bonjour pas grand chose mais un topic trés pratique que je souhaite remontés.
Afficher les tables de routage sous linux
netstat -r
Voir toutes les connections ouvertes sur sa machine :
netstat -a
rechercher un fichier ou des fichiers dans tous les paquets disponibles (pas seulement ce installés)
sudo apt-get install apt-file
Ensuite il vous faut recharger avec un
sudo apt-file update
Ensuite
apt-file search bin/ps2
Captures d'ecran avec une zone specifique (Imagemagick requis )
import -pause 2 /home/vous/captures/test.png
Dernière modification par n3o51 (Le 05/06/2008, à 10:24)
Welcome to the real world
________________________________
Hors ligne
#97 Le 05/06/2008, à 11:14
- Skippy le Grand Gourou
Re : Quelques fonctions très utiles [À completer]
Dans un terminal, si vous voulez stopper un programme, au lieu de changer de tty et de faire un
ps aux | grep commande kill <PID de commande>
, faites Ctrl-Alt-Z et le programme s'arrêtera
Euh, le programme est juste suspendu, donc faut quand même faire le ps+kill (mais dans le même tty ).
Hors ligne
#98 Le 05/06/2008, à 11:23
- cep
Re : Quelques fonctions très utiles [À completer]
ps aux | grep commande kill <PID de commande>
pgrep le_programme pour avoir le pid.
Ou simplement :
pkill le_programme
man pgrep
man pkill
Hors ligne
#99 Le 05/06/2008, à 11:34
- scholi
Re : Quelques fonctions très utiles [À completer]
Euh, le programme est juste suspendu, donc faut quand même faire le ps+kill (mais dans le même tty
).
ou pour éviter le ps, faire un "killall nom_du_prog" si une seul instance du programme tourne ou que vous désirez tous les tuer
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Hors ligne
#100 Le 05/06/2008, à 14:52
- Dark-Sham
Re : Quelques fonctions très utiles [À completer]
Oui mais quand le programme défile sous vos yeux, c'est pratique de l'arrêter avec Ctrl-Alt-Z
Après, il faut effectivement le tuer avec un kill. Au temps pour moi ! ^^
Script de sauvegarde/restauration APT
Ubuntu 8.04 "Hardy Heron"
CPU : AMD Athlon XP 2800+ ; GPU : ATI Radeon 9250/9200 Series ; RAM : 2 Gigots + 512 Mégots ; Carte mère : Asus A7N8X-E Deluxe
Hors ligne