2018年1月

目标:使用 Linux 命令行显示天气预报。

发行版:所有 Linux 发行版。

要求:能连上因特网的 Linux

难度:容易

约定:

  • # - 需要使用 root 权限来执行指定命令,可以直接使用 root 用户来执行也可以使用 sudo 命令
  • $ - 可以使用普通用户来执行指定命令

简介

无需打开网页浏览器就能直接从终端获取最新的天气预报那该多方便啊,对吧?你还能把它写成脚本,或者设置定义定时任务。

http://wttr.in 是一个允许你搜索世界各地天气预报的网站,而且它的是以 ASCII 字符的形式来显示结果的。通过使用 cURL 访问 http://wttr.in,就能直接在终端显示查询结果了。

获取所在地的天气

Local weather from wttr.in

要抓取所在地的天气情况非常简单。wttr.in 会自动根据 IP 地址来探测你的所在地。除非你用了 VPN,否则它的精度还不错。

$ curl wttr.in

获取指定城市的天气

Weather by city from wttr.in

你可以通过在 wttr.in 后加上斜杠和城市名称的方式来获得其他城市的天气情况。不过要把名字中的空格替换成 +

$ curl wttr.in/New+York

你也可以以 Unix 时区的形式来填写城市名称。

$ curl wttr.in/New_York

不要直接使用空格,否则会出现奇怪而不准确的结果。

获取机场天气

Weather by airport from wttr.in

若你对地区的三位机场代号很熟悉,你也可以使用机场代号来查询天气。一般来说使用机场要比使用城市更贴近你,而且更精确一些。

$ curl wttr.in/JFK

猜测所在地

Weather by landmark from wttr.in

通过使用 ~ 字符,你可以让 wttr.in 通过地标来猜测天气情况。

$ curl wttr.in/~Statue+Of+Liberty

域名所在地的天气

Weather by domain name from wttr.in

你想不想知道 LinuxConfig 托管地的天气?现在有一个方法可以知道!wttr.in 可以通过域名获取天气。是的,这个功能可能不那么实用,但这很有趣啊。

$ curl wttr.in/@linuxconfig.org

更改温度单位

Change unit system in wttr.in

默认情况下,wttr.in 会根据你的实际地址来决定显示哪种温度单位(C 还是 F)。基本上,在美国,使用的是华氏度,而其他地方显示的是摄氏度。你可以指定显示的温度单位,在 URL 后添加 ?u 会显示华氏度,而添加 ?m 会显示摄氏度。

$ curl wttr.in/New_York?m

$ curl wttr.in/Toronto?u

在 ZSH 上有一个很奇怪的 bug,会使得这两条语句不能正常工作,如果你需要更换单位,恐怕需要改成使用 Bash 了。

总结

你可以很方便地在脚本,定时任务,甚至 MOTD(LCTT 译注:Message Of The Day - 每日消息)中访问 wttr.in。当然,你完全没有必要这么做。当你需要查看天气预报的时候只需要访问一下这个超棒的网站就行了。


via: https://linuxconfig.org/get-your-weather-forecast-from-the-linux-cli

作者:Nick Congleton 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Vim 和 Emacs 对于 Linux 桌面上进行文本编辑显然是重量级的,但是它们并非唯一之选。

Emacs 和 Vim 的粉丝们,在你们开始编辑器之争之前,请你们理解,这篇文章并不是为了贬低诸位最喜欢的编辑器。我是一个 Emacs 爱好者,但是也很喜欢 Vim。

就是说,我认为 Emacs 和 Vim 并不适合所有人。也许 编辑器之争 略显幼稚,让很多人失望了。也许他们只是想要有一个不太苛刻的现代化的编辑器。

如果你正寻找可以替代 Emacs 或者 Vim 的编辑器,请继续阅读下去。这里有三个可能会让你感兴趣的编辑器。

Geany

 title=

你可以用 Geany 编辑 LaTeX 文档

Geany 是一个古老的编辑器,当我还在过时的硬件上运行轻量级 Linux 发行版的时候,Geany 就是一个优秀的的编辑器。Geany 开始用于我的 LaTeX 编辑,但是很快就成为我所有的文本编辑的编辑器了。

尽管 Geany 号称是轻量且快速的 IDE(集成开发环境),但是它绝不仅仅是一个技术人的工具。Geany 轻便快捷,即便是在一个过时的机器或是 运行 Linux 的 Chromebook 也能轻松运行起来。无论是从编辑配置文件到维护任务列表或日志,从写文章或书籍到编写代码和脚本,Geany 都能轻松胜任。

