16.9. コンソールの使用


16.9.1. 利用可能なコマンド

コンソールで利用可能なコマンドをリスト表示するには、help を使用できます。

karaf@root()> help
bundle                            Enter the subshell
bundle:capabilities               Displays OSGi capabilities of a given bundles.
bundle:classes                    Displays a list of classes/resources contained in the bundle
bundle:diag                       Displays diagnostic information why a bundle is not Active
bundle:dynamic-import             Enables/disables dynamic-import for a given bundle.
bundle:find-class                 Locates a specified class in any deployed bundle
bundle:headers                    Displays OSGi headers of a given bundles.
bundle:id                         Gets the bundle ID.
...

すべてのコマンドのリストと簡単な説明が表示されます。

tab キーを使用して、すべてのコマンドのクイックリストを取得できます。

karaf@root()> Display all 294 possibilities? (y or n)
...

16.9.2. サブシェルおよび完了モード

コマンドには、スコープと名前があります。たとえば、feature:list コマンドでは、feature が範囲で、list が名前となります。

Karaf はコマンドをスコープごとに "グループ化" します。スコープごとにサブシェルが形成されます。

完全修飾名 (scope:name) でコマンドを直接実行できます。

karaf@root()> feature:list
...

または、サブシェルに入り、コマンドコンテキストをサブシェルに入力します。

karaf@root()> feature
karaf@root(feature)> list

サブシェル名 (ここでは feature) を入力して、サブシェルに直接入力できることに注意してください。サブシェルから別のシェルに直接 "切り替える" ことができます。

karaf@root()> feature
karaf@root(feature)> bundle
karaf@root(bundle)>

プロンプトには、() の間にある現在のサブシェルが表示されます。

exit コマンドは、親サブシェルに移動します。

karaf@root()> feature
karaf@root(feature)> exit
karaf@root()>

補完モードは、タブキーの動作と help コマンドを定義します。

利用可能なモードは 3 つあります。

  • GLOBAL
  • FIRST
  • SUBSHELL

etc/org.apache.karaf.shell.cfg ファイルの completionMode プロパティーを使用して、デフォルトの補完モードを定義できます。デフォルトには以下が含まれます。

completionMode = GLOBAL

shell:completion コマンドを使用して、補完モードを "即座に" (Karaf シェルコンソールの使用中に) 変更することもできます。

karaf@root()> shell:completion
GLOBAL
karaf@root()> shell:completion FIRST
karaf@root()> shell:completion
FIRST

shell:completion は現在使用されている補完モードについて通知できます。必要な新しい補完モードを指定することもできます。

GLOBAL 補完モードは Karaf 4.0.0 のデフォルトモードです (主に移行の目的で)。

GLOBAL モードは、実際には subshell を使用せず、以前のバージョンの Karaf と同じ動作です。

タブキーを入力すると、どのサブシェルで操作していても、補完ですべてのコマンドとすべてのエイリアスが表示されます。

karaf@root()> <TAB>
karaf@root()> Display all 273 possibilities? (y or n)
...
karaf@root()> feature
karaf@root(feature)> <TAB>
karaf@root(feature)> Display all 273 possibilities? (y or n)

FIRST 補完モードは、GLOBAL 補完モードの代わりとなります。

ルートレベルのサブシェルでタブキーを入力すると、(GLOBAL モードのように) すべてのサブシェルからのコマンドとエイリアスが表示されます。ただし、サブシェルでタブキーを入力すると、補完として、現在のサブシェルのコマンドのみが表示されます。

karaf@root()> shell:completion FIRST
karaf@root()> <TAB>
karaf@root()> Display all 273 possibilities? (y or n)
...
karaf@root()> feature
karaf@root(feature)> <TAB>
karaf@root(feature)>
info install list repo-add repo-list repo-remove uninstall version-list
karaf@root(feature)> exit
karaf@root()> log
karaf@root(log)> <TAB>
karaf@root(log)>
clear display exception-display get log set tail

SUBSHELL 補完モードは、実際のサブシェルモードです。

