81 votes

Météo du terminal

Je veux trouver l'actuel météo d'une ville particulière ou de mon emplacement depuis le terminal. Existe-t-il une application météo en ligne de commande ?

6voto

Mitch Points 102545

Tout d'abord, vous devez installer le paquet weather-util, pour ce faire, appuyez simplement sur Ctrl + Alt + T sur votre clavier pour ouvrir le Terminal. Lorsqu'il s'ouvre, exécutez la ou les commandes ci-dessous :

sudo apt-get install weather-util

Vous aurez besoin de votre code météo local .

Après l'installation, vous pouvez exécuter weather -i <code> . Le code que vous obtenez à partir du lien ci-dessus. Pour obtenir une liste des options disponibles, vous pouvez exécuter weather Infos météo

6voto

Essayez d'utiliser

telnet rainmaker.wunderground.com

5voto

Jason Points 11

Il existe également un programme préinstallé avec Ubuntu, appelé Inxi, qui vous donne tous les types de statistiques sur votre ordinateur et qui fait une sortie météo.

commande : inxi --help

commande : inxi -w

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

commande : 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

2voto

sergkog Points 21

J'ai un autre moyen.

Ouvrez votre fichier .bashrc et collez ce code en bas de page

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

Sauvegardez et fermez votre .bashrc et exécutez la commande suivante pour mettre à jour bash :

. .bashrc 

puis tapez W majuscule

2voto

kai-dj Points 258

Pour une sortie météo encore plus courte http://weather.tuxnet24.de fournit les données météorologiques de Yahoo ! en format texte et xml.

Les fichiers du XML peuvent ensuite être obtenus à l'aide d'un analyseur XML comme xmllint, par exemple.

J'ai écrit un q&d weather-fetch script, qui obtient la température actuelle et la description du temps, puis stocke un symbole unicode correspondant à la description et le sort comme suit

6°C

Je mets régulièrement à jour via cronjob et utilise ensuite la sortie dans mon statut de plateau.

Obtenez votre ID sur yahoocom/news/weather. Changez d'emplacement et recherchez l'ID dans l'URL (par exemple, si l'URL est yahoocom/news/weather/germany/north-rhine-westphalia/bielefeld-20066057, l'ID est 20066057).

Le XML contient d'autres champs, par exemple les données de prévision, le vent, etc. - vous pouvez également les analyser, si vous le souhaitez.

Malheureusement, certains symboles météorologiques ne sont pas représentés dans la police Ubuntufont n'hésitez pas à les adapter.

Voici mon script (remplacez 20066057 par votre ID si vous ne vivez pas à Bielefeld) - dépend de bash, curl et 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";

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X