插件 给 Geany 带来一些额外的魅力。这些插件拓展了 Geany 的功能,让你编码或是处理一些标记语言变得更高效,帮助你处理文本,甚至做拼写检查。

Atom

 title=

使用 Atom 编辑网页

在文本编辑器领域,Atom 后来居上。很短的时间内,Atom 就获得了一批忠实的追随者。

Atom 的定制功能让其拥有如此的吸引力。如果有一些技术癖好,你完全可以在这个编辑器上随意设置。如果你不仅仅是沉迷技术,Atom 也有 一些主题 ,你可以用来更改编辑器外观。

千万不要低估 Atom 数以千计的 拓展包。它们能在不同功能上拓展 Atom,能根据你的爱好把 Atom 转化成合适的文本编辑器或是开发环境。Atom 不仅为程序员提供服务。它同样是适用于 作家的文本编辑器

Xed

 title=

使用 Xed 编辑文章

可能对用户体验来说,Atom 和 Geany 略显臃肿。也许你只想要一个轻量级,一个不要太简陋也不要有太多很少使用的特性的编辑器,如此看来,Xed 正是你所期待的。

如果 Xed 你看着眼熟,那是因为它是 MATE 桌面环境中 Pluma 编辑器上的分支。我发现相比于 Pluma,Xed 可能速度更快一点,响应更灵敏一点——不过,因人而异吧。

虽然 Xed 没有那么多的功能,但也不至于太糟。它有扎实的语法高亮,略强于一般的搜索替换和拼写检查功能以及单窗口编辑多文件的选项卡式界面。

其他值得发掘的编辑器

我不是 KDE 痴,当我工作在 KDE 环境下时, KDevelop 就已经是我深度工作时的首选了。它很强大而且灵活,又没有过大的体积,很像 Genany。

虽然我还没感受过对它的喜爱,但是我认识的几个人都用 Brackets 感受到了。它很强大,而且不得不承认它的 拓展 真的很实用。

被称为 “开发者的编辑器” 的 Notepadqq ,总让人联想到 Notepad++。虽然它的发展仍处于早期阶段,但至少它看起来还是很有前景的。

对于那些只有简单的文本编辑器需求的人来说,GeditKate 相比是极好的。它绝不是太过原始的编辑器——它有足够完成大型文本编辑的功能。无论是 Gedit 还是 Kate 都以速度和易上手而称名。

你有其他 Emacs 和 Vim 之外的挚爱编辑器么?方便的话留言分享。


via: https://opensource.com/article/17/9/3-alternatives-emacs-and-vim

作者:Scott Nesbitt 译者:CYLeft 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

曾经,我尝试过搜索一种简单的可以在 Android 上运行 Linux 的方法。我当时唯一的意图只是想使用 Linux 以及一些基本的应用程序,比如 SSH,Git,awk 等。要求的并不多!我不想 root 我的 Android 设备。我有一台平板电脑,主要用于阅读电子书、新闻和少数 Linux 博客。除此之外也不怎么用它了。因此我决定用它来实现一些 Linux 的功能。在 Google Play 商店上浏览了几分钟后,一个应用程序瞬间引起了我的注意,勾起了我实验的欲望。如果你也想在 Android 设备上运行 Linux,这个应用可能会有所帮助。

Termux - 在 Android 和 Chrome OS 上运行的 Android 终端模拟器

Termux 是一个 Android 终端模拟器以及提供 Linux 环境的应用程序。跟许多其他应用程序不同,你无需 root 设备也无需进行设置。它是开箱即用的!它会自动安装好一个最基本的 Linux 系统,当然你也可以使用 APT 软件包管理器来安装其他软件包。总之,你可以让你的 Android 设备变成一台袖珍的 Linux 电脑。它不仅适用于 Android,你还能在 Chrome OS 上安装它。

Termux 提供了许多重要的功能,比您想象的要多。

  • 它允许你通过 openSSH 登录远程服务器。
  • 你还能够从远程系统 SSH 到 Android 设备中。
  • 使用 rsync 和 curl 将您的智能手机通讯录同步到远程系统。
  • 支持不同的 shell,比如 BASH、ZSH,以及 FISH 等等。
  • 可以选择不同的文本编辑器来编辑/查看文件,支持 Emacs、Nano 和 Vim。
  • 使用 APT 软件包管理器在 Android 设备上安装你想要的软件包。支持 Git、Perl、Python、Ruby 和 Node.js 的最新版本。
  • 可以将 Android 设备与蓝牙键盘、鼠标和外置显示器连接起来,就像是整合在一起的设备一样。Termux 支持键盘快捷键。
  • Termux 支持几乎所有 GNU/Linux 命令。

