Linux IRC mini-HOWTO

Fr�d�ric L. W. Meunier

v0.4 2005年1月7日

修订历史
修订 0.42005-01-07修订者: fredlwm
第五次修订。

本文档旨在描述 IRC 的基础知识以及 Linux 的相关应用程序。


目录
1. 简介
1.1. 目标
1.2. 杂项
1.3. 翻译
2. 关于 IRC
3. IRC 简史
4. IRC 新手指南
4.1. 运行 ircII 程序
4.2. 命令
4.3. IRC 礼仪
5. 控制台 IRC 客户端
5.1. ircII
5.2. EPIC
5.3. BitchX
5.4. irssi
5.5. 其他控制台 IRC 客户端
6. X Window IRC 客户端
6.1. Zircon
6.2. KVIrc
6.3. X-Chat
6.4. QuIRC
7. IRC 服务器
7.1. IRCD
7.2. IRCD-Hybrid
7.3. ircu
7.4. Bahamut
8. IRC 机器人
8.1. Eggdrop
8.2. EnergyMech
9. IRC Bouncer(IRC 代理)
9.1. bnc
9.2. muh
9.3. ezbounce
10. 安装
10.1. 客户端
10.2. 服务器
11. 我的发行版中已经包含了什么?(x86 上的 Linux)
11.1. Debian
11.2. Fedora (Red Hat)
11.3. Slackware
12. 地狱和天堂
12.1. 神(开发者)
12.2. 圣徒(贡献者)
12.3. 天使(反馈)
12.4. 魔鬼
13. 修订历史

1. 简介

本文档仍在编写中 (WIP),应被视为如此。我将尽力保持其更新和准确。

以下“圣经”不应被忽视

另请务必查看以下链接

http://www.irchelp.org/


1.1. 目标

除了其他目标外,本 mini-HOWTO 的目标还包括

  • 链接关于 IRC 的重要资源;

  • 通过编写 IRC 礼仪来避免常见的 IRC 误用;

  • 列出流行的客户端、服务器、机器人和 Bouncer,以及它们的维护者、#频道、简短描述、下载位置、主页和提示;

  • 列出所有主要发行版的最新版本中可用的 IRC 工具。


1.2. 杂项

本文档的最新版本可在 http://www.pervalidus.net/documentation/IRC-mini-HOWTO/ 找到

下一个草稿的 WIP 版本可能在 http://www.pervalidus.net/documentation/IRC-mini-HOWTO/WIP/ 提供

所有草稿都存档在 http://www.pervalidus.net/documentation/IRC-mini-HOWTO/old/

所有内容可能镜像在 http://www2.pervalidus.net/documentation/IRC-mini-HOWTO/

您可以通过电子邮件(用英语、法语或葡萄牙语)向我发送关于 mini-HOWTO 的建议。我知道这还远未完成,但希望您觉得它有用。尽量避免要求我添加您的应用程序、发行版或站点。我很可能不会这样做,但您可以尝试说服我。也不要寻求技术支持。我没有时间帮助每个人。

顺便说一句,有人来处理协议和服务器端将非常受欢迎。

Fr�d�ric L. W. Meunier - http://www.pervalidus.net/contact.html


1.3. 翻译

建议的翻译将在此处链接。虽然我可以用巴西葡萄牙语和法语写作,但我近期不打算翻译本文档,所以请随意进行翻译。


2. 关于 IRC

摘自 RFC2810

IRC(Internet Relay Chat)协议用于基于文本的会议。它自 1989 年开始开发,最初是作为 BBS 用户之间聊天的工具而实现的。

该协议于 1993 年 5 月在 RFC 1459 [IRC] 中首次正式记录,并一直在不断发展。

IRC 协议基于客户端-服务器模型,非常适合在分布式环境中的多台机器上运行。典型的设置涉及单个进程(服务器),该进程形成客户端(或其他服务器)连接的中心点,执行所需的消息传递/多路复用和其他功能。

这种分布式模型要求每个服务器都有全局状态信息的副本,但这仍然是协议最明显的问题,因为它是一个严重的障碍,限制了网络可以达到的最大规模。如果现有网络能够以惊人的速度持续增长,我们必须感谢硬件制造商为我们提供了越来越强大的系统。


