Archives par mot-clé : Ligne de commande

Comment configurer le HOME de Cygwin et plus

Publié dans Geekeries | Un commentaire

Je ne vais pas entrer dans les détails de la configuration de Cygwin, mais simplement quelques points pour savoir comment paramétrer le dossier utilisateur à utiliser. Pour cela, il faut configurer la variable d’environnement HOME:

  • D’abord dans Windows: HOME=/cygdrive/c/Users/%USERNAME%. Cela aura pour effet de placer votre home dans votre dossier utilisateur Windows C:/Users/%USERNAME%.
  • Et si besoin de l’ajouter aussi dans le fichier /etc/passwd là où il y a votre nom d’utilisateur.

Continuer la lecture

Logo Git

Lier une branche Git locale à la branche remote correspondante

Publié dans Geekeries | Un commentaire

Quel est le problème ?

Imaginez que vous avez créé une branche sur votre reposiroty Git nommée « MaBrancheAMoi ». Et que lorsque vous désirez faire un « pull », Git vous renvoit le message d’erreur suivant :

You asked me to pull without telling me which branch you
want to merge with, and ‘branch.MaBrancheAMoi.merge’ in
your configuration file does not tell me, either. Please
specify which branch you want to use on the command line and
try again (e.g. ‘git pull ‘).

Ce qui le plugin EGit d’Eclipse nous traduit généralement par le message d’erreur suivant :

no values for key « branch.MaBrancheAMoi.merge » found in configuration

Cela est dû au fait que vous avez une branche locale, mais Git ne peut pas savoir avec quelle branche en ligne (remote) la lier.

Continuer la lecture

Fichier de configuration SSH

Publié dans Geekeries | Laisser un commentaire

SSH est tout de même un protocole vraiment formidable pour accéder à un serveur distant. Une petite ligne de commande, un mot de passe (et/ou une clef publique) et hop, c’est comme si on était sur la machine qui se situe parfois à je ne sais quelle distance de nous, le tout sécurisé ! Que demander de plus ?
Cela dit, si vous êtes comme moi, vous en avez peut-être légèrement marre de taper la ligne de commande de connexion :
ssh username@monhostquiestparfoisuneadresseIPcompliquee
Ou pire s’il faut préciser une clef DSA ou RSA :
ssh -i cheminversmaclefengeneralpastrescourt/maclef username@monhostquiestparfoisuneadresseIPcompliquee
Continuer la lecture

Lister, ajouter, modifier, supprimer des variables d’environnement sous Windows

Publié dans Geekeries | 8 commentaires

Comme tous les OS (à ma connaissance), Windows possède des variables d’environnement qui sont accessibles pour tout le système. Par exemple : USERNAME contient le nom du user connecté, COMPUTERNAME contient le nom de l’ordi, OS le nom de l’OS.

Lister les variables d’environnement

Dans une console Windows (Menu démarrer > Excécuter > cmd), il suffit de taper set pour voir la liste des variables d’environnement actuelle.
Donc, le code ci-dessous :

set

Affiche par exemple :
Continuer la lecture

Récupérer proprement les paramètres passés à la classe contenant la méthode main

Publié dans Java | Un commentaire

Dans un précédent billet, j’ai expliqué comment lancer une classe Java à partir d’un fichier .bat. Aujourd’hui, on va voir comment récupérer facilement les paramètres fournis à la classe Java par le .bat.
En gros, nous allons essayer de récupérer les paramètres fournis par la commande suivante :

java MaClasse.java param1 param2 ...

J’ai volontairement zappé le chemin vers la classe, les variables d’environnement, bref, tout ce que j’ai expliqué dans le billet lancer une classe Java à partir d’un fichier .bat.
Continuer la lecture

Lancer une classe Java à partir d’un bash Windows

Publié dans Java | Laisser un commentaire

Continuons à faire un petit peu de MS-DOS. Cette fois-ci, le but est de lancer une classe Java contenant un main, à partir d’un bash (fichier .bat) Windows. La commande à utiliser est tout simplement la commande java, avec en paramètre :

  • le chemin vers les classes à utiliser et toutes les librairies éventuelles
  • l’environnement (par exemple les paramètres pour le NamingContext) : j’ai pas tout capté
  • le nom de la classe à appeler en premier (celle qui contient la méthode main)
  • les paramètres (on peut les faire précéder d’options -a, -b, -nimportequoi, de manière à faciliter leur récupération par le code Java)

Ce qui nous donne :
Continuer la lecture

Mettre le résultat d’une commande MS-DOS dans une variable

Publié dans Geekeries | 3 commentaires

Ces derniers jours j’ai eu l’occasion, avec douleur je dois dire, de faire un peu de MS-DOS. Les commandes DOS ne sont à mon goût pas aussi facile d’accès que le bash sous Linux, mais c’est peut-être parce que je connais mieux ce dernier et que j’ai eu plus souvent l’occasion de le pratiquer. Une chose est sûre en tout cas, quand on veut mettre le résultat d’une commande (ls -l ou dir par exemple) dans une variable, il vaut mieux travailler sous Linux que sous Windows !
Continuer la lecture

Rechercher des PDF sur Google

Publié dans Geekeries | 4 commentaires

