टर्मिनल से मौसम


65

मैं किसी विशेष शहर के वर्तमान मौसम या टर्मिनल से अपने स्थान का पता लगाना चाहता हूं । क्या कोई कमांड-लाइन मौसम ऐप है?

जवाबों:


134

बस एक टर्मिनल में निम्नलिखित दर्ज करें:

curl wttr.in

और से अपना लोकेशन प्राप्त कर लेगा /etc/timezone। नहीं तो curl wttr.in/your_location। उदाहरण के लिए, तेहरान के लिए:

curl wttr.in/tehran

जो आपको देता है:

नमूना उत्पादन

आप दो शहरों की तुलना भी कर सकते हैं:

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

डेवलपर का स्रोत कोड Github पर उपलब्ध है


2
बेहतर तरीका!
ज़ाचरी दहन

2
github.com/schachmat/wegodevs हमारे बीच खराब नहीं है
टिमो

यह पसंद है, लेकिन इस बार यह एक त्रुटि है: क्षमा करें, हम इस समय मौसम सेवा के प्रश्नों से बाहर चल रहे हैं। हमें जल्द से जल्द नए प्रश्न मिलेंगे।
डॉयसकेट 2

17

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°

लेकिन मैं इसे Celcius में कैसे
बदलूं

स्रोत HTML में, मैं देख रहा हूँ 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"});। अपने कोड का उपयोग करके, awkक्षेत्र विभाजक '' (स्थान) है। क्या $12(तापमान) 12 वां स्तंभ है?
टिमो

मेरी गलती है, awkविभाजक है '। एपीआई 2 नंबरों का उपयोग करता है, पहला वाला postleitzahlया जिपकोड है। दूसरा एपी कोड नंबर लगता है
टिमो

1
अब काम नहीं करता है, क्या Accuweather API बदल गया है?
टिमो

14

मुझे एक और रास्ता मिल गया है।

अपनी .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"';}

फिर अपनी .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

1
मौसम के पूर्वानुमान के साथ अच्छा लगा। मुझ से +1।
स्मारिका

यह अब काम नहीं करता है, यह आखिरी तारीख जो दिखाता है वह मई 2015 (केप टाउन, दक्षिण अफ्रीका के लिए कम से कम) से है। Xml आउटपुट की क्लोज़र परीक्षा से पता चलता है कि txt_forecast पैरेंट को मई 2015 से अपडेट नहीं किया गया है जबकि सिंपलफ़ॉस्ट तत्व में नवीनतम डेटा है।
ज़हीर जे

मैं अपना जवाब अपडेट करूंगा
rɑːdʒɑ

यदि आप मौसम <स्थान का नाम> काम करना चाहते हैं तो $ 1 के साथ YouZIPORLOCATION बदलें
Ed Neville

जब मैं बदलने के YOUZIPORLOCATIONसाथ $1और पारित 20001(वाशिंगटन, डीसी ज़िपकोड), मैं लाइनों कि अस्वरूपित देखो की तरह मिलता है Today: Mostly sunny and breezy. Highs in the upper 30s. Northwest winds 20 to 25 mph with gusts up to 45 mph.जब मैं का उपयोग करें "washington.dc", मैं मेज आउटपुट प्राप्त May 4, 2015: Clear. High 32&amp;deg;C (89&amp;deg;F). Winds 43 kph East। किसी भी विचार क्यों अंतर?
ब्लेटरमैन

14

यहाँ एक महान अर्ध-ग्राफिकल कमांड लाइन उपयोगिता गो में लिखी गई है:

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

आपको गो स्थापित करने और कुछ एपीआई सामान सेटअप करने की आवश्यकता होगी, लेकिन निर्देश वहां हैं। यहाँ एक नमूना तस्वीर है:

यहाँ छवि विवरण दर्ज करें


5
यह अब सार्वजनिक रूप से होस्ट किया जा रहा है - आईपी एड्रेस से रीजन मैपिंग के साथ। कोशिश करें: कर्ल -4 wttr.in
jschrab

