Snippets tagged "cli"
Extraire toutes les chaînes d'un fichier binaire
En fait, c'est tout bête (mais qu'est ce que ça peut être utilie !) :
$ strings /usr/bin/iconv
Written by %s.
char
UCS-4
conversion from %s unsupported
conversion to %s unsupported
conversion from %s to %s unsupported
try '%s -l' to get the list of supported encodings
[...]
Convertir un timestamp unix en ligne de commande
C'est bête mais ça peut toujours servir.
$ date -r 1204748227
Wed Mar 5 12:17:07 PST 2008
Créer un patch SVN et l'appliquer
Pour mémoire, voici la méthode pour créer un patch depuis un dépôt subversion et l'appliquer sur un autre checkout de ce même dépôt :
$ cd /path/to/instance/1
$ svn diff /tmp/diff.patch
$ cd /path/to/instance/2
$ patch -p0 -i /tmp/diff.patch
Supprimer les espaces des noms de fichier
Pour supprimer tous les espaces des noms de fichier récursivement :
$ find . -type f -regex ".*\ .*" \
-exec bash -c 'echo "$1";mv "$1" "${1// /-}"' '{}' '{}' \;
(via maboite.org)
Déplacement récursif SVN avec xargs
Pour déplacer n fichiers php d'un dépôt subversion :
$ find . -name *.php | xargs -I % svn mv "%" trunk/
On notera qu'on peut appliquer le principe pour toute commande dont l'ordre des arguments est exotique.
Ajouter la coloration dans le terminal Mac OS X
Pour avoir de belles couleurs au chargement d'une session dans le terminal OS X (ou iTerm), il faut éditer son fichier ~/.profile et y ajouter cette ligne :
export CLICOLOR=true
Et recharger le profil :
$ . ~/.profile
Comparer les différences entre deux répertoires
C'est tout con, mais encore faut-il le savoir :)
$ diff -rq rep1/ rep2/
Rendre l'execution d'un programme insensible aux déconnexions
On peut utiliser l'utilitaire nohup :
$ nohup batch_script.sh
CTRL+Z + bg mettront la tâche en arrière plan.
Vérifier l'empreinte md5 d'une image ISO
Avec md5sum :
$ md5sum feisty-desktop-i386.iso
Comparer l'empreinte de l'image ISO avec celle du CD gravé :
Trouver le périphérique à vérifier :
$ cat /etc/fstab | grep cdrom
Vérification :
$ md5sum /dev/hdb
Mailer un backup mysql comme attachement en ligne de commande
On va utiliser mutt :
$ sudo apt-get install mutt
La commande (cronable) :
$ mysqldump -uroot -p --all-databases --opt \
| bzip2 > /path/to/backup/export.sql.bz2 \
&& echo "En date du " `date` \
| mutt -s "[Nikobox] Backup MySQL total du `date | awk '{ print $2,$3,$4}'`" \
-a /path/to/backup/export.sql.bz2 you@fai.com
[Ubuntu] Mailer en ligne de commande
Il faut installer mailx :
$ sudo apt-get install mailx
Un test :
$ echo "Test" | mail monmail@gmail.com -s "Test de mail"
Ajouter automatiquement tous les nouveaux fichiers et dossiers dans un dépôt Subversion
The command line is my friend.
$ svn stat | grep ? | awk '{ print $2 }' | xargs svn add
Donner les pouvoirs d'administration système à un utilisateur
En admettant l'existance d'un utilisateur toto :
$ sudo adduser toto admin
L'utilisateur toto sera automatiquement ajouté aux sudoers et pourra donc executer le commande sudo en s'identifiant au moyen de son mot de passe.
Compter le nombre d'occurence d'un terme dans un répertoire
Dans tous les fichiers de type texte, calcul du nombre d'occurence d'une chaîne de caractère avec grep et wc :
$ grep -r require_once /path/to/scan | wc -l
1454
On peut aussi exclure certaines ressources ou répertoires, avec grep -v :
$ grep -r require_once /path/to/scan | grep -v .svn | wc -l
735
Changer les caractères <CR> en <LF>
Convertir rapidement et simplement les caractères \r en \n :
$ perl -pi -e 's#\r#\n#gs' /path/to/file
Effacer les fichiers trop volumineux
Find est un outil magnifiquement simple et puissant. Par exemple, pour supprimer tous les fichiers de plus de 500Kb dans le répertoire courant :
$ find . -type f -size +500 | xargs rm
Effacer les lignes vides d'un fichier
$ sed '/^$/d' fichier.txt
Trouver le nombre de slots mémoires disponibles/occupés sous Linux
Sous linux :
$ dmidecode | grep -i "size"
Ce qui renvoie un truc du genre :
Size: 512 MB Size: 512 MB Size: No Module Installed Size: No Module Installed Size: No Module Installed Size: No Module Installed
Donc là on a 6 slots occupés par deux barrettes de 512Mo.
