目次
Nacho はネットワークアプリケーションの挙動を調査するためのツールである。 Nacho = Network Application CHOsa tool の略。
同じ目的でよく使われるツールは telnet コマンドである。 telnet はサーバとの間で TCP コネクションを確立した後、 標準入力から読み込んだデータをサーバへ送信し、 サーバから受信したデータを単に標準出力へ書き出す処理を繰り返す。 telnet はシンプルだけど非常に便利で筆者も度々使用するのだが、 以下の問題がある。
Nacho はこれらの問題を解決し、以下のような機能を提供するプログラムである。
Nacho は以下の2つのプログラムから構成される。
プログラム名 | 機能 |
---|---|
nacho | Nacho の本体。 コネクション開閉やデータ送受信などのアクション、 発生したイベントの表示、 コマンド入力インタフェースを提供する。 |
nacli | nacho の機能のうちコマンド入力インタフェースのみ提供し、 入力されたコマンドを nacho へ配送する。 |
配布ファイル | 内容 |
---|---|
nacho-0.2.tar.gz | Nacho 0.2 のソースコードのアーカイブ |
COPYING | ライセンス |
ソースコードのアーカイブを展開すると、ディレクトリ nacho-0.2 の下に 以下のファイルおよびディレクトリが展開される。
ファイル・ディレクトリ | 内容 |
---|---|
README.txt | Nacho の説明書 (今あなたが見ている文書と同じ) |
INSTALL.txt | インストールガイド |
TODO.txt | 検討中の追加機能、認識している不具合等のメモ |
src/ | ソースコード置き場 |
nb/ | NetBSD make 用のビルド環境 |
gm/ | GNU make 用のビルド環境 |
ac/ | GNU Autoconf 用のビルド環境 |
mkc/ | mk-configure 用のビルド環境 |
ファイル内の文字コードは UTF-8 である。
UNIX 系の OS を対象とする。 作者は以下の環境で動作確認した。
他にも確認したいが環境がない。
詳しくは INSTALL.txt を参照。
Nacho がどのようなものかをイメージしてもらうため、 ここでは大雑把な使用例を示す。
シェルのコマンドラインから nacho を起動する。:
$ nacho 0 - Start main task
この状態でリターンキーを押して改行を入力すると CLI プロンプトが表示され、 コマンド入力待ちに入る。:
CLI>
適当にコマンドを入力してみる。:
CLI> help ** Invalid command: help command: close connect [-S] <host> <serv> exit info listen [-S] <host> <serv> send [ <string> | -p <string> | -x <NN...> | -f <file> | -bnrst ] set [var=val [...]] sslstart
help というコマンドは知らないと言われ、 使用可能コマンドの一覧が使い方と共に表示された。
今、CLI のプロンプトが表示されていないことに注意して欲しい。 ここでもう一度リターンキーを叩いて改行を入れるとプロンプトが表示される。:
ここで改行投入 CLI>
nacho には次の2種類のモードが存在する。
適当に改行を繰り返し入力してみると CLI のプロンプトが一回置きに 表示される。CLI プロンプトが表示されないときがイベント待ちモードである。:
CLI> CLI> CLI>
CLI モードにいるときはイベントが発生しても一切表示されず、 イベント待ちモードに戻った後に表示される。 ユーザが長いコマンドを入力している間に受信したデータの内容が表示されて 画面が乱れて入力が邪魔されるのを防ぐことができる。
CLI モードで exit と入力するか、 イベント待ちモードで ^C (Control + 'C') を押すとプログラムが終了する。
TCP のクライアントとしてサーバホストに接続し、 メッセージの送受信をする実験をしてみる。
nacho を起動し改行を入力し CLI モードに入ったら、 以下のように入力する。:
CLI> connect smtp.gmail.com submission 1 - Start TCP client task 1 - Connecting to 74.125.53.109 port 587 ... 1 - Connected (192.168.11.2 port 64842 -> 74.125.53.109 port 587) 1 - Receive 43 bytes (74.125.53.109 port 587 -> 192.168.11.2 port 64842) 220 mx.google.com ESMTP q27sm6385850wfc.6\r\n
connect はサーバホストへ TCP コネクションの確立を試みるコマンドである。 引数に接続先のサーバホストとポートを指定する。 ここで接続したホスト smtp.gmail.com は GMail の STMP サーバであり、 submission はポート番号 587 に対応するサービス名である。 もちろん IP アドレスとポート番号を数値で指定しても良い。
nacho はイベントが発生するごとにメッセージを表示する。 ここでは4つにイベントが発生し、それぞれ
を表している。 最後のイベントでは受信したデータの内容が表示されている。 末尾の \r は CR (文字コード 0x0d)、\n は LF (文字コード 0x0a) である。
各イベントの先頭の数字はタスク番号を表している。 Nacho では複数の TCP コネクションを同時に張ることが可能であり、 1つのコネクションに1つのタスク番号が割り当てられる。 この4つのメッセージは全てタスク1に関するイベントであることを示している。
次にこちらからデータを送信してみる。 改行を入力し CLI モードに入って以下のように入力する。:
CLI> send ehlo localhost -rn 1 - Send 16 bytes (192.168.11.2 port 64837 -> 74.125.53.109 port 587) ehlo localhost\r\n 1 - Receive 126 bytes (74.125.53.109 port 587 -> 192.168.11.2 port 64837) 250-mx.google.com at your service, [221.113.230.120]\r\n 250-SIZE 35651584\r\n 250-8BITMIME\r\n 250-STARTTLS\r\n 250 ENHANCEDSTATUSCODES\r\n
send コマンドはデータを送信するコマンドである。 引数には送信したいデータを文字列や16進数で指定することができる。 send コマンドの末尾に付けた -rn は CR と LF の送信を指示している。 コマンドを投入するとすぐに2つのイベントが発生した。それぞれ、
を表している。
最後にコネクションを終了させてみる。:
CLI> close 1 - Closing 1 - End task
コネクションを閉鎖しタスクの終了を示すイベントが表示された。
次に TCP のサーバ側になり、クライアントからの接続を待ち受けてみる。 以下のように入力する。:
CLI> listen 0.0.0.0 55555 1 - Start TCP listen task 1 - Listen on 0.0.0.0 port 55555
listen コマンドは TCP 接続の待ち受けを開始する。 引数には待ち受けるアドレスとポートを指定する。 コマンドを投入すると2つのイベントが表示され、それぞれ、
を表している。 なお、アドレス 0.0.0.0 はこのホストが所有する任意のアドレスでの 待ち受けを意味する。
さて、TCP listen タスクが待ち受けているアドレス&ポートに対し、 telnet コマンドを使って接続してみよう。 同じマシン上に端末をもう1つ開き、シェルから以下のように入力する。:
$ telnet localhost 55555 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'.
nacho には以下のようなイベントが表示されたはずだ。:
1 - Connected (127.0.0.1.64816 -> 127.0.0.1.55555) 2 - Start TCP server task
それぞれ、
を表している。
telnet 側の端末から適当にデータを入力してみよう。:
Hello, I am Nancy.
すると、nacho 側の端末には以下のように表示された。:
2 - Receive 20 bytes (127.0.0.1 port 64816 -> 127.0.0.1 port 55555) Hello, I am Nancy.\r\n
それに対し、nacho 側から telnet へ応答を返してみる。:
CLI> send Hello, I am Keiko. -rn 2 - Send 20 bytes (127.0.0.1 port 55555 -> 127.0.0.1 port 64816) Hello, I am Keiko.\r\n
すると、telnet 側にはその内容が表示されたはずだ。
telnet 側からコネクションを切断してみる。 telnet のエスケープ文字 ^] (Control + ']')を入力し、 プロンプトから close と入力する。:
^] telnet> close Connection closed.
nacho 側では以下のように表示された。:
2 - Connection closed by peer 2 - End task
接続先ホストからコネクションが切断され、タスクが終了したことを意味する。
nacho は、コネクション開閉やデータ送受信などのアクション、 発生したイベントの表示、およびコマンド入力インタフェースの機能を 提供するプログラムである。
書式:
nacho [options] [var=val ...] [[tid] command args ...]
引数 | 機能 |
---|---|
-c socket_file | nacho と nacli 間での通信に使用するソケットファイル名を 指定する。デフォルトは ~/.nacho/ctlmsg.sock 。但し、 相対パスならばディレクトリ ~/.nacho が基点となる。 |
-o filename | イベント情報の出力先ファイル名を指定。 指定したときは標準出力とファイルの両方に書込まれる。 未指定ならば標準出力にのみ書込まれる。 このオプションは nacho 起動後に logfile パラメータで 設定するとも可能。 |
-p {a|x|m|<locale>} | 送受信データの表示形式を指定する。
このオプションは nacho 起動後に print_mode パラメータで 設定するとも可能。 |
-v | 冗長メッセージを表示 |
-V | バージョンを表示して終了 |
var=val | パラメータ var に値 val を設定する。 '=' の前後の空白を入れてはいけない。 指定できるパラメータについては後述する。 |
tid | command を実行させるタスクのタスクIDを指定 |
command args ... | 起動後に実行するコマンドを1つだけ指定できる。 nacho はこのコマンドを処理したあとイベント待ちモードに 入る。 |
nacho は動作している間、2つのモードのどちらかにいる。
CLI モードで入力できるコマンドについては後述する。
以下の方法で nacho を終了させることができる。
nacli は nacho からコマンド入力機能だけを抜き出したものである。 nacho がイベント待ちモードで動作している状態で、 別の端末から nacli を使ってコマンドを投入できる。 nacli 単体では何もできない。
書式:
nacli [options] [var=val ...] [[tid] command args ...]
引数 | 機能 |
---|---|
-c socket_file | nacho と nacli 間での通信に使用するソケットファイル名を 指定する。デフォルトは ~/.nacho/ctlmsg.sock 。但し、 相対パスのときはディレクトリ ~/.nacho が基点となる。 |
-V | バージョンを表示して終了 |
var=val | パラメータ var に値 val を設定する。 '=' の前後の空白を入れてはいけない。 指定できるパラメータについては後述する。 |
tid | command を実行させるタスクのタスクIDを指定 |
command args ... | 起動後に実行するコマンドを1つだけ指定できる。 nacli はこのコマンドを nacho へ発行するとすぐに プログラムを終了する。 一方、コマンドを指定しなかったときは CLI モードに入る。 |
nacli には CLI モードのみ存在し、イベント待ちモードは存在しない。 nacho で発生したイベントはすべて nacho 側に表示される。
コマンドライン引数でコマンド(command args...)が指定されなかったときは CLI モードに入り、'CLI> ' プロンプトを表示しコマンド入力を待つ。 ユーザが端末からコマンドを投入するとローカルソケット経由で nacho に送信し、 すぐにプロンプトを表示してコマンド入力を待つ。
以下の方法で nacli を終了させることができる。
nacho、nacli のコマンドライン引数または CLI モードから入力できる コマンドの仕様を示す。
現在サポートされているコマンドは以下の通り。
コマンド名 | 機能 |
---|---|
connect | TCP 接続 (クライアント側) |
listen | TCP 接続待ち受け開始 (サーバ側) |
close | コネクションを閉鎖しタスクを終了 |
send | データを送信 |
sslstart | SSLハンドシェークを実行 |
info | タスク一覧を表示 |
set | パラメータを表示・設定 |
exit | プログラムを終了 |
close、send、sslstart コマンドで各コマンド名の前にタスク番号を指定すると、 そのタスクに対してコマンドが配送され処理される。 タスク番号が未指定のときは最後に起動したタスクにコマンドが配送される。
例: タスク 5 のコネクションへデータを送信:
5 send helo ok -rn
それ以外のコマンドは無条件に Main タスクによって処理される。 ただし exit コマンドはタスクとは無関係である。
書式:
connect [-S] <host> <serv>
TCP client タスクを起動し、 そのタスク上でTCPクライントとしてサーバホストへの接続を試みる。
<host> には接続先のホスト名 or IPアドレス、 <serv> には接続先のサービス名 or ポート番号を指定する。 指定したホスト名に対応するアドレスが複数存在するときは、 接続に成功するまで順にトライする。
オプション -S を指定するとコネクションを確立したあと SSL ハンドシェークを実行し SSL コネクションの確立を試みる。
使用例:
CLI> connect smtp.gmail.com submission 1 - Start TCP client task 1 - Connecting to 72.14.213.109 port 587 ... 1 - Connected (192.168.11.2 port 65047 -> 72.14.213.109 port 587) 1 - Receive 43 bytes (72.14.213.109 port 587 -> 192.168.11.2 port 65047) 220 mx.google.com ESMTP v38sm6741523wfh.0\r\n
書式:
listen [-S] <host> <serv>
TCP listen タスクを起動し、 そのタスク上でTCPコネクションの接続の待ち受けを開始する。
<host> には待ち受けを行なうホスト名 or IPアドレス、 <serv> にはサービス名 or ポート番号を指定する。 指定したホスト名に対応するアドレスが複数存在するときは、 (getaddrinfo()で)最初に取得したアドレスでのみ待ち受けを行なう。 IPアドレスとして 0.0.0.0 を指定するとホストが所有する全ての IPv4 アドレスで待ち受ける。 同様に :: (または ::0) を指定するとホストが所有する全ての IPv6 アドレスで待ち受ける。
オプション -S を指定するとコネクションを確立したあと SSL ハンドシェークを実行し SSL コネクションの確立を試みる。
TCP listen タスクが待ち受けているアドレスに対し接続があると、 TCP server タスクが自動的に起動する。
使用例:
CLI> listen 0.0.0.0 55555 2 - Start TCP listen task 2 - Listen on 0.0.0.0 port 55555
書式:
close
TCP client タスクと TCP server タスクで close を実行すると TCP コネクションが閉鎖しタスクが終了する。 TCP コネクション確立処理中のとき及び SSL ハンドシェーク実行中に close コマンドを実行すると処理が中断しタスクが終了する。
TCP listen タスクで close コマンドを実行すると、 待ち受け処理が終了しタスクを終了させる。
使用例:
CLI> close 1 - Closing 1 - End task
書式:
send [ <string> | -p <string> | -x <NN...> | -f <file> | -bnrst ]
TCP コネクションに引数で指定されたデータを送信する。 ただし、SSL コネクションが確立しているコネクションについては SSL コネクションに対してデータを送信する。
以下に引数を説明する。 全ての引数は任意の場所に複数回指定でき、その順番にデータが送信される。
引数 | 内容 |
---|---|
<string> | 文字列 <string> を送信する。 但し、直前の引数が <string> または -p <string> のとき、 最初に空白(0x20)を送信してから <string> を送信する。 例えば send hello I am nancy としたとき、 hello 空白 I 空白 am 空白 nancy が送信される。 |
-p <string> | 文字列 <string> を送信する。 |
-f <file> | ファイル <file> の中身を送信する。 |
-x <NN...> | 16進数 <NN...> を上位バイトから順に送信。 途中に16進数以外の文字は送信されず区切文字として機能する。 例えば send -x 001122_34455:66 とすると、 16進数で 00, 11, 22, 03, 44, 55, 66 が順に送信される。 |
-r | CR (文字コード 0x0d) を送信する。 |
-n | LF (文字コード 0x0a) を送信する。 |
-s | 空白 (文字コード 0x20) を送信する。 |
-t | 水平タブ (文字コード 0x09) を送信する。 |
-b | 直後の引数で指定される送信データを Base64 で符号化する。 例えば send -bp hello -rn とすると hello を符号化した aGVsbG8K と、それに続けて CR LF が送信される。 |
使用例:
CLI> send ehlo localhost -rn 1 - Send 16 bytes (192.168.11.2 port 65043 -> 72.14.213.109 port 587) ehlo localhost\r\n 1 - Receive 125 bytes (72.14.213.109 port 587 -> 192.168.11.2 port 65043) 250-mx.google.com at your service, [221.185.17.167]\r\n 250-SIZE 35651584\r\n 250-8BITMIME\r\n 250-STARTTLS\r\n 250 ENHANCEDSTATUSCODES\r\n
これでも同じ:
CLI> send -p 'ehlo localhost' -x 0d0a 1 - Send 16 bytes (192.168.11.2 port 65043 -> 72.14.213.109 port 587) ehlo localhost\r\n 1 - Receive 125 bytes (72.14.213.109 port 587 -> 192.168.11.2 port 65043) 250-mx.google.com at your service, [221.185.17.167]\r\n 250-SIZE 35651584\r\n 250-8BITMIME\r\n 250-STARTTLS\r\n 250 ENHANCEDSTATUSCODES\r\n
書式:
sslstart
TCP コネクション上で SSL ハンドシェークを実行し SSL コネクションの確立を 試みる。 このコマンドは、TCP client タスクと TCP server タスクでのみ使用できる。
SSL ハンドシェークが成功すると、 それ以降のデータは SSL コネクションに対して送受信される
使用例:
CLI> connect imap.gmail.com imaps 1 - Start TCP client task 1 - Connecting to 74.125.155.109 port 993 ... 1 - Connected (192.168.11.2 port 65329 -> 74.125.155.109 port 993) CLI> sslstart 1 - SSL handshaking... 1 - SSL established 1 - Receive 69 bytes (74.125.155.109 port 993 -> 192.168.11.2 port 65329 SSL) * OK Gimap ready for requests from 221.185.17.167 37if7084938qci.76\r\n
書式:
info
現在動いているタスクの一覧を表示する。
使用例:
CLI> info 0 - Task list: 0 - Main 1 - TCP client (192.168.11.2 port 65105 -> 205.178.146.50 port 587) 2 - TCP listen (0.0.0.0.55555) 3 - TCP server (127.0.0.1.65103 -> 127.0.0.1.55555)
この例では、Main タスク、TCP client タスク、TCP listen タスク、 TCP server タスクがそれぞれ1つずつ動作している状態を示している。 各行の先頭の数字はタスクIDである。
書式:
set [var1[=[val1]] [var2[=[val2]] ... ]
パラメータを表示または設定する。 var1, var2, ... はパラメータ名、val1, val2 ... は設定値である。
引数の形式によって動作が異なる。
使用例:
CLI> set 0 - Parameters: verbose=no print_mode=ascii logfile=(unset) ssl_mode=(unset) ssl_ciphers=(unset) ssl_certfile=/home/fujiyosi/.cinwa/cert.pem ssl_keyfile=/home/fujiyosi/.cinwa/key.pem CLI> set ssl_certfile=~/.cinwa/cert.pem ssl_keyfile=~/.cinwa/key.pem 0 - ssl_certfile=/home/fujiyosi/.cinwa/cert.pem 0 - ssl_keyfile=/home/fujiyosi/.cinwa/key.pem
設定できるパラメータについては後述。
書式:
exit
プログラムを終了する。
CLI モードでは EditLine ライブラリ(libedit) を使用して行編集機能を 提供している。CLI で使用できる内蔵コマンド、設定項目および 設定方法については editrc(5) のマニュアルを参照されたい。
コマンド行に含まれる特殊文字はシェルと同じ方法でエスケープすることができる。
例: 空白文字の送信:
CLI> send -p 'hello I am Nancy' -rn
例: 空白文字の送信その2:
CLI> send -p hello\ \ I\ \ \ \ am\ \ \ \ Nancy -rn
デフォルトで Emacs 風キーバインドになっている。 ^B でカーソルを左へ1文字移動、^F でカーソルを右へ1文字移動、 ^P で1つ前のコマンドに移動、^N で1つ後のコマンドに移動、など。 ^B は Control キーを押しながら B を押すことを意味する。
キーの設定および設定内容の表示は bind コマンドで行なう。
例: 現在のキーバインドを表示:
CLI> bind -a Standard key bindings "^@" -> em-set-mark "^A" -> ed-move-to-beg "^B" -> ed-prev-char "^C" -> ed-tty-sigint "^D" -> em-delete-or-list (以下省略)
例: キーバインドを vi 風に変更:
CLI> bind -v
デフォルトでは ^I に補完機能が割り当てられている。
補完には、コマンド名補完とファイル名補完がある。
コマンド名を補完する。 カーソルが先頭ワードに置かれている場合のみ適用される。
例:
CLI> ★ここで ^I を押す close exit listen set connect info send sslstart CLI> c★ここで ^I を押す close connect CLI> co★ここで ^I を押す CLI> connect ★補完完了
2ワード目以降で ^I を入力するとコマンドの使い方が表示される。:
CLI> connect ★ここで ^I を押す usage: connect [-S] <host> <serv> CLI> connect
ローカルファイルシステム上のファイルパスを補完する。 ファイル名補完が適用されるケースは以下の2パターンある。
例:
CLI> send -f★ここで ^I を押す .svn/ complete.o na_ctlmsg.o nacho_ssl.o sockmacro.o Makefile datastr.o na_misc.o nacho_tcp.o sslmacro.o base64.o getoptot.o nacho nacli stdeasy.o bufout.o libtmp.a nacho.o nacli.o task.o cli.o na_cmdopt.o nacho_log.o nbsock.o toktok.o CLI> send -fs★ここで ^I を押す sockmacro.o sslmacro.o stdeasy.o CLI> send -fss★ここで ^I をを入力 CLI> send -fsslmacro.o
注意点として、bind -v により vi 風キーバインドに変更した場合、 または bind -e により Emacs 風キーバインドに再設定した場合、 ^I のバインドが消えてしまう。 その場合は、以下のようにして bind コマンドにより再設定できる。:
CLI> bind ^I cli-complete
別のキーに割り当てるならば ^I の部分を変更する。
ユーザが CLI から投入したコマンドはヒストリとして保存される。 Emacs 風キーバインドならば ^P で1つ前のコマンドに移動、 ^N で1つ後のコマンドに移動する。
ヒストリに保存するコマンド数の上限は history size N により設定できる。 例えば history size 100 を実行すると最大100個のコマンドがヒストリに 保存される。
nacho/nacli はプログラムを終了するとき現在のヒストリの内容を ヒストリファイルに保存し、次回起動時に復旧する。
ヒストリファイルは、環境変数 NACHO_DIR 設定時はそのディレクトリ、 それ以外のときはディレクトリ ~/.nacho 以下に置かれる。 ファイル名は nacho では history.nacho、nacli では history.nacli である。 これらは nacho が内部で管理するものであるためユーザが意識する必要はない。
例: ヒストリを表示:
CLI> history 1 connect smtp.gmail.com submission 2 send ehlo localhost -rn 3 send rset -rn 4 send quit -rn 5 history
例: ヒストリ保存行数を100行に設定:
CLI> history size 100
注意点: nacho では内蔵コマンドを実行したあとイベント待ちモードに遷移するため CLI には戻らない。CLI に戻るためには更に改行を入力すること。 一方 nacli では内蔵コマンドを実行するとすぐに CLI に戻る。
CLI の初期設定を ~/.editrc に記述できる。 ~/.editrc は EditLine (libedit) を使用するプログラムから共通に 参照されるファイルであり、:
プログラム名:コマンド 引数 ...
という形式の行を並べたものである。
nacho および nacli のプログラム名は nacho である。 nacho / nacli は起動するとこのファイルの中の nacho: で始まる行の コマンドを実行することで CLI の初期設定を行なう。
以下の例は、vi ライクのキーバインドにし、ヒストリ保存数を100に設定する。:
nacho:bind -v nacho:history size 100
詳しくは editrc(5) のマニュアルページを参照のこと。
現状、CLI では日本語を含めマルチバイト文字の入力には対応していない。
マルチバイト文字を送信するためには、送信データを格納したファイルを用意し、 send コマンドの -f オプションでファイル名を指定する。
以下の4種類のタスクが存在し、必要に応じて生成される。 Main タスクを除き close コマンドを発行することでタスクが終了する。
各タスクにはタスクIDが割り当てられる。 info コマンドによりタスクの一覧を表示できる。
set コマンド等で設定できるパラメータを以下に示す。
パラメータ名 | 機能 |
---|---|
verbose | yes なら冗長表示を有効化、no なら無効化。デフォルトは no。 |
print_mode | 送受信データの表示形式を指定する。デフォルトは ascii。
|
logfile | イベント情報の出力先ファイル名を指定。初期値は「未指定」。 logfile が未指定のときは標準出力にのみイベント情報を 書き出す。 logfile が指定されたときは両方にイベント情報を書き出す。 |
ssl_mode | SSL で使用するプロトコルバージョンを 2、3、23、tls の いずれかで指定する。
|
ssl_ciphers | SSL でデータの暗号化に使用する暗号方式を指定する。 openssl ciphers コマンドで表示されるやつを指定可能。 デフォルトは未設定(→ OpenSSL のデフォルト値となる) |
ssl_certfile | SSL の証明書ファイル名を指定。 ただし現状は PEM 形式のファイルのみサポート。 デフォルトは未設定だがサーバになる場合は設定必須。 |
ssl_keyfile | ssl_certfile に対応する秘密鍵ファイル名を指定。 ただし現状は PEM 形式のファイルのみサポート。 デフォルトは未設定だがサーバになる場合は設定必須。 |
nacho が参照する環境変数を示す。
環境変数 | 機能 |
---|---|
NACHO_DIR | 作業ファイルを格納するディレクトリパスを設定。 未指定のときは ~/.nacho となる。 |
NACHO_FLAGS | nacho のコマンドライン引数に追加する引数を指定する。 |
nacho が内部的に使用するファイルを示す。 基本的にはユーザが意識する必要はないはず。
各ファイルは、環境変数 NACHO_DIR 設定時はそのディレクトリに置かれ、 それ以外のときはディレクトリ ~/.nacho 以下 に置かれる。
ファイル名 | 内容 |
---|---|
nacho.history | nacho で ユーザが CLI から投入したコマンドが保存される。 nacho 終了時に記録され、再起動するとロードされる。 |
nacli.history | nacli で ユーザが CLI から投入したコマンドが保存される。 nacli 終了時に記録され、再起動するとロードされる。 |
ctlmsg.sock | CLI から nacho 本体にコマンドを発行するために使用される UNIX ソケットファイル。nacho 動作中のみ存在する。 ただし、オプション -c でソケットファイル名を指定した ときはそのファイルが使われる。 |