Quiero encontrar el clima actual de una ciudad en particular o mi ubicación desde la terminal. ¿Hay alguna aplicación de clima de línea de comandos?
Quiero encontrar el clima actual de una ciudad en particular o mi ubicación desde la terminal. ¿Hay alguna aplicación de clima de línea de comandos?
Respuestas:
Simplemente ingrese lo siguiente en una terminal:
curl wttr.in
Y obtendrá su ubicación de /etc/timezone
. De lo contrario curl wttr.in/your_location
. Por ejemplo, para Teherán:
curl wttr.in/tehran
Lo que te da:
También puedes comparar dos ciudades:
diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )
El código fuente del desarrollador está disponible en Github .
devs
entre nosotros
Busque su ciudad en http://www.accuweather.com y reemplace la URL en el siguiente script con la URL de su ciudad:
#!/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
Salida de muestra:
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"});
. Usando su código, el awk
separador de campo es '' (espacio). ¿Es $12
(temperatura) la 12ª columna?
awk
separador '
. La API utiliza 2 números, el primero es el postleitzahl
código postal o. El segundo parece ser un número de código de API
Tengo un camino más.
Abra su .bashrc
archivo y luego pegue este código en la parte inferior
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"';}
Luego guarda y cierra tu .bashrc
archivo.
ahora escriba bash
para actualizar el archivo.
luego escribe
weather <location name>
por ejemplo
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
con $1
y paso 20001
(código postal de Washington, DC), obtengo líneas que se ven sin formato como Today: Mostly sunny and breezy. Highs in the upper 30s. Northwest winds 20 to 25 mph with gusts up to 45 mph.
cuando uso "washington.dc"
, obtengo la salida de la tabla May 4, 2015: Clear. High 32&deg;C (89&deg;F). Winds 43 kph East
. ¿Alguna idea de por qué la diferencia?
Aquí hay una gran utilidad de línea de comando semi-gráfica escrita en Go:
https://github.com/schachmat/wego/
Deberá instalar Go y configurar algunas cosas de API, pero las instrucciones están ahí. Aquí hay una foto de muestra:
curl wttr.in
es suficiente
curl wttr.in/Helsinki?m
Intenta usar
telnet rainmaker.wunderground.com
Primero necesita instalar el paquete weather-util, para hacerlo simplemente presione Ctrl+ Alt+ Ten su teclado para abrir la Terminal. Cuando se abra, ejecute los siguientes comandos:
sudo apt-get install weather-util
Necesitará su código meteorológico local .
Después de la instalación puedes ejecutar weather -i <code>
. El código que obtienes del enlace de arriba. Para obtener una lista de las opciones disponibles, puede ejecutar weather
Información del clima
Last updated Dec 11, 2013 - 07:00 AM EST / 2013.12.11 1200 UTC Temperature: 86 F (30 C)
. no hay manera de saber el clima actual.
weather YOURLOCATIONNAME
busca tu ubicación y proporciona posiblemente múltiples resultados. A partir de estos, puede leer el identificador de la estación que puede usar como argumento para obtener su información meteorológica
weather LAX
(que debería mostrar el clima del Aeropuerto Internacional de Los Ángeles) muestra un error 404 para weather.noaa.gov/pub/data/observations/metar/decoded/KNKX.TXT
http://weather.noaa.gov/pub/data
a http://tgftp.nws.noaa.gov/data
. ACTUALIZACIÓN: Parece que ya lo arreglaron en la versión 2.1, que puede obtener desde el sitio del proyecto .
ansiweather
AnsiWeather es un script de Shell para mostrar las condiciones climáticas actuales en su terminal, con soporte para colores ANSI y símbolos Unicode. Los datos meteorológicos provienen de la API meteorológica gratuita 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 ☔
también un programa que viene preinstalado con ubuntu llamado inxi le dará todo tipo de estadísticas en su computadora y generará información climática.
comando: inxi --help
comando: inxi -w
Conditions: 82 F (28 C) - Clear Time: May 13, 10:52 AM CDT
comando: 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, pero primero debe habilitar el repositorio del universo.
Puedes comparar ciudades usando:
diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )
como se ilustra en la respuesta más votada. wttr.in
también hace una gran pantalla de "bienvenida" cada vez que abre el terminal. Haga esto agregándolo a su ~/.bashrc
archivo. Lo hice para incluir información sobre el clima, la fecha, la hora y la distribución como se detalla en esta respuesta: ¿Cómo puedo obtener esta pantalla de bienvenida de la terminal?
Lo siento, estaba en Ubuntu en Windows 10 WSL para las actualizaciones de primavera de 2018 cuando capturé esta imagen. Prometo que volveré a Ubuntu en Linux pronto.
Para obtener información meteorológica aún más corta, http://weather.tuxnet24.de proporciona datos meteorológicos de Yahoo! en formato de texto y xml.
Los archivos del XML se pueden obtener con un analizador XML como xmllint, es decir.
Escribí un script de búsqueda de clima para preguntas y respuestas, que obtiene la temperatura actual y la descripción del clima, luego almacena un símbolo unicode correspondiente a la descripción y lo muestra como
☂ 6 ° C
Actualizo regularmente a través de cronjob y luego uso la salida en el estado de mi bandeja.
Obtenga su identificación en yahoocom / news / weather. Cambie la ubicación a la ubicación deseada y busque la ID en la URL (es decir, si la URL es yahoocom / news / weather / germany / north-rhine-westphalia / bielefeld-20066057, la ID es 20066057).
El XML contiene más campos, es decir, datos de pronóstico, viento, etc. - también puede analizarlos, si lo desea.
Desafortunadamente, algunos símbolos meteorológicos no están representados en Ubuntufont ... siéntase libre de ajustar.
Aquí está mi script (reemplace 20066057 con su ID si no vive en Bielefeld), depende de bash, curl y 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
arreglado para mí, Ubuntu 18.04
Tengo un camino más.
Abra su archivo .bashrc y luego pegue este código en la parte inferior
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; }
Guarde y cierre su .bashrc
archivo y ejecute el siguiente comando para actualizar bash:
. .bashrc
luego escriba W
mayúscula
.bashrc
archivo. Puede ejecutar: source .bashrc
o puede ejecutar esto en su lugar:. .bashrc
Aunque la solución accuweather curl es bastante buena, necesitaba algo más informativo, así que creé un script bash simple que extrae información para las próximas 4 horas del sitio web weather.com. Como en el ejemplo anterior, debe modificar el enlace para su ubicación.
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;
La secuencia de comandos completa se encuentra en: 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.]
Aquí está cómo usarlo:
$ 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.
La historia detrás de esto del desarrollador.