ii
IRC it (ii) は、極端にシンプルな FIFO とファイルシステムベースの IRC(インターネットリレーチャット)クライアントです。サーバー、チャンネル、ニックネームディレクトリを含む IRC ディレクトリツリーを作成します。各ディレクトリには FIFO 入力ファイルと通常の出力ファイルが作成されます。
目次
インストール
設定
ii はコマンドラインオプションで設定されます。デフォルトの値は、サーバーとポートには irc.freenode.net:6667
、メインディレクトリには ~/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 uses an environmental variable to contain your irc password (i.e., IIPASSテンプレート:="password"; -k IIPASS
).
使用方法
詳細な説明については公式のドキュメントを参照してください。
セッションマネージャーとしては、abduco や tmux が推奨されています。これにより、ユーザーは簡単にセッションを切断し、再接続することができます。
iiを起動するには:
$ ii
以下も参照してください: ii(1)。
追加機能
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で説明されているように、FIFO 内のサーバーに/WHO
と書き込んでください。
SSL/TSL 暗号化
ii はトランスポート層セキュリティ(TLS)をサポートしていませんが、TLSクライアントに接続するためにプロキシが必要です。これの一例は stunnel を使用する場合です:
/etc/stunnel/stunnel.conf
[irc.libera.chat] accept = 127.0.0.1:<your-port> connect = irc.libera.chat:6697
その後、stunnel が ii をサーバーへの安全な接続にリダイレクトするために、-s localhost
と-p your-port
を使用します。
もう一つのオプションは、socatを使用して UNIX ストリームソケット経由で ii に接続する方法です:
$ socat UNIX-LISTEN:/tmp/irc.libera.chat OPENSSL:irc.libera.chat:6697 $ ii -s irc.libera.chat -u /tmp/irc.libera.chat
Tips and tricks
Using sed to edit output
Sed can be used to edit tail -f
output in ways that make it more readable. Example:
#!/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'
In this example, the first part of the sed command hides (deletes from the command output) the join, part and quit; the second one adds green color control codes around your nickname; the third one does the same for "highlights" in yellow; the fourth with red on URLs; the penultimate prepares the output of the command before the last one substitutes the UNIX epoch timestamps with a human readable date.