Je veux trouver la météo actuelle d'une ville particulière ou ma position depuis le terminal. Existe-t-il une application météo en ligne de commande?
Je veux trouver la météo actuelle d'une ville particulière ou ma position depuis le terminal. Existe-t-il une application météo en ligne de commande?
Entrez simplement les informations suivantes dans un terminal:
curl wttr.in
Et obtiendrez votre position de /etc/timezone
. Sinon curl wttr.in/your_location
. Par exemple, pour Téhéran:
curl wttr.in/tehran
Ce qui vous donne:
Vous pouvez également comparer deux villes:
diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )
Le code source de développeur est disponible sur Github .
Recherchez votre ville sur lien et remplacez l'URL du script suivant par l'URL de votre ville:
#!/bin/sh
URL='http://www.accuweather.com/en/de/berlin/10178/weather-forecast/178087'
wget -q -O- "$URL" | awk -F\' '/acm_RecentLocationsCarousel\.push/{print ": "", ""°" }'| head -1
Exemple de sortie:
Berlin, Germany: Foggy, 1°
J'ai une autre solution.
Ouvrez votre fichier .bashrc
, puis collez ce code en bas
weather(){ curl -s "http://api.wunderground.com/auto/wui/geo/ForecastXML/index.xml?query=${@:-<YOURZIPORLOCATION>}"|perl -ne '/<title>([^<]+)/&&printf "%s: ",;/<fcttext>([^<]+)/&&print ,"\n"';}
Puis sauvegardez & amp; fermez votre fichier .bashrc
.
tapez maintenant bash
pour mettre à jour le fichier.
puis tapez
weather <location name>
par exemple
[email protected]:~$ weather guntur
December 14, 2013: Clear. High 31&deg;C (87&deg;F). Winds 0 kph North
December 15, 2013: Clear. High 29&deg;C (84&deg;F). Winds 10 kph NNW
December 16, 2013: Clear. High 31&deg;C (87&deg;F). Winds 10 kph North
December 17, 2013: Clear. High 29&deg;C (84&deg;F). Winds 7 kph ENE
December 18, 2013: Scattered Clouds. High 29&deg;C (84&deg;F). Winds 3 kph ENE
December 19, 2013: Scattered Clouds. High 29&deg;C (84&deg;F). Winds 3 kph ENE
D'abord, vous devez installer le paquet weather-util, pour cela il vous suffit d'appuyer sur Ctrl + Alt + T sur votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous:
sudo apt-get install weather-util
Vous aurez besoin de votre code météo local .
Après l’installation, vous pouvez exécuter weather -i <code>
. Le code que vous obtenez du lien ci-dessus. Pour obtenir la liste des options disponibles, vous pouvez exécuter weather
Infos météo
ansiweather
AnsiWeather est un script Shell permettant d'afficher les conditions météorologiques actuelles dans votre terminal, avec prise en charge des couleurs ANSI et des symboles Unicode. Les données météorologiques proviennent de l'API météo OpenWeatherMap.
sudo apt-get install ansiweather
ansiweather -l London,GB -f 3
London forecast => Sat Jan 13: 7/2 °C ☔ - Sun Jan 14: 4/1 °C ☔ - Mon Jan 15: 9/6 °C ☔
J'ai une autre solution.
Ouvrez votre fichier .bashrc, puis collez ce code en bas
test -f ~/.wttr.in || curl -sk wttr.in -o ~/.wttr.in
find ~ -maxdepth 1 -name .wttr.in -cmin +5 -exec curl -sk wttr.in -o ~/.wttr.in \;
head -7 ~/.wttr.in | tail -5
W(){ find ~ -maxdepth 1 -name .wttr.in -cmin +5 -exec curl -sk wttr.in -o ~/.wttr.in \;; head -27 ~/.wttr.in; }
Puis sauvegardez & amp; fermez votre fichier .bashrc. Maintenant, tapez bash pour mettre à jour le fichier.
puis tapez W
majuscule
également un programme pré-installé avec ubuntu appelé inxi vous donnera tous les types de statistiques sur votre ordinateur et il effectuera une sortie météo.
commande: inxi --help
commande: inxi -w
Conditions: 82 F (28 C) - Clear Time: May 13, 10:52 AM CDT
commande: inxi -wxxx
Conditions: 82 F (28 C) - Clear Wind: From the SW at 13 MPH Humidity: 60%
Pressure: 29.99 in (1016 mb) Heat Index: 84 F (29 C)
Location: city (USA) Altitude: 185 m
Time: May 13, 10:52 AM CDT (America/Chicago) Observation Time: May 13, 9:54 AM CDT
Pour une sortie météo encore plus courte, lien fournit des données météo de Yahoo! au format texte et xml.
Les fichiers du XML peuvent alors être obtenus avec un analyseur XML tel que xmllint i.e ..
J'ai écrit un script de recherche météo, qui obtient la température actuelle et la description de la météo, puis stocke un symbole Unicode correspondant à la description et le reproduit comme
☂ 6 ° C
Je mets régulièrement à jour via cronjob, puis utilise la sortie dans mon statut de plateau.
Obtenez votre identifiant à yahoocom / news / weather. Changez d'emplacement à l'emplacement de votre choix et recherchez l'ID dans l'URL (si l'URL est yahoocom / news / weather / allemagne / north-rhine-westphalia / bielefeld-20066057, l'ID est 20066057).
Le code XML contient d’autres champs, c’est-à-dire des données prévisionnelles, le vent, etc. - vous pouvez également les analyser si vous le souhaitez.
Malheureusement, certains symboles météo ne sont pas représentés dans Ubuntufont ... n'hésitez pas à les ajuster.
Voici mon script (remplacez 20066057 par votre ID si vous ne vivez pas dans Bielefeld) - dépend de bash, curl et xmllint.
#!/bin/sh
#☁☂☔❄❅❆☃ ☀☁☂⚡⚐☼
# write xml to variable
w_xml=$(curl -Ls "http://weather.tuxnet24.de/?id=20066057&mode=xml");
# get fields from xml via xmllint | xargs for trimming
# weather description
w_txt=$(xmllint --xpath "string(//current_text)" - <<<"$w_xml" | xargs);
# temperature | remove spaces from text (°C prepended by space)
w_tpc=$(xmllint --xpath "string(//current_temp)" - <<<"$w_xml" | xargs); w_tpc=${w_tpc//[[:blank:]]/};
# further fields not used atm
# w_tph=$(xmllint --xpath "string(//current_temp_high)" - <<<"$w_xml" | xargs);
# w_tpl=$(xmllint --xpath "string(//current_temp_low)" - <<<"$w_xml" | xargs);
# set $w_sym according to $w_txt
if [ "$w_txt" == "Sunny" ]; then w_sym="☼";
elif [ "$w_txt" == "Mostly Sunny" ]; then w_sym="☼";
elif [ "$w_txt" == "Showers" ]; then w_sym="☂";
elif [ "$w_txt" == "Clear" ]; then w_sym="☾";
elif [ "$w_txt" == "Thunderstorms" ]; then w_sym="⚡";
elif [ "$w_txt" == "Scattered Thunderstorms" ]; then w_sym="☔";
elif [ "$w_txt" == "Isolated Thundershovers" ]; then w_sym="☔";
elif [ "$w_txt" == "Cloudy" ]; then w_sym="☁";
elif [ "$w_txt" == "Mostly Cloudy" ]; then w_sym="☁";
elif [ "$w_txt" == "Partly Cloudy" ]; then w_sym="☼☁";
elif [ "$w_txt" == "Breezy" ]; then w_sym="⚐";
# if unknown text, set text instead of symbol
else w_sym=$w_txt;
fi
# output <symbol><space><temp-in-°C>
echo "$w_sym"" ""$w_tpc";
Bien que la solution d'accuweather curl soit plutôt bonne, j'avais besoin de quelque chose de plus informatif, alors j'ai créé un script bash simple qui extrait les informations des 4 prochaines heures du site Web weather.com. Comme dans l'exemple précédent, vous devez modifier le lien pour votre emplacement.
Example output:
$ ./getWeather.sh
Temperature for 1 AM : 65°F and outside should be: Partly - Cloudy FEELS LIKE: 65°
Temperature for 2 AM : 65deg;F and outside should be: Partly - Cloudy FEELS LIKE: 65deg;
Temperature for 3 AM : 63deg; and outside should be: Partly - Cloudy FEELS LIKE: 63deg;
Temperature for 4 AM : 62deg; and should be: Mostly - Clear FEELS LIKE: 62deg;
Le script complet est situé à: lien
Vous pouvez comparer les villes en utilisant:
diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )
comme illustré dans la réponse la plus votée. wttr.in
crée également un excellent écran "splash" chaque fois que vous ouvrez le terminal. Pour ce faire, ajoutez-le à votre fichier ~/.bashrc
. Je l'ai fait pour inclure les informations sur la météo, la date, l'heure et la distribution, comme détaillé dans cette réponse: Comment puis-je obtenir cet écran de démarrage du terminal?
Désolé, j'étais dans Ubuntu sous Windows 10 WSL pour les mises à jour du printemps 2018 lorsque j'ai capturé cette image. Promise Je vais bientôt revenir à Ubuntu sous Linux.
Lire d'autres questions sur les étiquettes command-line