Trucs libres

CV
en

jeudi 10 décembre 2009

[SSH] Changement de répertoire à la connexion

Problème :

Je souhaite créer un alias serveur-www qui me connecte au serveur en SSH et m’amène automatiquement dans le dossier /var/www/.

Voici :

ssh -t serveur 'cd /var/www && $SHELL'

Et pour l’alias qu’on pourra ensuite mettre dans son ~/.bashrc :

alias serveur-www="ssh -t serveur 'cd /var/www && $SHELL'"
serveur-www # pour tester

Références :

jeudi 20 août 2009

Avec quelle adresse IP je sors ?

Pour savoir avec quelle adresse IP on sort sur Internet, on peux aller voir un site du genre http://www.whatismyip.com

En mode texte sans navigateur Web, c’est un peu plus compliqué. On pourra donc utiliser la commande suivante :

wget --user-agent="Mozilla/5.0" -O - http://www.whatismyip.com 2>/dev/null | grep -o "Your IP Address Is: [0-9.]*"

Il faut se faire passer pour un vrai navigateur sinon le site nous refuse.

MAJ 14/01/2010

Pour trouver son adresse IP externe, une méthode encore plus élégante :

dig +short myip.opendns.com @resolver1.opendns.com

MAJ 19/03/2010

D’ailleurs ça marche même plus ma méthode. Préférez donc :

http://dev.petitchevalroux.net/linux/connaitre-son-adresse-externe-linux.305.html

MAJ 06/05/2010

Ou encore mieux !

curl icanhazip.com

http://www.commandlinefu.com/commands/view/2966/return-external-ip

jeudi 2 juillet 2009

Colorer la sortie d'une commande

Voici comment colorer simplement la syntaxe d’une sortie de commande avec vim :

Colorer un diff :

diff -u /tmp/1 /tmp/2 | vim -R -

Colorer un fichier un fichier quelconque (moins d’intérêt, car on peut simplement ouvrir le fichier avec vim)

cat script.sh | vim -R -

dimanche 24 mai 2009

Terminer tous les enfants à la mort du parent

Dans un script Bash, voici la solution la plus simple que j’ai trouvée pour faire en sorte que tous les processus enfants soient tués en même temps que le parent :

# kill every children on exit
trap "kill -- -$$" EXIT

La commande kill -- -PID permet de tuer l’ensemble du groupe de processus identifié par PID. Sachant que dans notre cas, l’ID du groupe de processus est le même que l’ID du processus parent.

Il y aurait aussi peut-être la solution de programmer, dans l’enfant, la commande exit dès que ce dernier reçoit le signal que son parent a changé.

mardi 10 mars 2009

Faire taire le terminal

Assez d’entendre les bips incessants lorsque vous utilisez la complétion dans votre terminal ?

Ajouter la ligne suivante au fichier ~/.bashrc

# desactiver le son de cloche
xset -b

mercredi 4 mars 2009

Augmenter l'historique des commandes bash

Par défault la taille de l’historique bash sous Debian semble être à 500.

Placer la ligne suivante dans son ~/.bashrc :

export HISTFILESIZE=5000

dimanche 4 janvier 2009

Passer une chaîne en majuscule en Shell

Voici comment passer une chaîne en majuscule en ligne de commande :

echo toto | tr '[a-z]' '[A-Z]'

La commande tr est très utile pour effectuer tout remplacement de caractère.

mardi 29 juillet 2008

Des variables variables dans Bash

Dans certains langages, il est possible de faire référence à une variable dont le nom est contenu dans une autre variable.

Ainsi, en PHP :

$toto = 8;
$nomvar = 'toto';
echo $$nomvar;

Affichera 8.

C’est aussi possible en Bash de la manière suivante :

toto=8
nomvar='toto'
echo ${!nomvar}

Source : http://www.seocam.net/how-tos/how-t...

jeudi 19 juin 2008

Commande screen

La commande screen est très pratique pour lancer des scripts lorsqu’on est connecté en SSH, pour que si une coupure de courant ou un problème survient côté client, le shell client ne soit pas tué ainsi que le script.

Pour lancer un script :

$ screen

Pour le détacher, il faut faire Ctrl+A, puis D.

Enfin, pour récupérer un screen :

$ screen -r