dbx コマンド言語は Korn シェル (ksh 88) の構文に基づいており、入出力リダイレクション、ループ、組み込み算術演算、ヒストリ、コマンド行編集 (コマンド行モードのみで、dbx からは利用不可能) といった機能を持っています。この章では、 ksh-88 と dbx コマンド言語の違いをまとめています。
dbx 初期化ファイルが起動時に見つからない場合、dbx は ksh モードを想定します。
この章の内容は次のとおりです。
ksh-88 の次の機能は dbx では実装されていません。
set -A name による配列 name への値の代入
set -o の次のオプション: allexport bgnice gmacs markdirs noclobber nolog privileged protected viraw
typeset の次の属性: -l -u -L -R -H
バッククォート (`…`) によるコマンドの置き換え (代わりに $(...) を使用)
複合コマンド [[式]] による式の評価
@(<パターン>[|<パターン>] …) による拡張パターン照合
子プロセス (バックグラウンドで動作し、プログラム交信するコマンドまたはパイプライン)
dbx では、次の機能が追加されました。
言語式 $[ p– > flags ]
typeset -q (ユーザー定義関数のための特殊な引用を可能にする)
csh のような history および alias の引数
set +o path (パス検索を無効にする)
0xabcd (8 進数および 16 進数を示す C の構文)
bind による emacs モードバインディングの変更
set -o hashall
set -o ignore suspend
print -e および read -e (-r (raw) の逆の働きをする)
dbx コマンドが組み込まれている
ksh コマンドとの衝突を避けるために dbx コマンドの一部の名前が変更されています。
dbx の print コマンドはそのままで、ksh の print コマンド が kprint という名前に変更されました。
ksh の kill コマンドが dbx の kill コマンドにマージされました。
alias コマンドは、dbx 互換モードでないかぎり ksh の alias コマンドとして機能します。
address/format は現在 examine address/format です。
/pattern は現在 search pattern です。
?pattern は現在 bsearch pattern です。
bind コマンドを使い、編集機能のキーバインドを変更できます。 EMacs 風のエディタや vi 風のエディタのキーバインドを表示したり、変更したりすることができます。 bind コマンドの構文は次のとおりです。
bind |
現在の編集機能のキーバインドを表示します。 |
bindkey=definition |
key を definition にバインドします。 |
bind key |
key の現在の定義を表示します。 |
bind key= |
key をバインド解除します。 |
bind -m key=definition |
key を definition のマクロとして定義します。 |
bind -m |
bind と同じです。 |
ここで
key はキーの名前です。
definition は キーにバインドするマクロの定義です。
次は、Emacs 風のエディタ用の主なデフォルトのキーバインドを示しています。
^A = beginning-of-line |
^B = backward-char |
^D = eot-or-delete |
^E = end-of-line |
^F = forward-char |
^G = abort |
^K = kill-to-eo |
^L = redraw |
^N = down-history |
^P = up-history |
^R = search-history |
^^ = quote |
^? = delete-char-backward |
^H = delete-char-backward |
^[b = backward-word |
^[d = delete-word-forward |
^[f = forward-word |
^[^H = delete-word-backward |
^[^[ = complete |
^[? = list-command |
次は、vi 風のエディタ用の主なデフォルトのキーバインドを示しています。
a = append |
A = append at EOL |
c = change |
d = delete |
G = go to line |
h = backward character |
i = insert |
I = insert at BOL |
j = next line |
k = previous line |
l = forward line |
n = next match |
N = prev match |
p = put after |
P = put before |
r = repeat |
R = replace |
s = substitute |
u = undo |
x = delete character |
X = delete previous character |
y = yank |
~ = transpose case |
_ = last argument |
* = expand |
= = list expansion |
- = previous line |
+ = next line |
sp = forward char |
# = comment out command |
? = search history from beginning | |
/ = search history from current |
挿入モードでは、次のキーストロークが特別な働きをします。
^? = delete character |
^H = delete character |
^U = kill line |
^W = delete word |