此外通过安装插件可以启用其他一些功能。例如,Termux:API 插件允许你访问 Android 和 Chrome 的硬件功能。其他有用的插件包括:

  • Termux:Boot - 设备启动时运行脚本
  • Termux:Float - 在浮动窗口中运行 Termux
  • Termux:Styling - 提供配色方案和支持 Powerline 的字体来定制 Termux 终端的外观。
  • Termux:Task - 提供一种从任务栏类的应用中调用 Termux 可执行文件的简易方法。
  • Termux:Widget - 提供一种从主屏幕启动小脚本的建议方法。

要了解更多有关 termux 的信息,请长按终端上的任意位置并选择“帮助”菜单选项来打开内置的帮助部分。它唯一的缺点就是需要 Android 5.0 及更高版本。如果它支持 Android 4.x 和旧版本的话,将会更有用的多。你可以在 Google Play 商店F-Droid 中找到并安装 Termux。

要在 Google Play 商店中安装 Termux,点击下面按钮。

若要在 F-Droid 中安装,则点击下面按钮。

你现在知道如何使用 Termux 在 Android 设备上使用 Linux 了。你有用过其他更好的应用吗?请在下面留言框中留言。我很乐意也去尝试他们!

此致敬礼!

相关资源:


via: https://www.ostechnix.com/termux-run-linux-android-devices-no-rooting-required/

作者:SK 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

 title=

通过 iftopnethogsvnstat 详细了解你的网络连接状态。

你可以通过这三个 Linux 命令了解当前网络的大量信息。iftop 通过进程号跟踪网络连接,nethogs 快速告知你哪些进程在占用你的带宽,而 vnstat 以一个良好的轻量级守护进程在后台运行,并实时记录你的网络使用情况。

iftop

令人称赞的 iftop 可以监听您指定的网络接口,并以 top 的样式呈现。

这是一个不错的小工具,可以用于找出网络拥塞,测速和维持网络流量总量。看到自己到底在用多少带宽往往是非常惊人的,尤其是对于我们这些仍然记得电话线路、调制解调器,“高速”到令人惊叫的 kb 和实时波特率的老人们。我们在很久之前就不再使用波特率,转而钟情于比特率。波特率用于衡量信号变化,尽管有时候与比特率相同,但大多数情况下并非如此。

如果你只有一个网络接口,直接运行 iftop 即可。不过 iftop 需要 root 权限:

$ sudo iftop

如果你有多个网络接口,那就指定你要监控的接口:

$ sudo iftop -i wlan0

就像 top 命令一样,你可以在命令运行时更改显示选项:

  • h 切换帮助界面。
  • n 是否解析域名。
  • s 切换源地址的显示,d 则切换目的地址的显示。
  • S 是否显示端口号。
  • N 是否解析端口;若关闭解析则显示端口号。
  • t 切换文本显示界面。默认的显示方式需要 ncurses。我个人认为图 1 的显示方式在组织性和可读性都更加良好。
  • p 暂停显示更新。
  • q 退出程序。

 title=

图 1:组织性和可读性良好的文本显示。

当你切换显示设置的时候,iftop 并不会中断监测流量。当然你也可以单独监测一台主机。而这需要该主机的 IP 地址和子网掩码。现在,我很好奇 Pandora(LCTT 译注:一家美国的电台公司)能给我贫瘠的带宽带来多大的负载。因此我首先使用 dig 命令找到他们的 IP 地址:

$ dig A pandora.com
[...]
;; ANSWER SECTION:
pandora.com.            267     IN      A       208.85.40.20
pandora.com.            267     IN      A       208.85.40.50

那子网掩码呢?ipcalc 会告诉我们:

$ ipcalc -b 208.85.40.20
Address:   208.85.40.20   
Netmask:   255.255.255.0 = 24
Wildcard:  0.0.0.255  
=>
Network:   208.85.40.0/24 

现在,将 IP 地址和子网掩码提供给 iftop

$ sudo iftop -F 208.85.40.20/24 -i wlan0

很棒的不是么?而我也很惊奇地发现,Pandora 在我的网络上,每小时大约使用 500kb。并且就像大多数流媒体服务一样,Pandora 的流量在迅速增长,并依靠缓存稳定下来。

你可以使用 -G 选项对 IPv6 地址执行相同的操作。查阅友好的 man 可以帮助你了解 iftop 的其他功能,包括使用个人配置文件自定义你的默认选项,以及使用自定义过滤(请参阅 PCAP-FILTER 来获取过滤指南)。

