Rechercher des fichiers avec apt-file

24 septembre 2011

Le logiciel apt-file (à installer sous ubuntu via apt-get) permet de rechercher des fichiers dans l’ensemble des paquets disponibles dans les dépôts indiqués dans le sources.list. Par exemple :

$ apt-file update
$ apt-file search pdflatex

Afficher les 10 plus gros consommateurs cpu

9 août 2011

On peut utiliser la commande suivante :

ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10

Client ftp en ligne de commande : lftp

4 juillet 2011

La commande de base sous linux permettant de se connecter à un serveur ftp en ligne de commande est ftp. Cependant celle-ci a certaines limitations (notamment au niveau de l’affichage des caractères utf-8). Il est grandement préférable d’utiliser l’excellent lftp qui s’avère bien plus pratique et performant.

$ lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site]
$ lftp -f script_file
$ lftp -c commands
$ lftp --version
$ lftp --help

Informations sur le matériel avec lshw

3 juillet 2011

La commande lshw (fournie dans le paquet debian du même nom) permet d’ontenir un grand nombre d’informations sur le matériel équipant la machine. On utilise simplement :

$ sudo lshw

Monter un partage Samba (cli)

3 juillet 2011

L’objectif est de monter en ligne de commandes un partage samba. Pour ça, le paquet smbfs est nécessaire. On peut l’installer comme suit:

$ sudo apt-get install smbfs

Ensuite, pour monter le partage //server/share/ dans le dossier /media/smb/, on utilise la commande suivante:

$ sudo mount -t smbfs //server/share/ /media/smb/ -o username=thename,password=thepassword

ou

$ sudo smbmount //server/share/ /media/smb/ -o username=thename,password=thepassword

Pour un montage permanent, il faudra passer par fstab. Voir ici pour plus de détails.

Ack(-grep) bien pratique

30 juin 2011

Le programme ack peut se révéler très pratique pour tous ceux qui font parfois quelques recherches dans le code source d’une application qu’ils utilisent ou souhaitent utiliser. Ce programme, développé en perl, remplace avantageusement la classique conbinaison grep+find, comme le prouve l’exemple suivant:

$ grep pattern $(find . -name '*.pl' -or -name '*.pm' -or -name '*.pod' | grep -v .svn)
$ ack-grep --perl pattern

Cette commande permet de rechercher la chaine ‘pattern’ dans tous les fichiers perl présents dans le dossier courant et dans tous ses sous-dossiers. On constate que la version ack est bien plus agréable. Il affiche également le nom des fichiers qui contiennent les occurrences recherchées et affiche le numéro de ligne associé. Le tout est très rapide.

Pour installer ack (ou plus précisémement ack-grep) sous Debian :

$ sudo apt-get install ack-grep

Rechercher des fichiers avec locate

29 juin 2011

Contrairement à la commande find, locate ne recherche pas directement les fichiers dans l’arborescence mais utilise une base de donnée. On peut mettre à jour cette base via la commande (à exécuter en root):

$ sudo updatedb

Les trois commandes suivantes sont équivalentes :

$ locate pattern
$ locate 'pattern'
$ locate '*pattern*'

Ces commandes vont rechercher tous les fichiers qui contiennent la chaîne pattern dans leur chemin complet. Si on ne souhaite recherche que dans les noms de fichiers (et non plus dans les chemins), on utilisera l’option -b (–basename).

$ locate -b pattern

La commande suivante permet de rechercher des fichiers via leur nom exact (on ne souhaite donc pas que ‘pattern’ devienne ‘*pattern*’).

$ locate -b '\pattern'

Afficher l’utilisateur courant

28 juin 2011

La commande whoami permet d’afficher l’utilsateur courant:

$ whoami

Afficher la taille d’un dossier

26 juin 2011

Le programme du (disk usage) permet de déterminer la taille d’un dossier :

$ du -sh chemin_du_dossier

L’option -s permet de n’afficher que la taille du dossier spécifié (et pas celle de tous ces sous-dossier) alors que l’option -h permet de rendre le résultat (ie la taille du dossier) plus lisible.

Traitement d’images

26 juin 2011

Le module Python Image permet (entre autres) de récupérer les informations concernant chaque pixel d’une image. Par exemple, nous allons utiliser ce module pour déterminer le nombre exact de pixels noirs contenus dans une image.

1
2
3
4
5
6
7
8
9
10
11
import Image
black = (0,0,0)
img = Image.open('./img.png')
hsize = img.size[0]
vsize = img.size[1]
n = 0
for i in range(hsize):
	for j in range(vsize):
		if img.getpixel((i,j)) == black:
			n = n+1
print('Nombre de pixels noirs : '+str(n))

Cette méthode qui utilise getpixel est bien moins rapide (presque 7 fois plus lente) que la méthode suivante, basée sur load.

1
2
3
4
5
6
7
8
9
10
11
12
import Image
black = (0,0,0)
img = Image.open('./img.png')
hsize = img.size[0]
vsize = img.size[1]
n = 0
pixels = img.load()
for i in range(hsize):
	for j in range(vsize):
		if pixels[i,j] == black:
			n = n+1
print('Nombre de pixels noirs : '+str(n))

Il faut utiliser Python 2.6 car le module n’est pas encore disponible pour les versions 3 de Python.