Cuaca dari terminal

66

Saya ingin mencari cuaca saat ini dari kota tertentu atau lokasi saya dari terminal. Apakah ada aplikasi cuaca baris perintah?

Avinash Raj
sumber

Jawaban:

135

Masukkan saja yang berikut di terminal:

curl wttr.in

Dan akan mendapatkan lokasi Anda dari /etc/timezone. Jika tidak curl wttr.in/your_location. Misalnya, untuk Teheran:

curl wttr.in/tehran

Yang memberi Anda:

Output sampel

Anda juga dapat membandingkan dua kota:

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

Kode sumber pengembang tersedia di Github .

K-LIMA
sumber
2
Jauh lebih baik!
Zachary Dahan
2
github.com/schachmat/wego tidak buruk untuk devskita
Timo
menyukainya, tetapi kali ini melakukan kesalahan: Maaf, kami kehabisan pertanyaan ke layanan cuaca saat ini. Kami akan mendapatkan pertanyaan baru sesegera mungkin.
Doyousketch2
17

Cari kota Anda di http://www.accuweather.com dan ganti URL dalam skrip berikut dengan URL untuk kota Anda:

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

Output sampel:

Berlin, Germany: Foggy, 1°
Florian Diesch
sumber
Tapi bagaimana cara mengubahnya ke Celcius
dat tutbrus
Di html sumber, saya melihat 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"});. Menggunakan kode Anda, awkpemisah lapangan '' (space). Apakah $12(suhu) kolom ke-12?
Timo
Salahku, awkseparatornya '. Api menggunakan 2 angka, yang pertama adalah postleitzahlatau kode pos. Yang kedua tampaknya menjadi nomor kode api
Timo
1
Tidak bekerja lagi, telah Accuweather API berubah?
Timo
14

Saya punya satu cara lagi.

Buka .bashrcFile dan kemudian paste kode ini di bagian bawah

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

Kemudian simpan & tutup .bashrcfile Anda .

sekarang ketik bashuntuk memperbarui file.

lalu ketik

weather <location name>

sebagai contoh

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
rɑːdʒɑ
sumber
1
Bagus dengan ramalan cuaca. +1 dari saya.
souravc
Ini tidak lagi berfungsi, tanggal terakhir yang ditampilkan adalah dari Mei 2015 (setidaknya untuk Cape Town, Afrika Selatan). Pemeriksaan lebih dekat dari output xml mengungkapkan induk txt_forecast belum diperbarui sejak Mei 2015 sedangkan elemen simpleforecast tampaknya memiliki data terbaru.
Zahir J
Saya akan memperbarui jawaban saya
rɑːdʒɑ
Ganti YOUZIPORLOCATION dengan $ 1 jika Anda ingin cuaca <nama lokasi> berfungsi
Ed Neville
Ketika saya ganti YOUZIPORLOCATIONdengan $1dan lulus 20001(Washington, DC kode pos), saya mendapatkan garis yang tampak tidak terformat seperti Today: Mostly sunny and breezy. Highs in the upper 30s. Northwest winds 20 to 25 mph with gusts up to 45 mph.Ketika saya gunakan "washington.dc", saya mendapatkan output tabel May 4, 2015: Clear. High 32&amp;deg;C (89&amp;deg;F). Winds 43 kph East. Adakah yang tahu mengapa bedanya?
blalterman
14

Berikut ini adalah utilitas baris perintah semi-grafis yang ditulis dalam Go:

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

Anda harus menginstal Go dan mengatur beberapa hal API, tetapi petunjuknya ada di sana. Berikut contoh foto:

masukkan deskripsi gambar di sini

jojo
sumber
5
Ini sedang dihosting secara publik sekarang - dengan alamat IP ke pemetaan wilayah. Coba: curl -4 wttr.in
jschrab
2
@ jschrab: Dan sebenarnya Anda tidak perlu -4. curl wttr.insudah cukup
Igor Chubin
Unit metrik juga tersedia pada versi yang dihosting secara publik, seperti:curl wttr.in/Helsinki?m
Ville
6

