Tôi muốn tìm thời tiết hiện tại của một thành phố cụ thể hoặc vị trí của tôi từ nhà ga. Có bất kỳ ứng dụng thời tiết dòng lệnh?
Tôi muốn tìm thời tiết hiện tại của một thành phố cụ thể hoặc vị trí của tôi từ nhà ga. Có bất kỳ ứng dụng thời tiết dòng lệnh?
Câu trả lời:
Chỉ cần nhập thông tin sau vào một thiết bị đầu cuối:
curl wttr.in
Và sẽ nhận được vị trí của bạn từ /etc/timezone
. Nếu không curl wttr.in/your_location
. Ví dụ: đối với Tehran:
curl wttr.in/tehran
Cung cấp cho bạn:
Bạn cũng có thể so sánh hai thành phố:
diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )
Mã nguồn của nhà phát triển có sẵn trên Github .
devs
giữa chúng ta
Tìm kiếm thành phố của bạn tại http://www.accuweather.com và thay thế URL trong tập lệnh sau bằng URL cho thành phố của bạn:
#!/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
Đầu ra mẫu:
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"});
. Sử dụng mã của bạn, awk
dấu phân cách trường là '' (dấu cách). Là $12
(nhiệt độ) cột thứ 12?
awk
dải phân cách là '
. Api sử dụng 2 số, số đầu tiên là postleitzahl
hoặc mã zip. Số thứ hai dường như là số mã api
Tôi đã có thêm một cách.
Mở .bashrc
tệp của bạn và sau đó dán mã này ở dưới cùng
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"';}
Sau đó lưu và đóng .bashrc
tệp của bạn .
Bây giờ gõ bash
để cập nhật các tập tin.
sau đó gõ
weather <location name>
ví dụ
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
bằng $1
và vượt qua 20001
(mã zip Washington, DC), tôi nhận được các dòng trông không được định dạng như Today: Mostly sunny and breezy. Highs in the upper 30s. Northwest winds 20 to 25 mph with gusts up to 45 mph.
Khi tôi sử dụng "washington.dc"
, tôi nhận được đầu ra bảng May 4, 2015: Clear. High 32&deg;C (89&deg;F). Winds 43 kph East
. Bất cứ ý tưởng tại sao sự khác biệt?
Đây là một tiện ích dòng lệnh bán đồ họa tuyệt vời được viết bằng Go:
https://github.com/schachmat/wego/
Bạn sẽ cần cài đặt Go và thiết lập một số công cụ API, nhưng hướng dẫn là có. Đây là một bức ảnh mẫu:
curl wttr.in
là đủ
curl wttr.in/Helsinki?m
Trước tiên, bạn cần cài đặt gói thời tiết, để làm điều đó chỉ cần nhấn Ctrl+ Alt+ Ttrên bàn phím để mở Terminal. Khi nó mở, chạy (các) lệnh bên dưới:
sudo apt-get install weather-util
Bạn sẽ cần mã thời tiết địa phương của bạn .
Sau khi cài đặt, bạn có thể chạy weather -i <code>
. Mã bạn nhận được từ liên kết ở trên. Để biết danh sách các tùy chọn khả dụng, bạn có thể chạy weather
Thông tin thời tiết
Last updated Dec 11, 2013 - 07:00 AM EST / 2013.12.11 1200 UTC Temperature: 86 F (30 C)
không có cách nào để biết thời tiết hiện tại.
weather YOURLOCATIONNAME
Nó tìm kiếm vị trí của bạn sau đó và cung cấp nhiều kết quả. Từ những điều này, bạn có thể đọc mã định danh trạm mà bạn có thể sử dụng làm đối số để lấy thông tin thời tiết của mình từ
weather LAX
(sẽ hiển thị thời tiết cho Sân bay Quốc tế Los Angeles) hiển thị lỗi 404 cho thời tiết.noaa.gov / pub / data / observations / metar / decoding / KBNX.TXT
http://weather.noaa.gov/pub/data
thành http://tgftp.nws.noaa.gov/data
. CẬP NHẬT: Có vẻ như họ đã sửa nó trong phiên bản 2.1, mà bạn có thể nhận được từ trang web của dự án .
ansiweather
AnsiWeather là tập lệnh Shell để hiển thị các điều kiện thời tiết hiện tại trong thiết bị đầu cuối của bạn, với sự hỗ trợ cho màu ANSI và ký hiệu Unicode. Dữ liệu thời tiết đến từ API thời tiết miễn phí 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 ☔
cũng là một chương trình được cài đặt sẵn với ubfox có tên là inxi sẽ cung cấp cho bạn tất cả các loại số liệu thống kê trên máy tính của bạn và nó có đầu ra thời tiết.
lệnh: inxi - trợ giúp
lệnh: inxi -w
Conditions: 82 F (28 C) - Clear Time: May 13, 10:52 AM CDT
lệnh: 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
có sẵn nhưng bạn cần kích hoạt kho vũ trụ trước.
Bạn có thể so sánh các thành phố bằng cách sử dụng:
diff -Naur <(curl -s http://wttr.in/london ) <(curl -s http://wttr.in/new-york )
như được minh họa trong câu trả lời được bình chọn hàng đầu. wttr.in
cũng tạo ra một màn hình "giật gân" tuyệt vời mỗi khi bạn mở thiết bị đầu cuối. Làm điều này bằng cách thêm nó vào ~/.bashrc
tập tin của bạn . Tôi đã thực hiện điều đó để bao gồm thông tin về Thời tiết, Ngày, Thời gian và Phân phối như chi tiết trong câu trả lời này: Làm thế nào tôi có thể có được màn hình giới thiệu thiết bị đầu cuối này?
Xin lỗi tôi đã có trong Ubuntu trong bản cập nhật Windows 10 WSL cho mùa xuân 2018 khi tôi chụp ảnh này. Hứa sẽ sớm khởi động lại vào Ubuntu trong Linux.
Đối với sản lượng thời tiết thậm chí ngắn hơn http://weather.tuxnet24.de cung cấp dữ liệu thời tiết từ Yahoo! ở định dạng văn bản và xml.
Các fild từ XML sau đó có thể thu được bằng trình phân tích cú pháp XML như xmllint tức là.
Tôi đã viết một kịch bản tìm nạp thời tiết, lấy nhiệt độ và mô tả thời tiết hiện tại, sau đó lưu trữ một biểu tượng unicode tương ứng với mô tả và xuất ra nó như thế nào
6 ° C
Tôi thường xuyên cập nhật qua cronjob và sau đó sử dụng đầu ra trong trạng thái khay của mình.
Nhận ID của bạn tại yahoocom / tin tức / thời tiết. Thay đổi vị trí thành vị trí mong muốn của bạn và tìm ID trong URL (ví dụ: nếu URL là yahoocom / news / Weather / đức / bắc-rhine-westphalia / bielefeld-20066057 thì ID là 20066057).
XML chứa các trường xa hơn, tức là dữ liệu dự báo, gió, v.v. - bạn cũng có thể phân tích chúng, nếu bạn muốn.
Thật không may, một số biểu tượng thời tiết không được thể hiện trong Ubuntufont, hãy thoải mái điều chỉnh.
Đây là tập lệnh của tôi (thay thế 20066057 bằng ID của bạn nếu bạn không sống ở Bielefeld) - phụ thuộc vào bash, curl và 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
sửa lỗi cho tôi, Ubuntu 18.04
Tôi đã có thêm một cách.
Mở tệp .bashrc của bạn và sau đó dán mã này ở dưới cùng
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; }
Lưu và đóng .bashrc
tệp của bạn và chạy lệnh sau để cập nhật bash:
. .bashrc
sau đó nhập W
chữ hoa
.bashrc
tệp của mình . Bạn có thể chạy: source .bashrc
hoặc bạn có thể chạy cái này thay vào đó:. .bashrc
Mặc dù giải pháp curuw accuweather khá tốt nhưng tôi cần một cái gì đó nhiều thông tin hơn, vì vậy tôi đã tạo ra tập lệnh bash đơn giản để lấy thông tin cho 4 giờ tiếp theo từ trang web Weather.com. Như trong ví dụ trước, bạn phải sửa đổi liên kết cho vị trí của bạ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;
Toàn bộ tập lệnh được đặt tại: https://sites.google.com/site/wozoopalinux/home/wzbash001/get-weather-inif-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.]
Đây là cách sử dụng nó:
$ 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.
Các câu chuyện đằng sau này từ các nhà phát triển.