FR:User:Petrovsk/Terminal basic use
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