Coba gunakan

telnet rainmaker.wunderground.com

sumber
1
Ini tampaknya hanya AS?
Vladimir Panteleev
5

Pertama, Anda perlu menginstal paket penggunaan cuaca, untuk melakukannya cukup tekan Ctrl+ Alt+ Tpada keyboard Anda untuk membuka Terminal. Saat terbuka, jalankan perintah di bawah ini:

sudo apt-get install weather-util

Anda akan memerlukan kode cuaca lokal Anda .

Setelah instalasi, Anda dapat menjalankan weather -i <code>. Kode yang Anda dapatkan dari tautan di atas. Untuk daftar opsi yang tersedia, Anda dapat menjalankan weatherInfo cuaca

Mitch
sumber
1
itu menunjukkan Last updated Dec 11, 2013 - 07:00 AM EST / 2013.12.11 1200 UTC Temperature: 86 F (30 C). tidak ada cara untuk mengetahui cuaca saat ini.
Avinash Raj
Tergantung pada lokasi Anda yang bisa menjadi info saat ini yang tersedia.
Mitch
1
Saya baru saja mencoba ini dan menemukan bahwa lebih mudah digunakan sekarang: weather YOURLOCATIONNAMEIa mencari lokasi Anda saat itu dan memberikan kemungkinan banyak hasil. Dari ini Anda dapat membaca pengidentifikasi stasiun yang dapat Anda gunakan sebagai argumen untuk mengambil informasi cuaca Anda dari
Nicolas
Sepertinya layanan yang bergantung padanya telah dihentikan. Saya baru saja menginstal versi 2.0, dan weather LAX(yang akan menunjukkan cuaca untuk Bandara Internasional Los Angeles) menunjukkan kesalahan 404 untuk cuaca.noaa.gov/pub/data/observations/metar/decoded/KNKX.TXT
Keith Thompson
1
File data tertentu telah dipindahkan dari sini ke sini . Seharusnya dimungkinkan untuk memperbarui file data, mengubah setiap kemunculan http://weather.noaa.gov/pub/datamenjadi http://tgftp.nws.noaa.gov/data. UPDATE: Sepertinya mereka sudah memperbaikinya di versi 2.1, yang bisa Anda dapatkan dari situs proyek .
Keith Thompson
5

ansiweather

AnsiWeather adalah skrip Shell untuk menampilkan kondisi cuaca saat ini di terminal Anda, dengan dukungan untuk warna ANSI dan simbol Unicode. Data cuaca berasal dari API cuaca bebas 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

pengguna782355
sumber
2

juga sebuah program yang datang pra-instal dengan ubuntu yang disebut inxi akan memberi Anda semua jenis statistik di komputer Anda dan itu menghasilkan output cuaca.

perintah: inxi --help

perintah: inxi -w

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

perintah: 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
infinitim4tr1x
sumber
Tampaknya inxi bukan bagian dari ubuntu, pada 10,04, tetapi dapat diinstal dengansudo apt install inxi
Starbuck
Ya, inxitersedia tetapi Anda harus mengaktifkan repositori semesta terlebih dahulu.
mchid
2

Anda dapat membandingkan kota menggunakan:

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

seperti yang diilustrasikan dalam jawaban pilihan teratas. wttr.injuga membuat layar "percikan" yang bagus setiap kali Anda membuka terminal. Lakukan ini dengan menambahkannya ke ~/.bashrcfile Anda . Saya telah melakukan itu untuk memasukkan informasi Cuaca, Tanggal, Waktu dan Distribusi sebagaimana terinci dalam jawaban ini: Bagaimana saya bisa mendapatkan layar splash terminal ini?

Bash Splash di Windows 10.png

Maaf saya di Ubuntu di Windows 10 WSL untuk Spring 2018 pembaruan ketika saya menangkap gambar ini. Berjanji aku akan segera kembali ke Ubuntu di Linux.

