mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
commit
a733896d00
@ -1,6 +1,6 @@
|
||||
如何使用 Quagga BGP(边界网关协议)路由器来过滤 BGP 路由
|
||||
================================================================================
|
||||
在[之前的文章][1]中,我们介绍了如何使用 Quagga 将 CentOS 服务器变成一个 BGP 路由器,也介绍了 BGP 对等体和前缀交换设置。在本教程中,我们将重点放在如何使用**前缀列表**和**路由映射**来分别控制数据注入和数据输出。
|
||||
在[之前的文章][1]中,我们介绍了如何使用 Quagga 将 CentOS 服务器变成一个 BGP 路由器,也介绍了 BGP 对等体和前缀交换设置。在本教程中,我们将重点放在如何使用**前缀列表(prefix-list)**和**路由映射(route-map)**来分别控制数据注入和数据输出。
|
||||
|
||||
之前的文章已经说过,BGP 的路由判定是基于前缀的收取和前缀的广播。为避免错误的路由,你需要使用一些过滤机制来控制这些前缀的收发。举个例子,如果你的一个 BGP 邻居开始广播一个本不属于它们的前缀,而你也将错就错地接收了这些不正常前缀,并且也将它转发到网络上,这个转发过程会不断进行下去,永不停止(所谓的“黑洞”就这样产生了)。所以确保这样的前缀不会被收到,或者不会转发到任何网络,要达到这个目的,你可以使用前缀列表和路由映射。前者是基于前缀的过滤机制,后者是更为常用的基于前缀的策略,可用于精调过滤机制。
|
||||
|
||||
@ -36,15 +36,15 @@
|
||||
|
||||
上面的命令创建了名为“DEMO-FRFX”的前缀列表,只允许存在 192.168.0.0/23 这个前缀。
|
||||
|
||||
前缀列表的另一个牛X功能是支持子网掩码区间,请看下面的例子:
|
||||
前缀列表的另一个强大功能是支持子网掩码区间,请看下面的例子:
|
||||
|
||||
ip prefix-list DEMO-PRFX permit 192.168.0.0/23 le 24
|
||||
|
||||
这个命令创建的前缀列表包含在 192.168.0.0/23 和 /24 之间的前缀,分别是 192.168.0.0/23, 192.168.0.0/24 and 192.168.1.0/24。运算符“le”表示小于等于,你也可以使用“ge”表示大于等于。
|
||||
这个命令创建的前缀列表包含在 192.168.0.0/23 和 /24 之间的前缀,分别是 192.168.0.0/23, 192.168.0.0/24 和 192.168.1.0/24。运算符“le”表示小于等于,你也可以使用“ge”表示大于等于。
|
||||
|
||||
一个前缀列表语句可以有多个允许或拒绝操作。每个语句都自动或手动地分配有一个序列号。
|
||||
|
||||
如果存在多个前缀列表语句,则这些语句会按序列号顺序被依次执行。在配置前缀列表的时候,我们需要注意在所有前缀列表语句后面的**隐性拒绝**属性,就是说凡是不被明显允许的,都会被拒绝。
|
||||
如果存在多个前缀列表语句,则这些语句会按序列号顺序被依次执行。在配置前缀列表的时候,我们需要注意在所有前缀列表语句之后是**隐性拒绝**语句,就是说凡是不被明显允许的,都会被拒绝。
|
||||
|
||||
如果要设置成允许所有前缀,前缀列表语句设置如下:
|
||||
|
||||
@ -81,7 +81,7 @@
|
||||
probability Match portion of routes defined by percentage value
|
||||
tag Match tag of route
|
||||
|
||||
如你所见,路由映射可以匹配很多属性,本教程需要匹配一个前缀。
|
||||
如你所见,路由映射可以匹配很多属性,在本教程中匹配的是前缀。
|
||||
|
||||
route-map DEMO-RMAP permit 10
|
||||
match ip address prefix-list DEMO-PRFX
|
||||
@ -163,7 +163,7 @@
|
||||
|
||||
可以看到,router-A 有4条路由前缀到达 router-B,而 router-B 只接收3条。查看一下范围,我们就能知道只有被路由映射允许的前缀才能在 router-B 上显示出来,其他的前缀一概丢弃。
|
||||
|
||||
**小提示**:如果接收前缀内容没有刷新,试试重置下 BGP 会话,使用这个命令:clear ip bgp neighbor-IP。本教程中命令如下:
|
||||
**小提示**:如果接收前缀内容没有刷新,试试重置下 BGP 会话,使用这个命令:`clear ip bgp neighbor-IP`。本教程中命令如下:
|
||||
|
||||
clear ip bgp 192.168.1.1
|
||||
|
||||
@ -193,9 +193,9 @@ via: http://xmodulo.com/filter-bgp-routes-quagga-bgp-router.html
|
||||
|
||||
作者:[Sarmed Rahman][a]
|
||||
译者:[bazz2](https://github.com/bazz2)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://xmodulo.com/author/sarmed
|
||||
[1]:http://xmodulo.com/centos-bgp-router-quagga.html
|
||||
[1]:https://linux.cn/article-4609-1.html
|
@ -6,19 +6,17 @@ Linux 的历史:24 年,一步一个脚印
|
||||
|
||||
### 史前 ###
|
||||
|
||||
没有 [C 编程语言][1] and [GNU 项目][2] - Linux 环境,也就不可能有 Linux 的成功。
|
||||
没有 [C 编程语言][1] 和 [GNU 项目][2] 构成 Linux 环境,也就不可能有 Linux 的成功。
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/00-1.jpg)
|
||||
|
||||
*Ken Thompson 和 Dennis Ritchie*
|
||||
|
||||
Ken Thompson 和 Dennis Ritchie
|
||||
|
||||
[Ken Thompson][1] 和 [Dennis Ritchie][2] 在 1969-1970 创造了 Unix 操作系统。之后发布了新的 [C 编程语言][3] - 高级可移植编程语言。 Linux 内核用 C 和一些汇编代码写成。
|
||||
|
||||
[Ken Thompson][1] 和 [Dennis Ritchie][2] 在 1969-1970 创造了 Unix 操作系统。之后发布了新的 [C 编程语言][3],它是一种高级的、可移植的编程语言。 Linux 内核用 C 和一些汇编代码写成。
|
||||
|
||||
![Richard Matthew Stallman](https://github.com/paulcarroty/Articles/raw/master/Linux_24/00-2.jpg)
|
||||
|
||||
Richard Matthew Stallman
|
||||
*Richard Matthew Stallman*
|
||||
|
||||
[Richard Matthew Stallman][4] 在 1984 年启动了 [GNU 项目][5]。最大的一个目标 - 完全自由的类-Unix 操作系统。
|
||||
|
||||
@ -26,9 +24,9 @@ Richard Matthew Stallman
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1991-1.jpg)
|
||||
|
||||
Linus Torvalds, 1991
|
||||
*Linus Torvalds, 1991*
|
||||
|
||||
[Linus Torvalds][5] 在芬兰赫尔辛基开始了 Linux 内核开发 - 为他的硬件 - Intel 30386 CPU 编写程序。他也使用 Minix 和 GNU C 编译器。下面是 Linus Torvalds 给 Minix 新闻组的历史消息:
|
||||
[Linus Torvalds][5] 在芬兰赫尔辛基开始了 Linux 内核开发,他是为他的硬件 - Intel 30386 CPU 编写的程序。他也使用 Minix 和 GNU C 编译器。下面是 Linus Torvalds 给 Minix 新闻组的历史消息:
|
||||
|
||||
> From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
|
||||
> Newsgroups: comp.os.minix
|
||||
@ -55,7 +53,7 @@ Linus Torvalds, 1991
|
||||
>
|
||||
> Linus (torvalds@kruuna.helsinki.fi)
|
||||
|
||||
从此之后,Linux 开始得到了世界范围志愿者和专业专家的支持。Linus 的合作者 Ari Lemmke 把它命名为 “Linux” - 大学服务器项目上的目录名称。
|
||||
从此之后,Linux 开始得到了世界范围志愿者和专业专家的支持。Linus 的同事 Ari Lemmke 把它命名为 “Linux” - 这其实是他们的大学 ftp 服务器上的项目目录名称。
|
||||
|
||||
### 1992 ###
|
||||
|
||||
@ -67,13 +65,13 @@ Linus Torvalds, 1991
|
||||
|
||||
![Slackware 1.0 ](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1993-1.png)
|
||||
|
||||
第一次发布 Slackware(译者注:Slackware Linux 是一个高度技术性的,干净的发行版,只有少量非常有限的个人设置) – 相同主导者 Patrick Volkerding 最老的 Linux 发行版。Linux 内核有 100 多个开发者。
|
||||
Slackware 首次发布(LCTT 译注:Slackware Linux 是一个高度技术性的、干净的发行版,只有少量非常有限的个人设置) – 最早的 Linux 发行版,其领导者 Patrick Volkerding 也是最早的。其时,Linux 内核有 100 多个开发者。
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1993-2.png)
|
||||
|
||||
Debian
|
||||
*Debian*
|
||||
|
||||
Debian – 1991 年创立了最大的 Linux 社区之一。
|
||||
Debian – 最大的 Linux 社区之一也创立于 1991 年。
|
||||
|
||||
### 1994 ###
|
||||
|
||||
@ -81,201 +79,201 @@ Linux 1.0 发布了,多亏了 XFree 86 项目,第一次有了 GUI。
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1994-1.png)
|
||||
|
||||
Red Hat Linux
|
||||
*Red Hat Linux*
|
||||
|
||||
发布 Red Hat Linux 1.0
|
||||
发布了 Red Hat Linux 1.0
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1994-2.png)
|
||||
|
||||
S.u.S.E Linux
|
||||
*S.u.S.E Linux*
|
||||
|
||||
和 [S.u.S.E. Linux][6] 1.0.
|
||||
和 [S.u.S.E. Linux][6] 1.0。
|
||||
|
||||
### 1995 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1995-1.png)
|
||||
|
||||
Red Hat Inc.
|
||||
*Red Hat Inc.*
|
||||
|
||||
Bob Yound 和 Marc Ewing 合并他们的本地业务为 [Red Hat Software][7]。Linux 移植到了很多硬件平台。
|
||||
Bob Young 和 Marc Ewing 合并他们的本地业务为 [Red Hat Software][7]。Linux 移植到了很多硬件平台。
|
||||
|
||||
### 1996 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1996-1.png)
|
||||
|
||||
### Tux ###
|
||||
*Tux*
|
||||
|
||||
企鹅 Tux - Linux 官方吉祥物。Linus Torvalds 参观了堪培拉国家动物园和水族馆之后有了这个想法。发布了 Linux 2.0,支持对称多处理器。开始开发 KDE。
|
||||
企鹅 Tux 是 Linux 官方吉祥物,Linus Torvalds 参观了堪培拉国家动物园和水族馆之后有了这个想法。发布了 Linux 2.0,支持对称多处理器。开始开发 KDE。
|
||||
|
||||
### 1997 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1997-1.jpg)
|
||||
|
||||
Miguel de Icaza
|
||||
*Miguel de Icaza*
|
||||
|
||||
Miguel de Icaza 和 Federico Mena 开始开发 GNOME - 自由桌面环境和应用程序。Linus Torvalds 赢得了 Linux 商标冲突,Linux 成为了 Linus 的注册商标。
|
||||
Miguel de Icaza 和 Federico Mena 开始开发 GNOME - 自由桌面环境和应用程序。Linus Torvalds 赢得了 Linux 商标冲突官司,Linux 成为了 Linus Torvalds 的注册商标。
|
||||
|
||||
### 1998 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1998-1.jpg)
|
||||
|
||||
大教堂和集市
|
||||
*大教堂和集市*
|
||||
|
||||
Eric S. Raymond 出版了文章 [The Cathedral and the Bazaar][8](大教堂和集市) - 非常推荐阅读。Linux 得到了大公司的支持: IBM、Oracle、康柏。
|
||||
Eric S. Raymond 出版了文章 [The Cathedral and the Bazaar(大教堂和集市)][8] - 高度推荐阅读。Linux 得到了大公司的支持: IBM、Oracle、康柏。
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/1998-2.png)
|
||||
|
||||
Mandrake Linux
|
||||
*Mandrake Linux*
|
||||
|
||||
首次发布 Mandrake Linux - 基于红帽 Linux 带 K 桌面环境的发行版。
|
||||
Mandrake Linux 首次发布 - 基于红帽 Linux 的发行版,带有 KDE 桌面环境。
|
||||
|
||||
### 1999 ###
|
||||
|
||||
![](https://upload.wikimedia.org/wikipedia/commons/4/4f/KDE_1.1.jpg)
|
||||
|
||||
第一个主要的 KDE 发行版。
|
||||
第一个主要的 KDE 版本。
|
||||
|
||||
### 2000 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2000-1.jpg)
|
||||
|
||||
Dell 支持 Linux - 第一个大的硬件供应商。
|
||||
Dell 支持 Linux - 这是第一个支持的大硬件供应商。
|
||||
|
||||
### 2001 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2001-1.jpg)
|
||||
|
||||
Revolution OS
|
||||
*Revolution OS*
|
||||
|
||||
纪录片 “Revolution OS”(译者注:操作系统革命) - GNU、Linux、开源、自由软件的 20 年历史,以及 Linux 和开源界最好骇客的采访。
|
||||
纪录片 “Revolution OS(操作系统革命)” - GNU、Linux、开源、自由软件的 20 年历史,以及对 Linux 和开源界顶级黑客的采访。
|
||||
|
||||
### 2002 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2002-1.jpg)
|
||||
|
||||
BitKeeper
|
||||
*BitKeeper*
|
||||
|
||||
Linux 开始使用 BitKeeper - 分布式版本控制专用软件。
|
||||
Linux 开始使用 BitKeeper,这是一种商业版的分布式版本控制软件。
|
||||
|
||||
### 2003 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2003-1.png)
|
||||
|
||||
SUSE
|
||||
*SUSE*
|
||||
|
||||
Novell 用 210 美元购买了 SUSE Linux AG。2003 年也开始了 SCO 集团,IBM、以及 Linux 社区关于 Unix 版权的史诗般战役。
|
||||
Novell 用 2.1 亿美元购买了 SUSE Linux AG。同年 SCO 集团 也开始了同 IBM 以及 Linux 社区关于 Unix 版权的艰难的法律诉讼。
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2003-2.png)
|
||||
|
||||
Fedora
|
||||
*Fedora*
|
||||
|
||||
红帽和 Linux 社区第一次发布了 Fedora Linux。
|
||||
红帽和 Linux 社区首次发布了 Fedora Linux。
|
||||
|
||||
### 2004 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2004-1.png)
|
||||
|
||||
X.ORG 基金会
|
||||
*X.ORG 基金会*
|
||||
|
||||
XFree86 解散了并加入到 [X.Org 基金会][9], X 的开发更快了。
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2004-2.jpg)
|
||||
|
||||
Ubuntu 4.10 – 第一次发布
|
||||
Ubuntu 4.10 – Ubuntu 首次发布
|
||||
|
||||
### 2005 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2005-1.png)
|
||||
|
||||
openSUSE
|
||||
*openSUSE*
|
||||
|
||||
开始了 [openSUSE][10] - 企业版 Novell’s OS 的免费版本。OpenOffice.org 开始支持 OpenDocument 标准。
|
||||
[openSUSE][10] 开始了,这是企业版 Novell’s OS 的免费版本。OpenOffice.org 开始支持 OpenDocument 标准。
|
||||
|
||||
### 2006 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2006-1.png)
|
||||
|
||||
新的 Linux 发行版 - 基于红帽企业版 Linux 的 Oracle Linux。微软和 Novell 开始在 IT 和专利保护方面进行合作。
|
||||
一个新的 Linux 发行版,基于红帽企业版 Linux 的 Oracle Linux。微软和 Novell 开始在 IT 和专利保护方面进行合作。
|
||||
|
||||
### 2007 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2007-1.jpg)
|
||||
|
||||
Dell Linux 笔记本
|
||||
*Dell Linux 笔记本*
|
||||
|
||||
Dell 发布了预安装 Linux 的笔记本。
|
||||
Dell 发布了第一个预装 Linux 的笔记本。
|
||||
|
||||
### 2008 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2008-1.jpg)
|
||||
|
||||
KDE 4.0
|
||||
*KDE 4.0*
|
||||
|
||||
在不稳定的情况下发布了 KDE 4,很多用户开始迁移到 GNOME。
|
||||
KDE 4 发布了,但是不稳定,很多用户开始迁移到 GNOME。
|
||||
|
||||
### 2009 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2009-1.jpg)
|
||||
|
||||
Red Hat
|
||||
*Red Hat*
|
||||
|
||||
红帽 Linux 的成功 - 市值 2亿6千2百万美元。
|
||||
红帽 Linux 取得了成功 - 市值达 26亿2千万美元。
|
||||
|
||||
2009 年微软第一次在 GPLv2 协议下向 Linux 内核提交了补丁。
|
||||
2009 年微软在 GPLv2 协议下向 Linux 内核提交了第一个补丁。
|
||||
|
||||
### 2010 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2010-1.png)
|
||||
|
||||
Novell -> Attachmate
|
||||
*Novell -> Attachmate*
|
||||
|
||||
Novell 已 2亿2千万美元卖给了 Attachmate Group, Inc。在新公司 SUSE 和 Novell 成为了两款独立的产品。
|
||||
Novell 已 22亿美元卖给了 Attachmate Group, Inc。SUSE 和 Novell 成为了新公司的两款独立的产品。
|
||||
|
||||
第一次发布了 [systemd][11],开始了 Linux 系统的革命。
|
||||
[systemd][11] 首次发布,开始了 Linux 系统的革命。
|
||||
|
||||
### 2011 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2011-1.png)
|
||||
|
||||
Unity Desktop in 2011
|
||||
*Unity 桌面,2011*
|
||||
|
||||
发布了 Ubuntu Unity - 遭到很多用户的批评。
|
||||
Ubuntu Unity 发布,遭到很多用户的批评。
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2011-2.png)
|
||||
|
||||
GNOME 3.0, 2011
|
||||
*GNOME 3.0,2011*
|
||||
|
||||
发布了 GNOME 3.0 - Linus Torvalds 评论为 “unholy mess” 以及很多负面评论。发布了 Linux 内核 3.0。
|
||||
GNOME 3.0 发布, Linus Torvalds 评论为 “unholy mess” ,有很多负面评论。Linux 内核 3.0 发布。
|
||||
|
||||
### 2012 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2012-1.png)
|
||||
|
||||
1500 万行代码
|
||||
*1500 万行代码*
|
||||
|
||||
Linux 内核有 1500 万行代码。微软成为主要共享者之一。
|
||||
Linux 内核达到 1500 万行代码。微软成为主要贡献者之一。
|
||||
|
||||
### 2013 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2013-1.png)
|
||||
|
||||
发布了 Kali Linux 1.0 - 用户渗透测试和数字取证的基于 Debian 的 Linux 发行版。2014 年 CentOS 代码开发者加入到了红帽公司。
|
||||
Kali Linux 1.0 发布, 用于渗透测试和数字取证,基于 Debian 的 Linux 发行版。2014 年 CentOS 及其代码开发者加入到了红帽公司。
|
||||
|
||||
### 2014 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2014-1.jpg)
|
||||
|
||||
Lennart Poettering 和 Kay Sievers
|
||||
*Lennart Poettering 和 Kay Sievers*
|
||||
|
||||
systemd - Ubuntu 和所有主流 Linux 发行版的默认初始化程序。Ubuntu 有 2200 万用户。安卓的大进步 - 占了所有移动设备的 75%。
|
||||
systemd 成为 Ubuntu 和所有主流 Linux 发行版的默认初始化程序。Ubuntu 有 2200 万用户。安卓的大进步 - 占了所有移动设备的 75% 份额。
|
||||
|
||||
### 2015 ###
|
||||
|
||||
![](https://github.com/paulcarroty/Articles/raw/master/Linux_24/2015-1.jpg)
|
||||
|
||||
发布了 Linux 4.0。没有了 Mandriva(译者注:Mandriva 是目前全球最优秀的 Linux 发行版之一,稳居于 linux 排行榜第一梯队。2005年之前稳居 linux 排行榜 NO.1。它是目前最易用的 linux 发行版,也是众多国际级 linux 发行版中唯一一个默认即支持中文环境的 linux) - 但还有很多分支 - 其中最流行的一个是 Mageia。
|
||||
发布了 Linux 4.0。Mandriva 公司清算,但还有很多分支,其中最流行的一个是 Mageia。
|
||||
|
||||
写于对 Linux 的热爱。
|
||||
带着对 Linux 的热爱而执笔。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -283,7 +281,7 @@ via: https://tlhp.cf/linux-history/
|
||||
|
||||
作者:[Pavlo Rudyi][a]
|
||||
译者:[ictlyh](http://mutouxiaogui.cn/blog)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -1,63 +0,0 @@
|
||||
FSSlc translating
|
||||
|
||||
What is a good IDE for R on Linux
|
||||
================================================================================
|
||||
Some time ago, I covered some of the [best IDEs for C/C++][1] on Linux. Obviously C and C++ are not the only programming languages out there, and it is time to turn to something a bit more specific.
|
||||
|
||||
If you have ever done some statistics, it is possible that you have encountered the [language R][2]. If you have not, I really recommend this open source programming language which is tailored for statistics and data mining. Coming from a coding background, you might be thrown off a bit by the syntax, but hopefully you will get seduced by the speed of its vector operations. In short, try it. And to do so, what better way to start with an IDE? R being a cross platform language, there are a bunch of good IDEs which make data analysis in R far more pleasurable. If you are very attached to a particular editor, there are also some very good plugins to turn that editor into a fully-fledged R IDE.
|
||||
|
||||
Here is a list of five good IDEs for R language in Linux environment.
|
||||
|
||||
### 1. RStudio ###
|
||||
|
||||
![](https://c1.staticflickr.com/1/603/22093054381_431383ab60_c.jpg)
|
||||
|
||||
Let’s start hard with maybe one of the most popular R IDEs out there: [RStudio][3]. In addition to common IDE features like syntax highlighting and code completion, RStudio stands out for its integration of R documentation, its powerful debugger and its multiple views system. If you start with R, I can only recommend RStudio as the R console on the side is perfect for testing your code in real time, and the object explorer will help you understand what kind of data you are dealing with. Finally, what really conquered me was the integration of the plots visualiser, making it easy to export your graphs as images. On the downside, RStudio lacks the shortcuts and the advanced settings to make it a perfect IDE. Still, with a free version under AGPL license, Linux users have no excuses not to give this IDE a try.
|
||||
|
||||
### 2. Emacs with ESS ###
|
||||
|
||||
![](https://c2.staticflickr.com/6/5824/22056857776_a14a4e7e1b_c.jpg)
|
||||
|
||||
In my last post about IDEs, some people were disappointed by the absence of Emacs in my list. My main reason for that is that Emacs is kind of the wild card of IDE: you could place it on any list for any languages. But things are different for [R with the ESS plugin][4]. Emacs Speaks Statistics (ESS) is an amazing plugin which completely changes the way you use the Emacs editor and really fits the needs of R coders. A bit like RStudio which has multiple views, Emacs with ESS displays presents two panels: one with the code and one with an R console, making it easy to test your code in real time and explore the objects. But ESS's real strength is its seamless integration with other Emacs plugins you might have installed and its advanced configuration options. In short, if you like your Emacs shortcuts, you will like to be able to use them in an environment that makes sense for R development. For full disclosure, however, I have heard of and experienced some efficiency issues when dealing with a lot of data in ESS. Nothing too major to be a problem, but just enough have me prefer RStudio.
|
||||
|
||||
### 3. Vim with Vim-R-plugin ###
|
||||
|
||||
![](https://c1.staticflickr.com/1/680/22056923916_abe3531bb4_b.jpg)
|
||||
|
||||
Because I do not want to discriminate after talking about Emacs, I also tried the equivalent for Vim: the [Vim-R-plugin][5]. Using the terminal tool called tmux, this plugin makes it possible to have an R console open and code at the same time. But most importantly, it brings syntax highlighting and omni-completion for R objects to Vim. You can also easily access R documentation and browse objects. But once again, the strength comes from its extensive customization capacities and the speed of Vim. If you are tempted by this option, I direct you to the extremely thorough [documentation][6] on installing and setting up your environment.
|
||||
|
||||
### 4. Gedit with RGedit ###
|
||||
|
||||
![](https://c1.staticflickr.com/1/761/22056923956_1413f60b42_c.jpg)
|
||||
|
||||
If neither Emacs or Vim is your cup of tea, and what you like is your default Gnome editor, then [RGedit][7] is made for you: a plugin to code in R from Gedit. Gedit is known to be more powerful than what it looks. With a very large library of plugins, it is possible to do a lot with it. And RGedit is precisely the plugin you need to code in R from Gedit. It comes with the classic syntax highlighting and integration of the R console at the bottom of the screen, but also a bunch of unique features like multiple profiles, code folding, file explorer, and even a GUI wizard to generate code from snippets. Despite my indifference towards Gedit, I have to admit that these features go beyond the basic plugin functionality and really make a difference when you spend a lot of time analyzing data. The only shadow is that the last update is from 2013. I really hope that this project can pick up again.
|
||||
|
||||
### 5. RKWard ###
|
||||
|
||||
![](https://c2.staticflickr.com/6/5643/21896132829_2ea8f3a320_c.jpg)
|
||||
|
||||
Finally, last but not least, [RKWard][8] is an R IDE made for KDE environments. What I love the most about it is its name. But honestly, its package management system and spreadsheet-like data editor come in close second. In addition to that, it includes an easy system for plotting and importing data, and can be extended by plugins. If you are not a fan of the KDE feel, you might be a bit uncomfortable, but if you are, I would really recommend checking it out.
|
||||
|
||||
To conclude, whether you are new to R or not, these IDEs might be useful to you. It does not matter if you prefer something that stands for itself, or a plugin for your favorite editor, I am sure that you will appreciate one of the features these software provide. I am also sure I missed a lot of good IDEs for R, which deserve to be on this list. So since you wrote a lot of very good comments for the post on the IDEs for C/C++, I invite you to do the same here and share your knowledge.
|
||||
|
||||
What do you feel is a good IDE for R on Linux? Please let us know in the comments.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://xmodulo.com/good-ide-for-r-on-linux.html
|
||||
|
||||
作者:[Adrien Brochard][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://xmodulo.com/author/adrien
|
||||
[1]:http://xmodulo.com/good-ide-for-c-cpp-linux.html
|
||||
[2]:https://www.r-project.org/
|
||||
[3]:https://www.rstudio.com/
|
||||
[4]:http://ess.r-project.org/
|
||||
[5]:http://www.vim.org/scripts/script.php?script_id=2628
|
||||
[6]:http://www.lepem.ufc.br/jaa/r-plugin.html
|
||||
[7]:http://rgedit.sourceforge.net/
|
||||
[8]:https://rkward.kde.org/
|
@ -0,0 +1,61 @@
|
||||
Linux 上针对 R 语言的好用 IDE
|
||||
================================================================================
|
||||
前一段时间,我已经介绍过 [Linux 上针对 C/C++ 语言的最好 IDE][1]。很显然 C 或 C++ 并不是现存的唯一的编程语言,是时间讨论某些更加特别的语言了。
|
||||
|
||||
假如你做过一些统计工作,很可能你已经见识过 [R 语言][2] 了。假如你还没有,我真的非常推荐这门专为统计和数据挖掘而生的开源编程语言。若你拥有编程背景,它的语法可能会使你感到有些不适应,但希望它的向量化操作所带来的快速能够吸引到你。简而言之,请尝试使用一下这门语言。而要做到这一点,使用一个好的 IDE 来入门或许更好吧。R 作为一门跨平台的语言,有着一大把好用的 IDE,它们使得用 R 语言进行数据分析变得更惬意。假如你非常钟意一个特定的编辑器,这里也有一些好用的插件来将它转变为一个成熟的 R IDE。
|
||||
|
||||
下面就让我们见识一下 Linux 环境下 5 个针对 R 语言的好用 IDE吧。
|
||||
|
||||
### 1. RStudio ###
|
||||
|
||||
![](https://c1.staticflickr.com/1/603/22093054381_431383ab60_c.jpg)
|
||||
|
||||
就让我们以或许是最为人们喜爱的 R IDE: [RStudio][3] 来开始我们的介绍吧。除了一般 IDE 所提供的诸如语法高亮,代码补全等功能,RStudio 还因其集成了 R 语言帮助文档,强大的调试器,多视图系统而突出。如果你准备入门 R 语言,我只建议你将 RStudio 作为你的 R 语言控制台,一方面用它来实时测试代码是很完美的,另外对象浏览器将帮助你理解你正在处理的是哪类数据。最后,真正征服我的是它集成了图形显示器,使得你能够更轻松地以图片方式探索你的图形。至于它不好的方面, RStudio 缺乏快捷键和高级设置来使得它成为一个完美的 IDE。然而,它有一个以 AGPL 协议发布的免费版本, Linux 用户没有借口不去试试这个 IDE。
|
||||
|
||||
### 2. 带有 ESS 插件的 Emacs ###
|
||||
|
||||
![](https://c2.staticflickr.com/6/5824/22056857776_a14a4e7e1b_c.jpg)
|
||||
|
||||
在我的前一个有关 IDE 的文章中,很多朋友对我所给出的清单中没有 Emacs 而感到失望。对于这个,我的主要理由是 Emacs 可以说是 IDE 里面的“通配符”:你可以将它放到任意语言的 IDE 清单中。但对于 [带有 ESS 插件的 R][4] 来说,事情就变得有些不同了。Emacs Speaks Statistics (ESS) 是一个令人惊异的插件,它将完全改变你使用 Emacs 编辑器的方式,真的非常适合 R 编程者的需求。与 RStudio 类似,带有 ESS 的 Emacs 拥有多视图,它有两个面板:一个显示代码,另一个则是一个 R 控制台,使得实时地测试代码和探索数据对象变得更加容易。但 ESS 真正的长处是可以和你已安装的其他 Emacs 插件无缝集成以及它的高级配置选项。简而言之,如果你喜欢你的 Emacs 快捷键,你将能够在 R 语言开发环境下使用它们。然而,当你在 ESS 中处理大量数据时,我已经听闻并经历了一些效率低下的问题。尽管这个问题不是很重大,但足以让我更偏好 RStudio。
|
||||
|
||||
### 3. Vim with Vim-R-plugin ###
|
||||
|
||||
![](https://c1.staticflickr.com/1/680/22056923916_abe3531bb4_b.jpg)
|
||||
|
||||
在谈论完 Emacs 后,因为我不想去讨论 Emacs 和 Vim 的优劣,所以我尽力给予 Vim 同样的待遇,下面介绍 [Vim R 插件][5]。使用名为 tmux 的终端工具,这个工具使得在开启一个 R 控制台的同时,又书写 R 代码成为可能。但最为重要的是,它还为 Vim 带来了 R 语言的语法高亮和自动补全。你还可以轻易地获取 R 帮助文档和浏览数据对象。但再次强调,这些强大的功能来源于它大量的自定义选项和 Vim 的速度。假如你被这些功能所诱惑,我希望你能够通读有关介绍如何安装这个插件并设置相关环境的[文档][6]。
|
||||
|
||||
### 4. 带有 RGedit 的 Gedit ###
|
||||
|
||||
![](https://c1.staticflickr.com/1/761/22056923956_1413f60b42_c.jpg)
|
||||
|
||||
若 Emacs 和 Vim 都不是你的菜,而你恰好喜欢默认的 Gnome 编辑器,则 [RGedit][7] 就专门为你而生:它是 Gedit 的一个专门编辑 R 代码的插件。Gedit 比它看起来的样子更强大,配上大量的插件,就有可能用它来做许许多多的事情。而 RGedit 恰好就是你编辑 R 代码所需要的那款插件。它支持传统的语法高亮并在屏幕下方集成了 R 控制台,但它还有一大类独特的功能,例如多文件编辑,代码折叠,文件查看器,甚至还有一个 GUI 的向导用来从 snippets 产生代码。尽管我对 Gedit 并不感冒,但我必须承认这些功能比一般插件的功能更好并且在你花费很长时间去分析数据时它会有很大的帮助。唯一的污点是它的最后一次更新是 2013 年。我真的希望这个项目能够被重新焕发新生。
|
||||
|
||||
### 5. RKWard ###
|
||||
|
||||
![](https://c2.staticflickr.com/6/5643/21896132829_2ea8f3a320_c.jpg)
|
||||
|
||||
最后的并不意味着最不重要,作为这个清单的最后,[RKWard][8] 是一个 KDE 环境下的 R 语言 IDE。我最喜爱它的一点是它的名称。但说老实话,它的包管理系统和类似电子表格的数据编辑器排在我最喜欢它的理由的第二位。除了这些,它还包含一个简单的用来画图和导入数据的系统,另外它还可以使用插件来扩展功能。假如你不是一个 KDE 迷,或许你有点不喜欢这个,但若你是,我真的建议你考虑使用它。
|
||||
|
||||
总的来说,无论你是否刚入门 R 语言,这些 IDE 对你或许都有些帮助。假如你更偏好某个软件它自身所代表的东西或者是偏好针对你喜爱的编辑器的插件,这些都没有什么问题,我确信你将感激这些软件所提供的某些功能。同时我还确信我遗漏了很多好的针对 R 语言的 IDE,或许它们值得罗列在这个清单上。鉴于你们在上一篇针对 C/C++ 的最好 IDE 这个话题中陈述了很多非常有用的评论,我也邀请你们在这里做出同样精彩的评论并分享出你的知识。
|
||||
|
||||
关于 Linux 下针对 R 语言的好用编辑器,你有什么看法呢?请在下面的评论中让我们知晓。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://xmodulo.com/good-ide-for-r-on-linux.html
|
||||
|
||||
作者:[Adrien Brochard][a]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]:http://xmodulo.com/author/adrien
|
||||
[1]:http://xmodulo.com/good-ide-for-c-cpp-linux.html
|
||||
[2]:https://www.r-project.org/
|
||||
[3]:https://www.rstudio.com/
|
||||
[4]:http://ess.r-project.org/
|
||||
[5]:http://www.vim.org/scripts/script.php?script_id=2628
|
||||
[6]:http://www.lepem.ufc.br/jaa/r-plugin.html
|
||||
[7]:http://rgedit.sourceforge.net/
|
||||
[8]:https://rkward.kde.org/
|
Loading…
Reference in New Issue
Block a user