nethogs

当你想要快速了解是谁在吸取你的带宽的时候,nethogs 是个快速而简单的方法。你需要以 root 身份运行并指定要监听的接口。它会给你显示大量的应用程序及其进程号,所以如果你想的话,你可以借此杀死任一进程。

$ sudo nethogs wlan0

nethogs version 0.8.1

PID USER   PROGRAM              DEV    SENT   RECEIVED       
7690 carla /usr/lib/firefox     wlan0 12.494 556.580 KB/sec
5648 carla .../chromium-browser wlan0  0.052   0.038 KB/sec
TOTAL                                 12.546 556.618 KB/sec 

nethogs 并没有多少选项:在 kb/s、kb、b、mb之间循环,按接收和发送的数据包排序,调整刷新延迟。具体请看man nethogs,或者是运行 nethogs -h

vnstat

vnstat是最容易使用的网络数据收集工具。它十分轻量并且不需要 root 权限。它以守护进程在后台运行,因此可以实时地记录你的网络数据。单个 vnstat 命令就可以显示所累计的数据。

$ vnstat -i wlan0
Database updated: Tue Oct 17 08:36:38 2017

   wlan0 since 10/17/2017

          rx:  45.27 MiB      tx:  3.77 MiB      total:  49.04 MiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       Oct '17     45.27 MiB |    3.77 MiB |   49.04 MiB |    0.28 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated        85 MiB |       5 MiB |      90 MiB |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today     45.27 MiB |    3.77 MiB |   49.04 MiB |   12.96 kbit/s
     ------------------------+-------------+-------------+---------------
     estimated       125 MiB |       8 MiB |     133 MiB |

默认情况下它会显示所有的网络接口。使用 -i 选项来选择某个接口。也可以像这样合并多个接口的数据:

$ vnstat -i wlan0+eth0+eth1

你可以通过这几种方式过滤数据显示:

  • -h 按小时显示统计信息。
  • -d 按天显示统计信息.
  • -w-m 分别按周和月份来显示统计信息。
  • 使用 -l 选项查看实时更新。

以下这条命令将会删除 wlan1 的数据库并不再监视它:

$ vnstat -i wlan1 --delete

而下面这条命令将会为你的一个网络接口创建一个别名。这个例子使用了 Ubuntu 16.04 的一个有线接口名称:

$ vnstat -u -i enp0s25 --nick eth0

默认情况下,vnstat 会监视 eth0。你可以在 /etc/vnstat.conf 对它进行修改,或者在你的家目录下创建你自己的个人配置文件。请参阅 man vnstat 以获取完整的指南。

你也可以安装 vnstati 来创建简单的彩图(图 2):

$ vnstati -s -i wlx7cdd90a0a1c2 -o vnstat.png

 title=

图 2:你可以使用vnstati来创建简单的彩图。

请参阅 man vnstati 以获取完整的选项。

欲了解 Linux 的更多信息,可以通过学习 Linux 基金会和 edX 的免费课程,“Linux 入门”


via: https://www.linux.com/learn/intro-to-linux/2017/10/3-simple-excellent-linux-network-monitors

作者:CARLA SCHRODER 译者:KeyLD 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

本文解释了 “ERROR Cannot fetch deployment URL via curl:Couldn't resolve host。The given remote host was not resolved。” 的原因及其解决方案。

ERROR Cannot fetch deployment URL via curl:Couldn't resolve host。The given remote host was not resolved。

check_mk 是一个帮你配置 nagios 监控服务器的工具。然后在配置其中一台机器时,我遇到了下面的错误:

ERROR Cannot fetch deployment URL via curl:Couldn't resolve host。The given remote host was not resolved。

该错误是在我使用下面命令尝试将该机器注册到监控服务器时发生的:

root@kerneltalks# /usr/bin/cmk-update-agent register -s monitor.kerneltalks.com -i master -H `hostname` -p http -U omdadmin -S ASFKWEFUNSHEFKG -v 

其中:

  • -s 指明监控服务器
  • -i 指定服务器上 Check\_MK 站点的名称
  • -H 指定 agent 所在的主机名
  • -p 为协议,可以是 http 或 https (默认为 https)
  • -U 允许下载 agent 的用户 ID
  • -S 为密码。用户的自动操作密码(当是自动用户时)

从错误中可以看出,命令无法解析监控服务器的 DNS 名称 monitor.kerneltalks.com

解决方案:

