Embauchez-moi

Je suis freelance ! Besoin d'un professionnel du développement web ? Pourquoi ne pas me passer un coup de fil ?

Plus d'infos sur… http://thibault.jouannic.fr

mots-cles : Ingénieur web freelance Symfony eZ Publish Solr

Tag Archives: shell

Convertir un timestamp en date en ligne de commande

Il m’arrive souvent de devoir convertir un timestamp unix en une date lisible par un être humain normal. Dans la plupart des langages de programmation moderne, c’est quelque chose de facile. Il existe aussi des convertisseurs sur le web. Seulement, c’est plus rapide de faire ça en shell :

date -d "1970-01-01 GMT+2 + 1220367600 seconds"
->
mardi 2 [...]

Insérer le résultat d’une commande shell directement dans vim

Dans vim, j’avais besoin d’ajouter dans mon buffer la liste des fichiers du répertoire courant. Facile :

:r! ls

En fait, r ! < commande > insère avant le curseur le résultat de la commande < commande > exécutée dans un shell.
:r < fichier > permet d’insérer le contenu du fichier < fichier > sous le curseur. Ça [...]

Mémoriser ses déplacements avec bash

Parfois, en ligne de commande, on aime bien changer de répertoire provisoirement, avant de revenir là ou on était.

cd /chemin/vers/mon/repertoire
<quelques commandes>
cd /chemin/vers/un/autre/repertoire/
<une_commande>
cd /chemin/vers/mon/repertoire

Fastidieux et peu pratique. Il est bien sur possible d’utiliser la variable $OLDPWD, qui mémorise le répertoire précédent :

cd /chemin/vers/mon/repertoire
<quelques commandes>
cd /chemin/vers/un/autre/repertoire/
<une_commande>
cd $OLDPWD

Mais cette méthode est loin d’être optimale. Nous allons plutôt utiliser les [...]

Quelques astuces bash

Voici quelques astuces inestimables pour les amateurs de ligne de commande :

!!
# retape la dernière commande
vi /etc/passwd
# oups, avec les droits root :
sudo !!
 
!*
# retape la dernière commande à partir du deuxième mot :
bi toto #oups, raté
vi !* # c’est mieux comme ça
 
!n
# Rappelle la commande n
# La liste des commandes est accessible via la commande
history
 
!string
# [...]

Ajouter les droits d’exécution à toute une arborescence

Il arrive qu’on veuille ajouter des droits d’exécution pour tous les sous-répertoires d’une arborescence. La commande naïve :

chmod -R a+x <chemin>

présente un problème : elle ajoute également les droits d’exécution à tous les fichiers plats. Pour éviter cela, on utilisera plutôt :

chmod -R a+X <chemin>

Le X majuscule n’ajoute le droit d’exécution qu’aux fichiers qui ont déjà ce droit [...]