Belirli bir şehrin güncel hava durumunu veya bulunduğum yeri terminalden bulmak istiyorum . Herhangi bir komut satırı hava uygulaması var mı?
Belirli bir şehrin güncel hava durumunu veya bulunduğum yeri terminalden bulmak istiyorum . Herhangi bir komut satırı hava uygulaması var mı?
Yanıtlar:
Bir terminale aşağıdakileri girmeniz yeterlidir:
curl wttr.in
Ve konumunuzu alacaksınız /etc/timezone
. Aksi takdirde curl wttr.in/your_location
. Örneğin, Tahran için:
curl wttr.in/tehran
Bu size verir:
İki şehri de karşılaştırabilirsiniz:
diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )
Geliştiricinin kaynak kodu Github'da mevcuttur .
devs
aramızda
Şehrinizi http://www.accuweather.com adresinde arayın ve aşağıdaki komut dosyasındaki URL’yi şehrinizin URL’si ile değiştirin:
#!/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
Örnek çıktı:
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"});
. Kodunuzu kullanarak awk
alan ayırıcı '' (boşluk) olur. Mı $12
(sıcaklık) 12 sütun?
awk
ayırıcı '
. Api 2 sayı kullanır, ilki postleitzahl
veya posta kodu. İkinci bir api kod numarası gibi görünüyor
Bir yol daha var.
.bashrc
Dosyanızı açın ve sonra bu kodu en altına yapıştırın
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"';}
Ardından .bashrc
dosyanızı kaydedin ve kapatın .
Şimdi bash
dosyayı güncellemek için yazın.
sonra yazın
weather <location name>
Örneğin
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
ile $1
ve geçiş 20001
(Washington, DC posta kodu), ben gibi biçimlendirilmemiş bakmak çizgiler olsun Today: Mostly sunny and breezy. Highs in the upper 30s. Northwest winds 20 to 25 mph with gusts up to 45 mph.
ben kullandığınızda "washington.dc"
, ben masa çıkışını almak May 4, 2015: Clear. High 32&deg;C (89&deg;F). Winds 43 kph East
. Farkın neden olduğu hakkında bir fikrin var mı?
İşte Go ile yazılmış harika bir yarı grafik komut satırı yardımcı programı:
https://github.com/schachmat/wego/
Git'i kurmanız ve bazı API öğeleri kurmanız gerekecek, ancak talimatlar orada. İşte örnek bir resim:
curl wttr.in
yeter
curl wttr.in/Helsinki?m
Kullanmayı deneyin
telnet rainmaker.wunderground.com
Öncelikle, weather-util paketini kurmanız gerekir, bunu yapmak için Terminal'i açmak için sadece klavyenizdeki Ctrl+ Alt+ tuşlarına basın T. Açıldığında, aşağıdaki komutları çalıştırın:
sudo apt-get install weather-util
Yerel hava durumu koduna ihtiyacınız olacak .
Yüklemeden sonra çalıştırabilirsiniz weather -i <code>
. Yukarıdaki linkten aldığınız kod. Kullanılabilir seçeneklerin bir listesi için Hava Durumu bilgilerini çalıştırabilirsiniz.weather
Last updated Dec 11, 2013 - 07:00 AM EST / 2013.12.11 1200 UTC Temperature: 86 F (30 C)
mevcut hava durumunu bilmenin bir yolu olmadığını gösterir .
weather YOURLOCATIONNAME
Daha sonra konumunuzu arar ve muhtemelen birden fazla sonuç sunar. Bunlardan hava durumu bilgilerinizi almak için argüman olarak kullanabileceğiniz istasyon tanımlayıcısını okuyabilirsiniz
weather LAX
(Los Angeles Uluslararası Havaalanı için hava durumunu göstermelidir) weather.noaa.gov/pub/data/observations/metar/decoded/KNKX.TXT
http://weather.noaa.gov/pub/data
için http://tgftp.nws.noaa.gov/data
. GÜNCELLEME: Proje sitesinden alabileceğiniz 2.1 sürümünde önceden düzeltmiş gibi görünüyorlar .
ansiweather
AnsiWeather, ANSI renklerini ve Unicode sembollerini destekleyen terminalinizdeki mevcut hava koşullarını görüntülemek için kullanılan bir Shell betiğidir. Hava durumu verileri OpenWeatherMap ücretsiz hava durumu API'sinden gelir.
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 ☔
ayrıca inxi adı verilen ubuntu ile önceden yüklenmiş olarak gelen bir program, bilgisayarınızda her türlü istatistiği verecek ve bir hava durumu çıktısı verecek.
komut: inxi --help
komut: inxi -w
Conditions: 82 F (28 C) - Clear Time: May 13, 10:52 AM CDT
komut: 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
kullanılabilir ancak önce evren deposunu etkinleştirmeniz gerekir.
Aşağıdakileri kullanarak şehirleri karşılaştırabilirsiniz:
diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )
en çok oylanan cevabında gösterildiği gibi. wttr.in
ayrıca her terminali açtığınızda harika bir "sıçrama" ekranı yapar. Bunu ~/.bashrc
dosyanıza ekleyerek yapın . Bunu, bu cevabın detaylarında belirtildiği gibi Hava Durumu, Tarih, Saat ve Dağıtım bilgilerini dahil etmek için yaptım: Bu terminal açılış ekranını nasıl alabilirim?
Üzgünüm, bu resmi yakaladığımda Spring 2018 güncellemeleri için Windows 10 WSL'de Ubuntu'daydım. Söz veriyorum yakında Linux'ta Ubuntu'ya geri döneceğim.
Daha kısa hava çıkışı için http://weather.tuxnet24.de Yahoo! metin ve xml biçiminde.
XML'den dosyalamalar daha sonra xmllint ie gibi bir XML çözümleyici ile elde edilebilir.
Hava durumu getirme komut dosyası yazdım, hava sıcaklığının geçerli sıcaklığını ve tanımını alır, daha sonra açıklamaya karşılık gelen bir unicode sembolü depolar ve bunun çıktısını alır.
☂ 6 ° C
Düzenli olarak cronjob yoluyla güncelleme yapıyorum ve çıktıları tepsi durumumda kullanıyorum.
Kimliğinizi yahoocom / news / weather adresinden alın. İstediğiniz konumun yerini değiştirin ve URL’de kimlik arayın (ör. URL yahoocom / news / weather / almanya / kuzey-rhine-westachusetts / bielefeld-20066057 ise ID 20066057'dir).
XML daha fazla alan içerir, yani verileri tahmin etme, rüzgâr vb. - isterseniz bunları da ayrıştırabilirsiniz.
Maalesef bazı hava sembolleri Ubuntufont'ta temsil edilmez… ayarlamaktan çekinmeyin.
İşte betiğim (Bielefeld'de yaşamıyorsanız 20066057'yi kimliğinizle değiştirin) - bash, curl ve xmllint'e bağlıdır.
#!/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
benim için tamir etmeye geçme , Ubuntu 18.04
Bir yol daha var.
.Bashrc dosyanızı açın ve sonra bu kodu en altına yapıştırın
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; }
.bashrc
Dosyanızı kaydedip kapatın ve bash'ı güncellemek için aşağıdaki komutu çalıştırın:
. .bashrc
daha sonra W
büyük harf yazın
.bashrc
Dosyanızı "kaynaklandırırsanız" yeniden tanımlamanız gerekmez . source .bashrc
. .bashrc
Accuweather curl çözümü oldukça iyi olmasına rağmen daha fazla bilgi içeren bir şeye ihtiyacım vardı, bu yüzden weather.com sitesinden sonraki 4 saat için bilgi alan basit bash betiği oluşturdum. Önceki örnekte olduğu gibi, konumunuz için bağlantıyı değiştirmeniz gerekir.
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;
Tam komut dosyası şu adreste bulunur: 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.]
İşte nasıl kullanılacağı:
$ 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.
Bunun arkasındaki hikaye geliştiriciden.