ルートレベルでタブキーを入力すると、補完としてサブシェルコマンド (サブシェルに移動する) とグローバルエイリアスが表示されます。サブシェルで TAB キーを入力すると、補完として、現在のサブシェルのコマンドが表示されます。

karaf@root()> shell:completion SUBSHELL
karaf@root()> <TAB>
karaf@root()>
* bundle cl config dev feature help instance jaas kar la ld lde log log:list man package region service shell ssh system
karaf@root()> bundle
karaf@root(bundle)> <TAB>
karaf@root(bundle)>
capabilities classes diag dynamic-import find-class headers info install list refresh requirements resolve restart services start start-level stop
uninstall update watch
karaf@root(bundle)> exit
karaf@root()> camel
karaf@root(camel)> <TAB>
karaf@root(camel)>
backlog-tracer-dump backlog-tracer-info backlog-tracer-start backlog-tracer-stop context-info context-list context-start context-stop endpoint-list route-info route-list route-profile route-reset-stats
route-resume route-show route-start route-stop route-suspend

16.9.3. UNIX のような環境

Karaf コンソールは、Unix のような完全な環境を提供します。

16.9.3.1. ヘルプまたは man

利用できるすべてのコマンドを表示する help コマンドの使用方法についてすでに説明しました。

ただし、help コマンドや、help コマンドのエイリアスである man コマンドを使用して、コマンドの詳細を取得することもできます。コマンドの --help オプションを使用して、別のフォームを使用してコマンドのヘルプを取得することもできます。

以下のコマンドのようになります。

karaf@root()> help feature:list
karaf@root()> man feature:list
karaf@root()> feature:list --help

以下で、すべて同じヘルプ出力を生成します。

DESCRIPTION
        feature:list

        Lists all existing features available from the defined repositories.

SYNTAX
        feature:list [options]

OPTIONS
        --help
                Display this help message
        -o, --ordered
                Display a list using alphabetical order
        -i, --installed
                Display a list of all installed features only
        --no-format
                Disable table rendered output

16.9.3.2. 補完

タブキーを入力すると、Karaf は補完しようとします。

  • subshell
  • commands
  • aliases
  • コマンド引数
  • コマンドオプション

16.9.3.3. エイリアス

エイリアスは、指定したコマンドに関連する別の名前です。

shell:alias コマンドは、新しいエイリアスを作成します。たとえば、実際の feature:list -i コマンドの list-installed-features エイリアスを作成するには、次の操作を実行できます。

karaf@root()> alias "list-features-installed = { feature:list -i }"
karaf@root()> list-features-installed
Name       | Version | Required | State   | Repository     | Description
------------------------------------------------------------------------------------------------------------------------------
feature    | 4.0.0   | x        | Started | standard-4.0.0 | Features Support
shell      | 4.0.0   | x        | Started | standard-4.0.0 | Karaf Shell
deployer   | 4.0.0   | x        | Started | standard-4.0.0 | Karaf Deployer
bundle     | 4.0.0   | x        | Started | standard-4.0.0 | Provide Bundle support
config     | 4.0.0   | x        | Started | standard-4.0.0 | Provide OSGi ConfigAdmin support
diagnostic | 4.0.0   | x        | Started | standard-4.0.0 | Provide Diagnostic support
instance   | 4.0.0   | x        | Started | standard-4.0.0 | Provide Instance support
jaas       | 4.0.0   | x        | Started | standard-4.0.0 | Provide JAAS support
log        | 4.0.0   | x        | Started | standard-4.0.0 | Provide Log support
package    | 4.0.0   | x        | Started | standard-4.0.0 | Package commands and mbeans
service    | 4.0.0   | x        | Started | standard-4.0.0 | Provide Service support
system     | 4.0.0   | x        | Started | standard-4.0.0 | Provide System support
kar        | 4.0.0   | x        | Started | standard-4.0.0 | Provide KAR (KARaf archive) support
ssh        | 4.0.0   | x        | Started | standard-4.0.0 | Provide a SSHd server on Karaf
management | 4.0.0   | x        | Started | standard-4.0.0 | Provide a JMX MBeanServer and a set of MBeans in