2
@jschrab: और आपको वास्तव में -4 की आवश्यकता नहीं है। curl wttr.inपर्याप्त है
इगोर चुबिन

मीट्रिक इकाइयां सार्वजनिक रूप से होस्ट किए गए संस्करण पर भी उपलब्ध हैं, जैसे:curl wttr.in/Helsinki?m
विले


5

सबसे पहले आप मौसम-util पैकेज स्थापित करने के लिए, कि सिर्फ प्रेस करने की जरूरत है Ctrl+ Alt+ Tटर्मिनल खोलने के लिए अपने कीबोर्ड पर। जब यह खुलता है, तो नीचे कमांड चलाएँ:

sudo apt-get install weather-util

आपको अपने स्थानीय मौसम कोड की आवश्यकता होगी ।

स्थापना के बाद आप चला सकते हैं weather -i <code>। ऊपर दिए गए लिंक से आपको जो कोड मिलेगा। उपलब्ध विकल्पों की सूची के लिए, आप मौसम की जानकारी चला सकते हैंweather


1
यह दर्शाता है Last updated Dec 11, 2013 - 07:00 AM EST / 2013.12.11 1200 UTC Temperature: 86 F (30 C)। वर्तमान मौसम को जानने का कोई तरीका नहीं है।
अविनाश राज

आपके स्थान के आधार पर जो वर्तमान जानकारी उपलब्ध हो सकती है।
मिच

1
मैंने बस यह कोशिश की और पता चला कि अब weather YOURLOCATIONNAMEइसका उपयोग करना आसान है: यह आपके स्थान की खोज करता है और संभवतः कई परिणाम प्रदान करता है। इन से आप स्टेशन पहचानकर्ता है जो आप से अपने मौसम जानकारियां लाने के लिए तर्क के रूप में उपयोग कर सकते हैं पढ़ सकते हैं
निकोलस

ऐसा लगता है कि जिस सेवा पर यह निर्भर करता है उसे बंद कर दिया गया है। मैंने अभी संस्करण 2.0 स्थापित किया है, और weather LAX(जिसे लॉस एंजिल्स अंतर्राष्ट्रीय हवाई अड्डे के लिए मौसम दिखाना चाहिए) मौसम के लिए 404 त्रुटि दिखाता है। noaa.gov/pub/data/obsifications/metar/decoded/KNKX.TXT
कीथ थॉम्पसन

1
वह विशेष डेटा फ़ाइल यहाँ से यहाँ तक चली गई है । डेटा फ़ाइलों को अपडेट करना संभव होना चाहिए, की प्रत्येक घटना को बदलते http://weather.noaa.gov/pub/dataहुए http://tgftp.nws.noaa.gov/data। अद्यतन: ऐसा लगता है कि वे पहले से ही इसे 2.1 संस्करण में तय कर चुके हैं, जिसे आप परियोजना स्थल से प्राप्त कर सकते हैं ।
कीथ थॉम्पसन

5

ansiweather

AnsiWeather अपने टर्मिनल में वर्तमान मौसम की स्थिति को प्रदर्शित करने के लिए एक शेल स्क्रिप्ट है, जिसमें एएनएसआई रंग और यूनिकोड प्रतीकों का समर्थन है। मौसम डेटा 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


2

यह भी एक प्रोग्राम है जो 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

ऐसा लगता है कि inxi ubuntu का हिस्सा नहीं है, जैसा कि 10.04 है, लेकिन इसके साथ स्थापित किया जा सकता हैsudo apt install inxi
Starbuck

हां, inxiउपलब्ध है, लेकिन आपको पहले ब्रह्मांड भंडार को सक्षम करने की आवश्यकता है।
mchid

2

आप शहरों का उपयोग करके तुलना कर सकते हैं:

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

