Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | 51CTO学院 | CSDN程序员研修院 | OSChina 博客 | 腾讯云社区 | 阿里云栖社区 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏多维度架构

28.2. IRC - Internet Relay Chat

http://www.irchelp.org/

28.2.1. IRC Protcol

irc://chat.freenode.net/wikipedia-zh

irc://host/channel

irc://chat.freenode.net/wikipedia-zh irc://irc.freenode.net/trac

28.2.2. IRC Commands

IRC常用命令

如果已经进入了 UTF-8 频道,却不知道自己是否正使用 UTF-8 编码,可以输入

/charset utf-8

/serv irc.freenode.net

/nick 更改昵称

/join 加入/建立聊天室

/mode +(-)i 锁住聊天室

/mode +(-)o 设定管理员权限

/knock 要求进入私人聊天室

/invite 邀请用户进入私人聊天室

/privmsg 悄悄话

/ignore 忽略

/away 暂时离开

/whois 查询用户信息

/names 列出所有在线用户

/topic 更换聊天室主题

/kick 把用户踢出聊天室

/quit 退出聊天室
		
IRC命令有二点值得您注意:

所有的IRC命令都是由“/”引导。

在不引起混淆的情况下,IRC命令允许简写。例如,/join 命令可以简写为/j,/jo或者/joi。

/nick

更改昵称的基本方法是:/n(ick) 新的昵称

您的昵称可以包含英文字母,数字,汉字及下划线等。但是,昵称不能超过50个(每个字符和汉字都算一个字),而且不能包含$,+,!和空格。

/nick 命令等价于工具按钮中的“改变别名”。

/join

/join命令的格式是:/j(oin) 聊天室名

如果聊天室已经存在,您就进入该聊天室。此时,/join 命令等价于聊天室列表工具按钮中的“进入”。

如果聊天室不存在,您就建立了一个新的聊天室并进入。此时,/join 命令等价于工具按钮中的“建聊天室”。
聊天室的名字可以包含英文字母,数字,汉字及下划线等。但是,不能超过50个字(每个字符和汉字都算一个字),而且不能包含$,+,!和空格。

/mode +(-)i

/mode +(-)i 命令可以用来锁住(解锁)用户自建的聊天室(私人聊天室)。其命令格式是:/m(ode)

+i 或 /m(ode) -i

只有用户自建的聊天室才能加锁。

未经管理员邀请,其他用户不能进入私人聊天室。

/mode +(-)o

/mode +(-)o 命令可以让聊天室管理员赋予或者剥夺其他用户的管理员身份。其命令格式是:/m(ode)

+o 用户昵称或/m(ode)-o用户昵称只有聊天室管理员才能使用这个命令。

/knock
/knock 命令可以让您询问私人聊天室管理员是否可以进入该私人聊天室。其命令格式是:/k(nock) 房间名

消息]

/invite

/invite 命令可以让聊天室管理员邀请其他用户进入私人聊天室。其命令格式是:/i(nvite) 用户昵称

只有私人聊天室的管理员才能使用这个命令。

/privmsg

/privmsg 命令用来向在同一间聊天室的某个用户发送私人消息(悄悄话)。也就是说,您的消息只送给指定的人,而不会显示给其他用户。

/privmsg 命令的基本格式是: /p(rivmsg) 用户昵称 消息

接受您的私人消息的用户必须和您在同一间聊天室。

“用户昵称”和“消息”这两个参数是不能省略的。
如果某个用户的昵称太长,在不会产生混淆的情况下,您可以只输入用户昵称的头几个字母,系统会进行自动匹配。

例如:聊天室里除了您之外还有两个用户,他们的昵称分别是xiaobao和softman。您若想给softman发送悄悄话,可以在输入框里输入下面的命令:

/p s Have you etanged today?
由于xiaobao和softman的第一个字母就不一样,所以系统会把您输入的昵称“s”自动匹配为“softman”。另外,“/p”是“/privmsg”的缩写。

/ignore

/ignore 命令用来把某个用户加入您的“坏人黑名单”。一旦某个用户进入了您的黑名单,他说的任何话都将不会显示在您的终端上。

/ignore 命令的基本格式是:/ig(nore) 用户昵称

用户昵称所代表的用户必须和您在同一个聊天室。

/ignore 命令等价于用户列表工具按钮中的“忽略”。