ログイン時に、Apache Karaf コンソールは、エイリアスを作成できる etc/shell.init.script ファイルを読み取ります。これは、Unix の bashrc またはプロファイルファイルと似ています。

ld = { log:display $args } ;
lde = { log:exception-display $args } ;
la = { bundle:list -t 0 $args } ;
ls = { service:list $args } ;
cl = { config:list "(service.pid=$args)" } ;
halt = { system:shutdown -h -f $args } ;
help = { *:help $args | more } ;
man = { help $args } ;
log:list = { log:get ALL } ;

デフォルトでは利用可能なエイリアスをここで確認できます。

  • ld はログを表示する短縮形式です (log:display コマンドのエイリアス)。
  • lde は例外を表示する短縮形式です (log:exception-display コマンドのエイリアス)。
  • la はすべてのバンドルをリスト表示するための短縮形式です (bundle:list -t 0 コマンドのエイリアス) 。
  • ls はすべてのサービスをリスト表示する短縮形式です (service:list コマンドのエイリアス)。
  • cl は全設定をリスト表示するための短縮形式です (config:list コマンドのエイリアス)。
  • halt は Apache Karaf をシャットダウンするための短縮形式です (system:shutdown -h -f コマンドへのエイリアス)。
  • help は、ヘルプを表示する短縮形式です (*:help コマンドのエイリアス)。
  • man は help と同じです (help コマンドのエイリアス)。
  • log:list はすべてのロガーおよびレベルを表示します (log:get ALL コマンドのエイリアス)。

etc/shell.init.script ファイルで独自のエイリアスを作成できます。

16.9.3.4. キーバインディング

ほとんどの Unix 環境と同様に、Karaf コンソールはいくつかの主要なバインディングをサポートしています。

  • 矢印キー (コマンド履歴内で移動する)
  • CTRL-D (Karaf をログアウト/シャットダウンする)
  • CTRL-R (以前実行したコマンドを検索する)
  • CTRL-U (現在の行を削除する)

16.9.3.5. パイプ

あるコマンドの出力を別の入力としてパイプできます。これは、| 文字を使用したパイプです。

karaf@root()> feature:list |grep -i war
pax-war                       | 4.1.4                            |          | Uninstalled | org.ops4j.pax.web-4.1.4  | Provide support of a full WebContainer
pax-war-tomcat                | 4.1.4                            |          | Uninstalled | org.ops4j.pax.web-4.1.4  |
war                           | 4.0.0                            |          | Uninstalled | standard-4.0.0           | Turn Karaf as a full WebContainer
blueprint-web                 | 4.0.0                            |          | Uninstalled | standard-4.0.0           | Provides an OSGI-aware Servlet ContextListener fo

16.9.3.6. grep、more、find など

Karaf コンソールでは、Unix 環境に似たコアコマンドを使用できます。

  • shell:alias は既存のコマンドのエイリアスを作成します。
  • shell:cat はファイルまたは URL の内容を表示します。
  • shell:clear は現在のコンソール表示の消去します。
  • shell:completion は現在の補完モードを表示または変更します。
  • shell:date は現在の日付を表示します (必要に応じて形式を使用)。
  • shell:each は引数のリストでクロージャーを実行します。
  • shell:echo は引数を標準出力にエコーおよび出力します。
  • shell:edit は現在のファイルまたは URL のテキストエディターを呼び出します。
  • shell:env はシェルセッション変数の値を表示または設定します。
  • shell:exec はシステムコマンドを実行します。
  • shell:grep は指定のパターンに一致する行を出力します。
  • shell:head は入力の最初の行を表示します
  • shell:history はコマンド履歴を出力します。
  • shell:if はスクリプトで条件 (if、then、else blocks) の使用を可能にします。
  • shell:info は現在の Karaf インスタンスに関するさまざまな情報を出力します。
  • shell:java は Java アプリケーションを実行します。
  • shell:less ファイルページャーです。
  • shell:logout は現行セッションからシェルの切断します。
  • shell:more はファイルページャーです
  • shell:new は新しい Java オブジェクトを作成します。
  • shell:printf は引数をフォーマットして出力します
  • shell:sleep は少し眠ってから目を覚ます
  • shell:sort はすべてのファイルのソートされた連結を標準出力に書き込みます。
  • shell:source はスクリプトに含まれるコマンドを実行します。
  • shell:stack-traces-print は、コマンドの実行によって例外が発生すると、コンソールで完全なスタックトレースを出力します。
  • shell:tac は STDIN をキャプチャーし、文字列として返します。
  • shell:tail は入力の最後の行を表示します。
  • shell:threads は現在のスレッドを出力します。
  • shell:watch は定期的にコマンドを実行し、出力を更新します。
  • shell:wc は各ファイルの改行、単語、およびバイト数を出力します。
  • shell:while は条件が true である間にループします。