3. IRC 简史

第一个 IRC 守护程序是由芬兰奥卢大学的 Jarkko "WiZ" Oikarinen 在 1998 年夏天编写的。最初旨在作为 Talk 的 BBS 风格替代品,IRC 迅速传播开来;首先在斯堪的纳维亚半岛,然后遍及世界各地。一年之内,就有超过 40 台服务器连接起来。

在这个阶段,只有一个网络,因此不需要名称 - 它只是“IRC”;但是随着网络规模的扩大,分歧开始形成。IRC 是一种非常混乱的媒介,网络分裂、昵称冲突和频道劫持都很常见;用户在某个阶段分裂出来形成自己的网络是不可避免的。

第一次重大分裂之一发生在 1992 年,当时 Wildthang 创建了 Undernet 网络。Undernet 最初旨在作为一个测试网络,但很快发展壮大,并因其引入保护用户和频道的服务而获得了友好网络的声誉。

两年后,Undernet 本身也发生了分支,新的网络成为 DALnet。DALnet 的创始人 dalvenjah 将 Undernet 的服务概念提升到了一个新的水平,引入了对昵称注册、G-lines 和许多其他功能的支持。

与此同时,在 IRCnet(原始 IRC 网络现在被称为)上,情绪高涨。IRCnet 反对 Undernet 和 DALnet 引入的频道/昵称“所有权”概念,但显然必须对不断发生的频道劫持采取一些措施。提出了两种替代方案:昵称/频道延迟和时间戳(有关信息,请参阅 http://www.irc-help.org),但对于实施哪一种方案存在激烈的争论。

1996 年 7 月,IRCnet 分裂,大部分北美服务器离开形成了 EFnet,使 IRCnet 成为一个主要以欧洲为主的网络。

从那时起,形成了数百个其他较小的网络,大多数使用 DALnet、EFnet、IRCnet 或 Undernet 的 ircd 的修改版本。


4. IRC 新手指南

标准的 IRC 客户端是原始的 ircII。它是大多数 Linux 发行版的一部分,并且大多数其他基于文本的 IRC 客户端(特别是 BitchX 和 EPIC)都源自它。


4.1. 运行 ircII 程序

使用 ircII 很简单。假设您想以 mini-HOWTO 的身份连接到 irc.freenode.net。

在命令行中,键入

$ irc mini-HOWTO irc.freenode.net

您还可以导出变量,这样您就不需要在命令行中使用它们。对于 bash 和 zsh 用户

$ export IRCNICK=mini-HOWTO IRCSERVER=irc.freenode.net

对于 csh 和 tcsh 用户,将 export 替换为 setenv

完成后将它们添加到您的 shell 配置文件中(例如 ~/.bash_profile 或 ~/.zprofile)。

其他常用变量是 IRCNAME 和 IRCUSER,分别设置 /whois 的 ircname 部分和在第一行 'mini-HOWTO is ~username@hostname (ircname)' 中看到的用户名。请记住,如果您运行 ident 守护程序(大多数发行版的默认设置),IRCUSER 将不起作用。如果您仍然需要更改用户名(不推荐,我希望您没有以 root 身份登录 IRC!),请从 http://ojnk.sourceforge.net/ 安装 oidentd。要配置,请阅读 oidentd.conf 手册页。最后运行 '/usr/local/sbin/oidentd -g nobody -u nobody'。完成后将其添加到您的启动脚本中(例如 /etc/rc.d/rc.local)。

如果未设置,IRCNICK、IRCUSER 和 IRCNAME 将从 /etc/passwd 中检索。


4.2. 命令

使用 /help 获取所有可用命令的列表(/help help 是一个好的开始)。将 nick 替换为任何 IRCNICK。

  • 首先,/set NOVICE off

  • /nick IRC-mini-HOWTO 将您的 IRCNICK 更改为 IRC-mini-HOWTO

  • /set realname The Linux IRC mini-HOWTO 将您的 IRCNAME 更改为 The Linux IRC mini-HOWTO(在同一连接上不会更改)

  • /j #mini-HOWTO 加入频道 #mini-HOWTO

  • /j #unmaintained-HOWTO 加入频道#unmaintained-HOWTO

  • /j #mini-HOWTO 将当前活动频道更改为 #mini-HOWTO

  • /msg nick 你好。向 nick 发送包含 你好。 的私信

  • /notice nick (或 #mini-HOWTO) 你好。向 nick (或 #mini-HOWTO) 发送包含 你好。 的通知

  • /query nick 开始与 nick 的私人对话。/query 结束私人对话

  • /me 爱 Linux。向当前频道或查询发送包含 IRC-mini-HOWTO 爱 Linux。 的操作

  • /dcc chat nick 开始与 nick 的聊天。使用 /msg =nick(注意 =)通过聊天发送消息

  • /dcc send nick /etc/HOSTNAME 将给定文件发送到 nick

  • /dcc get nick 接收 nick 提供的文件

  • /part 离开当前活动频道

  • /part #unmaintained-HOWTO 离开频道 #unmaintained-HOWTO

  • /discon 断开与当前 IRCSERVER 的连接

  • /server irc.oftc.net 连接到 IRCSERVER irc.oftc.net

  • /quit 再见。以 再见。 的理由退出您的 IRC 会话

以上大多数命令(包括使用环境变量)也适用于其他基于控制台的客户端。


4.3. IRC 礼仪

警告 警告 警告 警告 警告

  • 永远不要以 root 或任何具有过度权限的用户身份登录 IRC。坏事可能迟早会发生。您已被警告。强烈建议您创建一个用户专门用于 IRC。

$ man adduser

在 Linux 频道上,您不应该

  • 表现得像个白痴。如果您想受到尊重,那么首先要尊重他人。

  • 使用颜色 (^C)。大多数 Linux 用户不容忍这种 mIRC 狂热,并且 ircII 实际上不支持它们。ANSI 也应如此。

  • 使用全大写字母、粗体 (^B)、反色 (^V)、下划线 (^_), 闪烁 (^F) 和响铃 (^G)。前 4 个用于强调单词,而不是整个文本。后 2 个非常烦人。

  • 询问您是否可以提问。直接提问,但首先阅读所有关于该主题的可用文档。首先查看 /usr/doc/ (在某些系统上可能是 /usr/doc/,否则请转到 http://www.tldp.org/ http://www.ibiblio.org/pub/Linux/docs/ 。并且不要立即重复您的问题。至少等待 10 分钟。如果您没有得到任何答案,那是因为没有人知道或愿意帮助。尊重他们的选择,他们不是您的私人助理。也永远不要发送大量私人消息。这就像垃圾邮件。


5. 控制台 IRC 客户端

5.1. ircII

维护者: ircII 项目

IRC 频道: #ircII(官方频道?)在 EFNet 上 http://www.efnet.org/?module=servers

ircII 最初由 Michael Sandrof 编写,随附于大多数 Linux 发行版。它使用 termcap,不应成为大多数用户的选择,但它是一个标准。Mathusalem 和其他专家将使用它。不太敢冒险的人会后悔安装它。

您可以从 ftp://ircii.warped.com/pub/ircII/ 获取最新版本的 ircII。主页位于 http://www.eterna.com.au/ircii/


5.2. EPIC

维护者: EPIC Software Labs

IRC 频道: #EPIC 在 EFNet 上

EPIC(增强型可编程 ircII 客户端)基于 ircII,专为真正的脚本编写者和寻求自由的用户而设计。当您第一次启动它时,您会注意到您真的应该学习脚本编写的基础知识。

您可以从 http://prbh.org/?page=ftp 获取最新版本的 EPIC。主页位于 http://www.epicsol.org/


5.3. BitchX

维护者: Colten Edwards

IRC 频道: #BitchX 在 EFNet 上

BitchX 最初是 ircII 的一个脚本,是一个流行的客户端,旨在通过在客户端本身中包含大量功能来减少对脚本编写的需求(即使是经验丰富的用户也记不住太多功能)。许多人认为 BitchX 是臃肿软件(不一定是坏事),但它在用户和 opers 中非常受欢迎。

您可以从 http://www.bitchx.org/download.php 获取最新版本的 BitchX。主页位于 http://www.bitchx.org/


5.4. irssi

维护者: Timo Sirainen

IRC 频道: #irssi 在 freenode - http://freenode.net/irc_servers.shtml 和 IRCnet - http://www.ircnet.org/

Timo 在 1997 年发布了 yagIRC。它是一个使用 GTK+ 工具包的 GUI 客户端。一年后,军队征召了他,新的维护者不愿接手这项工作。yagIRC 消失了,他开始将 irssi 作为替代品。它使用了 GTK+。GNOME 和 curses 版本稍后出现。截至 0.7.90 版,它只是一个模块化的文本模式客户端。支持 Perl 脚本。

您可以从 http://irssi.org/?page=download 获取最新版本的 irssi。主页位于 http://irssi.org/


5.5. 其他控制台 IRC 客户端

还有一些其他基于 ircII 的客户端。

Blackened - ftp://ftp.blackened.com/pub/irc/blackened/

Ninja - ftp://qoop.org/ninja/

ScrollZ - http://www.scrollz.com/


6. X Window IRC 客户端

6.1. Zircon

维护者: Lindsay F. Marshall

IRC 频道: 无?

用 Tcl/Tk 编写,使用 Tcl 的原生网络通信。

您可以从 ftp://catless.ncl.ac.uk/pub/ 获取最新版本的 Zircon。主页位于 http://catless.ncl.ac.uk/Programs/Zircon/


6.2. KVIrc

维护者: Szymon Stefanek

IRC 频道: #KVIrc 在 freenode 上

KVIrc 也使用 Qt 工具包编写,是一个强大的客户端。支持 DCC Voice、内置脚本语言和插件。

您可以从 http://www.kvirc.net/?id=download 获取最新版本的 KVIrc。主页位于 http://www.kvirc.net/


6.3. X-Chat

维护者: Peter Zelezny

IRC 频道: #Linux 在 ChatJunkies 上 - http://www.chatjunkies.org/servers.php

使用 GTK+ 和可选的 GNOME,支持 Perl 和 Python 脚本。

您可以从 http://xchat.org/download/ 获取最新版本的 X-Chat。主页位于 http://xchat.org/


6.4. QuIRC

维护者: Patrick Earl

IRC 频道: #QuIRC 在 DALnet 上 - http://www.dal.net/servers/index.php3

使用 Tk,支持 Tcl 进行脚本编写。

您可以从他的主页 http://quirc.org/ 获取最新版本的 QuIRC


7. IRC 服务器

7.1. IRCD

维护者: ircd 开发者

IRC 频道: #ircd 在 IRCnet 上

原始的 IRC 守护程序,主要由 IRCnet 使用。最新版本试图通过引入额外的频道类型(例如 !linux)和频道模式来改进频道安全性。

您可以从 ftp://ftp.irc.org/irc/server/ 获取最新版本的 IRCD。主页位于 http://www.irc.org/


7.2. IRCD-Hybrid

维护者

IRC 频道: 无?

主要由 EFNet 使用。Hybrid 的重点是速度和效率,因为它缺乏其他网络提供的许多服务。为了与 EFnet 的精神保持一致,即 opers 不应关注频道事务,Hybrid 不允许 opers 设置频道模式或加入他们被禁止加入的频道。直到最近,Hybrid 才提供服务机器人重新操作无操作员频道的能力。

您可以从 http://ftp1.sourceforge.net/ircd-hybrid/ 获取最新版本的 IRCD-Hybrid。主页位于 http://www.ircd-hybrid.org/


7.3. ircu

维护者: Undernet Coder Committee

IRC 频道: #ircu 在 Undernet 上 - http://www.undernet.org/servers.php

主要由 Undernet 使用。在 2001/2002 年发生一系列 DDoS 攻击之后,ircu 提供了用户和服务器隐藏其地址的功能。许多 /stats 命令也(可悲地)从 Undernet 中删除。

您可以从 http://ftp1.sourceforge.net/undernet-ircu/ 获取最新版本的 ircu。主页位于 http://coder-com.undernet.org/


7.4. Bahamut

维护者: DALnet Coding Team

IRC 频道: #Bahamut 在 DALnet 上

Bahamut 基于 DreamForge 和 Hybrid,是 DALnet 服务器。功能包括频道和昵称注册、支持最多 15 个字符的昵称以及备忘录服务。

您可以从 http://bahamut.dal.net/download.php 获取最新版本的 Bahamut。主页位于 http://bahamut.dal.net/


8. IRC 机器人

8.1. Eggdrop

维护者

IRC 频道: #eggdrop 在 Undernet 上

Eggdrop 通常被认为是最棒的 IRC 机器人,它提供强大的频道保护,并且可以通过使用 Tcl 脚本进行高度定制。

多个 Eggdrop 可以链接在一起形成一个机器人网络,该网络可以跨越多个频道,甚至网络。在没有频道注册服务的网络上,Eggdrop 是几乎所有大型频道中的常见功能。

您可以从 http://www.eggheads.org/downloads/ 获取最新版本的 Eggdrop。主页位于 http://www.eggheads.org/


8.2. EnergyMech

维护者: Proton

IRC 频道:

早期版本的 EnergyMech(或经常被称为 emech)因其能够从单个进程运行多个机器人(从而允许不太受欢迎的用户从 shell 帐户加载数百个 vhosted 克隆)而获得了脚本小子机器人的声誉。Emech 并不应该得到这种声誉,因为它实际上是一个相当不错的频道保护机器人,并且最新版本的 emech 已经限制了这种能力(最多 4 个机器人)。是 Eggdrop 的一种流行的替代方案。

您可以从 http://www.energymech.net/download.html 获取最新版本的 EnergyMech。主页位于 http://www.energymech.net/


9. IRC Bouncer(IRC 代理)

9.1. bnc

维护者: James Seter

IRC 频道: 无?

bnc 是原始的 bouncer。

您可以从 http://gotbnc.com/download.html 获取最新版本的 bnc。主页位于 http://gotbnc.com/


9.2. muh

维护者: Sebastian Kienzl

IRC 频道: 无?

muh 是一个智能且通用的 irc-bouncing 工具,它也会在启动后立即进入 IRC,守护或尝试获取您的昵称。

您可以从 http://ftp1.sourceforge.net/muh/ 获取最新版本的 muh。主页位于 http://seb.riot.org/muh/


9.3. ezbounce

维护者: Murat Delig�n�l

IRC 频道: 无?

ezbounce 的基本功能包括密码保护、远程管理、日志记录和在多个端口上监听。

您可以从他的主页 http://druglord.freelsd.org/ezbounce/ 获取最新版本的 ezbounce


10. 安装

10.1. 客户端

所有流行的客户端都使用 GNU Autoconf 和 GNU Automake,因此都带有 configure 脚本。解压缩源代码后,请阅读安装说明。确保您具有编译所需的库。执行 cd name_of_the_created_directory; ./configure --help; ./configure your_options_here; make; make install > ~/sources_install.log 是正确的步骤。另请注意,对于 ircII、EPIC 和 BitchX,您应该真正编辑 include/config.h 以满足您的需求。


10.2. 服务器

您真的需要帮助来设置服务器吗?

~$ touch ircd.conf


11. 我的发行版中已经包含了什么?(x86 上的 Linux)

11.1. Debian

IRC 频道: #Debian 在 freenode 上 (irc.debian.org -> irc.freenode.net)

Debian - http://www.debian.org/ 包含太多 IRC 工具,无法一一列举。您可以在以下位置找到它们


12. 地狱和天堂

12.1. 神(开发者)

  • 感谢所有作者。没有他们辛勤的志愿工作,我就永远不会写这篇文章,我们也永远不会接触到 Linux 或 IRC。


12.3. 天使(反馈)

  • 请参阅上文。


12.4. 魔鬼

  • Khaled Mardam-Bey 必须被阻止 :-)

  • “如果白痴会飞,IRC 就会成为机场”。我不知道是谁写的这句话,但它很有道理。对于那些使用 IRC 来惹恼别人的人,我订购了一个 /kill。


13. 修订历史