如果某个用户的昵称太长,在不会产生混淆的情况下,您可以只输入用户昵称的头几个字母,系统会进行自动匹配。

在您的用户列表中,如果某个用户昵称前有一个#,表示该用户已经被您列入黑名单。

如果一个用户已经在您的黑名单中,您可以用 /ignore 用户昵称 把他从黑名单中去掉。

/away

/away 命令用来把自己设为“暂时离开”状态,并可以留言给其他用户。当其他用户和您说悄悄话时,您预先设置的留言会自动回复给其他用户。

/away 命令的基本格式是:/a(way) [留言]

“留言”这个参数是可选的。如果有这个参数,您的状态会被设置为“暂时离开”。否则,您的状态会被设置为“我回来了”。

当您暂时离开聊天室时,用户列表中您的昵称前会出现一个?,表示您处于“离开”状态。工具按钮中的“暂时离开”也会变为“我回来了”。

当您回来继续聊天时,您可以点击工具按钮中的“我回来了”,或者在输入框里输入 /away 命令,将自己设置为正常状态。

/away 命令等价于工具按钮中的“暂时离开”

/whois

/whois 命令用来查询某个用户的信息,包括用户的亿唐ID,IP地址,目前所在的聊天室和发呆时间。

/whois 命令的基本格式是:/w(hois) 用户昵称

/whois命令等价于用户列表工具按钮中的“查询”。

/names

/names 命令用来查看当前所有(或某个聊天室内)的在线聊天用户。其命令格式是:/na(mes) [聊天室]

/topic

/topic 命令用来设定当前聊天室的主题。

/topic 命令的基本格式是:/t(opic) 聊天室主题

只有当前聊天室的管理员(op)才有权利设定聊天室主题。

聊天室的创建者就是该聊天室的管理员。

管理员权限可以通过 /mode +o 命令转交。

/kick

/kick 命令用来把某个用户踢出当前聊天室。

/kick 命令的基本格式是:/ki(ck) 用户昵称 [消息]

只有当前聊天室的管理员(op)才有权利把其他用户踢出当前聊天室。

聊天室的创建者就是该聊天室的管理员。

管理员权限可以通过/mode +o命令转交。

请诸位网友慎用这个命令。“君子动口不动手”嘛!

/quit

/quit 命令用来退出聊天室。

/quit 命令的基本格式是:/q(uit) [消息]

“消息”这个参数是可选的。如果您指定退出时的消息,该消息会发送给当前聊天室中的其他用户。您可以使用这个消息向其他用户道别。

/quit 命令等价于工具按钮中的“结束聊天”。
		

28.2.3. ircd-irc2 - The original IRCNet IRC server daemon

Installation

sudo apt-get install ircd-irc2
		

Configuration

$ sudo vim /etc/ircd/ircd.conf
$ sudo /etc/init.d/ircd-irc2 start
		

28.2.4. ircd-hybrid

install

netkiller@shenzhen:~$ sudo apt-get install ircd-hybrid
		

script file

netkiller@shenzhen:~$ /etc/init.d/ircd-hybrid
Usage: /etc/init.d/ircd-hybrid {start|stop|restart|reload|force-reload}
		

config file

netkiller@shenzhen:~$ sudo ls /etc/ircd-hybrid/
cresv.conf  dline.conf  ircd.conf  ircd.motd  kline.conf  nresv.conf  rkline.conf  rxline.conf  xline.conf
		

28.2.5. IRC Client

Irssi - a modular IRC client for UNIX

Irssi Chat Client - Your text mode chatting application since 1999.

Irssi 是目前命令行下最好的聊天工具,难得的是这个命令行IRC还一直在更新。

安装 Irssi
sudo apt-get install irssi
			

进入 irssi 输入irc命令即可

[anni@netkiller ~]$ irssi				
/connect irc.freenode.net
/join #ubuntu,#ubuntuforums,#ubuntu+1
/quit
				
irssi 命令参数
NAME
       Irssi - a modular IRC client for UNIX

SYNOPSIS
       irssi [-dv!?] [-c server] [-p port] [-n nickname] [-w password] [-h hostname]

DESCRIPTION
       Irssi  is  a  modular  Internet  Relay  Chat client. It is highly extensible and very secure. Being a fullscreen, termcap based client with many features, Irssi is easily extensible through
       scripts and modules.