WinEunuuchs2Unix
sumber
2

Untuk hasil cuaca yang lebih singkat, http://weather.tuxnet24.de menyediakan data cuaca dari Yahoo! dalam format teks dan xml.

Para fild dari XML kemudian dapat diperoleh dengan parser XML seperti xmllint.

Saya menulis skrip ambil-cuaca q & d, yang mendapatkan suhu saat ini dan deskripsi cuaca, lalu menyimpan simbol unicode yang sesuai dengan deskripsi dan menampilkannya seperti

☂ 6 ° C

Saya secara teratur memperbarui melalui cronjob dan kemudian menggunakan output dalam status baki saya.

Dapatkan ID Anda di yahoocom / news / weather. Ubah lokasi ke lokasi yang Anda inginkan dan cari ID di URL (yaitu jika URL adalah yahoocom / news / weather / germany / north-rhine-westphalia / bielefeld-20066057 ID adalah 20066057).

XML berisi bidang lebih lanjut, yaitu data perkiraan, angin dll. - Anda dapat menguraikannya juga, jika Anda mau.

Sayangnya beberapa simbol cuaca tidak terwakili di Ubuntufont ... jangan ragu untuk menyesuaikan.

Inilah skrip saya (ganti 20066057 dengan ID Anda jika Anda tidak tinggal di Bielefeld) - tergantung pada bash, curl, dan 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";
kai-dj
sumber
kesalahan redirection tak terduga
Philip Kirkbride
Beralih shebang ke perbaikan #!/usr/bin/env bashuntuk saya, Ubuntu 18.04
Philip Kirkbride
2

Saya punya satu cara lagi.

Buka file .bashrc Anda dan tempel kode ini di bagian bawah

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

Simpan & tutup .bashrcfile Anda dan jalankan perintah berikut untuk memperbarui bash:

. .bashrc 

lalu ketik Whuruf besar

sergkog
sumber
bash: W: command not found
Setelah mengedit .bashrc relogin
sergkog
Anda tidak harus login ulang jika "sumber" .bashrcfile Anda . Anda dapat menjalankan: source .bashrcatau Anda dapat menjalankan ini sebagai gantinya:. .bashrc
mchid
0

Meskipun solusi curl accuweather cukup bagus saya membutuhkan sesuatu yang lebih informatif, jadi saya membuat skrip bash sederhana yang menarik info selama 4 jam berikutnya dari situs web weather.com. Seperti pada contoh sebelumnya Anda harus memodifikasi tautan untuk lokasi Anda.

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;

Skrip lengkap berada di: https://sites.google.com/site/wozoopalinux/home/wzbash001/get-weather-information-from-command-line-for-next-4-hrs

wozoopa
sumber
0

Meteogram dari semua kota walikota di dunia

finger [email protected]

$ finger [email protected]

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

Berikut ini cara menggunakannya:

$ finger [email protected]

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 [email protected] 

 Advanced usage:

 * finger o:<city name>@graph.no (a one-line forecast)
   Example: finger o:[email protected] 

 * finger ^<city name>@graph.no (Imperial units)
   Example: finger ^[email protected] 

 * finger <city name>[email protected] (forecast from 5 hrs ahead in time (max:26))
   Example: finger [email protected] 

 * finger <city name>[email protected] (set screen width)
   Example: finger [email protected] 

 * finger <city name>%[email protected] (forecast for every second hour [Norway])
   Example: finger oslo%[email protected] 

 * finger <post code>@graph.no (norwegian weather forecast)
   Example: finger [email protected] 

 Other: 

 * finger [email protected] (latest headlines from NRK)
 * finger [email protected] (server local time)
 * finger [email protected] (server local date)
 * finger [email protected] (contact information)

International names comes from http://fil.nrk.no/yr/viktigestader/verda.txt.

The cerita di balik ini dari pengembang.

Serge Stroobandt
sumber