Je souhaite connaître la météo actuelle d'une ville ou de ma position depuis le terminal. Existe-t-il une application météo en ligne de commande?
Je souhaite connaître la météo actuelle d'une ville ou de ma position depuis le terminal. Existe-t-il une application météo en ligne de commande?
Réponses:
Entrez simplement les informations suivantes dans un terminal:
curl wttr.in
Et obtiendrez votre position à partir de /etc/timezone
. Dans le cas contraire 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 du développeur est disponible sur Github .
devs
nous deux
Recherchez votre ville sur http://www.accuweather.com et remplacez l'URL dans le 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 $2": "$16", "$12"°" }'| head -1
Exemple de sortie:
Berlin, Germany: Foggy, 1°
acm_RecentLocationsCarousel.push({name:"Berlin, Germany", daypart:'day', href:'/en/de/berlin/10178/weather-forecast/178087', icon:'i-6-l', bg:'c', temp:'0', realfeel:'-6', text:"Mostly cloudy"});
. En utilisant votre code, le awk
séparateur de champ est '' (espace). Est-ce que $12
(température) est la 12ème colonne?
awk
séparateur est '
. L'API utilise 2 chiffres, le premier est le postleitzahl
code postal. Le second semble être un numéro de code d'api
J'ai un autre moyen.
Ouvrez votre .bashrc
fichier 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: ",$1;/<fcttext>([^<]+)/&&print $1,"\n"';}
Puis enregistrez et fermez votre .bashrc
fichier.
tapez maintenant bash
pour mettre à jour le fichier.
puis tapez
weather <location name>
par exemple
august@august-OEM:~$ 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
YOUZIPORLOCATION
par $1
et passe 20001
(Washington, DC code postal), des lignes qui ne ressemblent pas au format Today: Mostly sunny and breezy. Highs in the upper 30s. Northwest winds 20 to 25 mph with gusts up to 45 mph.
Lorsque je l’utilise "washington.dc"
, j’obtiens une sortie de tableau May 4, 2015: Clear. High 32&deg;C (89&deg;F). Winds 43 kph East
. Une idée pourquoi la différence?
Voici un excellent utilitaire de ligne de commande semi-graphique écrit en Go:
https://github.com/schachmat/wego/
Vous devrez installer Go et configurer certains éléments de l'API, mais les instructions sont là. Voici un exemple de photo:
curl wttr.in
est assez
curl wttr.in/Helsinki?m
Essayez d'utiliser
telnet rainmaker.wunderground.com
Vous devez d’abord installer le paquet weather-util. Pour ce faire, appuyez simplement sur les touches Ctrl+ et Alt+ Tde votre clavier pour ouvrir Terminal. Lorsqu'il s'ouvre, exécutez 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 à partir du lien ci-dessus. Pour obtenir une liste des options disponibles, vous pouvez exécuter weather
Info météo.
Last updated Dec 11, 2013 - 07:00 AM EST / 2013.12.11 1200 UTC Temperature: 86 F (30 C)
n'y a aucun moyen de connaître le temps qu'il fait.
weather YOURLOCATIONNAME
il recherche alors votre position et fournit éventuellement plusieurs résultats. Vous pouvez y lire l'identifiant de la station que vous pouvez utiliser comme argument pour récupérer vos informations météo
weather LAX
(qui devrait indiquer le temps qu'il fera à l'aéroport international de Los Angeles) affiche une erreur 404 pour weather.noaa.gov/pub/data/observations/metar/decoded/KNKX.TXT
http://weather.noaa.gov/pub/data
to http://tgftp.nws.noaa.gov/data
. UPDATE: On dirait qu'ils l'ont déjà corrigée dans la version 2.1, que vous pouvez obtenir à partir du site du projet .
ansiweather
AnsiWeather est un script Shell permettant d'afficher les conditions météorologiques actuelles sur 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 gratuite d'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 ☔
De plus, un programme pré-installé avec Ubuntu appelé Inxi vous fournira tous les types de statistiques sur votre ordinateur et produira 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
sudo apt install inxi
inxi
est disponible mais vous devez d'abord activer le référentiel de l'univers.
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
fait également un grand écran "splash" chaque fois que vous ouvrez le terminal. Faites cela en l'ajoutant à votre ~/.bashrc
fichier. Je l'ai fait pour inclure les informations sur la météo, la date, l'heure et la distribution, comme indiqué dans cette réponse: Comment puis-je obtenir cet écran de démarrage du terminal?
Désolé, j'étais dans Ubuntu dans Windows 10 WSL pour les mises à jour du printemps 2018 lorsque j'ai capturé cette image. Promis, je vais bientôt redémarrer Ubuntu sous Linux.
Pour des résultats météorologiques encore plus courts, http://weather.tuxnet24.de fournit des données météorologiques de Yahoo! au format texte et xml.
Les filds du XML peuvent ensuite être obtenus avec un analyseur XML tel que xmllint ie.
J’ai écrit un script d’extension météo q & d, qui récupère la température actuelle et la description de la météo, puis stocke un symbole Unicode correspondant à la description et l’affiche comme
☂ 6 ° C
Je mets régulièrement à jour via cronjob puis utilise la sortie dans l'état de ma barre d'état.
Obtenez votre identifiant sur yahoocom / news / weather. Modifiez l'emplacement à l'emplacement souhaité et recherchez l'ID dans l'URL (par exemple, si l'URL est yahoocom / news / weather / allemagne / rhénanie-du-nord-westphalie / bielefeld-20066057 l'ID est 20066057).
Le code XML contient d’autres champs, tels que les données de prévision, le vent, etc. - vous pouvez également les analyser, si vous le souhaitez.
Malheureusement, certains symboles météorologiques ne sont pas représentés dans Ubuntufont… n'hésitez pas à vous ajuster.
Voici mon script (remplace 20066057 par votre identifiant si vous n'habitez pas à 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";
#!/usr/bin/env bash
fixe pour moi, Ubuntu 18.04
J'ai un autre moyen.
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; }
Enregistrez et fermez votre .bashrc
fichier et exécutez la commande suivante pour mettre à jour bash:
. .bashrc
puis tapez W
majuscule
.bashrc
fichier. Vous pouvez exécuter: source .bashrc
ou vous pouvez exécuter ceci à la place:. .bashrc
Bien que la solution d'accuweather curl soit assez bonne, j'avais besoin de quelque chose de plus informatif. J'ai donc créé un script bash simple qui extrait les informations des 4 prochaines heures sur le 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 se trouve à l' adresse suivante : https://sites.google.com/site/wozoopalinux/home/wzbash001/get-weather-information-from-command-line-for-next-4-hrs.
finger city_name@graph.no
$ finger cologne@graph.no
-= Meteogram for germany/north_rhine-westphalia/cologne =-
'C Rain
16
15 ^^^
14 ======^^^ ^^^
13 === ^^^===^^^===
12 =========
11 === ====--
10 ====== ---
9=====| --- 3 mm
8 | | 2 mm
7 | | | | | | | | | | | | | | 1 mm
_08_09_10_11_12_13_14_15_16_17_18 19 20 21 22 23 00 01 02 03 04 05 Hour
SE SE SE SE SE SW SW W W W W SW W W W W W NW NW NW N N Wind dir.
5 5 5 5 4 4 5 6 6 6 5 5 5 4 4 5 5 5 4 3 3 3 Wind(mps)
Legend left axis: - Sunny ^ Scattered = Clouded =V= Thunder # Fog
Legend right axis: | Rain ! Sleet * Snow
[Weather forecast from yr.no, delivered by the Norwegian Meteorological Institute and the NRK.]
Voici comment l'utiliser:
$ finger help@graph.no
yr.no is having technical problems, or you specified an unknown location.
Usage:
* finger <city name>@graph.no (world weather forecast, no spaces)
Example: finger newyork@graph.no
Advanced usage:
* finger o:<city name>@graph.no (a one-line forecast)
Example: finger o:newyork@graph.no
* finger ^<city name>@graph.no (Imperial units)
Example: finger ^newyork@graph.no
* finger <city name>+5@graph.no (forecast from 5 hrs ahead in time (max:26))
Example: finger northpole+5@graph.no
* finger <city name>~160@graph.no (set screen width)
Example: finger southpole~160@graph.no
* finger <city name>%2@graph.no (forecast for every second hour [Norway])
Example: finger oslo%2@graph.no
* finger <post code>@graph.no (norwegian weather forecast)
Example: finger 0458@graph.no
Other:
* finger news@graph.no (latest headlines from NRK)
* finger time@graph.no (server local time)
* finger date@graph.no (server local date)
* finger about@graph.no (contact information)
International names comes from http://fil.nrk.no/yr/viktigestader/verda.txt.
L' histoire derrière cela du développeur.