OPTIONS
       --config=FILE
              use FILE instead of ~/.irssi/config.

       --home=PATH
              PATH specifies the home directory of Irssi.  Default is ~/.irssi

       -c, --connect=SERVER
              connects to SERVER

       -w, --password=PASSWORD
              use PASSWORD for authentication.

       -p, --port=PORT
              automatically connect to PORT on server.

       -!, --noconnect
              disables autoconnecting.

       -n, --nick=NICKNAME
              specify NICKNAME as your nick.

       -h, --hostname=HOSTNAME
              use HOSTNAME for your irc session.

       -d, --dummy
              use dummy terminal mode.

       -v, --version
              display the version of Irssi.

       -?, --help
              show a help message.				
			

常用参数

[root@netkiller ~]# irssi -c irc.freenode.org -n Neo
			

自动连接并进入频道

/connect irc.freenode.net
/nick Neo
/NETWORK ADD freenode
/SERVER ADD -auto -network freenode irc.freenode.net 6667
/CHANNEL ADD -auto #netkiller freenode
			
network

IRC 网络列表

/NETWORK LIST

20:40 Networks:
20:40 IRCnet: querychans: 5, max_kicks: 4, max_msgs: 5, max_whois: 4
20:40 EFNet: max_kicks: 4, max_msgs: 3, max_whois: 1
20:40 Undernet: max_kicks: 1, max_msgs: 3, max_whois: 30
20:40 DALnet: max_kicks: 4, max_msgs: 3, max_whois: 30
20:40 QuakeNet: max_kicks: 1, max_msgs: 3, max_whois: 30
20:40 OFTC: max_kicks: 1, max_msgs: 3, max_whois: 30
20:40 GameSurge: max_kicks: 1, max_msgs: 3, max_whois: 30
20:40 WebChat: max_kicks: 1, max_msgs: 3, max_whois: 30
20:40 Rizon: max_kicks: 1, max_msgs: 3, max_whois: 30
20:40 LinkNet: max_kicks: 1, max_msgs: 3, max_whois: 30			
			

添加网络

			
/NETWORK ADD -autosendcmd "/^msg NickServ IDENTIFY password;wait 2000" freenode	

/network add -nick <your-nick> Freenode
			
			
server
/server list			
			
20:54 Server               Port  Network    Settings
20:54 eu.irc6.net          6667  IRCnet     
20:54 open.ircnet.net      6667  IRCnet     
20:54 irc.efnet.org        6667  EFNet      
20:54 irc.undernet.org     6667  Undernet   
20:54 irc.dal.net          6667  DALnet     
20:54 irc.quakenet.org     6667  QuakeNet   
20:54 irc.oftc.net         6667  OFTC       
20:54 irc.gamesurge.net    6667  GameSurge  
20:54 irc.webchat.org      6667  WebChat    
20:54 irc.rizon.net        6667  Rizon      
20:54 irc.link-net.org     6667  LinkNet    			
			
ircII - interface to the Internet Relay Chat system

ircii 是较为古老的命令行IRC,有些版本的Linux包资源中已经下架。例如CentOS yum search ircii 是没有的。

TUI client

$ sudo apt-get install ircii
			

/etc/irc/servers

remove the string: change_this_in_etc_irc_servers

add default irc server.

172.16.0.1
			

running irc client

$ irc -c '#system' neo 192.168.3.9
			

freenode.net

$ irc -c '#debian' neo chat.freenode.net
			
XChat

XChat Client

xchat --url=irc://chat.freenode.net/wikipedia-zh

xchat --url=irc://irc.freenode.net/trac
			

-e 可以避免开启多个窗口,新URL将在TAB中打开。

xchat --url=irc://irc.freenode.net/trac -e
			
F-IRC

http://www.vanheusden.com/f-irc/


			

28.2.6. Web IRC

QuakeNet Web IRC

https://webchat.quakenet.org

Nickname: 昵称

Channels: 频道

输入上面两两项后,点击 Join chat 进入聊天室。

freenode

http://webchat.freenode.net

Web IRC
http://www.mibbit.com

点击页面中的 “Launch Mibbit Client” 按钮即可进入 IRC Client

选择IRC服务器,然后填写昵称Nick, 和频道 Channel,最后点击 Connect 按钮

hackint

https://webirc.hackint.org