La petite astuce ci-dessous m’a été quelques fois utile pour trouver des PDF à propos d’un sujet en particulier sur ce cher Google. L’idée est de préciser le type du fichier dans le barre de recherche Google. Par exemple pour une recherche de PDF au sujet de jQuery :

jquery pdf

Ou bien pour n’avoir dans les résultats que des fichiers de ce type :

jquery filetype:pdf

On peut aussi faire une recherche non pas dans le contenu des pages, mais dans leur url grâce à allinurl: (All in url), ce qui dans notre cas fournit souvent de bons résultats :

allinurl:jquery filetype:pdf

Et pour affiner les résultats, on peut aussi exclure un url de la recherche avec -inurl: (not in url) :

allinurl:jquery -inurl:jquery.com filetype:pdf

J’ai trouvé cette astuce sur Code18, décidément !

Ainsi cron cron cron, les petites marionnettes

Publié dans Geekeries | Laisser un commentaire

ça cron ?
Voilà 3 mois que j’ai écris un billet intitulé avec autant de mauvais goût que celui que vous êtes en train de lire : ça cron ! Mise à part leur entrée en matière un peu capillotractée, ces 2 billets abordent le même sujet : les crons.
Cron, c’est un système sous Linux qui permet de déclencher un événement à intervalle régulier. Par exemple on peut exécuter tous les jours un script PHP qui nettoie une base de données, ou une ligne de commande Shell qui ouvre un lecteur audio et joue un titre au hasard. Bref, c’est un outils permettant de faire pas mal de choses intéressantes et qui font un peu rêver. Comme je l’expliquais précédemment, j’ai trouvé mon bonheur pour apprendre à utiliser cron sur le site Code18 : Installer un cronjob, mais à l’époque, je n’avais pas eu le temps de tester. Aujourd’hui, c’est chose faites ! Ce petit billet a donc pour but de retracer les grands étapes d’utilisation d’un cron.

Ce dont on a besoin

Tout simplement : un serveur accessible en ligne de commande sur lequel cron est installé.
Pour vérifier si cron est utilisable, il faut utiliser la ligne de commande qui liste les événements programmés :

crontab -l

Si cron est utilisable la liste des événements programmés s’affichera, ou s’il n’y en a pas, un message du style : no crontab for ******.

Dans le cas contraire : -bash: /usr/bin/crontab: Permission denied ou -bash: crontab: command not found.

Pour tout cela, il faut bien sûr se connecter auparavant au serveur en SSH :

ssh user@serveur

Ajouter ou modifier un événement

Il faut utiliser la ligne de commande :

crontab -e

Celle-ci ouvrira le fichier crontab (contenant les événements programmés) sous l’éditeur par défaut, vim par exemple.
Continuer la lecture

Envoyer un email en ligne de commandes

Publié dans Geekeries | Laisser un commentaire

Parmi les petites choses inutiles que j’ai appris aujourd’hui (suite à un cours de réseaux), j’ai notamment découvert comment envoyer un e-mail en ligne de commandes. Voici les étapes à suivre. A noter que le serveur renvoie 250 OK quand la commande a réussi.

Se connecter à un serveur telnet

D’après ma compréhension actuel, il faut se connecter sur un serveur telnet pour envoyer un e-mail. Donc est justement ce serveur. Mais y a surement moyen de faire autrement.

telnet <hote> 25

Serveur d’envoi, émetteur et récepteur

correspond tout simplement au domaine qui envoie l’email. Donc pour l’adresse test@testons.fr, c’est testons.fr. Il ne reste plus qu’à préciser l’e-mail de l’expéditeur (qui peut être n’importe quoi), et l’e-mail du récepteur (pour le coup, vaut mieux que ce soit la bonne adresse).

helo <domaine> mail From:<email-emetteur> rcpt To:<email-recepteur>

Contenu de l’e-mail

Il suffit de taper :

data

Le sendMail vous laisse alors le champ libre pour écrire ce que vous voulez. Commençons par l’entête de l’e-mail, en voici un exemple minimaliste.

From: email-emetteur
To: email-destinataire
Date: date de création du message

Il est à noter que l’on peut écrire n’importe quoi comme informations. Elles seront affichés à l’utilisateur, mais cela ne veut pas dire que ces informations sont justes. Mais il est possible de préciser d’autres choses :

Subject: Votre sujet
From: email-emetteur
Reply-To: email à utiliser pour la réponse
Date: date du message
Mime-Version: 1.0
To: email-destinataire
Cc: email-destinataire en copie carbonne

Il y a d’autres choses que je n’ai pas compris :

Received: information sur le chemin suivi
Message-Id: numero@domaine
X-Phone: message_Id
X-Mailer: ?

Bref, laissez une ligne vide et commencez à écrire votre message. Il vous faudra terminer par un point.


J'écris mon message, je suis content !
Super content !
.

Quitter la connexion

Rien de plus simple :

quit

Résumons

Avec tout ça, on peut envoyer un e-mail en ligne de commandes à un utilisateur en utilisant les caractères que l’on veut (sauf dans le sujet) et en précisant ce qu’on veut pour l’émetteur et le serveur d’envoi. Bref, c’est assez fun et ça marche vraiment bien. Reste donc à trouver une parade aux 2 limitations citées plus haut.