Shell

From Proj3ctWiki
Jump to: navigation, search

CommandeLine FU

Contents

Lancer une commande sur une liste de fichiers (liste récursive)

user@host$ find /start/path/ -type f -name "*" -exec ls -l {} \;

Lister ports en écoutes et leur process associé

user@host$ netstat -tlnp

ou

user@host$ lsof -i

Effacer une liste de fichier dans lesquels on retrouve une certaine chaîne de caractères (des mails par exemple)

user@host$ find -type f -exec grep -H "text recherché" {} \; | awk 'BEGIN { FS = ":" } ; { print "\"" $1 "\"" }' | xargs rm

Effacer un fichier dont le nom commence par un tiret

user@host$ rm -- "-xyz"

De manière plus générale, pour supprimer des fichiers avec des caractères spéciaux. On demande à effacer tous les fichiers mais avec confirmation.

user@host$ rm -i *

Effacer les fichiers excédant un certain poids (ici 2k)

user@host$ find /home -type f -size -2k -exec rm "{}" \; 

Effacer les fichiers d'un certain poids

user@host$ find . -type f -size 0 | xargs rm

ou les lister

user@host$ find . -type f -size 0 | xargs ls -ld

Créer un fichier de remplissage

user@host$ dd if=/dev/zero of=file.mock bs=1024 count=1048576

bs : block size
count : nombre de block

Remplacer une chaine dans des fichiers

user@host$ sed -i 's/foo/foo_bar/g' file

Monitorer un répertoire

user@host$ watch -d -n 2 'df; ls -FIAt;'

Lister les process + utilisation de la mémoire

user@host$ ps -euf

Lancer une commande en subshell

user@host$ (cd /tmp;ls)

Effacer récursivement les répertoires .svn

user@host$ rm -rf `find . -type d -name .svn`
Personal tools