ii
- 一个极简的基于 FIFO 和文件系统的 IRC (互联网中继聊天) 客户端。它创建一个 IRC 目录树,包含服务器、频道和昵称目录。在每个目录中,都会创建一个 FIFO 输入文件和一个普通的输出文件。
安装
配置
ii 通过命令行选项进行配置。默认值为主目录 ~/irc
和昵称 $USER
。这些值可以在运行时通过传递值给 ii 来更改
-s server -p port -u socket (-p option is ignored if this is set) -i main.directory -n nickname -f realname -k environmental.variable
ii 使用环境变量来包含您的 IRC 密码 (例如,IIPASS="password"; -k IIPASS
)。
使用
有关详细介绍,请参阅官方文档。
推荐使用会话管理器,例如 abduco 或 tmux。它允许用户轻松断开连接和重新连接到会话。
要启动 ii,请运行
$ ii
另请参阅 ii(1)。
附加功能
ii 仅作为服务器的客户端。将需要额外的应用程序来读取输出并将输入写入 ii。在每个子目录中,都会有一个输出文件 "out" 和一个输入文件 "in"。至少,可以使用以下命令监视输出文件:
$ tail -f out
以及以下命令监视输入:
$ echo "command/message" > in
另一个允许单个命令接受持续输入的选项是
$ cp /dev/stdin in
命令
ii 命令以斜杠开头,并且区分大小写。
命令 | 描述 |
---|---|
/a message
|
标记为离开,带有可选消息 |
/j #channel password
|
加入频道,带有可选密码; 打开与用户的私聊对话,带有可选的开场消息 |
/l message
|
离开频道,带有可选消息 |
/n nickname
|
更改昵称 |
/q message
|
退出 ii,带有可选消息 |
/t topic
|
设置频道主题 |
任何不是命令的内容都将发布到频道或服务器。因此,如果您需要 /who
,只需按照 RFC:1459 中的描述,将 /WHO
写入 FIFO 给服务器。
SSL/TLS 加密
ii 不支持 传输层安全协议 (TLS),需要一个代理将其连接到 TLS 客户端。例如,可以使用 stunnel
/etc/stunnel/stunnel.conf
[irc.libera.chat] accept = 127.0.0.1:<your-port> connect = irc.libera.chat:6697
然后使用 -s localhost
和 -p your-port
让 stunnel 将 ii 重定向到服务器的安全连接。
另一种选择是使用 socat 作为代理,ii 通过 UNIX 流套接字连接
$ socat UNIX-LISTEN:/tmp/irc.libera.chat OPENSSL:irc.libera.chat:6697 $ ii -s irc.libera.chat -u /tmp/irc.libera.chat
技巧与窍门
使用 sed 编辑输出
可以使用 Sed 编辑 tail -f
输出,使其更具可读性。例如
#!/bin/sh tail -n 55 -f out | sed -u '/-\!-.*has/d; s/<MyNick>/\x1b[32m&\x1b[0m/g; s/\(> >\)\( .*\)/\1\x1b[33m\2\x1b[0m/; s/http[^ >)]*/\x1b[31m&\x1b[0m/g; s/[\"\$\`]/\\&/g; s/\(^[0-9]\{10\}\)\( .*\)/date -d@\1 "+%Y.%m.%d %H.%M.%S""\2"/e'
在此示例中,sed 命令的第一部分隐藏(从命令输出中删除)join、part 和 quit;第二部分在您的昵称周围添加绿色颜色控制代码;第三部分对“highlights”执行相同的操作,颜色为黄色;第四部分对 URL 执行相同的操作,颜色为红色;倒数第二部分准备命令的输出,然后最后一部分将 UNIX 纪元时间戳替换为人类可读的日期。