英語フランス語スペイン語

Ad


OnWorksファビコン

mksh-static - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで mksh-static を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド mksh-static です。

プログラム:

NAME


ムクシュ, sh — MirBSD Korn シェル

SYNOPSIS


ムクシュ [-+abCefhiklmnprUuvXx] [-T [!]TTY | -] [-+o オプション] [-c 文字列 | -s | file
[引数 ...]]
組み込み名 [引数 ...]

DESCRIPTION


ムクシュ 対話型とシェル スクリプトの両方で使用することを目的としたコマンド インタープリターです。 その
コマンド言語は sh(C) シェル言語のスーパーセットであり、
オリジナルのKornシェル。 場合によっては、このマニュアル ページでスクリプトに関するアドバイスが提供されることがあります。 その間
ポータブル シェル スクリプトやさまざまな標準がすべて考慮される場合があります。
情報は何よりもまず提示されます ムクシュ を念頭に置き、そのように受け止めるべきです。

アイム an Android ユーザー、 so 何だ ムクシュ?
ムクシュ UNIX シェル/コマンド インタプリタであり、次のようなものです。 COMMAND.COM or CMD.EXE、これがある
しばらくの間 Android オープンソース プロジェクトに含まれていました。 基本的にはプログラムです
ターミナル (コンソール ウィンドウ) で実行され、ユーザー入力を受け取り、コマンドまたはスクリプトを実行します。
これは、バックグラウンドであっても、他のプログラムによって実行するように依頼することもできます。 あらゆる特権
したがって、遭遇するかもしれないポップアップは、 ムクシュ 問題はあるが他の人からの質問
それを利用したプログラム。

呼び出し
ほとんどの組み込み関数は直接呼び出すことができます。たとえば、リンクがその名前から
シェル; ただし、すべてが意味をなすわけではなく、テストされたり、まったく機能したりしません。

オプションは以下のとおりです。

-c 文字列 ムクシュ に含まれるコマンドを実行します 文字列.

-i インタラクティブなシェル。 標準入力からコマンドを読み取るシェルは次のとおりです。
このオプションが使用されている場合、または標準入力と標準エラーの両方が使用されている場合は「対話型」
に取り付けられています TTY(4)。 対話型シェルではジョブ制御が有効になっており、無視されます。
SIGINT、SIGQUIT、SIGTERM シグナルを送信し、入力を読み取る前にプロンプ​​トを出力します。
(PS1 および PS2 パラメータを参照)。 また、ENV パラメータまたは
mkshrc ファイル(以下を参照)。 非対話型シェルの場合、 トラックオール オプションがオンになっています
デフォルトでは ( セッションに 以下のコマンド)。

-l ログインシェル。 シェルが呼び出されるベース名 (すなわち argv[0]) が次で始まる場合
'-' またはこのオプションが使用される場合、シェルはログイン シェルであるとみなされます。 見る
スタートアップ ファイル を参照してください。

-p 特権シェル。 実際のユーザー ID またはグループ ID が「特権」を持つ場合、シェルは「特権」になります。
実効ユーザー ID またはグループ ID と一致しません (「 取得(2)と イライラする(2))。
特権オプションをクリアすると、シェルは実効ユーザー ID を設定します。
(グループ ID) を実際のユーザー ID (グループ ID) に置き換えます。 さらなる影響については、を参照してください。 スタートアップ
ファイル。 シェルに特権があり、このフラグが明示的に設定されていない場合、
「特権」オプションは、起動ファイルの処理後に自動的にクリアされます。

-r 制限されたシェル。 このオプションを使用すると、シェルは「制限」されます。 次の
制限は、シェルがプロファイルと ENV を処理した後に有効になります。
ファイル:

·   cd (と Chdir) コマンドは無効になります。
· SHELL、ENV、および PATH パラメータは変更できません。
· コマンド名を絶対パスまたは相対パスで指定することはできません。
·   -p 組み込みコマンドのオプション command 使用できません。
· ファイルを作成するリダイレクト (例: '>'、'>|'、'>>'、'<>') は使用できません。

-s シェルは標準入力からコマンドを読み取ります。 オプション以外の引数はすべて
位置パラメータ。

-T スポーン ムクシュ TTY(4) デバイスが与えられます。 パス , /dev/ttyCname &
/dev/ttyname 順番に試行されます。 ない限り 感嘆符で始まる
('!')、これはサブシェルで実行され、すぐに返されます。 もし ダッシュです
('-')、代わりに制御端末 (デーモン化) から切り離します。

上記に加えて、「」で説明されているオプション セッションに 組み込みコマンドも使用可能
コマンドライン:両方 [-+abCefhkmnuvXx]と[-+o オプション] は XNUMX 文字で使用できます
または長いオプションをそれぞれ指定します。

どちらも -c-s オプションが指定されている場合、オプション以外の最初の引数で指定します
シェルがコマンドを読み取るファイルの名前。 オプション以外の引数がない場合、
シェルは標準入力からコマンドを読み取ります。 シェルの名前 (つまり、シェルの内容)
$0) は次のように決定されます。 -c オプションが使用されており、オプション以外の引数がある場合、
それは名前として使用されます。 コマンドがファイルから読み取られている場合、そのファイルは
名前; それ以外の場合は、シェルが呼び出されたベース名 (つまり、argv[0]) が使用されます。

コマンドラインで指定されたコマンドファイルを実行できる場合、シェルの終了ステータスは 127 です。
オープンできない、または実行中に致命的な構文エラーが発生した場合は XNUMX 以外
脚本。 致命的なエラーがない場合、終了ステータスは最後のコマンドのステータスになります。
実行されるか、コマンドが実行されない場合はゼロ。

スタートアップ ファイル
これらのファイルの実際の場所については、次を参照してください。 ファイル。 ログインシェルがシステムを処理する
まずはプロフィール。 次に、特権シェルが suid プロファイルを処理します。 非特権ログイン
シェルは次にユーザー プロファイルを処理します。 非特権の対話型シェルが値をチェックします。
パラメータ、コマンド、算術演算およびチルダ ('~') を適用した後の ENV パラメータの
置換; 未設定または空の場合、ユーザー mkshrc プロファイルが処理されます。 それ以外の場合、ファイルの場合
置換結果の名前が存在する場合は処理されます。 存在しないことは静かにある
無視されました。 特権シェルは、どちらもそうでなかった場合、特権を削除します。 -p に与えられたオプション
コマンド ラインでも、スタートアップ ファイルの実行中に設定されません。

Command 構文
シェルはバックスラッシュと改行の組み合わせを削除して入力の解析を開始し、その後
それを壊す 言葉。 単語 (一連の文字) は引用符で囲まれていないもので区切られます。
空白文字 (スペース、タブ、改行) またはメタ文字 (「<」、「>」、「|」、「;」、「(」、
')'、 そして '&')。 区切りの単語を除いて、スペースとタブは無視され、改行は無視されます。
通常はコマンドを区切ります。 メタキャラクターは次の構築に使用されます。 トークン:
「<」、「<&」、「<<」、「<<<」、「>」、「>&」、「>>」、「&>」などは、リダイレクトの指定に使用されます(「
入出力 出力先変更 下に); '|' パイプラインの作成に使用されます。 '|&' は共同作成に使用されます。
プロセス(を参照) 共同プロセス 下に); 「;」 コマンドを区切るために使用されます。 「&」は作成に使用されます
非同期パイプライン。 「&&」と「||」 条件付き実行を指定するために使用されます。 ';;'、';&'
そして「;|」 で使用されています 場合 声明。 '(( .. ))' は算術式で使用されます。 そして
最後に、「( .. )」はサブシェルの作成に使用されます。

