Погода от терминала

Я хочу узнать текущую погоду конкретного города или мое местоположение из терминала. Есть ли приложение погоды для командной строки?

66
задан 13 January 2018 в 17:58

13 ответов

Просто введите в терминале следующее:

curl wttr.in

И получите ваше местоположение из /etc/timezone. В противном случае curl wttr.in/your_location. Например, для Тегерана:

curl wttr.in/tehran

Что дает вам:

Sample output

Вы также можете сравнить два города:

diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )

Исходный код разработчика доступен на Github .

0
ответ дан 13 January 2018 в 17:58

Найдите свой город на http://www.accuweather.com и замените URL-адрес в следующем скрипте URL-адресом своего города:

#!/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

Пример вывода:

Berlin, Germany: Foggy, 1°
0
ответ дан 13 January 2018 в 17:58

Вот отличная полуграфическая утилита командной строки, написанная на Go:

https://github.com/schachmat/wego/

Вам понадобится установить Go и настроить некоторые вещи API, но инструкции там. Вот пример картинки:

enter image description here

0
ответ дан 13 January 2018 в 17:58

У меня есть еще один способ.

Откройте файл .bashrc и вставьте этот код внизу

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"';}

Затем сохраните & amp; закройте файл .bashrc.

Теперь введите bash, чтобы обновить файл.

затем введите

weather <location name>

, например,

august@august-OEM:~$ weather guntur
December 14, 2013: Clear. High 31&amp;deg;C (87&amp;deg;F). Winds 0 kph North
December 15, 2013: Clear. High 29&amp;deg;C (84&amp;deg;F). Winds 10 kph NNW
December 16, 2013: Clear. High 31&amp;deg;C (87&amp;deg;F). Winds 10 kph North
December 17, 2013: Clear. High 29&amp;deg;C (84&amp;deg;F). Winds 7 kph ENE
December 18, 2013: Scattered Clouds. High 29&amp;deg;C (84&amp;deg;F). Winds 3 kph ENE
December 19, 2013: Scattered Clouds. High 29&amp;deg;C (84&amp;deg;F). Winds 3 kph ENE
0
ответ дан 13 January 2018 в 17:58

Попробуйте использовать

telnet rainmaker.wunderground.com
0
ответ дан 13 January 2018 в 17:58

ansiweather

AnsiWeather - это скрипт оболочки для отображения текущих погодных условий в вашем терминале с поддержкой цветов ANSI и символов Unicode. Данные о погоде поступают из бесплатного API погоды 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 ☔

https://github.com/fcambus/ansiweather

0
ответ дан 13 January 2018 в 17:58

Сначала вам нужно установить пакет weather-util, для этого просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть Терминал. Когда он откроется, выполните команду (ы) ниже:

sudo apt-get install weather-util

Вам понадобится местный код погоды .

После установки вы можете запустить weather -i <code>. Код, который вы получаете по ссылке выше. Для получения списка доступных опций вы можете запустить weather Информация о погоде

0
ответ дан 13 January 2018 в 17:58

также программа, которая поставляется с предварительно установленной ubuntu под названием inxi, предоставит вам все виды статистики на вашем компьютере и выдаст прогноз погоды.

команда: inxi --help

команда: inxi -w

        Conditions: 82 F (28 C) - Clear Time: May 13, 10:52 AM CDT

команда: 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
0
ответ дан 13 January 2018 в 17:58

Вы можете сравнить города, используя:

diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )

, как показано в ответе с наибольшим количеством голосов. wttr.in также делает отличный экран-заставку каждый раз, когда вы открываете терминал. Сделайте это, добавив его в свой файл ~/.bashrc. Я сделал это, чтобы включить информацию о погоде, дате, времени и распределении, как подробно описано в этом ответе: Как мне получить этот экран-заставку терминала?

Bash Splash in Windows 10.png

Извините, я был в Ubuntu в Windows 10 WSL для обновлений Spring 2018, когда я сделал этот образ. Обещаю, что скоро вернусь в Ubuntu в Linux.

0
ответ дан 13 January 2018 в 17:58

У меня есть еще один способ.

Откройте файл .bashrc, а затем вставьте этот код внизу

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; }

Save & amp; закройте файл .bashrc и выполните следующую команду для обновления bash:

. .bashrc 

, затем введите W в верхнем регистре

0
ответ дан 13 January 2018 в 17:58

Для еще более короткой погоды http://weather.tuxnet24.de предоставляет данные о погоде от Yahoo! в текстовом и XML формате.

Файлы из XML могут быть получены с помощью синтаксического анализатора XML, такого как xmllint, т. Е.

Я написал сценарий получения погоды q & d, который получает текущую температуру и описание погоды, затем сохраняет символ Unicode, соответствующий описанию, и выводит его, например,

☂ 6 ° C.

Я регулярно обновляюсь через cronjob, а затем использую вывод в статусе моего трея.

Получите свой идентификатор в yahoocom / новости / погода. Измените местоположение на желаемое и найдите идентификатор в URL-адресе (то есть, если URL-адрес yahoocom / news / weather / germany / north-rhine-westphalia / bielefeld-20066057, идентификатор - 20066057).

XML содержит дополнительные поля, то есть данные прогноза, ветер и т. Д. - вы также можете анализировать их, если хотите.

К сожалению, некоторые символы погоды не представлены в Ubuntufont ... не стесняйтесь настраивать.

Вот мой сценарий (замените 20066057 своим ID, если вы не живете в Билефельде) - зависит от bash, curl и 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 (&#176;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";
0
ответ дан 13 January 2018 в 17:58

Хотя решение accweather curl довольно хорошее, мне нужно что-то более информативное, поэтому я создал простой сценарий bash, который получает информацию в течение следующих 4 часов с веб-сайта weather.com. Как и в предыдущем примере, вы должны изменить ссылку для вашего местоположения.

Example output:
$ ./getWeather.sh
Temperature for 1 AM : 65&deg;F and outside should be: Partly - Cloudy FEELS LIKE:   65&deg;
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;

Полный сценарий находится по адресу: https://sites.google.com/site/wozoopalinux/home/wzbash001/get-weather-information-from-command-line-for-next-4 -hrs

0
ответ дан 13 January 2018 в 17:58

Метеограмм всех городов мэра в мире

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.]

Вот - то, как использовать его:

$ 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.

история этого от разработчика.

0
ответ дан 9 October 2019 в 09:22

Другие вопросы по тегам:

Похожие вопросы: