cli-app-icon_64.pngHaiku 特有のコマンドラインアプリケーション

場所:/boot/system/bin/
/boot/system/non-packaged/bin/
~/config/bin/
~/config/non-packaged/bin/


Haiku に標準装備されているすべてのコマンドラインアプリケーションは、/boot/system/bin/ の中にあります。ユーザー自身の、または追加でインストールしたコマンドラインアプリケーションは同様にそこにあるか、hpkg パッケージからインストールされているなら、~/config/bin/ に現れるでしょう。これらはまた、/boot/system/non-packaged/bin/ あるいは、~/config/non-packaged/bin/ に置けます。これらすべてのパスは PATH 環境変数の一部なので、コマンドは自動的に見つかります。
以下は、Haiku 特有のコマンドラインアプリケーションの完全なリストではありません。試しに、もっとも有用な一部のコマンドを単に強調しているだけです。bin/ フォルダーにあるものをユーザー自身で少し調査することを促します。コマンドを --help 引数を付けて実行すると、コマンドの使い方とさまざまなオプションについて表示します。

index 属性に関するコマンド: listattr, catattraddattrrmattrcopyattr

これらのコマンドは、ファイル属性を表示、出力、追加、および削除するために使用します。現在のところ、これらのメタデータは BFS で初期化されたボリュームでのみ使用できることに注意してください。BFS 以外のファイルシステムにファイルを移動させると、すべての属性が失われてしまいます!
これらのコマンドは、ターミナルでの属性のトピックで解説しています。

index インデックスに関するコマンド: lsindex, mkindex, reindex, rmindex

これらのコマンドによって、インデックスの一覧表示やインデックスの生成・再生成、BFS のインデックスへ結びつけられた属性の削除が行えます。各ボリュームは固有のインデックスを保持しています。ファイルをあるボリュームから別のボリュームへコピーするときには、この点に注意してください。
これらのコマンドは、インデックスのトピックで解説しています。

index パッケージ管理に関するコマンド: package, pkgman

package コマンドは、HPKG パッケージを管理するのに用いられます。アプリケーションのインストール の記事を見て、基礎の基礎について学んでください。いわゆる recipe から自動的にパッケージをビルドするためには、通常、haikuporter というツールが使われます。

pkgman は、パッケージの検索、インストール、更新、およびアンインストールに使われるツールです。パッケージリポジトリは、追加、削除、およびパッケージリストのリフレッシュができます。full-sync パラメーターと共に実行すると、特別な種類の更新が行われます。それはより積極的で、必要であればパッケージのダウングレードまたは削除も行います。
パラメーターについて詳しくは、"--help" を追加して実行してください。例. pkgman search --help

index スクリプト処理に役立つコマンド

以下では、スクリプト処理 (Bash とスクリプト処理のトピックも併せて参照ください) に対して特に便利なコマンドラインツールを紹介します。

alert

alert は既定のアイコンと説明文、および 3 つのボタンの付いた典型的な警告ウィンドウを表示します。このコマンドは、クリックされたボタンのタイトルと終了ステータス (0 から始まります) を返します。たとえば、下図は次の 1 行で作成されます:

alert --idea "FantasticApp(tm) installed successfully! \
Would you like a link to it?" "On Desktop" "In Deskbar" "No thanks"

cli-alert.png

filepanel

filepanel はファイルの読み込み / 書き込みパネルを表示して、ユーザーがファイルや場所を選択できるようにします。戻り値として選択されたファイルまたはフォルダーのパスが得られます。既定のディレクトリを指定したり、ウィンドウタイトルを設定したり、ファイルを保存する際の既定のファイル名および許可するファイルタイプを指定したりするための引数がいくつか利用できます。下図は次のコマンドを実行した場合の例です:

filepanel -s -t "Save your logfile" -d ~/config/settings -n Fantastic.log

cli-filepanel.png

hey

hey は、BMessage をアプリケーションに送信し、アプリケーションからの返信を出力する小さなヘルパーツールです。それは、アプリケーションスクリプティングに使用されます。つまり、あるプログラムを、スクリプトまたはコマンドラインから "リモートコントロール" します。使い方はすこし複雑です... Humdinger 氏の ブログへの投稿 が良い入門書となります。また、Scot Hacker 氏の BeOS Bible のおかげで、Chris Herborth によるさらに広範囲の hey チュートリアルがあります。

notify

notify は、メッセージ入りの通知パネルを表示します。notify --help を呼び出すと、さまざまなパラメーターが表示されます。また、通知は何らかのアクションの進捗表示にも使用されます。その際、messageID を設定して、進捗 (0.0 と 1.0 の間の浮動小数点値で、% として表示されます) を更新するときに常に使用することが大切です。そうしないと、設定されたタイムアウトより早く更新した場合、いくつかの通知パネルが表示されます。
例:

notify --type progress --group "--group" --title "--title" --icon /boot/home/bebook.hvif \
--messageID MyMessageID --progress .75 "Keep waiting"

cli-notification.png

query

query は、検索 (Find) パネルのコマンドラインバージョンです。ちなみに、検索語句をすばやく生成するには、検索パネルでクエリを生成し、式で検索 (by formula) に切り替えて先頭と末尾にダブルクオート (") を追加し、その文字列全体をターミナルまたはスクリプトの query コマンドの後に貼り付けます。

waitfor

waitfor は特定のアプリケーションやスレッドの開始および終了を待つのに良い方法です。

index ほかのコマンド

checkfs

checkfs はファイルシステムのエラーをチェックする重要なツールです。実行は単に /Haiku のようなボリューム名またはデバイス名を追加するだけです。すると、すべてのファイルを走査して、可能なら不整合を修復します。

desklink

desklink を使用すると、任意のファイルやフォルダー、クエリ、アプリケーションのアイコンを Deskbar トレイにインストールできます。特別なアクションを実行するためにアイコンを右クリックしたときに表示されるコンテキストメニューを定義するオプションもあります。例として、次のようにいろいろなオプション (1 行目の "\" はターミナルでの改行を表します) を付けて、スクリーンショット (screenshot) を Deskbar に追加してみましょう。

desklink "cmd=Active window (2s):/bin/screenshot --window --border --delay 2" \
"cmd=Remove replicant:desklink --remove=screenshot" /bin/screenshot

cli-alert.png

diskimage

diskimage は、普通のファイルをディスクデバイスとして登録します。たとえば、Haiku anyboot イメージを登録して、Tracker 中にマウントし、インストーラーのソースとして使う前にそこに存在するファイルの編集 / コピー / 削除ができます。

launch_roster

launch_daemon は、起動時に各種サービスやアプリケーションを開始します。それらのいくつかに対しては、終了後再起動するように指示されています。それを望まないのであれば – たぶん、たとえば修正した Tracker をテストする場合、launch_roster を使って、アプリケーションの終了前に再起動を停止 (stop) させます。同様に、それを再び起動 (start) することや、それについての情報 (info) を得ることもできます。引数 log は、launch_daemon に関連するすべてのイベントのログを出力します。
引数がないと、launch_roster はコントロールしているすべてのアプリ / サービスの一覧を出力します。
例として、以下は Deskbar の再起動を停止します。

launch_roster stop x-vnd.be-tskb

mountvolume
mount

mountvolume は、ローカルのパーティションやディスクをマウントするのに多くの人に好まれます。なぜなら、使い方がとても簡単だからです。パーティション名とともに呼び出して、それでおしまいです。追加のオプションについては、--help を試してください。

さらに、mount は、NFS4 のようなネットワークファイルシステムを使うことで、リモートディスクをマウントできます。-t 引数で使用するファイルシステムを指定し、-p 引数でリモートの場所を指定します。ファイルシステム引数については、/system/add-ons/kernel/file_system (および、もちろん、~/config または "non-packaged" 以下の対応するファイル階層) で見つかるものをすべて使用できます。また、マウントポイントとしてフォルダーを作成する必要があります。以下に例を示します。

mkdir -p /DiskStation
mount -t nfs4 -p "192.168.178.3:volume1" /DiskStation

open

open は非常に便利な小さいツールです。このコマンドを使うと任意のファイルを適切なアプリケーションで開け、また、正確なパスを知らなくてもシグネチャーを用いて特定のアプリケーションを起動できます。このコマンドは URL や「仮想的な」ディレクトリを用いることさえできます。ディレクトリの場合は . で現在のディレクトリを、.. で親ディレクトリを表すことができ、そのフォルダーを Tracker 内に開きます。

ramdisk

RAM ディスク (ramdisk) は、コンピューターのメモリ内だけで動くハードディスクのようなものです。メモリ内で動くことは、RAM ディスクを非常に高速にしますが、しかしまた揮発性にもします。それは、コンピューターをシャットダウンするか、クラッシュするか、停電を経験することでその内容は消えてなくなるからです。
1 GiB の RAM ディスクを作成し、"RAMses" の名前でフォーマットし、マウントするには、端末で以下を入力するかスクリプトを作成します:

ramdisk create -s 1gb
mkfs -q -t bfs /dev/disk/virtual/ram/0/raw RAMses
mountvolume RAMses

注意: RAM ディスクを作成する際、ramdisk コマンドは RAM ディスクへのパスを出力します。複数のラムディスクを作成する場合、そのパス /dev/disk/virtual/ram/0/raw は変化します!

少なくとも停電などの災難が襲わない場合、内容を保存するために、RAM ディスクはハードディスク上のイメージを読み書きできるよう設定できます。そのためには、RAM ディスクの起動毎に読みだし、アンマウント時に書き込む、望ましいサイズのファイルを提供する必要があります。"RAMimage" という 500MiB のイメージを作成してフォーマットするには、以下のようにします:

dd if=/dev/zero of=RAMimage bs=500M count=1
mkfs -q -t bfs /dev/disk/virtual/ram/0/raw RAMimage

今後は、以下のように RAM ディスクを開始します:

ramdisk create RAMimage
mountvolume RAMimage

Tracker からか、unmount /RAMimage のどちらかで、RAM ディスクを常に正常にアンマウントすることはとても重要です。そうしなければ、変更がイメージファイルに書き込まれないでしょう!