空白文字とメタ文字は、バックスラッシュ ('\') を使用して個別に引用符で囲むか、または
二重引用符 ('"') または一重引用符 ("'") を使用してグループ化します。次の文字は
これもシェルによって特別に扱われるため、それ自体を表す場合は引用符で囲む必要があります。
「\」、「"」、「」、「#」、「$」、「`」、「~」、「{」、「}」、「*」、「?」、および「[」。このうち最初のXNUMXつ
は上記の引用文字です (「 引用 下に); '#' (次の場所で使用される場合)
単語の先頭、コメントの導入 – 「#」以降の最も近いものまでのすべて
改行は無視されます。 「$」はパラメータ、コマンド、演算を導入するために使用されます
置換 (参照 置換 下に); '''' は古いスタイルのコマンド置換を導入します
(参照してください 置換 下に); 「~」はディレクトリの展開を開始します (「 チルダ 拡大 下に); 「{」
と '}' 区切り CSH(1) スタイルの代替 (参照) ブレース 拡大 下に); そして最後に、 '*'、
「?」および​​「[」はファイル名の生成に使用されます(「 File パターン 下)。

単語とトークンが解析されると、シェルはコマンドを構築します。そのコマンドには XNUMX つの基本的なものがあります。
タイプ: 単純なコマンド、通常は実行されるプログラム、および 複合コマンド、 そのような
as for & if ステートメント、グループ化構造、および関数定義。

単純なコマンドは、パラメータ割り当ての組み合わせで構成されます (「 計測パラメータ
下記)、入出力リダイレクト(を参照) 入出力 リダイレクト 以下)および命令語。
唯一の制限は、パラメータの割り当てがコマンド ワードの前に来ることです。 の
コマンド ワード (存在する場合) は、実行されるコマンドとその引数を定義します。 の
command は、シェル組み込みコマンド、関数、または外部コマンド (つまり、別個のコマンド) の場合があります。
PATH パラメータを使用して配置される実行可能ファイル。 見る Command 実行 下)。
すべてのコマンド構造には終了ステータスがあることに注意してください。外部コマンドの場合、これは関連しています。
によって返されたステータスに wait (2) (コマンドが見つからなかった場合、終了ステータスは
127; 実行できなかった場合、終了ステータスは 126) です。 他のコマンドの終了ステータス
構成要素 (組み込みコマンド、関数、複合コマンド、パイプライン、リストなど) はすべて
明確に定義されており、構成が説明されている場所で説明されています。 の終了ステータス
パラメータ割り当てのみで構成されるコマンドは、最後のコマンド置換のコマンドです
パラメータ割り当て中に実行されるか、コマンド置換がなかった場合は 0。

コマンドは「|」を使用して連結できます。 トークンを使用してパイプラインを形成します。
各コマンドの標準出力ですが、最後の出力はパイプ処理されます (「 パイプ(2)) の標準入力に
次のコマンド。 パイプラインの終了ステータスは、次の場合を除き、最後のコマンドの終了ステータスになります。
  パイプの失敗 オプションが設定されています(そこを参照)。 パイプラインのすべてのコマンドは個別に実行されます
サブシェル; これは POSIX で許可されていますが、AT&T UNIX の両方のバージョンとは異なります。 kshのここで、
最後のコマンドを除くすべてのコマンドはサブシェルで実行されました。 を見てください read 組み込みの説明
影響と回避策。 パイプラインには「!」という接頭辞が付く場合があります。 予約語
パイプラインの終了ステータスが論理的に補完されます: 元のステータスの場合
0 だった場合、補完されたステータスは 1 になります。 元のステータスが 0 でない場合、補完されたステータス
ステータスは0になります。

リスト 次のトークンのいずれかでパイプラインを区切ることで、コマンドの数を作成できます。
「&&」、「||」、「&」、「|&」、および「;」。 最初の XNUMX つは条件付き実行用です。cmd1 && cmd2 
実行 cmd2 終了ステータスが次の場合のみ cmd1 ゼロです。 '||' はその逆です – cmd2 is
終了ステータスが次の場合にのみ実行されます。 cmd1 はゼロではありません。 「&&」と「||」 同等の優先順位を持つ
これは、同じ優先順位を持つ '&'、'|&'、および ';' よりも高くなります。 注記
「&&」と「||」 演算子は「左結合」です。 たとえば、この両方とも
コマンドは「bar」のみを出力します。

$ false && echo foo || エコーバー
$ true || エコー foo && エコー バー

「&」トークンにより、前述のコマンドが非同期的に実行されます。 つまりシェル
コマンドを開始しますが、完了を待ちません(シェルはコマンドを追跡します)
非同期コマンドのステータス。 見る ジョブ コントロール 下に)。 非同期コマンドの場合
ジョブ制御が無効になっている場合 (つまり、ほとんどのスクリプト)、コマンドは次のコマンドで開始されます。
SIGINT および SIGQUIT 信号は無視され、入力は次からリダイレクトされます。 / dev / null (しかし、
非同期コマンドで指定されたリダイレクトが優先されます)。 「|&」演算子
特別な種類の非同期プロセスであるコプロセスを開始します (「 共同プロセス
下に)。 コマンドは「&&」と「||」の後に続く必要があることに注意してください。 演算子、ただしその必要はない
「&」、「|&」、または「;」の後に続けます。 リストの終了ステータスは、最後に実行されたコマンドの終了ステータスです。
ただし、終了ステータスが 0 である非同期リストは除きます。

複合コマンドは、次の予約語を使用して作成されます。 これらの言葉はただ
引用符で囲まれていない場合、およびコマンドの最初の単語として使用されている場合 (つまり、
パラメータの割り当てやリダイレクトを前に置くことはできません)。

case else 関数 then ! (
時間があれば esac を実行 [[ ((
{まで完了しました
select while の elif }

以下の複合コマンドの説明では、コマンド リスト ( リスト)それは
その後に続く予約語は、セミコロン、改行、または (構文的には) で終わる必要があります。
正)予約語。 たとえば、次はすべて有効です。

$ { エコー foo; エコーバー; }
$ { エコー foo; エコーバー}
$ { { エコー foo; エコーバー; } }

これは無効です:

$ { エコー foo; エコーバー }

(リスト)
実行する リスト サブシェル内。 環境の変更を渡す暗黙的な方法はありません。
サブシェルを親に戻します。

{ リスト; }
複合構造。 リスト は実行されますが、サブシェル内では実行されません。 「{」と「}」に注意してください
は予約語であり、メタ文字ではありません。

場合 単語 で [[(] パターン [| パターン] ...) リスト ターミネータ] ... イーサック
  場合 ステートメントは一致を試みます 単語 指定されたものに対して パターン; ザ・ リスト
最初に一致したパターンに関連付けられたパターンが実行されます。 使用されているパターン
場合 ステートメントは、ファイル名パターンに使用されるステートメントと同じですが、
「。」に関する制限事項と「/」は省略されます。 前に引用符で囲まれていないスペースがあることに注意してください。
そしてパターンが剥がされた後。 パターン内のスペースは引用符で囲む必要があります。 どちらも
単語とパターンはパラメータ、コマンド、算術置換の対象となります。
チルダ置換も同様です。

歴史的な理由から、左中括弧と右中括弧の代わりに左中括弧と右中括弧が使用される場合があります。 in & ESAC マシン情報の記入> という構文でなければなりません。例えば、
場合 $ foo { *) echo バー ;; }.

リスト ターミネータsは:

「;;」 リストの後に終了します。

';&' 次のリストに該当します。

';|' 残りのパターンリストタプルを評価します。

の終了ステータス 場合 ステートメントは実行されたステートメントです リスト; いいえの場合 リスト is
実行すると、終了ステータスはゼロになります。

for [に 単語 ...]; する リスト; 終わり
それぞれについて、 単語 指定された単語リストのパラメータ 単語に設定されており、
リスト が実行されます。 もしも in 単語リスト、位置パラメータの指定には使用されません。
代わりに ($1、$2 など) が使用されます。 歴史的な理由により、左中括弧と右中括弧は、
の代わりに使用される do & 行われ マシン情報の記入> という構文でなければなりません。例えば、 for i; { echo $ i; }。 の終了ステータス for
ステートメントは最後の終了ステータスです リスト; もし リスト 決して実行されない場合、終了ステータス
ゼロです。

if リスト; その後 リスト; [エリフ リスト; その後 リスト;] ... [それ以外 リスト;] ファイ
最初の終了ステータスが リスト ゼロ、XNUMX番目 リスト 実行される。 さもないと、
  リスト 以下 elifがある場合は、同様の結果で実行されます。 私は落ちる
に続くリスト if & elif失敗した場合 (つまり、ゼロ以外のステータスで終了した場合)、 リスト
以下 ほかに が実行されます。 の終了ステータス if 声明は非
条件付きの リスト それは実行されます。 無条件でない場合 リスト 実行されると終了します
ステータスはゼロです。

select [に 単語 ...]; する リスト; 終わり
  select ステートメントは、ユーザーにメニューを表示する自動方法を提供します。
そしてそこから選択します。 指定されたものの列挙リスト 単語(s) が印刷されています
標準エラーの後にプロンプ​​トが表示されます (PS3: 通常は「#?」)。 に対応する番号
次に、列挙された単語の XNUMX つが標準入力から読み取られます。 に設定されています
選択された単語 (または選択が無効な場合は設定解除)、REPLY は読み取られた内容に設定されます
(先頭/末尾のスペースは削除されます)、および リスト が実行されます。 空白行の場合 (つまり、
XNUMX 個以上の IFS オクテット) が入力されると、メニューは実行されずに再印刷されます。 リスト.

日時 リスト 完了すると、REPLY が NULL の場合は列挙リストが出力され、プロンプトは次のようになります。
印刷されたものなど。 このプロセスは、ファイルの終わりが読み取られ、割り込みが発生するまで続きます。
を受信するか、 破る ステートメントはループ内で実行されます。 「一言で…」の場合
省略した場合は、位置パラメータが使用されます ($1、$2 など)。 歴史的には
そのため、代わりに左中括弧と右中括弧を使用することもできます。 do & 行われ マシン情報の記入> という構文でなければなりません。例えば、 select i; {
echo $ i; }。 の終了ステータス select 次の場合、ステートメントはゼロです 破る 声明は
ループを終了するために使用されます。それ以外の場合はゼロ以外です。

まで リスト; NS リスト; 終わり
これは次のように機能します whileただし、本体は終了ステータスの間のみ実行されます。
最初の リスト ゼロ以外です。

while リスト; NS リスト; 終わり
A while 事前にチェックされたループです。 その本体は、終了ステータスと同じ頻度で実行されます。
最初の リスト はゼロです。 の終了ステータス while ステートメントは最後の終了ステータスです
リスト ループの本体内。 本体が実行されない場合、終了ステータスは次のようになります。
ゼロ。

function { リスト; }
関数を定義します (参照してください 機能 下に)。 リダイレクトが指定されていることに注意してください
関数定義の後は、関数が実行されるときではなく、関数が実行されるたびに実行されます。
関数定義が実行されます。

() command
ほとんど同じです function (参照してください 機能 下に)。 後の空白(スペースまたはタブ)
ほとんどの場合無視されます。

function (){ リスト; }
と同じ () (bashイズム)。 の function キーワードは無視されます。

時間 [-p] [パイプライン]
  Command 実行 セクションでは、 時間 予約語。

(( 表現 ))
算術式 表現 評価されます。 「let 式」と同等 (「let 式」を参照)
算術 表現 コマンド、下記) を複合構造内で使用します。

[[ 表現 ]]
に似て test & [ ... ] コマンド (後述)、次のコマンドを使用します。
例外:

· 引数に対してフィールド分割とファイル名の生成は実行されません。

·   -a (そして) -o (OR) 演算子は、それぞれ「&&」と「||」に置き換えられます。

· 演算子 (例: '-f'、'='、'!') は引用符で囲まないでください。

· パラメータ、コマンド、および算術置換は式のように実行されます。
評価され、遅延式の評価が「&&」と「||」に使用されます。 オペレーター。
これは、次のステートメントでは、 $( 次の場合にのみ評価されます
ファイル foo 存在し、読み取り可能です:

$ [[ -r foo && $(

· 「!=」および「=」式の XNUMX 番目のオペランドは、パターンのサブセットです (例:
比較 [[ foob​​ar = クソ ]] 成功します)。 これは間接的にも機能します。

$ バー=フーバー; baz='f*r'
$ [[ $bar = $baz ]]; エコー$?
$ [[ $bar = "$baz" ]]; エコー$?

おそらく驚くべきことに、最初の比較は成功しますが、XNUMX 番目の比較は成功しません。
現時点では、これはすべての extglob メタキャラクターには適用されません。

引用
引用符は、シェルが文字や単語を特別に扱うことを防ぐために使用されます。 がある
引用のXNUMXつの方法。 まず、「\」は次の文字を引用符で囲みます。
この場合、「\」と改行の両方が削除されます。 XNUMXつ目はシングル
引用符 (「'」) は、次の一重引用符までのすべてを引用します (行にまたがる場合があります)。 第三に、
二重引用符 ('"') は、'$'、'`'、および '\' を除く、次にエスケープされていない文字までのすべての文字を引用符で囲みます。
二重引用符。 二重引用符内の「$」と「`」は通常の意味を持ちます(つまり、パラメータ、
算術演算、またはコマンド置換) を除き、結果に対してフィールド分割は実行されません。
二重引用符で囲まれた置換の例であり、コマンド置換の古い形式は次のとおりです。
二重引用符のバックスラッシュ引用符が有効になりました。 二重引用符で囲まれた文字列内の「\」が
'\'、'$'、'`'、または '"' が続く場合、XNUMX 番目の文字に置き換えられます。
改行によって、「\」と改行の両方が削除されます。 それ以外の場合は、「\」と
以降の文字は変更されません。

一重引用符で囲まれた文字列の前に引用符で囲まれていない '$' がある場合、C スタイルのバックスラッシュ展開 (「
以下) が適用されます (内部の一重引用符文字もエスケープでき、終了しません)
その場合の文字列); 展開された結果は、他の単一引用符で囲まれた文字列として扱われます。 もし
二重引用符で囲まれた文字列の前に引用符で囲まれていない '$' が付いている場合、'$' は単に無視されます。

バックスラッシュ 拡大
バックスラッシュが展開されている場所では、特定の C および AT&T UNIX kshの またはGNU bash
エスケープは翻訳されます。 これらには、「\a」、「\b」、「\f」、「\n」、「\r」、「\t」、「\U########」、
「\u####」および「\v」。 「\U########」および「\u####」の場合、「#」は XNUMX 進数を意味します。
8 つまたは XNUMX つまでは存在しない可能性があります。 これらのエスケープは、Unicode コードポイントを UTF-XNUMX に変換します。
さらに、「\E」と「\e」はエスケープ文字に展開されます。

印刷 組み込みモード、「\"」、「\」、および '\?' 明示的に除外されます; XNUMX 進数シーケンス
先頭に数字ゼロ ('\0###') を付けた最大 XNUMX 桁の XNUMX 進数字「#」を含める必要があります。
XNUMX 進数シーケンス「\x##」は、最大 XNUMX 桁の XNUMX 進数「#」に制限されません。 両方
XNUMX 進数および XNUMX 進数のシーケンスは生のオクテットに変換されます。 '\#' (# は上記のいずれでもない)、
\# に変換されます (バックスラッシュは保持されます)。

C スタイル モードでのバックスラッシュ展開は若干異なります。XNUMX 進シーケンス '\###' には次の文字列が必要です。
XNUMX 桁から XNUMX 桁までの XNUMX 進数「#」の前にゼロを付けず、生のオクテットを生成します。
XNUMX 進数シーケンス「\x#*」は、できるだけ多くの XNUMX 進数「#」を貪欲に消費します。
最初の XNUMX 進数以外の数字で終了します。 これらは Unicode コードポイントを次のように変換します。
UTF-8。 シーケンス「\c#」(「#」は任意のオクテット)は、Ctrl-# に変換されます(基本的には
は、「\c?」を意味します。 は DEL になり、その他はすべて 0x1F とビットごとの AND 演算されます)。 最後に、「\#」、ここで
# は上記のいずれでもありません。たとえそれが
改行。

エイリアス
エイリアスには、通常のコマンド エイリアスと追跡エイリアスの XNUMX 種類があります。 コマンドエイリアス
通常、長いコマンドまたは頻繁に使用されるコマンドの短縮形として使用されます。 殻が広がる
最初の単語を読み取るときにコマンドのエイリアス (つまり、その値をエイリアス名で置き換えます)
コマンドの。 拡張されたエイリアスは再処理されて、さらに別のエイリアスがないかチェックされます。 コマンドの場合
エイリアスがスペースまたはタブで終わる場合、次の単語もエイリアスの展開についてチェックされます。 の
エイリアス展開プロセスは、エイリアスではない単語が見つかった場合、または引用符で囲まれた単語が見つかった場合に停止します。
が見つかったとき、または現在展開中の別名語が見つかったとき。 別名は次のとおりです。
特にインタラクティブな機能: これらはスクリプト内や
コマンドラインでは、場合によっては、エイリアスが字句解析中に展開されるため、エイリアスを使用する必要があります。
コマンド ツリーをその定義から分離します。 そうしないと、エイリアスが見つかりません。
注目すべきは、コマンド リスト (セミコロンで区切られ、コマンド置換も改行で区切られている)
XNUMX つの同じ解析ツリーであってもよい。

次のコマンド エイリアスはシェルによって自動的に定義されます。

autoload='\typeset -fu'
関数='\typeset -f'
ハッシュ='\組み込みエイリアス -t'
履歴='\builtin fc -l'
整数='\typeset -i'
ローカル='\タイプセット'
ログイン='\実行ログイン'
nameref='\typeset -n'
nohup='nohup'
r='\builtin fc -e -'
type='\builtin whence -v'

追跡されたエイリアスを使用すると、シェルは特定のコマンドを見つけた場所を記憶できます。 最初
シェルが追跡対象のエイリアスとしてマークされたコマンドのパス検索を行うときに、
コマンドのフルパス。 次回コマンドが実行されるときに、シェルは
保存されたパスがまだ有効であるかどうかを確認し、有効である場合はパス検索の繰り返しを回避します。
追跡されたエイリアスは、次を使用してリストおよび作成できます。 alias -t。 PATHを変更することに注意してください
パラメータは、追跡されたすべてのエイリアスの保存されたパスをクリアします。 もし トラックオール オプションが設定されている
(すなわち、 セッションに -o トラックオール or セッションに -h)、シェルはすべてのコマンドを追跡します。 このオプションが設定されている
非対話型シェルの場合は自動的に実行されます。 対話型シェルの場合は、次のもののみ
コマンドは自動的に追跡されます。 cat(1) cc(1) chmod(1) cp(1) date(1) ed(1)
エマックス(1) grep(1) ls(1) make(1) mv(1) pr(1) rm(1) sed(1) sh(1) vi(1)と、 whoとします。

置換
単純なコマンドを実行する際にシェルが行う最初のステップは、置換を実行することです。
命令の言葉。 置換にはパラメータ、コマンド、および
算術。 パラメータの置換については、次のセクションで詳しく説明します。
$ という形式を取ります または ${...}; コマンド置換の形式は $( command)または
(非推奨) ` command` または (現在の環境で実行) ${ command;} そしてストリップ
末尾の改行; 算術置換は $((表現))。 を解析しています
現在の環境のコマンド置換には、開始部分の後にスペース、タブ、または改行が必要です
中括弧と右中括弧がキーワードとして認識されること (つまり、前に改行が来る)
またはセミコロン)。 これらは funsub (関数置換) とも呼ばれ、次のように動作します。
その中で機能する ローカル & return 仕事、そしてその中で 終了する 親シェルを終了します。 シェル
オプションは共有されます。

置換の別の変形は、valsub (値置換) ${| です。 command;}
funsub と同様に現在の環境でも実行されますが、I/O を親と共有します。
代わりに、最初は空の式ローカル変数 REPLY が何であっても評価されます。
以内に設定 commands.

置換が二重引用符の外側にある場合、置換の結果は次のようになります。
通常、IFS の現在の値に応じてワードまたはフィールドの分割の対象となります。
パラメータ。 IFS パラメータは、文字列を分割するために使用されるオクテットのリストを指定します。
いくつかの言葉にまとめて。 IFS に表示される、セットされたスペース、タブ、および改行のオクテット
オクテットは「IFS ホワイトスペース」と呼ばれます。 XNUMX つ以上の IFS ホワイトスペース オクテットのシーケンス (単位:
XNUMX 個または XNUMX 個の非 IFS ホワイトスペース オクテットとの組み合わせで、フィールドを区切ります。 特殊な場合として、
先頭および末尾の IFS 空白は削除されます (つまり、先頭または末尾の空フィールドは削除されません)
それによって作成されました); 先頭または末尾の非 IFS 空白は空のフィールドを作成します。

例: IFS が「」に設定されている場合:”、VAR は次のように設定されます
「 あ: B::D”、$VAR の置換結果は XNUMX つのフィールドになります: 'A'、
'B'、'' (空のフィールド)、および 'D'。 IFS パラメータが空に設定されている場合は、
文字列。フィールド分割は行われません。 設定されていない場合は、スペース、タブ、および
改行が使用されます。

また、フィールド分割は、その直後の結果にのみ適用されることに注意してください。
置換。 前の例を使用すると、$VAR:E を置換すると、次のようになります。
フィールド: 'A'、'B'、''、および 'D:E'。'A'、'B'、''、'D'、および 'E' ではありません。 この動作は POSIX です
準拠していますが、フィールド分割を行う他のシェル実装とは互換性がありません
置換を含む単語を指定するか、一般的な空白区切り文字として IFS を使用します。

特に指定がない限り、置換の結果も中括弧展開の対象となります。
ファイル名拡張 (以下の関連セクションを参照)。

コマンド置換は、指定されたコマンドによって生成された出力によって置き換えられます。
サブシェルで実行します。 $(の場合 command) と ${| command;} と ${ command;} 置換、通常
引用符ルールは次の場合に使用されます。 command 解析される。 ただし、非推奨の ` については、 command` フォーム、
'\' の後に続く '$'、'`'、または '\' は削除されます (置換が一部である場合は '"' と同様)
二重引用符で囲まれた文字列の); バックスラッシュ「\」の後に他の文字が続く場合は変更されません。
コマンド置換の特殊なケースとして、次の形式のコマンドfile と解釈されます
の内容を置き換えるという意味です file。 ご了承ください $( と同じ効果があります $(猫 ふー).

一部のシェルではコマンド置換に再帰的パーサーが使用されないため、
特定の構成の失敗。 移植可能にするには、回避策として 'x=$(cat) <<"EOF"' (または
単に文字列を丸呑みする代わりに、改行を維持して 'x=<<"EOF"' 拡張子を付けます。 IEEE標準1003.1
(「POSIX.1」) は、「x=$(case $foo in (bar) echo $bar」という形式の case ステートメントを使用することを推奨しています。
;; (*) $baz をエコーする ;; esac)' を代わりに使用します。これは機能しますが、この例としては機能しません。
携帯性の問題。

x=$(case $foo in bar) echo $bar ;; *) $baz をエコーし​​ます ;; イーサック)
# 上記は古いシェルでは解析に失敗します。 以下は回避策です
x=$(eval $(cat)) <<"EOF"
case $foo in bar) echo $bar ;; *) $baz をエコーし​​ます ;; イーサック
EOF

算術置換は、指定された式の値に置き換えられます。 ために
たとえば、コマンド 印刷 $((2+3*4)) 14 を表示します。 を参照してください。 算術 表現 のために
式の説明。

計測パラメータ
パラメータはシェル変数です。 値を割り当てたり、その値にアクセスしたりできます
パラメータ置換を使用します。 パラメータ名は特殊な単一のパラメータのいずれかです。
以下に説明する句読点または数字のパラメータ、または文字の後にゼロまたは
より多くの文字または数字 (「_」は XNUMX 文字としてカウントされます)。 後者の形式は配列として扱うことができます
[ 形式の配列インデックスを追加することにより、] どこ は算術式です。
配列インデックス ムクシュ 0 ~ 4294967295 の範囲に制限されます。 あれは、
これらは 32 ビットの符号なし整数です。

パラメータの置換は $ の形式を取ります。、${}、または ${[]} どこ  
パラメータ名。 すべての配列要素を ${ に置き換えます[*]} と ${[@]}の作品
位置パラメータの $* および $@ に相当します。 置換が実行される場合、
パラメータ(または配列パラメータ要素)が設定されていない場合は、NULL 文字列が置き換えられます
を除いて 名詞セット オプション(セッションに -o 名詞セット or セッションに -u)が設定されている場合はエラーとなります。

パラメータにはさまざまな方法で値を割り当てることができます。 まず、シェルは暗黙的に設定します。
「#」、「PWD」、「$」などのいくつかのパラメータ。 これが特別な単一文字を使用する唯一の方法です
パラメータが設定されます。 次に、パラメータはシェルの環境からインポートされます。
起動する。 XNUMX 番目に、コマンド ラインでパラメータに値を割り当てることができます。たとえば、次のようになります。 FOO = bar
パラメータ「FOO」を「bar」に設定します。 単一のパラメータに複数のパラメータを割り当てることができます。
コマンドラインの後に単純なコマンドを続けることもできます。この場合、割り当ては次のようになります。
コマンドの実行中のみ有効です (そのような割り当てもエクスポートされます。を参照)
この影響については以下で説明します)。 パラメータ名と「=」の両方を指定する必要があることに注意してください。
シェルがパラメータの割り当てを認識できるように引用符なしで指定します。 構成 FOO+=バズ
認識された; 古い値と新しい値はすぐに連結されます。 XNUMX番目の設定方法
パラメータは export, 全体的な, 読み取り専用, タイプセット コマンド。 彼らを見てください
の説明 Command 実行 セクション。 五番目、 for & select ループはパラメータを設定します
など 取得, read, セッションに -A コマンド。 最後にパラメータを割り当てることができます
算術式内で代入演算子を使用した値 (「 算術 表現
以下)、または ${ を使用します=パラメータ置換の形式 (以下を参照)。

エクスポート属性を持つパラメータ ( export or タイプセット -x コマンド、または
パラメータの割り当てとそれに続く単純なコマンド)が環境に置かれます(「
環境(7)) としてシェルによって実行されるコマンド = ペア。 パラメータの順序
コマンドの環境に現れるものは不特定です。 シェルが起動すると、
環境からパラメータとその値を抽出し、エクスポートを自動的に設定します。
これらのパラメータの属性。

修飾子は ${ に適用できますパラメータ置換の形式:

${:-単語}
If 設定されており、NULL ではない場合は、置換されます。 さもないと、 単語 代用されます。

${:+単語}
If が設定されており、NULL ではありません。 単語 置換されます。 それ以外の場合は何も置き換えられません。

${:=単語}
If 設定されており、NULL ではない場合は、置換されます。 それ以外の場合は割り当てられます 単語 &
結果の値 代用されます。

${:?単語}
If 設定されており、NULL ではない場合は、置換されます。 さもないと、 単語 に印刷されています
標準誤差 (先頭に :) エラーが発生します (通常は終了します)
「.」を使用してソースされたシェル スクリプト、関数、またはスクリプトの内蔵されています)。 もし 単語 is
省略した場合は、文字列「パラメータが null または設定されていない」が代わりに使用されます。 現時点ではバグですが、
if 単語 が NULL 文字列に展開される変数である場合、エラー メッセージも
印刷されます。

上記すべてについて、次の点に注意してください。 単語 実際には引用符で囲まれたとみなされ、特別な解析が行われます
ルールが適用されます。 解析ルールは、式が二重引用符で囲まれているかどうかによっても異なります。 単語
次に、二重引用符自体 ('"') と終わりを除いて、二重引用符ルールを使用します。
中括弧。バックスラッシュがエスケープされている場合、引用符の削除が適用されます。

上記の修飾子では、「:」を省略できます。その場合、条件は次のもののみに依存します。
設定されています (設定されていて NULL ではないのとは対照的に)。 もし 単語 必要なパラメータ、コマンド、
算術演算とチルダ置換が実行されます。 もし 単語 必要ありません、必要ありません
評価されました。

次の形式のパラメータ置換も使用できます ( は配列であり、
キー「0」を持つ要素はスカラー コンテキストで置換されます):

$ {#}
位置パラメータの数。 '*'、'@'、または指定されていません。 さもないと
パラメータの文字列値の長さ(文字数) .

$ {#[*]}
$ {#[@]}
配列内の要素の数 .

$ {%}
パラメータの文字列値の幅(画面列単位) 、または -1 の場合
${} には制御文字が含まれています。

${!}
によって参照される変数の名前 。 これは次のようになります 時を除いて is
によって作成された名前参照 (バインド変数) 名前参照 コマンド (エイリアスです)
for タイプセット -n).

${![*]}
${![@]}
配列内のインデックス (キー) の名前 .

${#パターン}
${##パターン}
If パターン パラメータの値の先頭と一致します 、一致したテキストは
置換結果から削除されます。 単一の「#」を使用すると最短の結果になります
そのうちの XNUMX つは最も長い一致になります。 ベクトルには適用できません
(${*} または ${@} または ${array[*]} または ${array[@]})。

${%パターン}
${%%パターン}
${..#..} 置換と似ていますが、値の末尾から削除されます。 ありえない
ベクトルに適用されます。

${/パターン/文字列}
${/#パターン/文字列}
${/%パターン/文字列}
${//パターン/文字列}
の最長試合 パターン パラメータの値に に置き換えられます 文字列
(次の場合は削除されます) 文字列 空です。 その場合、末尾のスラッシュ (「/」) は省略できます)。
先頭のスラッシュの後に「#」または「%」を付けると、パターンがアンカー位置に固定されます。
それぞれ値の先頭または末尾。 空のアンカーなし パターン原因はありません
交換; 単一の先頭のスラッシュまたは パターン それは空のものと一致します
string を指定すると、置換が XNUMX 回だけ行われます。 先頭の XNUMX つのスラッシュはすべての原因になります
置換される値内に一致するものが発生する数。 ベクトルには適用できません。
非効率的に実装されているため、速度が遅くなる可能性があります。

${:投稿する:LEN}
最初の LEN の文字 、位置から開始 投稿する、が代入されます。 両方
投稿する と:LEN はオプションです。 もし 投稿する が負の場合、カウントは終了時に開始されます。
弦; 省略した場合は、デフォルトの 0 になります。 LEN 省略されているか、それより大きい
残りの文字列の長さはすべて置き換えられます。 両方 投稿する & LEN  
算術式として評価されます。 現在、 投稿する スペースで始める必要があります。
左括弧または認識される数字。 ベクトルには適用できません。

${@#}
の展開のハッシュ (BAFH アルゴリズムを使用) 。 これも使われています
シェルのハッシュテーブル用に内部的に。

${@Q}
再入力しても安全な引用符で囲まれた式。その値は
パラメータが代入されます。

注意してください パターン 拡張グロビング パターン (@(...))、単一 ('...')、または二重が必要な場合があります
("...") 引用符エスケープ -o sh 設定されています。

次の特別なパラメータはシェルによって暗黙的に設定され、直接設定することはできません。
割り当てを使用して:

! 最後に開始されたバックグラウンド プロセスのプロセス ID。 バックグラウンドプロセスがない場合は、
開始された場合、パラメータは設定されていません。

# 位置パラメータの数 ($1、$2 など)。

$ シェルの PID、またはサブシェルの場合は元のシェルの PID。 する NOT
このメカニズムを使用して一時ファイル名を生成します。 見る mktemp(1)代わりに。

- 現在の XNUMX 文字のオプションの連結 ( セッションに 以下のコマンド
オプションのリストについては)。

? 最後に実行された非同期コマンドの終了ステータス。 最後のコマンドの場合
信号によって殺された、 $? は 128 にシグナル番号を加えた値に設定されますが、最大でも 255 です。

0 シェルの名前。次のように決定されます。最初の引数 ムクシュ だったら
で呼び出されます -c オプションと引数が指定されました。 それ以外の場合は file 引数、場合
それは供給されました。 または、シェルが呼び出されたベース名 (つまり、argv[0])。 $0
現在のスクリプトの名前または現在の関数の名前にも設定されます。
で定義されている場合 function キーワード (つまり、Korn シェル スタイル関数)。

1 .. 9 シェル、関数、または関数に指定された最初の XNUMX つの位置パラメータ
「.」を使用してソースされたスクリプト内蔵。 さらに位置パラメータを指定することもできます。
${ を使用してアクセスします}.

* すべての位置パラメータ (0 を除く)、つまり $1、$2、$3、...
二重引用符の外側で使用した場合、パラメーターは別の単語になります (対象となるのは
単語分割に); 二重引用符内で使用した場合、パラメータは
IFS パラメータの最初の文字 (または、IFS が NULL の場合は空の文字列)。

@ と同じ $*ただし、二重引用符で囲んで使用しない限り、二重引用符で囲んだ場合は別の単語になります。
位置パラメータごとに生成されます。 位置パラメータがない場合は、
という言葉が生成されます。 $@ 失うことなく引数に逐語的にアクセスするために使用できます
NULL 引数、またはスペースで引数を分割します。

次のパラメータはシェルによって設定および/または使用されます。

_ (アンダースコア) 外部コマンドがシェルによって実行される場合、このパラメータは
新しいプロセスの環境で、実行されたプロセスのパスに設定されます。
指示。 対話型で使用する場合、このパラメータは親シェルでも次のように設定されます。
前のコマンドの最後の単語。

BASHPID シェルまたはサブシェルの PID。

CDPATH PATH と似ていますが、引数を解決するために使用されます。 cd 組み込みコマンド。 注記
CDPATH が設定されていて、「.」が含まれていない場合または空の文字列要素、
カレントディレクトリは検索されません。 また、 cd 組み込みコマンドが表示されます
以外の検索パスで一致が見つかった場合の結果のディレクトリ
空の道。

COLUMNS 端末またはウィンドウの列数に設定します。 常に設定、デフォルト
によって報告された値を除く、80 まで スティ(1) はゼロではなく、十分に正常です
(最小値は 12x3); LINESも同様です。 このパラメータは、
インタラクティブなライン編集モード、および select, セッションに -o, kill -l コマンド
情報列の書式を設定します。 環境からのインポートまたは設定解除
このパラメータは、実際の端末サイズへのバインディングを削除し、
提供される価値。

ENV プロファイル ファイルの実行後にこのパラメータが設定されていることが判明した場合、
展開された値はシェル起動ファイルとして使用されます。 通常、関数が含まれています
およびエイリアスの定義。

ERRNO シェルの整数値 エラー 変数。 それは最後の理由を示しています
システムコールが失敗しました。 まだ実装されていません。

EXECSHELL 設定されている場合、このパラメータには、次の目的で使用されるシェルが含まれているとみなされます。
コマンドを実行する 実行する(2) 実行に失敗し、
「#!shell" 順序。

FCEDIT で使用されるエディター fc コマンド(以下を参照)。

FPATH PATH と似ていますが、ファイルを見つけるために未定義の関数が実行されるときに使用されます。
関数を定義します。 コマンドが見つからない場合にも検索されます。
パス。 見る 機能 詳細については、以下をご覧ください。

HISTFILE コマンド履歴を保存するために使用されるファイルの名前。 割り当てまたは設定を解除すると、
ファイルが開かれ、履歴が切り詰められてからファイルからロードされます。 その後
新しいコマンド (おそらく複数行で構成されます) は、コマンドが追加されると追加されます。
正常にコンパイルされました。 また、シェルの複数の呼び出しで共有されます。
HISTFILE パラメータがすべて同じファイルを指している場合、履歴。

Note: HISTFILE が設定されていないか空の場合、履歴ファイルは使用されません。 これは
AT&T UNIX とは異なります kshの.

HISTSIZE 通常、履歴として保存されるコマンドの数。 デフォルトは 2047 です。
この値を 1000000000 などの非常に高い値に設定しないでください。 ムクシュ できる
その場合、履歴に十分なメモリが割り当てられず、起動しなくなります。

HOME のデフォルトのディレクトリ cd コマンドとそれに代入される値
資格なし ~ (参照してください チルダ 拡大 下)。

IFS 内部フィールド区切り文字。置換中および read 命令、に
値を個別の引数に分割します。 通常はスペース、タブ、改行に設定されます。
見る 置換 詳細は上記。

Note: シェルが実行されている場合、このパラメータは環境からインポートされません。
開始しました。

KSHEGID シェルの実効グループ ID。

KSHGID シェルの実際のグループ ID。

KSHUID シェルの実際のユーザー ID。

KSH_VERSION シェルの名前とバージョン (読み取り専用)。 version コマンドも参照してください。
in Emacs 編集 モード & Vi 編集 モード 以下のセクション。

LINENO 現在実行中の関数またはシェル スクリプトの行番号
実行されました。

LINES 端末またはウィンドウ上の行数に設定します。 常に設定され、デフォルトは
24.「コラム」を参照してください。

エポックリアルタイム
によって返されるエポックからの時間 今日の時間を取得する(2)、XNUMX 進数としてフォーマット
テレビ秒 その後にドット (「.」) が続き、 テレビ_usec 小数点以下 XNUMX 桁まで埋め込まれます
桁。

OLDPWD 以前の作業ディレクトリ。 次の場合は設定を解除します cd 正常に変更されていません
シェルの開始以降のディレクトリ、またはシェルがディレクトリの場所を認識していない場合。

オプターグ使用時 取得、解析されたオプションの引数が含まれている場合、
XNUMX つ必要です。

OPTIND 使用時に処理される次の引数のインデックス 取得。 1を割り当てる
このパラメータにより、 取得 引数を最初から処理するには、
次回呼び出されるとき。

PATH 検索されるディレクトリのコロン (OS/2 ではセミコロン) で区切られたリスト。
「.」を使用してソースされたコマンドとファイルを検索する場合。 コマンド(以下を参照)。
先頭または末尾のコロン、または隣接する XNUMX つのコロンから生じる空の文字列
コロンは「.」として扱われます。 (現在のディレクトリ)。

PGRP シェルのプロセス グループ リーダーのプロセス ID。

PIPESTATUS 最後のエラーレベル (終了ステータス) コードを XNUMX つずつ含む配列。
パイプラインはフォアグラウンドで実行されます。

PPID シェルの親のプロセス ID。

PS1 対話型シェルの主なプロンプト。 パラメータ、コマンド、演算
置換が実行され、「!」 現在のコマンドに置き換えられます
番号 ( fc 以下のコマンド)。 文字通りの「!」 プロンプトに含めることができます
「!!」を配置するPS1では。

デフォルトのプロンプトは、非 root ユーザーの場合は「$ 」、root の場合は「# 」です。 もし ムクシュ is
root によって呼び出され、PS1 にはデフォルト値である「#」文字が含まれていません
PS1 が環境内にすでに存在する場合でも使用されます。

  ムクシュ 配布物にはサンプルが付属します ドット.mkshrc 洗練されたものを含む
たとえば、次の例が気に入るかもしれません (注意してください)
${HOSTNAME:=$(hostname)} と root-vs-user を区別する句は (
この例では、PS1 割り当て時に実行されますが、$USER と $PWD は
エスケープされたため、プロンプトが表示されるたびに評価されます):

PS1='${USER:=$(id -un)}'"@${HOSTNAME:=$(ホスト名)}:\$PWD $(
if (( USER_ID )); 次に \$ を出力します。 それ以外の場合は \#; を出力します。 フィ)」

コマンドラインエディタはプロンプトの長さを把握しようとするため、注意してください。
(画面の端までの距離がわかるように) のエスケープ コードです。
プロンプトは物事を混乱させる傾向があります。 特定のものをカウントしないようにシェルに指示できます
プロンプトの前に文字を付けることでシーケンス (エスケープ コードなど)
(Ctrl-A など) に続いてキャリッジ リターンを入力し、エスケープを区切ります。
この文字を含むコード。 プロンプト内でその文字が出現すると、
印刷されていません。 ところで、このハッキングについて私を責めないでください。 それはから派生したものです
オリジナル ksh88(1)、区切り文字が出力されたため、
非印刷文字がなければ幸運です。

バックスラッシュやその他の特殊文字はシェルによって解釈される可能性があるため、
PS1 を設定するには、バックスラッシュ自体をエスケープするか、二重引用符を使用します。 の
後者の方がより実用的です。 これはより複雑な例であり、直接の実行は避けています。
特殊文字を入力します (例: ^V emacs 編集モード)、
現在の作業ディレクトリを反転ビデオで埋め込みます (色は機能しますが、
も)、プロンプト文字列では次のようになります。

x=$(印刷\\001)
PS1="$x$(print \\r)$x$(tput so)$x\$PWD$x$(tput se)$x> "

David G. Korn 氏の強い提案により、 ムクシュ もサポートされるようになりました
次のフォーム:

PS1=$'\1\r\1\e[7m\1$PWD\1\e[0m\1> '

PS2 の XNUMX 次プロンプト文字列 (デフォルトでは '> ')。追加の入力が必要な場合に使用されます。
コマンドを完了します。

で使用される PS3 プロンプト select メニュー選択を読み取るときのステートメント。 デフォルト
は '#? '。

PS4 実行トレース中に出力されるコマンドの接頭辞として使用されます (「 セッションに
-x 以下のコマンド)。 パラメータ、コマンド、および算術置換は次のとおりです。
印刷される前に実行されます。 デフォルトは「+」です。 設定しておくとよいかもしれません
代わりに '[$EPOCHREALTIME] ' に変更し、タイムスタンプを含めます。

PWD 現在の作業ディレクトリ。 シェルが認識しない場合は、未設定または NULL になる可能性があります
どこですか。

RANDOM RANDOM が参照されるたびに、0 ~ 32767 の数値が割り当てられます。
まず線形合同 PRNG から。

REPLY のデフォルトパラメータ read 名前が指定されていない場合は、コマンドを実行します。 にも使用されます
select ループして、標準入力から読み取られた値を格納します。

SECONDS シェルが開始されてからの秒数、またはパラメータが設定されている場合は秒数。
整数値を割り当て、割り当てからの秒数に、
割り当てられた値。

TMOUT 対話型シェルで正の整数に設定すると、最大値を指定します。
プライマリを出力した後にシェルが入力を待つ秒数
プロンプト(PS1)。 時間を超えると、シェルは終了します。

TMPDIR 一時シェル ファイルが作成されるディレクトリ。このパラメータが指定されていない場合は、
設定されているか、書き込み可能なディレクトリの絶対パスが含まれていない、一時
ファイルは次の場所に作成されます / tmpに.

USER_ID シェルの実効ユーザー ID。

チルダ 拡大
パラメータ置換と並行して行われるチルダ展開は単語に対して行われます。
引用符で囲まれていない「~」で始まります。 チルダに続く最初の「/」までの文字 (次の場合)
any はログイン名とみなされます。 ログイン名が空、「+」、または「-」の場合、の値
HOME、PWD、または OLDPWD パラメータがそれぞれ置き換えられます。 それ以外の場合は、パスワード
ファイルでログイン名が検索され、チルダ式がユーザーの名前に置き換えられます。
ホームディレクトリ。 ログイン名がパスワード ファイルに見つからない場合、または引用符または
パラメータの置換がログイン名で発生する場合、置換は実行されません。

パラメーターの割り当て (単純なコマンドの前にあるもの、またはコマンドの実行中に発生するものなど)
の引数 alias, export, 全体的な, 読み取り専用, タイプセット)、チルダ展開はその後に行われます
任意の代入 (等号の後)、または引用符で囲まれていないコロン (':') の後。 ログイン名
もコロンで区切られます。

以前に展開されたログイン名のホーム ディレクトリはキャッシュされ、再利用されます。 の alias -d
コマンドを使用して、このキャッシュをリストし、変更し、追加することができます (例: alias -d
fac=/usr/local/facilities; cd ~ファク/ビン).

ブレース 拡大 (交代)
中括弧式は次の形式を取ります。

接頭辞{str1、...、strN}サフィックス

式は次のように展開されます。 N それぞれの単語を連結したものです。 接頭辞, STRi,
& サフィックス (例: 「a{c,b{X,Y},d}e」は、「ace」、「abXe」、「abYe」、および「ade」の XNUMX つの単語に展開されます)。
例で示したように、中括弧式は入れ子にすることができ、結果の単語は入れ子になりません。
並べ替えました。 中括弧式には、展開を行うために引用符で囲まれていないコンマ (',') が含まれている必要があります (例:
{} & {ふー} 展開されません)。 中括弧の展開はパラメータ置換後に実行されます
ファイル名生成前。

File パターン
ファイル名パターンは、引用符で囲まれていない XNUMX つ以上の「?」、「*」、「+」、「@」、または「!」を含む単語です。
文字または「[..]」シーケンス。 ブレースの展開が実行されると、シェルが置き換えられます。
ファイル名パターンと、パターンに一致するすべてのファイルのソートされた名前 (存在しない場合)
ファイルが一致する場合、単語は変更されません)。 パターン要素には次の意味があります。

? 任意の XNUMX 文字と一致します。

* 任意のオクテットのシーケンスと一致します。

[..] 括弧内のオクテットのいずれかと一致します。 オクテットの範囲は次のように指定できます。
0 つのオクテットを「-」で区切ります (たとえば、「[a9-XNUMX]」は文字「a」または任意の数字に一致します)。
それ自体を表すには、「-」を引用符で囲むか、最初または最後のオクテットを囲む必要があります。
オクテットリストにあります。 同様に、「]」は引用符で囲むか、リストの最初のオクテットにする必要があります。
リストの終わりではなくそれ自体を表す場合。 また、「!」 登場する
リストの先頭にある には特別な意味があるため (下記を参照)、それ自体を表すために
引用符で囲むか、リストの後半に記載する必要があります。

[!..] [..] と似ていますが、括弧内にないオクテットと一致する点が異なります。

*(パターン|...|パターン)
指定された XNUMX 回以上の出現に一致する任意のオクテット文字列と一致します。
パターン。 例: パターン *(ふー|バー) 文字列「」、「foo」、「bar」に一致します。
「フーバーフー」など。

+(パターン|...|パターン)
指定された文字列の XNUMX つ以上の出現に一致する任意のオクテット文字列と一致します。
パターン。 例: パターン +(フー|バー) 文字列「foo」、「bar」、
「フーバー」など。

?(パターン|...|パターン)
空の文字列、または指定されたパターンのいずれかに一致する文字列と一致します。
例: パターン ?(ふー|バー) 文字列「」、「foo」、および「bar」にのみ一致します。

@(パターン|...|パターン)
指定されたパターンのいずれかに一致する文字列と一致します。 例: パターン
@(ふー|バー) 文字列「foo」と「bar」のみに一致します。

!(パターン|...|パターン)
指定されたパターンのいずれにも一致しない任意の文字列と一致します。 例:
パターン !(ふー|バー) 「foo」と「bar」を除くすべての文字列に一致します。 パターン !(*)
文字列に一致しません。 パターン !(?)* すべての文字列に一致します (よく考えてください)。

複雑なグロビングは、特に代替を使用すると時間がかかることに注意してください。 別々に使用する
比較は高速になる場合もあります (高速でない場合もあります)。

注意してください ムクシュ (と プディクシュ) は決して「.」と一致しません。 および「..」ですが、AT&T UNIX kshの、ボーン sh、GNU
bash 行う。

上記のパターン要素はいずれも、パターンの先頭のピリオド (「.」) に一致しないことに注意してください。
ファイル名またはスラッシュ (「/」) ([..] シーケンスで明示的に使用されている場合でも)。 また、
名前「。」 および '..' は、パターン '.*' であっても決して一致しません。

Status マークディレクトリ オプションが設定されている場合、ファイル名生成の結果として生成されるディレクトリはすべて
末尾に「/」が付いています。

入出力 出力先変更
コマンドが実行されると、その標準入力、標準出力、および標準エラー (ファイル
記述子 (それぞれ 0、1、2) は通常、シェルから継承されます。 三つ
例外はパイプライン内のコマンドで、標準入力や標準
出力はパイプラインによって設定されたもので、ジョブ制御時に作成された非同期コマンドです。
無効。標準入力は最初から次のように設定されています。 / dev / null、およびコマンド
次のいずれかのリダイレクトが指定されています。

>file 標準出力は次のようにリダイレクトされます。 file。 場合 file 存在するのではなく、作成されます。
存在する場合、それは通常のファイルであり、 ノークロバー オプションが設定されている場合、エラーが発生します
発生します。 それ以外の場合、ファイルは切り詰められます。 これはコマンドを意味することに注意してください CMD
<フー >ふー 開くでしょう foo 読み取り用に開き、開くときに切り詰めます。
書く前に CMD 実際に読む機会が得られる foo.

>|file と同じ >ただし、ファイルが切り詰められている場合を除きます。 ノークロバー オプションが設定されています。

>>file と同じ >、 場合を除き file 存在する場合、切り捨てられる代わりに追加されます。
また、ファイルは追加モードで開かれるため、書き込みは常にファイルの最後まで行われます。
ファイル(を参照) 開いた(2))。

<file 標準入力はからリダイレクトされます file、閲覧のために開かれています。

<>file と同じ <ただし、ファイルが読み取りと書き込みのために開かれている場合を除きます。

<<マーカー この種のリダイレクト (「
「ヒアドキュメント」)、シェルはコマンドソースから行をコピーします。
行が一致するまでの一時ファイル マーカー 読まれます。 コマンドが
実行されると、標準入力は一時ファイルからリダイレクトされます。 もし マーカー
引用符で囲まれた文字が含まれていない場合、一時ファイルの内容が処理されます
コマンドが実行されるたびに二重引用符で囲まれているかのように、パラメータ、
コマンドを実行すると、バックスラッシュ ('\') とともに算術置換が実行されます。
'$'、'`'、'\'、および '\newline' はエスケープされますが、'"' はエスケープされません。ここで複数の場合
ドキュメントは同じコマンド ラインで使用され、順番に保存されます。

ない場合 マーカー が与えられた場合、ここのドキュメントは次で終了します << そして置換
が実行されます。 もし マーカー 単一の「''」または二重の「""」のセットのみです
間に何も挟まない引用符の場合、ヒアドキュメントは次の空行で終了します
置換は実行されません。

<<-マーカー と同じ <<ただし、ヒアドキュメント内の行から先頭のタブが削除されます。

<<単語 と同じ <<、 それ以外で 単語 is ここのドキュメント。 これをここといいます
文字列。

<&fd 標準入力はファイル記述子から複製されます fd. fd 数値にすることもできますが、
既存のファイル記述子の番号を示します。 文字「p」は、
現在のコプロセスの出力に関連付けられたファイル記述子。 または
文字「-」は、標準入力が閉じられることを示します。 ご了承ください fd is
ほとんどのシェル実装では XNUMX 桁に制限されています。

>&fd と同じ <&ただし、操作は標準出力で行われます。

&>file と同じ >file 2>&1。 これは非推奨の (レガシー) GNU です bash サポートされている拡張子
by ムクシュ これは、たとえば、前述の明示的な fd 番号もサポートします。
3&>file と同じです。 3>file 2>&3 in ムクシュ ただし、GNU の構文エラー bash.

&>|file、&>>file、&>&fd
と同じ >|file, >>fileまたは >&fd、続いて 2>&1、 上記のように。 これらは ムクシュ
拡張機能

上記のリダイレクトのいずれかで、リダイレクトされるファイル記述子 (つまり、標準
入力または標準出力) は、リダイレクトの前に数字を付けることで明示的に指定できます。
(移植可能、XNUMX 桁のみ)。 パラメータ、コマンド、および算術置換、チルダ
置換と (シェルが対話型の場合) ファイル名の生成はすべて、
  file, マーカー, fd リダイレクトの引数。 ただし、どのような結果であっても、
ファイル名の生成は、単一のファイルが一致した場合にのみ使用されます。 複数のファイルが一致する場合、
ファイル名生成文字を拡張したwordを使用します。 制限されていることに注意してください
シェル、ファイルを作成できるリダイレクトは使用できません。

単純なコマンドの場合、リダイレクトはコマンド内のどこにでも使用できます。 複合コマンドの場合
(if ステートメントなど)、リダイレクトは最後に指定する必要があります。 リダイレクトが処理されます
パイプラインが作成された後、指定された順序で次のように出力されます。
先頭に行番号が付加されたエラー:

$ cat /foo/bar 2>&1 >/dev/null | pr -n -t

I/O リダイレクトによって作成されたファイル記述子はシェルに対してプライベートです。

算術 表現
整数の算術式は、 コマンド、$((..)) 式内、
配列参照内 (例: [])、への数値引数として test コマンド、および
整数パラメータへの代入の値。 警告: これは暗黙的な影響も受けます
整数への変換。たとえば、 決して チェックされていないユーザーを使用する
算術などの環境からの入力です。

式は符号付き算術演算を使用して計算されます。 mksh_ari_t 型 (32 ビットの符号付き
整数)、唯一の '#' 文字で始まる場合を除き、その場合は使用します。 mksh_uari_t (a
32 ビット符号なし整数)。

式には、英数字のパラメータ識別子、配列参照、および整数が含まれる場合があります。
定数であり、次の C 演算子と組み合わせることができます (以下にリストおよびグループ化されています)。
優先順位が高くなります):

単項演算子:

+ - ! ~ ++ --

二項演算子:

,
= += -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
||
&&
|
^
&
==!=
<< = >> =
<<< >>> << >>
+-
* /%

三項演算子:

?: (優先順位は代入よりもすぐに高くなります)

グループ化演算子:

()

整数の定数と式は、正確に 32 ビット幅の符号付きまたは
符号なし、整数オーバーフロー時にサイレントラップアラウンドを行うタイプ。 整数定数は次のようになります。
表記法を使用して任意の基数で指定します ベース#ここで、 ベース は小数です
基数を指定する整数、および 指定された基数の数値です。 さらに、
基数 16 の整数は、すべての前に「0x」(大文字と小文字を区別しない) を付けることで指定できます。
算術式の形式。ただし、 test 組み込みコマンド。
数値の前に 0 桁のゼロ (「XNUMX」) を付けても、XNUMX 進数として解釈されません。
それは危険です。

特別として ムクシュ 拡張子では、8 を底とする数値は次のいずれかとして扱われます (XNUMX ビット)
透明) ASCII または Unicode コードポイント (シェルに応じて) utf8 モード フラグ (現在の
設定)。 AT&T UNIX ksh93 「1#x」の代わりに「'x'」の構文もサポートされています。 注記
NULバイト(ゼロの整数値)は使用できません。 未設定または空のパラメータ
整数コンテキストでは 0 と評価されます。 Unicode モードでは、生のオクテットが範囲にマッピングされます。
OPTU-80 と同様の EF8..EFFF。これは PUA 内にあり、この用途のために CSUR によって割り当てられています。 もし
ASCII モードで複数のオクテット、または有効な形式を形成していない複数のオクテットのシーケンス
最小限の CESU-8 シーケンスが渡された場合、動作は未定義です (通常、シェルは異常終了します)
解析エラーが発生しますが、シーケンス C2 20 などでは、まれに成功します。 だからこそあなたは
入力が整形式の UTF-8 であることがわかっていない限り、常に ASCII モードを使用する必要があります。
この機能を使用する場合は、0000..FFFD の範囲ではなく、 read -a.

演算子は次のように評価されます。

単項 +
結果は引数です (完全を期すために含まれています)。

単項 -
否定。

! 論理否定。 結果は、引数がゼロの場合は 1、そうでない場合は 0 になります。

~ 算術 (ビット単位) ではありません。

++ インクリメント; パラメータに適用する必要があります (リテラルまたは他の式ではありません)。
パラメータは 1 ずつ増加します。接頭辞演算子として使用すると、結果は
パラメータの増分値です。 後置演算子として使用する場合、
結果はパラメータの元の値です。

- に似ている ++ただし、パラメータが 1 減分されます。

, XNUMX つの算術式を区切ります。 左側が最初に評価されます。
それから右。 結果は右辺の式の値になります。
サイド。

= 割り当て; 左側の変数は右側の値に設定されます。

+= -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
代入演算子。VAR><op> =>と同じですVAR> =VAR><op><>,
任意の演算子の優先順位> 保存されています。 たとえば、「var1 *= 5 +
3」は、「var1 = var1 * (5 + 3)」を指定するのと同じです。

|| 論理和; いずれかの引数がゼロ以外の場合、結果は 1 になり、そうでない場合は 0 になります。 の
右引数は、左引数が XNUMX の場合にのみ評価されます。

&& 論理 AND; 両方の引数がゼロ以外の場合、結果は 1 になり、そうでない場合は 0 になります。 の
右引数は、左引数がゼロ以外の場合にのみ評価されます。

| 算術 (ビット単位) OR。

^ 算術 (ビット単位) XOR (排他的論理和)。

& 算術 (ビット単位) AND。

== 等しい; 両方の引数が等しい場合、結果は 1 になり、そうでない場合は 0 になります。

!= 等しくありません。 両方の引数が等しい場合は結果は 0、そうでない場合は 1 になります。

< 未満; 結果は、左の引数が右の引数より小さい場合は 1、次の場合は 0 になります。
ではありません。

<= > >=
以下、以上、以上。 見る <.

<<< >>>
左(右)に回転します。 結果はshiftと似ています(参照) <<) ただし、
一方の端でシフトアウトされたビットは、ゼロではなく、もう一方の端でシフトインされます。
または符号ビット。

<< >> 左 (右) にシフトします。 結果は、ビットが左にシフトされた左の引数です。
(右) 右の引数で指定された量によって計算されます。

+ - * /
加算、減算、乗算、除算。

% 残り。 結果は左辺の除算の対称剰余です。
右の主張。 「a」の数学的係数を取得するには、 MOD b」を使用するには、
式「(a % b + b) % b」。

<arg1>?arg2>:arg3>
場合arg1> がゼロ以外の場合、結果は次のようになりますarg2>; それ以外の場合、結果は次のようになりますarg3>.
結果以外の引数は評価されません。

共同プロセス
コプロセス ('|&' 演算子で作成されたパイプライン) は非同期プロセスです
シェルは両方に書き込むことができます (使用して 印刷 -p) から読み取り (を使用して read -p)。 入力
コプロセスの出力は、次を使用して操作することもできます。 >&p & <&p リダイレクト、
それぞれ。 共同プロセスが開始されると、共同プロセスが完了するまで別の共同プロセスを開始することはできません。
プロセスが終了するか、コプロセスの入力が exec n>&p
リダイレクション。 コプロセスの入力がこの方法でリダイレクトされると、次のコプロセスは
開始された場合は、最初のコプロセスの出力がそうでない限り、出力を最初のコプロセスと共有します。
コプロセスは、 exec n<&p リダイレクション。

コプロセスに関するいくつかの注意事項:

· コプロセスの入力を閉じる (コプロセスがファイルの終わりを読み取る) 唯一の方法は次のとおりです。
入力を番号付きのファイル記述子にリダイレクトし、そのファイル記述子を閉じます。
exec 3>&p; exec 3>&-

· コプロセスが共通の出力を共有するには、シェルが書き込みを維持する必要があります。
出力パイプの一部が開いています。 これは、ファイルの終わりが検出されるまで検出されないことを意味します。
コプロセスの出力を共有しているすべてのコプロセスが終了しました (すべてのコプロセスが終了すると、
シェルはパイプのコピーを閉じます)。 これは、出力をリダイレクトすることで回避できます。
番号付きのファイル記述子 (これによりシェルがそのコピーを閉じることになるため)。 ご了承ください
この動作は、コピーを閉じる元の Korn シェルとは少し異なります。
最も最近開始されたコプロセスのときのコプロセス出力の書き込み部分
(すべての共有コプロセスが終了する場合ではなく) 終了します。

· 印刷 -p 信号がトラップされていない場合、または書き込み中に SIGPIPE 信号を無視します。
無視されました。 コプロセス入力が別のファイルに複製されている場合も同様です。
記述子と 印刷 -un 使用されている。

機能
関数はいずれかの Korn シェルを使用して定義されます function 関数名 構文または
Bourne/POSIX シェル 関数名() 構文 (この XNUMX つの違いについては以下を参照してください)
フォーム)。 関数は、その点で .-scripts (つまり、「.」組み込みを使用してソースされたスクリプト) に似ています。
これらは現在の環境で実行されます。 ただし、.-scripts とは異なり、シェル引数は
(つまり、位置パラメータ $1、$2 など) はそれらの内部では決して表示されません。 シェルがあるとき
コマンドの位置を決定し、関数は特別な組み込みの後に検索されます。
組み込みコマンドと PATH が検索される前に実行されます。

既存の関数は次の方法で削除できます。 unset -f 関数名。 関数のリストは、
を使用して取得する タイプセット +f 関数定義は次を使用してリストできます。 タイプセット -f.
  オートロード コマンド (のエイリアスです) タイプセット -ふ) 未定義の作成に使用できます。
関数: 未定義の関数が実行されると、シェルは指定されたパスを検索します。
関数と同じ名前のファイルの FPATH パラメータ (見つかった場合は読み取られます)
そして実行されました。 ファイルの実行後、指定された関数が定義されていることが判明した場合、
関数が実行されます。 それ以外の場合は、通常のコマンド検索が続行されます (つまり、シェル
通常の組み込みコマンド テーブルと PATH を検索します)。 コマンドが見つからない場合は注意してください
PATH を使用すると、FPATH を使用して関数を自動ロードしようとします (これは文書化されていません)
オリジナルの Korn シェルの機能)。

関数には「trace」と「export」という XNUMX つの属性を指定できます。これらは次のように設定できます。 タイプセット -フィート
& タイプセット -FX、 それぞれ。 トレースされた関数が実行されると、シェルの トレース
オプションは、関数の存続期間中オンになります。 関数の「エクスポート」属性は、
現在は使用されていません。 オリジナルの Korn シェルでは、エクスポートされた関数はシェルに表示されます。
実行されるスクリプト。

関数は現在のシェル環境で実行されるため、パラメータの割り当てが行われます。
内部関数は、関数が完了した後に表示されます。 これが望ましくない場合
効果、 タイプセット コマンドを関数内で使用してローカル パラメーターを作成できます。 注記
そのAT&T UNIX ksh93 静的スコープを使用します (関数ごとに XNUMX つのグローバル スコープ、XNUMX つのローカル スコープ)
Korn スタイル関数でのみローカル変数を許可しますが、 ムクシュ 動的スコープを使用します
(さまざまな地域のネストされたスコープ)。 特別なパラメータ (例: $$, $!) あり得ません
このようにスコープを設定します。

関数の終了ステータスは、関数内で実行された最後のコマンドの終了ステータスです。 あ
を使用して関数をすぐに終了させることができます return 指図; これも使えるかもしれません
終了ステータスを明示的に指定します。

で定義された関数 function 予約語は以下では異なる方法で扱われます。
で定義された関数からの方法 () 表記:

· $0 パラメータは関数の名前に設定されます (Bourne スタイルの関数は $0 のままです)
手付かず)。

· 関数呼び出し前のパラメータ割り当てはシェル環境に保持されません。
(Bourne スタイルの関数を実行しても割り当ては保持されます)。

· OPTIND は関数の開始時と終了時に保存/リセットされ、復元されるため、 取得 することができます
関数の内部と外部の両方で適切に使用されます (Bourne スタイルの関数は OPTIND のままです)
手つかずなので、使用 取得 関数内で使用が妨げられる 取得
関数)。

· シェルオプション (セッションに -o) ローカル スコープを持ちます。つまり、関数内の変更はリセットされます。
その出口。

将来的には、次のような相違点も追加される可能性があります。

· 関数の実行中に別のトラップ/シグナル環境が使用されます。 これ
関数内に設定されたトラップがシェルのトラップとシグナルに影響を与えないことを意味します
シェル内で無視されない (ただしトラップされる可能性がある) ものは、デフォルトの効果を持ちます。
機能。

· EXIT トラップが関数に設定されている場合、関数が戻った後に実行されます。

Command 実行
コマンドライン引数、リダイレクト、パラメータ割り当ての評価後、
コマンドのタイプが決定されます: 特別な組み込みコマンド、関数、通常の組み込みコマンド、または
PATH パラメータを使用して見つかった、実行するファイルの名前。 チェックは次の場所で行われます。
上記の順序。 特別な組み込みコマンドは、PATH が他のコマンドと異なる点です。
パラメーターはそれらを検索するために使用されないため、実行中のエラーにより、
終了する対話型シェル、およびコマンドの前に指定されるパラメーターの割り当て
コマンドの完了後も保持されます。 通常の組み込みコマンドとの違いは次の点のみです。
PATH パラメータはそれらを検索するために使用されません。

オリジナル kshの と POSIX は、どのコマンドが特別であるとみなされるか、またはどのコマンドが特別であるとみなされるかという点で多少異なります。
規制する

POSIX の特別な組み込みユーティリティ:

., :, 破る, 続ける, 評価する, exec, 終了する, export, 読み取り専用, return, セッションに, シフト, <font style="vertical-align: inherit;">回数</font>, トラップ,
unset

NEW ムクシュ 割り当てを保持するコマンド:

ビルトイン, 全体的な, source, タイプセット, wait

特別ではない組み込み:

[, alias, bg, バインド, cat, cd, command, echo, false, fc, fg, 取得, jobs, kill, , 印刷,
pwd, read, リアルパス, リネーム, 眠る, サスペンド, test, true, ulimit, umask, エイリアス, どこから

コマンドのタイプが決定されると、コマンドラインパラメータの割り当てが行われます。
コマンドの実行中に実行およびエクスポートされます。

以下に、特別な組み込みコマンドと通常の組み込みコマンド、および組み込みのような予約済みコマンドについて説明します。
言葉:

. file [argは ...]
これを「ドット」コマンドと呼びます。 でコマンドを実行します file 現在の
環境。 ファイルは PATH のディレクトリ内で検索されます。 引数が次の場合
与えられた場合、位置パラメータを使用してそれらにアクセスできます。 file されています
実行されました。 引数が指定されていない場合、位置パラメータは
コマンドが使用される環境。

: [...]
ヌルコマンド。 終了ステータスはゼロに設定されます。

[ 表現 ]
見る test.

alias [-d | -t [-r] | +-x] [-p] [+] [ [=] ...]
議論がなければ、 alias すべてのエイリアスをリストします。 値のない名前の場合、
既存のエイリアスがリストされます。 値を持つ名前はエイリアスを定義します (「 エイリアス
上記)。

エイリアスをリストする場合、XNUMX つの形式のいずれかが使用されます。 通常、エイリアスは次のようにリストされます。
=ここで、 引用されている。 オプションの前に「+」または単独の「+」が付いている場合
コマンドラインでのみ指定されます が印刷されます。

  -d オプションを指定すると、チルダ展開で使用されるディレクトリ エイリアスがリストされます。
または設定します(参照 チルダ 拡大 上記)。

Status -p オプションが使用されると、各エイリアスには文字列「alias 」がプレフィックスとして付けられます。

  -t オプションは、追跡されるエイリアスがリスト/設定されることを示します (指定された値)
コマンド ライン上の は、追跡されるエイリアスでは無視されます)。 の -r オプションはそれを示します
追跡されたすべてのエイリアスはリセットされます。

  -x オプションセット (+x クリア) エイリアスのエクスポート属性。または、名前が指定されていない場合は、
指定された場合、エクスポート属性を持つエイリアスをリストします (エイリアスのエクスポートには属性はありません)
効果)。

bg [ジョブ ...]
指定した停止ジョブをバックグラウンドで再開します。 ジョブが指定されていない場合は、 %+
と想定されます。 見る ジョブ コントロール 詳細については、以下をご覧ください。

バインド [-l]
現在のバインディングがリストされます。 もし -l フラグが与えられ、 バインド 代わりに、
キーをバインドできる関数の名前。 見る Emacs 編集 モード 詳細については、
情報を表示します。

バインド [-m] 文字列=[代替] ...
バインド 文字列=[編集コマンド] ...
指定された編集コマンドは、指定されたコマンドにバインドされます。 文字列で構成されます。
オプションで XNUMX つのプレフィックス文字のいずれかが前に付く制御文字と、
必要に応じて、チルダ文字が後に続きます。 今後のインプット 文字列 原因となります
編集コマンドをすぐに呼び出すことができます。 もし -m フラグが与えられると、指定された
文字列 その後すぐに指定されたものに置き換えられます 代替 文字列
これには編集コマンドが含まれる場合がありますが、他のマクロは含まれません。 チルダ接尾辞が
XNUMX つまたは XNUMX つの接頭辞の末尾にあるチルダと制御文字は無視されます。
他の末尾文字は後で処理されます。

制御文字はキャレット表記を使用して記述できます。つまり、^X は Ctrl-X を表します。
XNUMX つのプレフィックス文字 (通常は ESC と ^X) のみがサポートされていることに注意してください。
一部の複数文字シーケンスはサポートできます。

次のデフォルトのバインディングは、矢印キー、ホーム、終了、および削除キーがどのように機能するかを示しています。
BSD では、wsvt25、xterm-xfree86、または GNU スクリーン端末がバインドされています (もちろん、いくつかの
エスケープ シーケンスはこれほどうまく機能しません):

バインド '^X'=プレフィックス-2
バインド '^[['=prefix-2
バインド '^XA'=アップヒストリー
バインド '^XB'=ダウン履歴
バインド '^XC'=forward-char
バインド '^XD'=後方文字
バインド '^X1~'=行頭
バインド '^X7~'=行頭
バインド '^XH'=行頭
バインド '^X4~'=行末
バインド '^X8~'=行末
バインド '^XF'=行末
バインド '^X3~'=削除文字転送

破る [レベル]
出口を出る レベル一番内側の for, select, までまたは while ループ。 レベル デフォルトは1です。

ビルトイン [--] command [argは ...]
組み込みコマンドを実行する command.

cat [-u] [file ...]
コマンドラインの順序でファイルを順番に読み取り、標準出力に書き込みます。
もし file 単一のダッシュ (「-」) または省略されており、標準入力から読み取られます。 直接の場合
組み込み呼び出し、POSIX -u オプションは no-op としてサポートされます。 シェルからの呼び出しの場合、
任意のオプションが指定されている場合、外部 cat(1) 組み込みよりもユーティリティが優先されます。

cd [-L] [DIR]
cd -P [-e] [DIR]
Chdir [-エル・P] [DIR]
作業ディレクトリを次のように設定します DIR。 パラメータ CDPATH が設定されている場合は、
を含むディレクトリの検索パス DIR。 NULL パスは現在のパスを意味します
ディレクトリ。 もしも DIR CDPATH 検索パスのコンポーネント (
NULL パスの場合、新しい作業ディレクトリの名前が標準出力に書き込まれます。
If DIR が見つからない場合は、ホーム ディレクトリ HOME が使用されます。 もし DIR は「-」、前の
作業ディレクトリが使用されます (OLDPWD パラメータを参照)。

Status -L オプション (論理パス) が使用されている場合、または 物理的な オプションが設定されていません (
セッションに 以下のコマンド)、「..」への参照 DIR に到達するために使用されるパスに対して相対的です
ディレクトリ。 もし -P オプション (物理パス) が使用されている場合、または 物理的な オプションがある
設定されている場合、「..」はファイルシステムのディレクトリツリーに相対的です。 障害者と老障害者
パラメータは、現在および古い作業ディレクトリを反映するように更新されます。
それぞれ。 もし -e オプションは物理ファイルシステムのトラバーサルと PWD に設定されています
設定できませんでした。終了コードは 1 です。 エラーが発生した場合は 1 より大きく、0
さもないと。

cd [-エル・P] 古い 新製品
Chdir [-エル・P] 古い 新製品
文字列 新製品 代用される 古い 現在のディレクトリとシェル内
新しいディレクトリに変更しようとします。

command [-pVv] CMD [argは ...]
どちらも -v また -V オプションが与えられ、 CMD あたかものように正確に実行されます command 持っていました
XNUMX つの例外を除いて指定されていません: まず、 CMD シェル関数にすることはできません。 そして
第二に、特別な組み込みコマンドはその特別性を失います (つまり、リダイレクトと
ユーティリティエラーによってシェルが終了したり、コマンドの割り当てが行われたりすることはありません。
永続的)。

Status -p オプションが指定されている場合、現在の値の代わりにデフォルトの検索パスが使用されます。
PATH の実際の値はシステムに依存します。

Status -v 実行する代わりにオプションが与えられます CMD、どうなるかについての情報
実行されたものが与えられます(そして同じことが行われます) argは ...)。 組み込み、関数、および
キーワードの場合は、その名前が単純に出力されます。 エイリアスの場合、エイリアスを定義するコマンドは次のとおりです。
印刷された。 PATH パラメータの検索によって見つかったユーティリティの場合は、そのフルパス
コマンドが出力されます。 コマンドが見つからない場合 (つまり、パス検索が失敗した場合)、何も実行されません。
印刷して command ゼロ以外のステータスで終了します。 の -V オプションは次のようなものです -v
オプションですが、より冗長になります。

続ける [レベル]
の先頭にジャンプします レベル一番内側の for, select, までまたは while ループ。
レベル デフォルトは1です。

echo [-A] [argは ...]
警告: このユーティリティは移植性がありません。 Korn シェル組み込みを使用する 印刷 を代わりにお使いください。

引数 (スペースで区切られた) に続いて改行を標準に従って出力します。
出力。 引数のいずれかにバックスラッシュが含まれている場合、改行は抑制されます。
シーケンス「\c」。 を参照してください。 印刷 他のバックスラッシュシーケンスのリストについては、以下のコマンドを参照してください
認識されているもの。

これらのオプションは、BSD シェル スクリプトとの互換性のために提供されています。 の -n オプション
末尾の改行を抑制します。 -e バックスラッシュの解釈を有効にします (何も操作しません。
これは通常行われます)、そして -E バックスラッシュの解釈を抑制します。

Status POSIX or sh オプションが設定されているか、これは直接の組み込み呼び出しです。最初の呼び出しのみです。
引数は、それが正確に「」である場合にのみ、オプションとして扱われます。-n”。 バックスラッシュ
解釈は無効になります。

評価する command ...
引数は (間にスペースを入れて) 連結されて XNUMX つの文字列を形成します。
シェルはこれを解析し、現在の環境で実行します。

exec [-a argv0] [-c] [ command [argは ...]]
コマンドはフォークせずに実行され、シェル プロセスが置き換えられます。 これは
現在絶対的な、つまり exec たとえ command 見つかりません。 の
-a オプションを使用すると、別の argv[0] 値を設定できます。 -c 環境を浄化します
_ 変数と直接代入を除いて、子プロセスを実行する前に。

I/O リダイレクト以外のコマンドが指定されていない場合、I/O リダイレクトは永続的になります。
そしてシェルは交換されません。 開かれている 2 より大きいファイル記述子
or DUP(2) このようにして実行されたコマンドは、他の実行されたコマンドでは利用できません (つまり、
シェルに組み込まれていないコマンド)。 Bourne シェルは異なることに注意してください
ここ; これらのファイル記述子は渡します。

終了する [status]
シェルは、指定された終了ステータスで終了します。 もし status 指定されていない場合、出口
status は現在の値です。 $? パラメータに一致する最初のデバイスのリモートコントロール URL を返します。

export [-p] [パラメーター[=]]
名前付きパラメータのエクスポート属性を設定します。 エクスポートされたパラメータが渡されます
コマンドを実行するための環境。 値が指定されている場合、名前付きパラメータ
も割り当てられています。

パラメータが指定されていない場合、エクスポート属性が設定されているすべてのパラメータが
XNUMX 行に XNUMX つずつ印刷されます。 それらの名前、またはオプション文字のない「-」の場合は、
指定された、名前=値のペア、または -p, export 再突入に適したコマンド。

false ゼロ以外のステータスで終了するコマンド。

fc [-e エディタ | -l [-n]][-r] [最初の [last]]
最初の & last 履歴からコマンドを選択します。 コマンドは履歴から選択可能
数値 (負の数値は現在の行、最新の行から遡ります) または
その文字列で始まる最新のコマンドを指定する文字列。 の -l オプション
標準出力にコマンドをリストし、 -n デフォルトのコマンド番号を禁止します。
  -r オプションはリストの順序を逆にします。 それなし -l、選択されたコマンドは次のとおりです。
で指定されたエディタによって編集されます。 -e オプション、またはいいえの場合 -e 指定されている場合、
FCEDIT パラメータで指定されたエディタ (このパラメータが設定されていない場合、 /bin/ed is
使用されます)、シェルによって実行されます。

fc -e - | -s [-g] [古い=新製品] [接頭辞]
実行後に、選択したコマンド (デフォルトでは前のコマンド) を再実行します。
オプションの置換 古い   新製品。 場合 -g が指定されている場合、出現するすべての
古い に置き換えられます 新製品。 の意味 -e - & -s は同一です: を再実行します
エディタを起動せずに選択したコマンドを実行します。 このコマンドは通常、次のようにしてアクセスします。
事前定義されたもの: alias r='fc -e -'

fg [ジョブ ...]
指定されたジョブをフォアグラウンドで再開します。 ジョブが指定されていない場合は、 %+ is
想定される。 見る ジョブ コントロール 詳細については、以下をご覧ください。

取得 オプト文字列 [argは ...]
指定された引数 (または位置パラメータ、
引数が指定されていない場合)、法的なオプションを確認します。 オプト文字列 含まれています
オプション文字 取得 認識することです。 文字の後にコロンが続く場合、
オプションには引数が必要です。 引数をとらないオプションは次のとおりです。
単一の引数にグループ化されます。 オプションが引数を取る場合、オプションは
文字が見つかった引数の最後の文字ではない場合、残りの文字は
引数はオプションの引数とみなされます。 それ以外の場合、次の引数は
オプションの引数。

毎回 取得 が呼び出されると、シェルパラメータに次のオプションが配置されます。
および次の呼び出しで処理される引数のインデックス 取得 セクションに
シェルパラメータOPTIND。 オプションが「+」で導入された場合、オプションは配置されます
in 接頭辞「+」が付きます。 オプションに引数が必要な場合、 取得 場所
それをシェルパラメータ OPTARG で指定します。

不正なオプションまたは欠落しているオプション引数が見つかった場合、疑問符が表示されます。
またはコロンが置かれます (不正なオプションまたは引数が欠落していることを示します。
それぞれ)、OPTARG は問題の原因となったオプション文字に設定されます。
さらに、もし オプト文字列 コロンで始まらない場合、疑問符が置かれます
, OPTARG は設定されておらず、エラー メッセージが標準エラーに出力されます。

選択肢の終わりに達すると、 取得 ゼロ以外の終了で終了します
状態。 オプションは、開始しない最初の (オプション引数ではない) 引数で終了します。
「-」を使用した場合、または「--」引数が見つかった場合。

オプション解析は、OPTIND を 1 に設定することでリセットできます (これは自動的に行われます)
シェルまたはシェル プロシージャが呼び出されるたびに)。

警告: シェル パラメータ OPTIND の値を 1 以外の値に変更すると、
OPTIND をリセットせずにさまざまな引数のセットを解析すると、予期しない問題が発生する可能性があります
結果。

全体的な ...
見る タイプセット.

ハッシュ [-r] [ ...]
引数を指定しないと、ハッシュ化された実行可能コマンドのパス名がリストされます。 の -r オプション
すべてのハッシュされたコマンドがハッシュ テーブルから削除されます。 それぞれ 検索されます
それがコマンド名であるかのように、実行可能ファイルの場合はハッシュ テーブルに追加されます。


jobs [-lnp] [ジョブ ...]
指定されたジョブに関する情報を表示します。 ジョブが指定されていない場合は、すべてのジョブ
が表示されます。 の -n オプションを使用すると、次のジョブの情報のみが表示されます。
前回の通知以降に状態が変化しました。 もし -l オプションが使用され、
ジョブ内の各プロセスのプロセス ID もリストされます。 の -p オプションでは、
印刷する各ジョブのプロセスグループ。 見る ジョブ コントロール の形式については以下を参照してください ジョブ
そして表示されたジョブ。

kill [-s 署名名 | | -シグナム | | -署名名]{ ジョブ | ピッド | pgrp } ...
指定されたシグナルを指定されたジョブ、プロセス ID、またはプロセス グループに送信します。 もし
シグナルが指定されていない場合は、TERM シグナルが送信されます。 ジョブが指定されている場合、シグナルは
ジョブのプロセス グループに送信されます。 見る ジョブ コントロール の形式については以下を参照してください ジョブ.

kill -l [終了ステータス ...]
に対応する信号名を出力します。 終了ステータス。 引数が指定されていない場合、
すべての信号のリスト、その番号、およびそれらの簡単な説明が印刷されます。

[表現 ...]
各式が評価されます (「 算術 表現 その上)。 すべての式の場合
が正常に評価され、最後の式が評価された場合、終了ステータスは 0 (1) になります。
非ゼロ(ゼロ)にします。 解析または評価中にエラーが発生した場合
式の場合、終了ステータスは 1 より大きくなります。式は次のようにする必要がある場合があります。
引用、(( )) は { let ' の糖衣構文です'; }。

させて] 内部で使用されるエイリアス .

mknod [-m モード] b|c 主要な マイナー
mknod [-m モード] p
デバイススペシャルファイルを作成します。 ファイルの種類は次のとおりです。 b (ブロック型デバイス)、 c
(文字型デバイス)、または p (名前付きパイプ、FIFO)。 作成されたファイルは変更される可能性があります
それによると モード (ビア -m オプション)、 主要な (メジャーデバイス番号)、および マイナー
(マイナーデバイス番号)。 これは通常は一部ではありません ムクシュ; ただし、ディストリビューターは、
これをスピードハックとして組み込みとして追加しました。

印刷 [-nprsu[n] | -R [-en]][引数 ...]
印刷 引数をスペースで区切って終了して標準出力に出力します
改行付き。 の -n オプションは改行を抑制します。 デフォルトでは、特定の C はエスケープされます
翻訳されています。 これらには、で言及されているものが含まれます バックスラッシュ 拡大 上でも同様に
'\c' として使用します。これは、 -n オプション。 バックスラッシュ展開は可能です
で抑制される -r オプション。 ザ· -s オプションは、代わりに履歴ファイルに出力します。
標準出力。 の -u オプションはファイル記述子に出力します n (n 次の場合、デフォルトは1です。
省略); そしてその -p オプションはコプロセスに出力します (「 共同プロセス 上記)。

  -R このオプションは、BSD をある程度エミュレートするために使用されます。 echo(1) を行うコマンド
次の場合を除き、「\」シーケンスは処理されません。 -e オプションが与えられます。 上記のように、 -n オプション
末尾の改行を抑制します。

printf 形式でアーカイブしたプロジェクトを保存します. [引数 ...]
フォーマットされた出力。 とほぼ同じです printf(1)、ユーティリティを使用する場合を除く
同じ バックスラッシュ 拡大 および I/O コードであり、浮動小数点を
残りの ムクシュ。 組み込みユーティリティよりも外部ユーティリティの方が優先されます。 これではありません
通常は一部です ムクシュ; ただし、ディストリビュータはこれを組み込みとして追加している可能性があります。
スピードハック。 新しいコードでは使用しないでください。

pwd [-LP]
現在の作業ディレクトリを出力します。 もし -L オプションが使用されている場合、または 物理的な
オプションが設定されていません ( セッションに 以下のコマンド)、論理パスが出力されます(つまり、
使い慣れた道 cd 現在のディレクトリに移動します)。 もし -P オプション(物理パス)を使用する場合
または 物理的な オプションが設定されている場合、パスはファイルシステムから決定されます(
'..' ディレクトリからルート ディレクトリまで) が出力されます。

read [-A | -a] [-d x] [-N z | -n z] [-p | -u[n]][-t n] [-rs] [p ...]
入力行を読み取り、IFS パラメータを使用して入力をフィールドに分割します (「
置換 上記)、各フィールドを指定されたパラメータに割り当てます。 p。 いいえの場合
パラメータが指定されている場合は、結果を保存するために REPLY パラメータが使用されます。 とともに
-A & -a オプションでは、パラメータをまったく使用しないか、または XNUMX つのパラメータのみを受け入れます。 もっとあれば
パラメータがフィールドではない場合、追加のパラメータは空の文字列または 0 に設定されます。 もし
パラメータよりフィールドの数が多い場合、最後のパラメータには残りのパラメータが割り当てられます。
フィールド (単語の区切り文字を含む)。

オプションは以下のとおりです。

-A 結果をパラメータに格納します p (または REPLY) を単語の配列として。

-a 単語をパラメータに分割せずに結果を保存します p (または返信)として
文字の配列 (ワイド文字の場合は utf8 モード オプションが制定され、
それ以外の場合はオクテット); コードポイントはデフォルトで XNUMX 進数としてエンコードされます。

-d x の最初のバイトを使用します x、空の場合は、ASCII 改行文字の代わりに NUL
入力行区切り文字として使用します。

-N z 行末まで読むのではなく、正確に読む z バイト。 EOF または
タイムアウトが発生すると、部分読み取りが終了ステータス 1 で返されます。

-n z 行末まで読むのではなく、最後まで読んでください。 z バイトですがすぐに戻ります
遅い端末デバイスから、または EOF またはタイムアウトの場合に、任意のバイトが読み取られた場合
発生する。

-p 現在アクティブなコプロセスから読み取ります。を参照してください。 共同プロセス 詳細については上記
これで。

-u[n] ファイル記述子から読み取ります n (デフォルトは 0、つまり標準入力)。 の
引数はオプション文字の直後に指定する必要があります。

-t n 読み取りを中断します n 秒 (正の XNUMX 進数値として指定し、
オプションの小数部分)。 の終了ステータス read タイムアウトの場合は 1
が発生しましたが、部分的な読み取りが返される可能性があります。

-r 通常、ASCII バックスラッシュ文字は、その特別な意味をエスケープします。
後続の文字は入力から削除されます。 read いつでも止まらない
バックスラッシュと改行のシーケンスが発生し、その改行が
結果。 このオプションは、バックスラッシュが使用されない raw モードを有効にします。
処理されました。

-s 入力した行は履歴に保存されます。

入力が端末の場合、両方の -N & -n オプションは raw モードに設定します。 彼らは
-1 が渡された場合、ファイル全体を読み取ります z 引数。

最初のパラメータには疑問符と文字列が追加される場合があります。
文字列がプロンプトとして使用される場合 (入力が行われる前に標準エラーに出力されます)
read) 入力が TTY(4) (例: read んふー?」番号 of フーズ: ').

入力が読み取られない場合、またはタイムアウトが発生した場合、 read ゼロ以外のステータスで終了します。

もう XNUMX つの便利なトリック: read 次のようなループで実行されます while read ふー; do ...;
行われ その後、先頭の空白が削除され (IFS)、バックスラッシュが処理されます。 あなた
使いたいかもしれない while IFS = read -r ふー; do ...; 行われ 自然な I/O のために。 同様に、
使用するとき -a オプションの使用 -r という選択肢は賢明かもしれない。 同じことが当てはまります
ために:

探す 。 -type f -print0 |& \
while IFS= 読み取り -d '' -pr ファイル名; する
print -r -- "<${filename#./}> が見つかりました"
行われ

内側のループはサブシェルで実行され、変数を変更することはできません。
パイプラインで実行された場合に伝播されます。

バー | バズ | foo を読みながら; する ...; 終わり

代わりにコプロセスを使用してください。

バー | バズ |&
読み取り中 -p foo; する ...; 終わり
実行 3>&p; 実行 3>&-

読み取り専用 [-p] [パラメーター [=] ...]
名前付きパラメータの読み取り専用属性を設定します。 値が指定されている場合、
パラメータは属性を設定する前に設定されます。 パラメータを作成したら
読み取り専用のため、設定を解除したり、値を変更したりすることはできません。

パラメーターが指定されていない場合、読み取り専用のすべてのパラメーターの名前が使用されます。
属性は、 -p オプションが使用されます。この場合
読み取り専用 すべての読み取り専用パラメータとその値を定義するコマンドは次のとおりです。
印刷されます。

リアルパス [--]
に対応する解決された絶対パス名を出力します。 。 場合 で終わる
スラッシュ (「/」) の場合、存在するかどうか、およびディレクトリであるかどうかもチェックされます。
さもないと、 リアルパス パス名が存在するか作成できる場合は 0 を返します。
つまり、最後のコンポーネントを除くすべてのコンポーネントが存在し、ディレクトリになります。

リネーム [--] から 〜へ
ファイルの名前を変更します から 〜へ 〜へ。 両方とも完全なパス名であり、同じデバイス上にある必要があります。
この組み込みは、次のような緊急事態を想定しています。 /bin/mv 使用できなくなり、
直接電話をかける リネームとします。

return [status]
関数からの戻り値または . スクリプト、終了ステータス付き status。 いいえの場合 status 与えられる、
最後に実行されたコマンドの終了ステータスが使用されます。 関数の外で使用する場合
or . スクリプトを使用すると、次と同じ効果があります。 終了する。 ご了承ください ムクシュ プロファイルと
ENV ファイルとして . 元の Korn シェルはプロファイルのみをスクリプトとして扱いますが、 .
スクリプト。

セッションに [+-abCefhiklmnprsUuvXx] [+-o オプション] [+-A ] [--] [argは ...]
  セッションに コマンドを使用して設定できます (-) またはクリア (+) シェルオプション、位置を設定します
パラメータを使用するか、配列パラメータを設定します。 オプションは、 +-o オプション
構文、ここで オプション オプションの長い名前、または +-手紙 構文、
コラボレー 手紙 オプションの XNUMX 文字の名前です (すべてのオプションに XNUMX 文字が含まれるわけではありません)
名前)。 次の表に、オプション文字 (存在する場合) と長い名前の両方を示します。
オプションの機能の説明も添えて:

-A
配列パラメータの要素を設定します 〜へ argは ... If -A が使用されている場合、
配列は最初にリセット (つまり空) されます。 もし +A が使用されると、最初の N 要素が設定されます
(N は引数の数です); 残りは手つかずのままです。

コマンドの代替構文 セッションに -A foo -- a b c と互換性があります
GNU bash AT&T UNIX でもサポートされています ksh93 次のとおりです。 foo=(a b c); foo+=(d e)

-a | -o すべてエクスポート
新しいパラメータはすべて、export 属性を使用して作成されます。

-b | -o 通知する
ジョブ通知メッセージを印刷直前ではなく非同期で印刷します。
プロンプト。 ジョブ制御が有効な場合にのみ使用されます (-m).

-C | -o ノークロバー
> リダイレクトが既存のファイルを上書きしないようにします。 代わりに、>| 使用しなければなりません
強制的に上書きします。 これを作成に使用するのは安全ではないことに注意してください。
リダイレクトを許可するチェックの TOCTOU による一時ファイルまたはロックファイル
に出力 / dev / null または他のデバイスファイルでも ノークロバー モード。

-e | -o エラー
エラーが発生するかコマンドが実行されるとすぐに終了します (ERR トラップの実行後)。
失敗します (つまり、ゼロ以外のステータスで終了します)。 これはコマンドには適用されません
その終了ステータスは、次のようなシェル構成によって明示的にテストされます。 if, まで,
whileまたは ! 発言。 のために && または || の場合、最後のコマンドのステータスのみが表示されます。
テスト済み。

-f | -o ノグロブ
ファイル名パターンを展開しないでください。

-h | -o トラックオール
実行されたすべてのコマンドに対して追跡されるエイリアスを作成します (「 エイリアス その上)。 有効
非対話型シェルのデフォルト。

-i | -o 相互作用的
シェルは対話型シェルです。 このオプションは、シェルが
が呼び出されます。 これが何を意味するかについては、上記を参照してください。

-k | -o キーワード
パラメータの割り当てはコマンド内のどこでも認識されます。

-l | -o ログイン
シェルはログインシェルです。 このオプションは、シェルが次の場合にのみ使用できます。
呼び出された。 これが何を意味するかについては、上記を参照してください。

-m | -o モニター
ジョブ制御を有効にします (対話型シェルのデフォルト)。

-n | -o noexec
コマンドは実行しないでください。 スクリプトの構文をチェックするのに役立ちます (無視されます)
インタラクティブの場合)。

-p | -o 特権を持つ
シェルは特権シェルです。 シェルの実行時に自動的に設定されます。
が開始されると、実際の UID または GID が有効な UID (EUID) または GID と一致しません。
(EGID)、それぞれ。 これが何を意味するかについては、上記を参照してください。

-r | -o 制限されました
シェルは制限付きシェルです。 このオプションは、シェルが次の場合にのみ使用できます。
呼び出された。 これが何を意味するかについては、上記を参照してください。

-s | -o stdin
シェルの呼び出し時に使用すると、コマンドは標準入力から読み取られます。 セット
シェルが引数なしで呼び出された場合は自動的に実行されます。

日時 -s で使用されます セッションに コマンドにより、指定された引数が次のようになります。
位置パラメータ (または配列) に割り当てる前にソートされます。 、もし
-A 使用されている)。

-U | -o utf8 モード
UTF-8 サポートを有効にする Emacs 編集 モード および内部文字列処理
機能。 このフラグはデフォルトでは無効ですが、設定することで有効にできます。
シェルコマンドライン上。 次の場合、対話型シェルに対して自動的に有効になります。
コンパイル時にリクエストされ、システムがサポートする ロケールの設定(LC_CTYPE, "")と
必要に応じて nl_langinfo(コードセット)、または LC_ALL、LC_CTYPE、または LANG 環境
変数であり、これらの少なくとも 8 つは「UTF-XNUMX」に一致するものを返します。
「utf8」では大文字と小文字が区別されません。 直接の組み込み呼び出しの場合は、
前述の環境変数。 または標準入力またはスクリプトの場合、入力が
UTF-8 バイト オーダー マークで始まります。

近い将来、ロケール追跡が実装される予定です。つまり、 セッションに -+U is
POSIX ロケール関連の環境変数のいずれかが変更されるたびに変更されます。

-u | -o 名詞セット
「$@」または「$*」以外の未設定パラメータの参照は、
「-」、「+」、または「=」修飾子のいずれかが使用されていない場合、エラーが発生します。

-v | -o 詳細
シェル入力を読み取ったときに標準エラーに書き込みます。

-X | -o マークディレクトリ
ファイル名の生成中にディレクトリの末尾に「/」を付けます。

-x | -o トレース
コマンド ツリーが実行されるときに、その前に PS4 の値を付けてコマンド ツリーを出力します。

-o ブニツェ
バックグラウンド ジョブは低い優先度で実行されます。

-o ブレースエキスパンド
中括弧の展開 (別名代替) を有効にします。 これはデフォルトで有効になっています。 もし
無効にすると、等号の後のチルダ展開が副作用として無効になります。

-o エマックス
BRL emacs のようなコマンドライン編集を有効にします (対話型シェルのみ)。 見る Emacs
編集 モード.

-o gmacs
gmacs のようなコマンドライン編集を有効にします (対話型シェルのみ)。 現在
transpose-chars (^T) がわずかに動作する点を除いて、emacs の編集と同じです。
違う。

-o 無視する
ファイルの終わりが読み取られた場合、シェルは (簡単には) 終了しません。 終了する 使用する必要があります。
無限ループを避けるため、EOF が 13 回連続して読み取られるとシェルは終了します。

-o 継承xtrace
リセットしないでください -o トレース 関数を入力するとき。 これはデフォルトで有効になっています。

-o nohup
ログイン シェルが終了するときに、実行中のジョブを SIGHUP シグナルで強制終了しないでください。
現在はデフォルトで設定されていますが、互換性を確保するために将来変更される可能性があります
AT&T UNIX を使用した場合 kshの、このオプションはありませんが、SIGHUP を送信します。
信号。

-o ノーログ
無効。 オリジナルの Korn シェルでは、これにより関数定義が
履歴ファイルに保存されます。

-o 物理的な
原因 cd & pwd 「物理」(つまり、ファイルシステムの)「..」を使用するコマンド
「論理」ディレクトリの代わりにディレクトリを使用します (つまり、シェルは「..」を処理します。
これにより、ユーザーはディレクトリへのシンボリック リンクを意識しなくなります)。 までにクリア
デフォルト。 このオプションを設定しても、現在の値には影響しないことに注意してください。
PWDパラメータ; だけ cd コマンドにより PWD が変更されます。 を参照してください。 cd & pwd コマンド
詳細については上記をご覧ください。

-o パイプの失敗
パイプラインの終了ステータス(論理補完前)を
右端のゼロ以外のエラーレベル、またはすべてのコマンドがゼロで終了した場合はゼロ。

-o POSIX
基準に近い行動をする(を参照) POSIX モード 詳細については)。 自動的に
シェル呼び出しのベース名が「sh」で始まり、これがあれば有効になります。
自動検出機能は (MirBSD ではなく) でコンパイルされます。 副作用として、設定
このフラグはオフになります ブレースエキスパンド 手動でオンに戻すことができるモード、および
sh モード (両方が同時に有効になっていない限り)。

-o sh
有効にします /bin/sh (クラッジ) モード (を参照) SH モード)。 次の場合に自動的に有効になります。
シェル呼び出しのベース名は「sh」で始まり、この自動検出機能は
でコンパイルされます (MirBSD ではありません)。 副作用として、このフラグを設定するとオフになります。
ブレースエキスパンド 手動でオンに戻すことができるモード、および POSIX モード(そうでない場合)
両方が同時に有効になります)。

-o vi
有効にします vi(1) と同様のコマンドライン編集 (対話型シェルのみ)。 見る Vi
編集 モード ドキュメントと制限について。

-o vi-esccomplete
vi コマンドライン編集では、エスケープ (^[) 時にコマンドとファイル名の補完を実行します。
コマンドモードに入ります。

-o vi-tabcomplete
vi コマンドライン編集では、タブ (^I) がオンのときにコマンドとファイル名の補完を実行します。
挿入モードに入りました。 これがデフォルトです。

-o ビロー
無効。 オリジナルの Korn シェルでは、次の場合を除きます。 ビロー 設定されていた場合、vi コマンド -
ラインモードでは、 TTY(4) ドライバーは、ESC (^[) が入力されるまで作業を行います。
ムクシュ 常に viraw モードになっています。

これらのオプションは、シェルの呼び出し時にも使用できます。 現在のセットは、
オプション (XNUMX 文字の名前) はパラメータ '$-' にあります。 セッションに -o  
オプション名を指定しないと、すべてのオプションと、それぞれがオンかオフかがリストされます。 セッションに +o 意志
現在オンになっているすべてのオプションの長い名前を出力します。 将来のバージョンでは、 セッションに
+o POSIX 準拠で動作し、現在のオプションを復元するコマンドを出力します。
を代わりにお使いください。

残りの引数 (存在する場合) は位置パラメータであり、順番に割り当てられます。
位置パラメータ ($1、$2 など)。 オプションが「--」で終わっている場合
残りの引数がない場合、すべての位置パラメータがクリアされます。 オプションがない場合、または
引数が指定されると、すべての名前の値が出力されます。 知られざる歴史について
このため、単独の '-' オプションは特別に扱われ、両方のオプションがクリアされます。 -v & -x
オプション。

シフト []
位置パラメータ + 1、 +2 などは「1」、「2」などに名前が変更されます。
デフォルトは1です。

眠る
最小限の時間実行を一時停止します。 正の XNUMX 進数値として指定します
オプションの小数部付き。 シグナル配信は、より早く実行を継続する場合があります。

source file [argは ...]
いいね . (「ドット」)、ただし、現在の作業ディレクトリが検索に追加される点が異なります。
パス (GNU bash 拡大)。

サスペンド
端末からサスペンド文字を受け取ったかのようにシェルを停止します。 それは
親プロセスがそのメンバーでない限り、ログイン シェルを一時停止することはできません。
同じ端末セッションですが、異なるプロセス グループのメンバーです。 一般的に
ルール、シェルが別のシェルまたは経由で開始された場合 su(1)の場合は、停止することができます。

test 表現
[ 表現 ]
test 評価します 表現 true の場合は 1 のステータスを返し、false の場合は XNUMX 以上のステータスを返します。
エラーがあった場合は 1 よりも大きくなります。 通常は条件コマンドとして使用します。 if &
while 発言。 シンボリックリンクはすべてのリンクでたどられます file を除く表現 -h &
-L.

次の基本的な式が使用できます。

-a file file 存在しています。

-b file file ブロック特殊デバイスです。

-c file file キャラクター専用のデバイスです。

-d file file ディレクトリです。

-e file file 存在しています。

-f file file 通常のファイルです。

-G file fileのグループはシェルの実効グループ ID です。

-g file fileのモードには setgid ビットが設定されています。

-H file file はコンテキスト依存のディレクトリです (HP-UX でのみ役立ちます)。

-h file file はシンボリックリンクです。

-k file fileのモードには スティッキー(8) ビットセット。

-L file file はシンボリックリンクです。

-O file fileの所有者は、シェルの実効ユーザー ID です。

-o オプション シェル(Shell) オプション が設定されています(「 セッションに のリストについては上記のコマンドを使用してください
オプション)。 非標準の拡張子として、オプションが次で始まる場合、
「!」、テストは否定されます。 次の場合、テストは常に失敗します。 オプション
存在しません (したがって、 [ -o foo -o -o !foo ] は、次の場合にのみ true を返します)
オプションの場合 foo 存在します)。 [ -o ?foo ] を使用しても同じことができます。
AT&T UNIX のような ksh93. オプション によって導かれる短いフラグであることもできます
'-' または '+' (論理否定なし)、たとえば '-x' または '+x'
「xtrace」の代わりに。

-p file file 名前付きパイプ(FIFO)です。

-r file file 存在し、読み取り可能です。

-S file file   UNIX(4) - ドメインソケット。

-s file file 空ではありません。

-t fd ファイル記述子 fd   TTY(4)デバイス。

-u file fileのモードには setuid ビットが設定されています。

-w file file 存在し、書き込み可能です。

-x file file 存在し、実行可能です。

file1 -nt file2 file1 より新しい file2 or file1 存在し、 file2 ではない。

file1 -ot file2 file1 より古い file2 or file2 存在し、 file1 ではない。

file1 -もしも file2 file1 と同じファイルです file2.

文字列 文字列 ゼロ以外の長さがあります。

-n 文字列 文字列 空ではありません。

-z 文字列 文字列 空です。

文字列 = 文字列 文字列は等しいです。

文字列 == 文字列 文字列は等しいです。

文字列 > 文字列 最初の文字列オペランドが XNUMX 番目の文字列オペランドより大きいです。

文字列 < 文字列 最初の文字列オペランドが XNUMX 番目の文字列オペランドより小さいです。

文字列 != 文字列 文字列が等しくありません。

-eq 数値は等しいと比較されます。

ネオン 数値を比較すると等しくありません。

-与える 数値は以上を比較します。

-gt 数値がより大きいと比較されます。

-LE 数値は以下を比較します。

-lt 数値は未満と比較されます。

上記の基本的な式では、単項演算子が二項演算子よりも優先されます。
演算子は、次の演算子と組み合わせることができます (昇順にリストされています)
優先):

expr -o expr 論理和。
expr -a expr 論理積。
! expr 論理否定。
( expr ) グループ化。

数値は実際には、数学的な式などの算術式である場合があることに注意してください。
用語または整数変数の名前:

x=1; [ "x" -eq 1 ] は true と評価されます

の数が異なる場合、いくつかの特別なルールが適用されることに注意してください (POSIX の厚意により)。
引数 test または括弧内 [ ... ] が XNUMX 未満の場合: 先頭に「!」が付いている場合
引数を削除して XNUMX ~ XNUMX つの引数だけを残すことができます。
引き下げられた比較が実行されます。 (XSI に感謝) 括弧 \( ... \) 下XNUMX-と
XNUMX つの引数の形式から XNUMX つの引数の形式、および XNUMX つの引数の形式にそれぞれ変換されます。 XNUMX つの引数
形式は最終的に二項演算を好み、その後に否定と括弧が続きます。
低下; XNUMX 引数および XNUMX 引数の形式では、括弧が後に続く否定を優先します。 の
引数が XNUMX つの形式は常に次のことを意味します -n.

Note: よくある間違いは、パラメータ「foo」の場合に失敗する「if [ $foo = bar ]」を使用することです。
スペースが埋め込まれている場合 (つまり、IFS オクテット)、または単項の場合は、NULL または未設定です
「!」のような演算子または '-n'。 代わりに「if [ x"$foo" = x"bar" ]」のようなテストを使用するか、
二重括弧演算子「if [[ $foo = bar ]]」、またはパターン マッチングを避けるため (「 [[
上): 「if [[ $foo = "$bar" ]]」

  [[ ... ]] コンストラクトはより安全に使用できるだけでなく、多くの場合より高速です。

時間 [-p] [パイプライン]
もし パイプライン が与えられると、パイプラインの実行に要した時間が報告されます。 いいえの場合
パイプラインが指定され、次にシェル自体によって使用されるユーザーとシステム時間、およびすべてが指定されます。
起動以来実行されたコマンドが報告されます。 報告された時間は、
リアルタイム (開始から終了までの経過時間)、ユーザーの CPU 時間 (費やした時間)
ユーザー モードでの実行時間)、およびシステム CPU 時間(カーネル モードでの実行にかかった時間)。
時間は標準エラーに報告されます。 出力の形式は次のとおりです。

0分0.00秒 リアル 0分0.00秒 ユーザー 0分0.00秒 システム

Status -p オプションを指定すると、出力がわずかに長くなります。

実際の0.00
ユーザー0.00
システム 0.00

を指定するとエラーになります。 -p そうでない場合はオプション パイプライン は簡単なコマンドです。

標準エラーの単純なリダイレクトは、 時間 コマンド:

$ time sleep 1 2>afile
$ { 睡眠時間 1; } 2>aファイル

最初のコマンドの時間は「afile」には反映されませんが、XNUMX 番目のコマンドの時間は「afile」に反映されます。

<font style="vertical-align: inherit;">回数</font> シェルとプロセスの両方で使用された累積されたユーザー時間とシステム時間を出力します。
シェルが開始され、終了したことを示します。 出力の形式は次のとおりです。

0分0.00秒 0分0.00秒
0分0.00秒 0分0.00秒

トラップ n [信号 ...]
最初のオペランドが XNUMX 進数の符号なし整数の場合、指定されたすべての信号がリセットされます。
デフォルトのアクションに戻ります。つまり、呼び出しと同じです。 トラップ マイナス記号 (「-」) を付けると次のようになります
ハンドラ、その後に引数 (n [信号 ...])、それらはすべて次のように扱われます。
信号。

トラップ [ハンドラ 信号 ...]
指定されたいずれかの場合に実行されるトラップ ハンドラを設定します。 信号sです
受け取った。 ハンドラ は空の文字列のいずれかで、信号が
無視され、マイナス記号 (「-」) は、デフォルトのアクションが実行されることを示します。
信号(を参照) 信号(3))、または実行されるシェルコマンドを含む文字列
最初の機会 (つまり、現在のコマンドが完了したとき、または印刷する前)
いずれかの信号を受信した後、次の PS1 プロンプトが表示されます。 信号 の名前です
信号 (例: PIPE または ALRM) または信号の番号 (「 kill -l command
上記)。

0 つの特別な信号があります: EXIT (XNUMX とも呼ばれる)。
シェルが終了しようとしている場合、および ERR はエラーが発生した後に実行されます。 エラーは
シェルを終了させる何か セッションに -e or セッションに -o エラー オプション
設定されていました。 EXIT ハンドラは最後に実行された環境で実行されます。


非対話型シェルの場合、シグナルのトラップ ハンドラーを変更できないことに注意してください。
これらはシェルの起動時に無視されました。

引数がない場合、シェル以降に設定されたトラップの現在の状態
開始されたは一連のものとして表示されます トラップ コマンド。 の出力に注意してください。 トラップ
別のプロセスに便利にパイプされる (トラップがクリアされるという事実の成果物)
サブプロセスが作成されるとき)。

オリジナルの Korn シェルの DEBUG トラップと、ERR および EXIT トラップの処理
機能はまだ実装されていません。

true ゼロ値で終了するコマンド。

全体的な [[+-alpnrtUux] [-L[n]][-R[n]][-Z[n]][-i[n]] | -f [-タックス]][ [=] ...]
タイプセット [[+-alpnrtUux] [-LRZ[n]][-i[n]] | -f [-タックス]][ [=] ...]
パラメータ属性を表示または設定します。 なしで 引数、パラメータ属性
が表示されます。 オプションが使用されない場合、すべてのパラメータの現在の属性は次のようになります。
として印刷される タイプセット コマンド。 オプションが指定されている場合 (またはオプション文字のない「-」)、
指定された属性を持つすべてのパラメータとその値が出力されます。 オプションの場合
「+」を使用して導入すると、パラメータ値は出力されません。

If 引数が指定されると、名前付きパラメータの属性が設定されます (-)または
クリア済み(+)。 パラメータの値はオプションで指定できます。 のために [*]、
変更は配列全体に影響するため、値を指定しないこともできます。

If タイプセット 関数内で使用される場合、指定されたパラメーターはすべてローカライズされます。 これ
それ以外は同一のものによって行われるわけではありません 全体的な. Note: この意味は ムクシュ 's 全体的な
コマンドは 他のプログラミング言語と同等です。
真にグローバル スコープでパラメータにアクセスするために別の関数から呼び出される関数、
ただし、アクセスされたものをローカル スコープに入れることを妨げるだけです。

日時 -f 使用されている、 タイプセット 関数の属性を操作します。 同様に
パラメーター (いいえの場合) 引数が指定され、関数がその値とともにリストされます。
(つまり、定義) オプションが '+' で導入されている場合を除き、その場合は
関数名が報告されます。

-a インデックス付き配列属性。

-f ファンクションモード。 代わりに、関数とその属性を表示または設定します。
パラメーター。

-i[n] 整数属性。 n 整数を表示するときに使用する基数を指定します
(指定しない場合は、最初の割り当てで指定された塩基が使用されます)。
この属性を持つパラメータには、算術演算を含む値が割り当てられる場合があります。
式。

-L[n] 左寄せ属性。 n フィールド幅を指定します。 もし n 指定されていません、
パラメータの現在の幅(または最初に割り当てられた値の幅)
使用されている。 先頭の空白 (およびゼロを使用する場合) -Z オプション)は
剥ぎ取られた。 必要に応じて、値が切り詰められるか、または収まるようにスペースが埋め込まれます。
フィールドの幅。

-l 小文字の属性。 値内のすべての大文字は次のように変換されます。
小文字。 (元の Korn シェルでは、このパラメータは「長整数」を意味していました)
と一緒に使用する場合 -i オプション。)

-n バインドされた変数の作成 (名前参照): 変数への任意のアクセス
変数にアクセスします 現在のスコープ内 (これは
AT&T UNIX ksh93!) その代わり。 AT&T UNIX とも異なります ksh93 つまり
その時点で遅延評価される にアクセスされます。 これを使用できるのは、
代わりに、名前がパラメータとして渡される変数にアクセスする関数
使用の 評価する.

-p 印刷完了 タイプセット 属性の再作成に使用できるコマンド
およびパラメータの値。

-R[n] 右寄せ属性。 n フィールド幅を指定します。 もし n ではありません
指定されたパラメータの現在の幅(または最初のパラメータの幅)
割り当てられた値) が使用されます。 末尾の空白は削除されます。 必要であれば、
値は先頭の文字が削除されるか、スペースが埋め込まれて作成されます。
フィールド幅に合わせます。

-r 読み取り専用属性。 この属性を持つパラメータは、
または設定を解除します。 この属性を設定すると、オフにすることはできません。

-t タグ属性。 シェルには意味がありません。 アプリケーションでの使用のために提供されています。

機能については、 -t トレース属性です。 トレース機能を使用する場合
属性が実行されると、 トレース (-x) シェルオプションが一時的に有効になります
に。

-U 符号なし整数属性。 整数は符号なしの値として出力されます(結合
-i オプション)。 このオプションは、元の Korn シェルにはありません。

-u 大文字の属性。 値内のすべての小文字は次のように変換されます。
大文字。 (元の Korn シェルでは、このパラメータは「署名なし」を意味しました。
整数」と一緒に使用する場合、 -i 大文字が使用されることを意味するオプション
10 を超える基数には決して使用しないでください。 -U オプション。)

機能については、 -u は未定義の属性です。 見る 機能 上記の
このことの影響。

-x エクスポート属性。 パラメータ (または関数) は、次の環境に配置されます。
実行されたコマンド。 エクスポートされた機能はまだ実装されていません。

-Z[n] ゼロフィル属性。 と組み合わせないと -L、これは同じです -R除きます
スペース埋め込みの代わりにゼロ埋め込みが使用されます。 整数の場合、数値
ベースの代わりにパッドが入っています。

のいずれかが -i, -L, -l, -R, -U, -uまたは -Z オプションが変更され、その他のオプションはすべてここから変更されます
set も同じコマンドラインで指定しない限り、クリアされます。

ulimit [-abccdefHilMmnOPpqrSsTtVvw] []
プロセス制限を表示または設定します。 オプションを使用しない場合、ファイル サイズの制限 (-f)であり、
想定。 指定する場合は、算術式または単語のいずれかになります。
「無制限」。 この制限は、シェルとシェルによって作成されるプロセスに影響します。
制限が課された後。 一部のシステムでは制限を許可できない場合があることに注意してください。
設定すると増加します。 また、利用可能な制限の種類はシステムです。
依存 – 一部のシステムには、 -f 限定。

-a すべての制限を表示します。 ない限り -H を使用すると、ソフトリミットが表示されます。

-B n ソケット バッファ サイズを次のように設定します。 n キビバイト。

-C n キャッシュされたスレッドの数を次のように設定します。 n.

-c n サイズ制限を課す n コア ダンプのサイズに関するブロック。

-d n サイズ制限を課す n データ領域のサイズはキビバイトです。

-e n 最大の快適性を次のように設定します n.

-f n サイズ制限を課す n シェルとその子によって書き込まれたファイルのブロック
プロセス (任意のサイズのファイルを読み取ることができます)。

-H ハード リミットのみを設定します (デフォルトでは、ハード リミットとソフト リミットの両方が設定されます)。

-i n 保留中のシグナルの数を次のように設定します。 n.

-l n 制限を課す n ロックされた (有線) 物理メモリの量のキビバイト。

-M n AIO ロック メモリを次のように設定します。 n キビバイト。

-m n 制限を課す n 使用される物理メモリの量はキビバイトです。

-n n 制限を課す n 一度に開くことができるファイル記述子。

-O n AIO 操作の数を次のように設定します。 n.

-P n プロセスあたりのスレッド数を次のように制限します。 n.

-p n 制限を課す n ユーザーがいつでも実行できるプロセス。

-q n POSIX メッセージ キューのサイズを次のように制限します。 n バイト

-r n 最大リアルタイム優先度を次のように設定します。 n.

-S ソフト リミットのみを設定します (デフォルトでは、ハード リミットとソフト リミットの両方が設定されます)。

-s n サイズ制限を課す n スタック領域のサイズはキビバイトです。

-T n 時間制限を課す n 各プロセスで使用される実際の秒数。

-t n 時間制限を課す n 各ユーザーが使用するユーザー モードで費やされる CPU 秒数
プロセス。

-V n Haiku の vnode モニターの数を次のように設定します。 n.

-v n 制限を課す n 仮想メモリの量 (アドレス空間) キビバイト
中古。

-w n 制限を課す n 使用されるスワップ領域の量はキビバイトです。

の限り ulimit ちなみに、512ブロックはXNUMXバイトです。

umask [-S] [mask]
ファイル権限作成マスク (umask) を表示または設定します (「 umask(2))。 もし -S
オプションが使用されている場合、表示または設定されるマスクはシンボリックです。 それ以外の場合は XNUMX 進数です
数。

シンボリック マスクは、次のようなものです。 chmod(1)。 使用される場合、それらは何を説明しますか
(ビットの設定が意味する XNUMX 進マスクとは対照的に) パーミッションを利用可能にすることができます。
対応するビットはクリアされます)。 たとえば、「ug=rwx,o=」は次のようにマスクを設定します。
ファイルは「他者」による読み取り、書き込み、または実行が不可能であり、同等です
(ほとんどのシステムでは) 007 進マスク「XNUMX」に変換されます。

エイリアス [-adt] [ ...]
指定された名前のエイリアスが削除されます。 もし -a オプションが使用されている場合、すべてのエイリアス
が削除されます。 もし -t or -d オプションが使用されると、指定された操作が実行されます
それぞれ、追跡されたエイリアスまたはディレクトリエイリアスに出力されます。

unset [-F V] パラメーター ...
名前付きパラメータの設定を解除します (-v、デフォルト) または関数 (-f) あり パラメーター[*]、
属性は保持され、値のみが設定解除されます。

いずれかのパラメータが読み取り専用属性を持つ場合、終了ステータスはゼロ以外になります。
セット、それ以外の場合はゼロ。

wait [ジョブ ...]
指定したジョブが完了するまで待ちます。 の終了ステータス wait それは最後のものです
指定されたジョブ。 最後のジョブがシグナルによって強制終了された場合、終了ステータスは 128 +
信号の番号 (「 kill -l 終了ステータス その上); 最後に指定したジョブが実行できない場合
見つからない (存在しないか、すでに終了しているため)、終了ステータス wait
は 127 です。参照 ジョブ コントロール の形式については以下を参照してください ジョブ. wait 信号があれば戻ります
トラップが設定されている信号を受信した場合、または SIGHUP、SIGINT、または SIGQUIT シグナルを受信した場合
が受信される。

ジョブが指定されていない場合は、 wait 現在実行中のすべてのジョブ (存在する場合) が完了するまで待機します。
終了し、ステータス XNUMX で終了します。 ジョブ監視が有効な場合、完了
ジョブのステータスが出力されます (ジョブが明示的に指定されている場合はこの限りではありません)。

どこから [-pv] [ ...]
なし -v オプションと同じです command -vただし、エイリアスは出力されません。
エイリアスコマンドとして。 とともに -v オプション、それはまったく同じです command -V。 に
いずれの場合も、 -p オプションが異なります: 検索パスは影響を受けません どこから、 だけど
検索はパスに限定されます。

ジョブ コントロール
ジョブ制御とは、プロセスまたはジョブであるジョブを監視および制御するシェルの機能を指します。
コマンドまたはパイプライン用に作成されたプロセスのグループ。 少なくとも、シェルは追跡します。
現在存在するバックグラウンド (つまり、非同期) ジョブのステータス。 これ
情報は、 jobs コマンド。 ジョブ制御が完全に有効になっている場合
(使用 セッションに -m or セッションに -o モニター)、対話型シェルの場合と同様、ジョブのプロセス
独自のプロセス グループに配置されます。 フォアグラウンド ジョブは、一時停止キーを入力することで停止できます。
端末から文字 (通常は ^Z) を入力すると、ジョブはフォアグラウンドまたはフォアグラウンドで再開できます。
を使用した背景 fg & bg コマンドを実行すると、端末の状態が保存または復元されます。
それぞれフォアグラウンド ジョブが停止または再開されたとき。

プロセスを作成するコマンドのみに注意してください (非同期コマンド、サブシェルなど)
コマンド、および非組み込み、非機能コマンド)を停止できます。 のようなコマンド read
さあ。

ジョブが作成されると、ジョブ番号が割り当てられます。 対話型シェルの場合、この数値は次のとおりです。
「[..]」内に出力され、その後にジョブ内のプロセスのプロセス ID が続きます。
非同期コマンドが実行されます。 ジョブは、 bg, fg, jobs, kill, wait
コマンドは、コマンド パイプラインの最後のプロセスのプロセス ID (
  $! パラメータ)を使用するか、ジョブ番号の前にパーセント記号(「%」)を付けます。 その他のパーセント
シーケンスはジョブを参照するためにも使用できます。

%+ | %% | % 最後に停止したジョブ、または停止したジョブがない場合は最も古いジョブ
実行中のジョブ。

%- となるジョブ %+ 後者が存在しなかった場合のジョブ。

%n ジョブ番号のジョブ n.

%?文字列 文字列を含むコマンドを含むジョブ 文字列 (次の場合はエラーが発生します)
複数のジョブが一致します)。

%文字列 文字列で始まるコマンドを含むジョブ 文字列 (次の場合はエラーが発生します)
複数のジョブが一致します)。

ジョブの状態が変化すると (たとえば、バックグラウンド ジョブが終了したり、フォアグラウンド ジョブが停止したり)、
シェルは次のステータス情報を出力します。

[] フラグ status command

どこ ...

ジョブのジョブ番号です。

フラグ ジョブが %+ or %- それぞれ仕事、またはスペース
どちらでもない場合。

status ジョブの現在の状態を示します。次のことが考えられます。

終わり []
ジョブは終了しました。 省略されたジョブの終了ステータスです。
ステータスがゼロの場合。

実行中 ジョブは停止も終了もしていません (実行中ではないことに注意してください)
必然的に CPU 時間を消費することになります – プロセスがブロックされる可能性があります
何らかのイベントを待っています)。

停止 [信号]
ジョブは示された理由で停止されました 信号 (信号が与えられない場合、
ジョブは SIGTSTP によって停止されました)。

信号の説明 [「コアダンプ」]
ジョブはシグナル (メモリ障害、ハングアップなど) によって強制終了されました。 使用 kill -l
信号の説明のリストを参照してください。 「コアダンプ」メッセージは次のことを示します。
プロセスによりコア ファイルが作成されました。

command プロセスを作成したコマンドです。 複数のプロセスがある場合、
ジョブでは、各プロセスにそのプロセスを示す行が表示されます。 command そしておそらくその status、もし
前工程の状態とは異なります。

停止状態のジョブがあるときにシェルを終了しようとすると、
シェルは停止したジョブがあることをユーザーに警告し、終了しません。 別の試みがあった場合
シェルを直ちに終了すると、停止したジョブには SIGHUP シグナルが送信され、シェルが
出る。 同様に、 nohup オプションが設定されておらず、試行時に実行中のジョブが存在します。
ログインシェルを終了するように作られている場合、シェルはユーザーに警告を出し、終了しません。 別の場合
すぐにシェルを終了しようとすると、実行中のジョブに SIGHUP シグナルが送信され、
シェルが終了します。

POSIX モード
入力します セッションに -o POSIX モードが原因で ムクシュ 場所によってはさらに POSIX 準拠に動作するようにする
デフォルトや意見が異なる場合。 ご了承ください ムクシュ 未署名でも引き続き動作します
32 ビット演算。 使用 ルクシュ ホスト上で演算を行う場合 長い ISO C を備えたデータ型
未定義の動作は必須です。 を参照してください ルクシュ(1) 詳細はマニュアルページ。 その他ほとんどの
歴史的な、AT&T UNIX kshの-互換性のある、または独自の違いは、これを使用して無効にすることができます
モード; これらは:

· GNU bash I/Oリダイレクト &>file はサポートされなくなりました。

· I/O リダイレクトによって作成されたファイル記述子は、子プロセスに継承されます。

· 先頭の数字が XNUMX の数値は XNUMX 進数として解釈されます。

·   echo 組み込みはバックスラッシュを解釈せず、正確なオプションのみをサポートします。-n"。

· ... (リストは不完全なので、R53 では変更される可能性があります)

SH モード
互換モード; 簡単に修正できないレガシー スクリプトでの使用を目的としています。 の
変更点は次のとおりです。

· GNU bash I/Oリダイレクト &>file はサポートされなくなりました。

· I/O リダイレクトによって作成されたファイル記述子は、子プロセスに継承されます。

·   echo 組み込みはバックスラッシュを解釈せず、正確なオプションのみをサポートします。-n"。

· ... (リストは不完全なので、R53 では変更される可能性があります)

対話 ライン 編集
シェルは、コマンドラインを読み取る XNUMX つのモードをサポートしています。 TTY(4) インタラクティブな形式で
セッション、によって制御される エマックス, gmacs, vi オプション (これらのうち最大 XNUMX つを設定できます)
一度)。 デフォルトは エマックス。 編集モードは、 セッションに 内蔵しています。
これらのオプションがどれも有効になっていない場合、シェルは通常のメソッドを使用して行を読み取るだけです。 TTY(4)
運転者。 もし エマックス or gmacs オプションが設定されている場合、シェルは emacs のような編集を可能にします。
指示; 同様に、 vi オプションが設定されていると、シェルで vi のように編集できるようになります。
指示。 これらのモードについては、次のセクションで詳しく説明します。

これらの編集モードでは、行が画面の幅より長い場合 (「列」を参照)
パラメータ)、「>」、「+」、または「<」文字が最後の列に表示され、それを示します
現在の位置の前後、または前にさらに文字があります。
それぞれ。 必要に応じて行が水平方向にスクロールされます。

完了した行は、IFS オクテットまたは IFS で始まらない限り、履歴にプッシュされます。
空白、または前の行と同じです。

Emacs 編集 モード
エマックス オプションが設定されている場合、対話型の入力行編集が有効になります。 警告: このモード
元の Korn シェルの emacs モードとは少し異なります。 このモードでは、さまざまな
編集コマンド (通常は XNUMX つ以上の制御文字にバインドされている) により即時アクションが発生します
改行を待たずに。 いくつかの編集コマンドは特定のコントロールにバインドされています
シェルが呼び出されたときの文字。 これらのバインディングは、 バインド

以下は、使用可能な編集コマンドのリストです。 それぞれの説明は次のように始まります。
コマンドの名前。接尾辞はコロンです。 [n] (コマンドの先頭に
カウント); およびコマンドがデフォルトでバインドされているキーは、キャレット表記を使用して記述されます。
ASCII ESC 文字は ^[ として記述されます。 これらの制御シーケンスは大文字と小文字を区別しません。
コマンドの count プレフィックスは、シーケンス ^[ を使用して入力します。nここで、 n は 1 のシーケンスです
またはそれ以上の桁。 特に指定がない限り、カウントを省略するとデフォルトの 1 になります。

編集コマンド名は、 バインド 指示。 さらに、多くの
編集コマンドは、カーソルが表示されている端末でのみ役立ちます。 デフォルトのバインディング
対応する Emacs キー バインディングに似るように選択されました。 ユーザーの TTY(4) キャラクター
(ERASE など) は適切な置換にバインドされ、デフォルトのバインディングをオーバーライドします。

中止: ^C、^G
現在のコマンドを中止し、行バッファを空にし、終了状態を次のように設定します。
中断した。

自動挿入: [n]
単に文字をリテラル入力として表示します。 最も普通のキャラクター
これに拘束されます。

後方文字: [n] ^B、^XD、ANSI-CurLeft、PC-CurLeft
カーソルを後方に移動します n 文字。

逆方向の単語: [n] ^[b、ANSI-Ctrl-CurLeft、ANSI-Alt-CurLeft
カーソルを単語の先頭まで後方に移動します。 言葉は次から構成されます
英数字、アンダースコア ('_')、およびドル記号 ('$') 文字。

歴史の始まり: ^[
履歴の先頭に移動します。

行頭: ^A、ANSI-Home、PC-Home
編集した入力行の先頭にカーソルを移動します。

大文字の単語: [n] ^[C, ^[c
次の文字の最初の文字を大文字にする n 単語、カーソルを末尾を超えたままにしておきます
最後の言葉の。

クリアスクリーン: ^[^L
コンパイル時に設定可能なシーケンスを出力して、画面をクリアしてカーソルをホームに移動します。
プロンプト全体と現在編集されている入力行を再描画します。 デフォルトのシーケンス
ほぼすべての標準端末で動作します。

コメント: ^[#
現在の行がコメント文字で始まっていない場合は、行の先頭にコメント文字が追加されます。
行の先頭に戻り、その行が入力されます (Return キーが押されたかのように)。
それ以外の場合、既存のコメント文字が削除され、カーソルが次の位置に置かれます。
行の先頭。

完了: ^[^[
コマンド名またはファイル名が一意である限り自動補完
カーソルを含む。 残りのコマンド全体またはファイル名が一意である場合、
スペースは、ディレクトリ名である場合を除き、完了後に出力されます。
「/」が付加されます。 現在の部分単語を含むコマンドまたはファイル名がない場合
プレフィックスとしてベル文字が出力されます (通常はビープ音が鳴ります)。

完全なコマンド: ^X^[
部分的なコマンド名が一意である限り自動的に補完されます。
次のように、カーソルまでの単語を接頭辞として使用します。 コンプリート 上記のコマンド。

完全なファイル: ^[^X
部分的なファイル名が一意である限り自動的に補完されます。
次のように、カーソルまでの単語を接頭辞として使用します。 コンプリート 上で説明したコマンド。

完全なリスト: ^I、^[=
現在の単語を可能な限り完成させ、考えられる単語をリストアップします
それに対する完成品。 補完が XNUMX つだけ可能な場合は、次のように一致します。 コンプリート
上記のコマンド。 ^I は通常、TAB (タブレータ) キーによって生成されることに注意してください。

削除文字バックワード: [n] 消去、^?、^H
削除 n カーソルの前の文字。

削除文字転送: [n] ANSI-Del、PC-Del
削除 n カーソルの後の文字。

単語後方削除: [n] ウェラセ、^[^?、^[^H、^[h
削除 n カーソルの前の単語。

削除ワード転送: [n] ^[d
カーソル以降の文字を末尾まで削除します。 n 言葉。

ダウン履歴: [n] ^N、^XB、ANSI-CurDown、PC-CurDown
履歴バッファを前方にスクロールします n 行(後で)。 各入力行は元々
履歴バッファの最後のエントリの直後から開始されるため、 ダウンヒストリー ではありません
どちらかまで役に立つ 検索履歴, 検索履歴アップ or アップヒストリー されています
実行されました。

小文字の単語: [n] ^[L、^[l
次を小文字にする n 言葉。

編集行: [n] ^Xe
行の編集 n または、指定されていない場合は現在の行を対話的に実行します。 実際の
実行されたコマンドは fc -e ${ビジュアル:-${エディター:-vi}} n.

歴史の終わり: ^[>
履歴の最後に移動します。

行末: ^E、ANSI-End、PC-End
カーソルを入力行の末尾に移動します。

えと:^_
ファイルの終わりとして機能します。 編集モード入力では通常の入力が無効になるため、これは便利です。
端末入力の正規化。

eot-or-delete: [n] ^D
として機能します えっと 列に一人でいる場合。 それ以外の場合は次のように機能します 削除文字転送.

エラー: (バインドされていません)
エラー(ベルを鳴らしてください)。

ポイントアンドマークの交換: ^X^X
マークの位置にカーソルを置き、カーソルがあった位置にマークを設定します。

展開ファイル: ^[*
現在の単語に「*」を追加し、その単語を次の結果で置き換えます。
Word でファイルのグロビングを実行します。 パターンに一致するファイルがない場合は、ベルが鳴ります。
ラング。

前方文字: [n] ^F、^XC、ANSI-CurRight、PC-CurRight
カーソルを前に移動します n 文字。

前方単語: [n] ^[f、ANSI-Ctrl-CurRight、ANSI-Alt-CurRight
カーソルを前方の末尾まで移動します。 n言葉。

goto-history: [n] ^[g
履歴番号に移動します n.

キルライン: KILL
入力行全体を削除します。

キル領域: ^W
カーソルとマークの間の入力を削除します。

キルトゥエオル: [n] ^K
次の場合、カーソルから行末までの入力を削除します。 n は指定されていません。
それ以外の場合は、カーソルと列の間の文字を削除します n.

リスト: ^[?
コマンド名またはファイル名 (存在する場合) のソートされた列リストを出力します。
カーソルを含む単語の一部を完成させます。 ディレクトリ名には「/」が追加されます
彼らへ。

リストコマンド: ^X?
コマンド名 (存在する場合) のソートされた列別リストを出力します。
カーソルを含む単語の一部。

リストファイル: ^X^Y
ファイル名 (存在する場合) を並べ替えて列化したリストを出力します。
カーソルを含む単語の一部。 ファイルタイプインジケーターは説明どおりに追加されます
リスト 上記。

改行: ^J、^M
現在の入力行がシェルによって処理されます。 現在のカーソル
位置は行上のどこでも構いません。

改行と次: ^O
現在の入力行がシェルによって処理され、次の行がシェルによって処理されます。
履歴が現在の行になります。 これは、 アップヒストリー,
検索履歴 or 検索履歴アップ.

ノーオペ: 終了
これでは何も起こりません。

接頭辞-1: ^[
2 文字のコマンド シーケンスを導入します。

接頭辞 2: ^X、^[[、^[O
2 文字のコマンド シーケンスを導入します。

前の単語: [n] ^[., ^[_
最後の言葉、または与えられた場合は、 n前の単語 (繰り返しの場合) の (XNUMX から始まる) 番目の単語
実行、最後から XNUMX 番目、最後から XNUMX 番目など) コマンドがカーソル位置に挿入されます。 の使用
この編集コマンドはマークを破棄します。

引用: ^^, ^V
次の文字は、編集コマンドとしてではなく文字通りに解釈されます。

再描画: ^L
プロンプト文字列の最後の行と現在の入力行を新しいファイルに再出力します。
ライン。

検索文字後方: [n] ^[^]
現在の行を逆方向に検索して、 n次の文字が出現する回数
入力しました。

検索文字送り: [n]^]
現在の行を前方に検索して、 n次の文字が出現する回数
入力しました。

検索履歴: ^R
インクリメンタル検索モードに入ります。 内部履歴リストを逆方向に検索します。
入力に一致するコマンド。 検索文字列の最初の「^」は、
検索。 Esc キーを押すと検索モードが終了します。 シーケンスを含むその他のコマンド
として逃げる プレフィックス-1 続いて プレフィックス-1 or プレフィックス-2 キーは後に実行されます
検索モードを終了します。 の アボート (^G) コマンドは、以前の入力行を復元します。
検索が始まりました。 歴代 検索履歴 コマンドは後方検索を続けます
パターンの次に前の出現。 履歴バッファには、
有限の行数。 必要に応じて古いものは破棄されます。

検索履歴アップ: ANSI-PgUp、PC-PgUp
履歴バッファ内で先頭が一致するコマンドを逆方向に検索します。
入力行のカーソルより前の部分。 空の行で使用すると、
と同じ効果 アップヒストリー.

検索履歴ダウン: ANSI-PgDn、PC-PgDn
先頭が一致するコマンドを履歴バッファ内で前方検索します。
入力行のカーソルより前の部分。 空の行で使用すると、
と同じ効果 ダウンヒストリー。 これは、 アップヒストリー,
検索履歴 or 検索履歴アップ.

セットマークコマンド: ^[
カーソル位置にマークを設定します。

転置文字: ^T
行末の場合、または gmacs オプションが設定されている場合、これは XNUMX つの値を交換します
前の文字。 それ以外の場合は、前の文字と現在の文字を交換し、
カーソルを XNUMX 文字右に移動します。

アップ履歴: [n] ^P、^XA、ANSI-CurUp、PC-CurUp
履歴バッファを逆方向にスクロールします n 行(以前)。

大文字の単語: [n] ^[U、^[u
次を大文字にする n 言葉。

バージョン: ^[^V
のバージョンを表示します ムクシュ。 現在の編集バッファは、キーを押すとすぐに復元されます。
が押されます。 復元キーの押下は、スペースでない限り処理されます。

ヤンク: ^Y
現在のカーソル位置に、最後に削除されたテキスト文字列を挿入します。

ヤンクポップ: ^[y
直後 ヤンク、挿入されたテキスト文字列を次の以前の文字列に置き換えます。
削除されたテキスト文字列。

Vi 編集 モード
注: vi コマンドライン編集モードは孤立していますが、まだ機能しています。 8ビットクリーンです
ただし、具体的には UTF-8 または MBCS をサポートしていません。

vi コマンドラインエディター ムクシュ と基本的に同じコマンドがあります。 vi(1) エディタ付き
次の例外を除きます:

· 最初は挿入モードで開始します。

· ファイル名とコマンド補完コマンドがあります: =、\、*、^X、^E、^F、および
オプションで、 そして。

·   _ コマンドが異なります( ムクシュ、これは最後の引数のコマンドです。 で vi(1) そうなります
現在の行の先頭まで)。

·   / & G コマンドは反対方向に移動します。 j

· 単一行エディタでは意味をなさないコマンドは使用できません (例: screen
移動コマンドと ex(1) 形式のコロン (:) コマンド)。

いいね vi(1)には、「インサート」モードと「コマンド」モードのXNUMXつのモードがあります。 挿入モードでは、ほとんどの
文字は、入力されたときにバッファ内の現在のカーソル位置に置かれるだけです。
ただし、一部の文字は特別に扱われます。 特に以下のキャラクターは、
現在から取得した TTY(4) 設定(参照) スティ(1)) と通常の意味 (通常の値) を持ちます。
括弧内は): kill (^U)、erase (^?)、werase (^W)、eof (^D)、intr (^C)、および quit (^\)。
上記に加えて、以下の文字も挿入時に特別に扱われます。
モード:

^E コマンドとファイル名の列挙 (以下を参照)。

^F コマンドとファイル名の補完 (以下を参照)。 XNUMX回連続で使用すると、
可能な補完が表示されます。 XNUMX 回目に使用すると、完了は取り消されます。

^H 前の文字を消去します。

^J | ^M 行末。 現在の行はシェルによって読み取られ、解析され、実行されます。

^V リテラルの次。 次に入力された文字は特別に扱われません (次の目的で使用できます)。
ここで説明されている文字を挿入します)。

^X コマンドとファイル名の拡張 (以下を参照)。

エディタをコマンド モードにします (以下を参照)。

オプションのファイル名とコマンド補完 (「 ^F 上記)、以下で有効にします セッションに -o
vi-tabcomplete.

コマンド モードでは、各文字がコマンドとして解釈されます。 そうでないキャラクター
コマンドに対応しているか、コマンドの不正な組み合わせであるか、または使用できないコマンドです。
実行するとビープ音が鳴ります。 以下のコマンドの説明では、[n] を示します。
コマンドの前に数字を付けることができます (例: 10l 右に 10 文字移動します)。 番号がない場合
プレフィックスが使用されており、 n 特に指定がない限り、 は 1 であるとみなされます。 「現在」という言葉は、
「位置」とは、カーソルとその前の文字との間の位置を指します。
「単語」とは、文字、数字、アンダースコア文字のシーケンス、または非文字のシーケンスです。
文字、数字以外、アンダースコア以外、空白文字以外の文字 (例: 「ab2*&^」には XNUMX つの文字が含まれます)
単語)、「ビッグワード」は空白文字以外の文字のシーケンスです。

スペシャル ムクシュ vi コマンド:

次のコマンドは、通常の vi ファイル エディターに含まれていない、または通常の vi ファイル エディターとは異なります。

[n]_ スペースを挿入し、その後に n履歴の最後のコマンドからの 番目のビッグワード
現在の位置で挿入モードに入ります。 もし n 指定されていない、最後の
という言葉が挿入されます。

# 現在の行の先頭にコメント文字 ('#') を挿入して戻ります
シェルへの行 (と同等 I#^J).

[n]gいいね G、 場合を除き n 指定されていない場合は、最後に記憶されたものに移動します
ライン。

[n]v 行を編集 n vi(1) 編集者。 もし n が指定されていない場合、現在の行は
編集されました。 実際に実行されるコマンドは、 fc -e ${ビジュアル:-${エディター:-vi}} n.

* および ^X コマンドまたはファイル名の拡張は、現在のビッグワードに適用されます (
単語にファイルグロビング文字が含まれていない場合は「*」が追加されます) – ビッグワードは
結果の単語に置き換えられます。 現在のビッグワードが
行または文字 ';'、'|'、'&'、'('、または ')' のいずれかが続きます。
スラッシュ (「/」) が含まれる場合、コマンドの展開が行われます。 それ以外の場合はファイル名
拡張が行われます。 コマンド展開では、ビッグワードがすべてのワードと一致します。
エイリアス、関数、組み込みコマンド、および見つかった実行可能ファイル
PATH パラメータでディレクトリを検索します。 ファイル名拡張一致
現在のディレクトリ内のファイルに対するビッグワード。 拡張後は、
カーソルは最後の単語のすぐ後ろに置かれ、エディタは挿入モードになります。

[n]\、[n]^F、[n] 、 そして [n
コマンド/ファイル名の補完。 現在のビッグワードを最長のワードに置き換えます
コマンドとファイル名の拡張を実行した後に取得された一意の一致。
の場合にのみ認識されます。 vi-tabcomplete オプションが設定されている間、 だけです
場合に認識されます vi-esccomplete オプションが設定されています (参照 セッションに -o) もし n 指定されている、
  n可能な補完が選択されています (コマンド/ファイル名によって報告されます)
列挙コマンド)。

= および ^E コマンド/ファイル名の列挙。 一致するすべてのコマンドまたはファイルをリストします。
現在のビッグワード。

^V のバージョンを表示します ムクシュ。 現在の編集バッファは、
キーが押されました。 復元中のキー入力は無視されます。

@c マクロ展開。 エイリアスで見つかったコマンドを実行します c.

行内移動コマンド:

[n]手 [n]^H
左に移動 n 文字。

[n]土地 [n
右に動く n 文字。

0 列 0 に移動します。

^ 最初の非空白文字に移動します。

[n]| 列に移動 n.

$ 最後の文字に移動します。

[n]b 戻る n 言葉。

[n]B 戻る n 大きな言葉。

[n]e 単語の最後まで進みます。 n 回。

[n]E 大きな言葉の最後まで進み、 n 回。

[n]w 前に進みます n 言葉。

[n]W前進 n 大きな言葉。

% 一致を検索します。 エディターは最も近い括弧、括弧、または中括弧を探します。
次に、対応する括弧、括弧、または中括弧にカーソルを移動します。

[n]fc に進んでください n文字の 番目の出現 c.

[n]Fc に戻る n文字の 番目の出現 c.

[n]tc 直前まで進む n文字の 番目の出現 c.

[n]Tc 直前まで後退する n文字の 番目の出現 c.

[n]; 最後を繰り返します f, F, tまたは T

[n]、最後を繰り返します f, F, tまたは T コマンドを実行しても、反対方向に移動します。

行間移動コマンド:

[n]j、[n]+、[n]^N
に移動する n履歴の次の行。

[n]k、[n]-、 そして [n]^P
に移動する n履歴の XNUMX 番目前の行。

[n]G 行に移動 n 歴史の中で。 もし n 指定されていない場合は、最初の番号
覚えた行が使用されます。

[n]gいいね G、 場合を除き n が指定されていない場合は、最後に記憶された行に移動します。

[n]/文字列
履歴を逆方向に検索して、 nを含む行目 文字列; もし 文字列
「^」で始まる場合、文字列の残りの部分は履歴の先頭に現れる必要があります
一致する行。

[n]?文字列
と同じ /ただし、履歴を前方に検索する点が異なります。

[n]n を検索します。 n最後の検索文字列の 番目の出現。 探索の方向性
前回の検索と同じです。

[n]N を検索します。 n最後の検索文字列の 番目の出現。 探索の方向性
最後の検索の逆です。

ANSI カールアップ, PC-PgUp
行の先頭から現在のカーソル位置までの文字を次のように取得します。
文字列を検索し、これで始まる行を後方履歴検索します。
弦; カーソル位置を維持します。 これは挿入モードでのみ機能し、それを保持します
有効になりました。

編集コマンド

[n]a テキストを追加 n 回。 現在の位置の直後に挿入モードになります。 の
append は、コマンド モードが再度開始された場合にのみ複製されます。つまり、 使用されている。

[n]Aと同じ aただし、行の末尾に追加される点が異なります。

[n]i テキストを挿入 n 回。 現在の位置で挿入モードになります。 挿入
コマンドモードが再び開始された場合にのみ複製されます。つまり、 使用されている。

[n]私も同じです iただし、挿入は最初の非空白文字の直前に行われます。

[n]s 次のものを置き換えます n 文字 (つまり、文字を削除して挿入に入ります)
モード)。

S 行全体を置換します。 空白以外の最初の文字から末尾までのすべての文字
の行が削除され、挿入モードに入ります。

[n]c移動コマンド
現在の位置から結果の位置への変更 n 移動コマンドs (つまり
指定された領域を削除し、挿入モードに移行します); もし 移動コマンド is c、ライン
最初の非空白文字から変更されます。

C 現在の位置から行の末尾まで変更します (つまり、行の末尾まで削除します)。
行を削除して挿入モードに入ります)。

[n]x 次を削除 n 文字。

[n]X 前の内容を削除 n 文字。

D 行末まで削除します。

[n]d移動コマンド
現在の位置から結果の位置までを削除します。 n 移動コマンドs;
移動コマンド 移動コマンド (上記を参照) または d、この場合、現在の行は
削除されました。

[n]rc 次のものと交換する n キャラクターとキャラクター c.

[n]R 交換します。 挿入モードに入りますが、既存の文字を挿入するのではなく上書きします。
既存キャラの前に。 入れ替わりが繰り返される n 回。

[n]~ 次の大文字と小文字を変更します n 文字。

[n]y移動コマンド
現在の位置から次の結果の位置までヤンクします。 n 移動コマンドsに
バッファをヤンクします。 もし 移動コマンド is y、行全体がヤンクされます。

Y 現在の位置から行末までヤンクします。

[n]p ヤンク バッファの内容を現在の位置の直後に貼り付けます。 n 回。

[n]P同じ pただし、バッファは現在の位置に貼り付けられます。

その他の vi コマンド

^J と ^M
現在の行はシェルによって読み取られ、解析され、実行されます。

^L と ^R
現在の行を再描画します。

[n]。 最後の編集コマンドをやり直す n 回。

u 最後の編集コマンドを元に戻します。

U 現在の行に加えられたすべての変更を元に戻します。

PC の Home、End、Del、およびカーソル キー
挿入モードとコマンド モードの両方で、期待どおりに動作します。

intr & やめます
割り込みと終了の終端文字により、現在の行が削除され、
印刷される新しいプロンプト。

onworks.net サービスを使用してオンラインで mksh-static を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

  • 1
    ディープクリーン
    ディープクリーン
    すべてのビルドを無効にする Kotlin スクリプト
    Gradle/Android プロジェクトからのキャッシュ。
    Gradle または IDE で使用できる場合に便利です。
    下。 スクリプトはテスト済みです
    macOSですが...
    ディープクリーンをダウンロード
  • 2
    Eclipse Checkstyle プラグイン
    Eclipse Checkstyle プラグイン
    Eclipse Checkstyle プラグイン
    Checkstyle Java コードを統合
    監査人を Eclipse IDE に追加します。 の
    プラグインはリアルタイムのフィードバックを提供します
    違反についてのユーザー...
    Eclipse Checkstyle プラグインのダウンロード
  • 3
    AstrOrzPlayer
    AstrOrzPlayer
    AstrOrz Player は無料のメディア プレーヤーです。
    ソフトウェア、WMP および VLC に基づく部分。 の
    プレーヤーはミニマリスト スタイルで、
    XNUMX を超えるテーマ カラー、および
    B ...
    AstrOrzPlayer をダウンロード
  • 4
    モビスタート
    モビスタート
    Kodi Movistar + TV es un ADDON para XBMC/
    Kodi que 許可ディスポンナー デ ウン
    IPTV のロス サービスの復号化機能
    モビスター インテグラド エン ウノ デ ロス
    メディアセンターマ...
    movistartv のダウンロード
  • 5
    Code :: Blocks
    Code :: Blocks
    Code::Blocks は無料のオープンソースです。
    クロスプラットフォームの C、C++、および Fortran IDE
    最も厳しいニーズを満たすように構築されています
    そのユーザーの。 それは非常に設計されています
    伸びる…
    コードをダウンロード::ブロック
  • 6
    中に
    中に
    中または高度な Minecraft インターフェイス
    データ/構造追跡は、
    Minecraft の概要を表示する
    実際に作成することなく、世界。 それ
    できる ...
    ダウンロード
  • 詳細»

Linuxコマンド

Ad