超级简单。检查 /etc/resolv.conf,确保你的 DNS 配置正确。如果还解决不了这个问题那么你可以直接在 /etc/hosts 中指明它的 IP。

root@kerneltalks# cat /etc/hosts
10.0.10.9 monitor.kerneltalks.com

这就搞定了。你现在可以成功注册了。

root@kerneltalks # /usr/bin/cmk-update-agent register -s monitor.kerneltalks.com -i master -H `hostname` -p http -U omdadmin -S ASFKWEFUNSHEFKG -v
Going to register agent at deployment server
Successfully registered agent for deployment.
You can now update your agent by running 'cmk-update-agent -v'
Saved your registration settings to /etc/cmk-update-agent.state.

另外,你也可以为 -s 直接指定 IP 地址,就没那么多事了!


via: https://kerneltalks.com/troubleshooting/check_mk-register-cannot-fetch-deployment-url-via-curl-error/

作者:kerneltalks 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

启动项目、组建社区支持可能会比较复杂,但是这个全新的指南可以帮助你开启开源项目。

各种规模的组织、技术人员和 DecOps 工作者选择使用开源项目,甚至去开发自己的开源项目,开源程序变得越来越普遍。从 Google 到 Netflix 再到 Facebook ,这些公司都在将它们的开源创作发布到开源社区。经常见到起于内部的开源项目,然后受惠于外部开发人员的合作开发。

然而,开启一个开源项目、组建社区支持比你想的还要复杂。一些前期准备可以帮助事情开展变得顺利,这就是这个全新的“启动开源项目指南”所能为你做的。

这个免费指南是为了帮助那些深谙开源的组织启动自己的开源项目而诞生。在本文的开始,介绍包括了决定开源什么项目,预计项目费用,考虑开源协议和一些其他方面。开源项目这种方式可能源自国外,但是从 Google 到 Facebook 这样一些主要的开源公司都已经开放提供了开源项目指导资源。事实上,Google 拥有的丰富的在线资源对开源项目实践和启动开源项目上做出了贡献。

Capital One 开源社区经理 Jared Smith 指出,“无论公司在内雇佣了多少聪明人,总还是有聪明人在公司之外”, “我们发现开放我们的源代码给外面世界的专业且愿意分享的人士交流经验是非常值得的,我们能从中获取一些非常好的建议”。

在这个新指南中,开源专家 Ibrahim Haddad 提供了五条关于一个组织为什么要开源新项目的原因:

  1. 促成开放式问题解决方案;为标准提供参照实现;分担战略功能的开发开销。
  2. 商品化市场;减少非战略的软件成本费用。
  3. 通过建立产品生态来驱动需求。
  4. 协同合作;吸引客户;深化共同目标间的关系。
  5. 提供用户自我支持的能力:无需等待即可调整代码

本文指出:“做出发布或创建一个新的开源项目的决定和自身境况相关。你的公司应该在使用或贡献既有的开源项目上拥有一定程度的熟练度。这是因为消费能够指导你,通过外部工程使开发者对自己的产品构建变得省力(参见我们的指南使用开源代码加入开源社区 上)。但是当一旦你顺利的参与过开源,那这将是启动你自己的开源项目的最佳时机。”

该指南还指出, 规划可以使您和您的组织摆脱法律麻烦。如果您希望您的项目蓬勃发展, 则与许可、分发、支持选项甚至品牌相关的问题都需要提前考虑。

“我认为, 对于一家公司来说, 至关重要的是要考虑他们希望通过新的开源项目实现的目标,” Linux 基金会的项目管理主任 John Mertic 说。"他们必须考虑它对社区和开发者的价值,以及他们希望从中得到什么结果。然后, 他们必须了解所有的部分,以正确的方式去完成,包括法律、治理、基础设施和一个启动社区。当你把一个开源项目放在那里时,我总是最强调这些。”

这个“启动开源项目指南”可以帮助您了解从许可证问题到最佳开发实践的所有内容,并探讨如何无缝地将现有的开放组件编织到您的开源项目中。它是来自 Linux 基金会和 TODO 组的免费指南的新集合之一,对于任何运作开源程序的组织来说都非常有价值。现在可以使用该指南来帮助您运行开源计划办公室,以支持、分享和利用开源。有了这样一个办公室, 组织就可以有效地建立并执行其开放源码战略,并有明确的条款。

这些免费的教程是基于开源领导人的经验而来。在这里可以查看所有指南,然后关注我们的后续文章。

也别错过了本系列早些的文章:


via: https://www.linuxfoundation.org/blog/launching-open-source-project-free-guide/

作者:Sam Dean 译者:CYLeft 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出