在 Linux 终端中获取新闻提要

Linux 中的终端是一个强大的工具。 你可以在其中做任何事情,当我说任何事情时,我的意思是 任何事物. 您可以做的一件很酷的事情是在终端中获取新闻提要。 而且它非常轻量级,考虑到我们只是修改我们的 bashrc 文件来实现这一点。 太好了,让我们开始吧!

安装 curl 和 jq

我们需要像这样的工具 curl 和 Jq 从 JSON API 获取提要。 根据您的发行版,通过在终端中键入以下命令将这些安装到您的操作系统中。

对于基于 Ubuntu 的系统:

sudo apt update && sudo apt -y install curl jq 

对于 Arch Linux 和基于 Arch 的发行版:

sudo pacman -S curl jq 

为了 Fedora 工作站:

sudo dnf install curl jq 

在 NewsAPI 上注册

为了获取新闻,我们必须首先获得我们自己的个人 API。 前往 NewsAPI 的官方网站并使用电子邮件和安全密码进行注册。

在 NewsAPI 上注册

完成注册后,登录并回家。 从那里,单击“获取 API 密钥”。 复制文本字符串并将其粘贴到安全的地方。 不要与任何人分享此信息,因为这可能会被用来冒充您。 现在我们准备好编写脚本了。

备份 BashRC 并修改脚本

首先,让我们备份当前的 bashrc 文件以防万一。 让我们使用 cp 命令复制这个文件:

cp ~/.bashrc ~/bashrc.bak 

在终端中,通过键入以下命令,在首选文本编辑器(vim 或 nano)中打开主目录中的 .bashrc 文件:

vim ~/.bashrc 

要么

nano ~/.bashrc 

如果您在 Vim 中,请按 i 进入插入模式。 导航到底部并复制粘贴以下脚本:

getnews () {   curl https://newsapi.org/v2/top-headlines -s -G    -d sources=$1    -d apiKey=YOUR_API_KEY     | jq -r '.articles[] | .title, .url, .description, ""'   }    topnews () {    tput setaf 3; printf "News from the BBC:n"    tput setaf 6; getnews bbc-news    tput setaf 3; printf "News from The Hindu:n"    tput setaf 6; getnews the-hindu    tput setaf 3; printf "News from Time:n"    tput setaf 6; getnews time    tput setaf 3; printf "Top News from India:n"    tput setaf 6; getnews the-times-of-india  } 
我的新闻自定义代码(没有 API 密钥),它也更新了我的系统。

更换 YOUR_API_KEY 使用您之前从 NewsAPI 网站获得的自己的 API 密钥。

按 Ctrl+O 将文件保存在 纳米 并按 Ctrl+X 退出。

在 Vim 文本编辑器中,按退出键进入可视模式,然后键入 :wq 保存并退出。

Linux 终端中的流媒体新闻

现在,重新启动终端或键入以下命令 bash 识别我们更新的 bashrc 文件:

source .bashrc 

最后,在终端中键入此命令并查看输出:

topnews 
Topnews 命令的输出topnews 命令的输出

在行 | jq -r '.articles[] | .title, .url, .description, ""' 您还可以添加如下字段 .content, .author 分别获取小内容和作者的名字,但我觉得它使终端混乱,所以我没有将它添加到我的代码中。 您也可以选择删除 .url 要么 .description 如果您觉得它使终端杂乱无章,因此您可以获得头条新闻。 不要忘记用逗号 (,) 分隔这些字段。

按 Ctrl 键,然后单击新闻 URL 以在 Web 浏览器中打开文章。

您还可以选择更改输出的颜色(使用指定的 tput setaf 代码中的命令)通过根据本文中提到的图表更改数字。

接下来,您还可以更改新闻来源以从您首选的媒体渠道获取新闻。 NewsAPI 提供了大量的新闻网站供您选择。 添加 getnews <news-source> 到上面的代码。 来源是:

新闻来源 网站 新闻来源 网站
abc-news-au 美国广播公司新闻(澳大利亚) 美国有线电视新闻网 美国有线电视新闻网
科技技术 技术工坊 ESPN ESON
美联社 美联社 espn-cric-信息 ESPN Cric 信息
axios 爱讯 谷歌新闻 谷歌新闻
看台报告 看台报告 黑客新闻 黑客新闻
英国广播公司的新闻 英国广播公司的新闻 登录 IGN
英国广播公司体育 英国广播公司体育 今日医学新闻 今日医学新闻
图片 图片 mtv新闻 音乐电视新闻
彭博社 彭博社 国家地理 国家地理
赫芬顿邮报 赫芬顿邮报 新科学家 新科学家
商业内幕 商业内幕 纽约杂志 纽约杂志
嗡嗡声 Buzfeed reddit-r-所有 Reddit r/全部
有线 有线 副新闻 副新闻
时间 时间 华盛顿邮报 华盛顿邮报
华尔街日报 华尔街日报 边缘 边缘
技术雷达 技术雷达 路透社 路透社
印度教 印度教 电报 电讯报
印度时代 印度时报 每日邮件 每日邮件

各种网站的新闻来源

我们只提到了几个来源,因为它们有很多。 您可以前往 https://newsapi.org/sources 并根据您居住的国家/地区复制粘贴“源 ID”。

概括

您还可以通过键入独立地从各个来源获取文章 getnews <news-source> 在终端太。 希望本文能帮助您了解您所在国家和世界的最新新闻事件。