コマンドの完全修飾名を使用する必要はありませんが、コマンド名が一意であれば、直接使用できます。つまり、'shell:head' の代わりに 'head' を使用できます。

ここでも、help コマンドまたは --help オプションを使用して、これらのコマンドの詳細とすべてのオプションを確認できます。

16.9.3.7. スクリプト

Apache Karaf コンソールは、Unix の bash または csh と同様に完全なスクリプト言語をサポートします。

each (shell:each) コマンドは、リストで処理を繰り返すことができます。

karaf@root()> list = [1 2 3]; each ($list) { echo $it }
1
2
3
注記

同じループを shell:while コマンドで記述できます。

karaf@root()> a = 0 ; while { %((a+=1) <= 3) } { echo $a }
1
2
3

(前述の例のように) リストを独自に作成することも、一部のコマンドでもリストを返すこともできます。

コンソールは、$list でアクセス可能な list という名前の "セッション" 変数を作成したことに注意してください。

$it 変数は、現在のオブジェクトに対応する暗黙的な変数です (ここではリストの現在の反復処理された値)。

[] でリストを作成すると、Apache Karaf コンソールは Java ArrayList を作成します。つまり、ArrayList オブジェクトで利用可能なメソッド (例: get または size) を使用できます。

karaf@root()> list = ["Hello" world]; echo ($list get 0) ($list get 1)
Hello world

ここで、オブジェクトのメソッドを呼び出すことは、(object method argument) を直接使用することに注意してください。($list get 0)$list.get(0) を意味します。$list は ArrayList です。

class 表記には、オブジェクトの詳細が表示されます。

karaf@root()> $list class
...
ProtectionDomain     ProtectionDomain  null
 null
 <no principals>
 java.security.Permissions@6521c24e (
 ("java.security.AllPermission" "<all permissions>" "<all actions>")
)


Signers              null
SimpleName           ArrayList
TypeParameters       [E]

指定のタイプに変数を "キャスト" できます。

karaf@root()> ("hello world" toCharArray)
[h, e, l, l, o,  , w, o, r, l, d]

失敗すると、キャストの例外が表示されます。

karaf@root()> ("hello world" toCharArray)[0]
Error executing command: [C cannot be cast to [Ljava.lang.Object;

shell:source コマンドを使用して、スクリプトを "呼び出す" ことができます。

karaf@root> shell:source script.txt
True!

script.txt に含まれる場所:

foo = "foo"
if { $foo equals "foo" } {
  echo "True!"
}
注記

スペースは、スクリプトの記述時には重要です。たとえば、以下のスクリプトが正しくありません。

if{ $foo equals "foo" } ...

そして、次のようなエラーが発生します。

karaf@root> shell:source script.txt
Error executing command: Cannot coerce echo "true!"() to any of []

if ステートメントの後にスペースがないためです。

エイリアスについては、etc/shell.init.script ファイルで init スクリプトを作成できます。エイリアスを使用してスクリプトに名前を付けることもできます。実際にはエイリアスは単なるスクリプトです。

詳細は、開発者ガイドのスクリプトセクションを参照してください。

16.9.4. セキュリティー

Apache Karaf コンソールは、ロールベースアクセス制御 (RBAC) のセキュリティーメカニズムをサポートします。コンソールに接続するユーザー、ユーザーのグループおよびロール、コマンドの実行パーミッションに応じて定義でき、引数として指定可能な値を制限できます。

コンソールのセキュリティーは、このユーザーガイドの セキュリティーセクション を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.