FR:User:Petrovsk/Terminal basic use

From OpenStreetMap Wiki
Jump to navigation Jump to search

Introduction

Le Terminal est sur Mac le programme permettant d'exécuter des lignes de commande, il se trouve dans le dossier Applications/Utilitaires. Un fois lancé, conservez à côté une fenêtre du Finder ouverte pour pouvoir utiliser le glisser-déposer.
À son ouverture, l'invite du Terminal se situe dans votre dossier utilisateur (celui à votre nom). Le mien affiche ça :

[11:19:44]Petrovsk@MacBook-de-Lionel-Maraval:~ $

La tilde ~ indique le dossier utilisateur. Pour choisir où placer l'invite et donc où se feront les manipulations demandées, on utilise la commande cd suivie d'un espace puis du chemin du dossier où aller : cd ~/OSM me place dans le dossier OSM et l'invite affiche :

[11:23:17]Petrovsk@MacBook-de-Lionel-Maraval:OSM $

Pour aller rapidement à un dossier, taper cd (sans oublier l'espace) dans le Terminal puis glisser le dossier depuis le Finder dans la fenêtre du Terminal et valider.
La commande cd .. (avec un espace avant les deux points) remonte au dossier parent.

Quelques commandes utiles

cp (copy)

Pour copier un fichier. Exemple :

cp ~/OSM/Datasets/data.osm ~/OSM

Cela copie le fichier data.osm depuis le dossier Datasets vers le dossier OSM. Si, avant de lancer la copie, l'invite se trouve dans ~/OSM/Datasets, on peut utiliser la commande de cette façon :

cp data.osm ../

../ indique de remonter au dossier parent.

mv (move)

Pour déplacer ou renommer un fichier. Exemple :

mv ~/OSM/data.osm ~/Datasets/data.osm

Cela déplace le fichier data.osm depuis le dossier OSM vers le dossier Datasets. Si l'invite se trouve dans ~/OSM, cela peut s'écrire aussi :

mv data.osm Datasets/

La commande permet de renommer un fichier en indiquant successivement le nom de départ et le nom final :

mv data.osm map.osm

Il est possible de combiner les fonctions pour déplacer et renommer un fichier en une seule opération :

mv data.osm Datasets/map.osm

rm (remove)

Permet d'effacer un fichier.

rm data.osm

Cela efface le fichier data.osm dans le dossier courant. L'option -d permet d'effacer un dossier :

rm -d Datasets

L'effacement se fait directement, sans passer par la corbeille, soyez prudents !

curl

C'est un gestionnaire de téléchargement.
Pour télécharger le fichier data.osm à l'adresse http://www.site.org la commande est la suivante :

curl -O "http://www.site.org/data.osm"

L'option -O indique à curl qu'il doit télécharger un fichier. Il est possible de télécharger plusieurs fichiers de même extension en une seule commande :

curl -O "http://www.site.org/{data,map}.osm"

Cela téléchargera successivement les fichiers data.osm et map.osm.

sed

Cette commande permet de réaliser du "Rechercher et remplacer" en ligne de commande :

sed 's/mapname: 6324/mapname: 6100/g' template.args > routage.args

La syntaxe est la suivante :

sed 's[chaîne à remplacer]/[chaîne à substituer]/g' [fichier à traiter] > [nouveau fichier]

L'omission de la partie > [nouveau fichier] modifie le fichier sur place.

Lancer plusieurs lignes de commande à la suite

Si vous devez exécuter régulièrement plusieurs lignes de commande, il est judicieux de les copier dans un fichier qui sera lancé en une fois.

Dans un fichier texte

Ajoutez vos lignes de commande et utilisez le caractère # pour les lignes de commentaire.

# Carte de France Garmin routable d'après un fichier hexagone
cd ~/OSM/Datasets
# Téléchargement du fichier France sur Geofabrik
curl -O "http://download.geofabrik.de/osm/europe/france.osm.bz2"
# Dézippage
bunzip2 -kfv france.osm.bz2
# Découpage des données OSM
cd ~/OSM/mkgmap-r*
java -Xmx1G -jar splitter.jar ../Datasets/france.osm
# Création de la carte GPS
java -Xmx1G -jar mkgmap.jar --gmapsupp --route -c template.args

Pour exécuter les commandes, ouvrir un Terminal, tapez source suivi d'un espace, faites glisser votre fichier texte depuis le Finder puis validez.
La ligne suivante lance la création d'une carte de France pour mon GPS :

source /Users/Petrovsk/OSM/carte Garmin/Perso/_commande/carte_france.txt

Dans un script

Un script n'est qu'un fichier texte qui est exécutable directement. Je vais reprendre l'exemple précédant.
Je transforme le fichier texte en script shell en ajoutant la ligne suivante en première ligne :

#!/bin/sh

Je change l'extension de .txt à .sh pour les différencier.
Il faut maintenant le rendre exécutable :

chmod +x /Users/Petrovsk/OSM/carte Garmin/Perso/_commande/carte_france.sh

Je pourrai le lancer directement en tapant dans un terminal:

/Users/Petrovsk/OSM/carte Garmin/Perso/_commande/carte_france.sh