जैसा कि शीर्ष-मतदान जवाब में दिखाया गया है। wttr.inहर बार जब आप टर्मिनल खोलते हैं तो एक शानदार "स्प्लैश" स्क्रीन भी बनाते हैं। इसे अपनी ~/.bashrcफ़ाइल में जोड़कर करें । मैंने मौसम, तिथि, समय और वितरण की जानकारी को इस उत्तर में विस्तृत रूप से शामिल करने के लिए किया है: मैं इस टर्मिनल स्प्लैश स्क्रीन को कैसे प्राप्त कर सकता हूं?

विंडोज 10.png में बैश स्पलैश

क्षमा करें, जब मैंने इस छवि को कैप्चर किया तो मैं स्प्रिंग 10 2018 अपडेट के लिए विंडोज 10 डब्ल्यूएसएल में उबंटू में था। वादा करता हूं जल्द ही लिनक्स में उबंटू में वापस आऊंगा।


2

छोटे मौसम आउटपुट के लिए भी http://weather.tuxnet24.de याहू से मौसम का डेटा प्रदान करता है! पाठ और xml प्रारूप में।

XML से छननी तब xmllint जैसे XML पार्सर के साथ प्राप्त की जा सकती है।

मैंने एक q & d मौसम-लिपि स्क्रिप्ट लिखी है, जिसमें मौसम का वर्तमान तापमान और विवरण मिलता है, फिर एक यूनिकोड प्रतीक को विवरण के अनुसार संग्रहीत करता है और इसे आउटपुट करता है

C 6 ° से

मैं नियमित रूप से क्रोनजोब के माध्यम से अपडेट करता हूं और फिर अपनी ट्रे स्थिति में आउटपुट का उपयोग करता हूं।

अपनी आईडी yahoocom / समाचार / मौसम पर प्राप्त करें। अपने इच्छित स्थान पर स्थान बदलें और URL में ID देखें (अर्थात यदि URL yahoocom / news / weather / germany / North-rhine-westphalia / bielefeld-20066057 आईडी 20066057 है)।

XML में आगे के क्षेत्र, यानी पूर्वानुमान डेटा, हवा आदि शामिल हैं - आप उन्हें पार्स कर सकते हैं, यदि आप चाहें, तो भी।

दुर्भाग्य से कुछ मौसम प्रतीकों Ubuntufont में प्रतिनिधित्व नहीं कर रहे हैं ... समायोजित करने के लिए स्वतंत्र महसूस हो रहा है।

यहाँ मेरी स्क्रिप्ट (20066057 को अपनी आईडी से बदलें अगर आप बीलेफ़ेल्ड में नहीं रहते हैं) - बैश, कर्ल और ज़ेलिंट पर निर्भर करता है।

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

पुनर्निर्देशन अप्रत्याशित त्रुटि
फिलिप किर्कब्राइड

शेबंग को #!/usr/bin/env bashमेरे लिए तय करना, उबंटू 18.04
फिलिप किर्कब्राइड

2

मुझे एक और रास्ता मिल गया है।

अपनी .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; }

अपनी .bashrcफ़ाइल को सहेजें और बंद करें और bash अपडेट करने के लिए निम्न कमांड चलाएँ:

. .bashrc 

फिर Wऊपरी मामला टाइप करें


bash: W: कमांड नहीं मिली

बाद संपादित .bashrc दोबारा लॉगिन
sergkog

यदि आपको अपनी .bashrcफ़ाइल को "स्रोत" करने की आवश्यकता नहीं है, तो आपको फिर से कॉल करने की आवश्यकता नहीं है । आप चला सकते हैं: source .bashrcया आप इसके बजाय इसे चला सकते हैं:. .bashrc
mchid

0

हालांकि accuweather कर्ल समाधान बहुत अच्छा है मुझे कुछ अधिक जानकारी की आवश्यकता थी, इसलिए मैंने सरल बैश स्क्रिप्ट बनाई जो अगले 4 दिनों के लिए जानकारी को खींचती है। पिछले उदाहरण के अनुसार आपको अपने स्थान के लिए लिंक को संशोधित करना होगा।

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

दुनिया के सभी मेयर शहरों का मेटोग्राम

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.

इसके पीछे की कहानी डेवलपर की है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.