これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド fcposix です。
プログラム:
NAME
fc — コマンド履歴リストを処理します
SYNOPSIS
fc [−r] [−e エディタ] [最初の [last]]
fc −l [−nr] [最初の [last]]
fc −s [古い=新製品] [最初の]
DESCRIPTION
この fc ユーティリティは、以前にコマンドに入力されたコマンドをリストするか、編集して再実行する必要があります。
相互作用的 sh.
コマンド履歴リストでは、コマンドを番号で参照します。 リストの最初の番号
は任意に選択されます。 数字とその命令の関係は変わらないものとする
ただし、ユーザーがログインしており、他のプロセスがリストにアクセスしていない場合は除きます。
システムは、番号付けをリセットして、保持されている最も古いコマンドを別の番号で開始する場合があります。
(通常は 1)。 数値が実装で定義された上限に達すると、
の値以上 履歴サイズ または 32767 (どちらか大きい方)、シェルはラップする可能性があります
番号。次のコマンドは小さい番号 (通常は 1) で始まります。 しかし、にもかかわらず、
このオプションの数値の折り返し、 fc の時間順序シーケンスを維持するものとします。
コマンド。 たとえば、連続した 32766 つのコマンドに番号 32767、1、XNUMX が与えられた場合、
(ラップされた)、および 2 が実行されると、コマンド 32767 はその前のコマンドとみなされます。
数値は高くなりますが、1。
コマンドを編集するとき( −l オプションが指定されていない場合)、結果の行は
履歴リストの最後に入力し、次の方法で再実行します。 shを選択します。 fc そのコマンド
原因となった編集は履歴リストに登録されません。 エディターが
ゼロ以外の終了ステータス。これにより、履歴リストへのエントリとコマンドが抑制されます。
再実行。 で使用されるコマンド ライン変数の代入またはリダイレクト演算子 fc
両方に影響を与えるだろう fc コマンド自体とその結果のコマンド。 例えば:
fc −s - -1 2> / dev / null
前のコマンドを再呼び出しし、両方の標準エラーを抑制します。 fc そして前の
OPTIONS
この fc ユーティリティは、POSIX.1‐2008の基本定義ボリュームに準拠する必要があります。 セクション 12.2,
ユーティリティ 構文 ガイドライン.
次のオプションがサポートされます。
−e エディタ という名前のエディタを使用します エディタ コマンドを編集します。 の エディタ 文字列は
ユーティリティ名。 パス 変数 (「基本定義」を参照)
POSIX.1‐2008のボリューム、 章 8, 環境 Variables)。 の値は、
FC編集 変数は、次の場合にデフォルトとして使用されます。 −e は指定されていません。 もし FC編集
null または未設定です。 ed をエディタとして使用します。
−l (エルという文字) コマンドに対してエディターを呼び出すのではなく、コマンドをリストします。 の
コマンドは、 最初の と last
影響を受けるオペランド −r、各コマンドの前にコマンド番号が付いています。
−n を使用してリストするときにコマンド番号を抑制します。 −l.
−r リストされているコマンドの順序を逆にします( −l)または編集済み(どちらも使用しない −l
また −s).
−s エディターを呼び出さずにコマンドを再実行してください。
オペランド
次のオペランドがサポートされます。
最初の, last
リストまたは編集するコマンドを選択します。 実行できる以前のコマンドの数
アクセスされるものは、 履歴サイズ 変数。 の値
最初の or last または両方が次のいずれかになります。
[+]数 コマンド番号を表す正の数。 コマンド番号は
で表示される −l オプションを選択します。
- 数 実行されたコマンドを表す負のXNUMX進数
数 以前のコマンドの。 たとえば、−1 は即時です。
前のコマンド。
string 最後に入力したコマンドを示す文字列で始まります。
その文字列。 もし 古い=新製品 オペランドも指定されていません −s
の文字列形式 最初の オペランドに埋め込みを含めることはできません
サイン>。
概要が形成されると、 −s 使用されている:
* もしも 最初の が省略された場合は、前のコマンドが使用されます。
なしの概要フォームの場合 −s:
* もしも last 省略、 last 次の場合は、デフォルトで前のコマンドが使用されます。 −l is
指定された; それ以外の場合は、デフォルトで 最初の.
* もしも 最初の と last 両方とも省略された場合は、前の 16 個のコマンドがリストされます。
または、前の XNUMX つのコマンドを編集する必要があります ( −l オプション)。
* もしも 最初の と last 両方が存在し、からのすべてのコマンドが 最初の 〜へ last
編集するものとします(なし) −l) またはリストされている ( −l)。 複数のコマンドを編集する
すべてのコマンドを一度に編集者に提示することによって達成されます。
各コマンドは新しい行で始まります。 もし 最初の より新しいものを表します
よりもコマンド last、コマンドは逆にリストまたは編集されます。
シーケンス、使用と同等 −r。 たとえば、次のコマンドは
最初の行は、XNUMX 行目の対応するコマンドと同等です。
fc −r 10 20 fc 30 40
fc 20 10 fc −r 40 30
※複数のコマンドを使用する場合は指定しても間違いではありません 最初の
or last 履歴リストにない値。 fc を置き換えるものとする
必要に応じて、リスト内の最も古いコマンドまたは最新のコマンドを表す値。
たとえば、履歴リストにコマンドが 1 個しかない場合、番号は XNUMX になります。
10へ:
fc −l
fc 1 99
XNUMX 個のコマンドすべてをそれぞれリストし、編集します。
古い=新製品 最初に出現した文字列を置換します 古い 再実行されるコマンド内
文字列 新製品.
標準入力
使用されていない。
入力 ファイル
なし。
ENVIRONMENT 変数
次の環境変数は、の実行に影響を与えます。 fc:
FC編集 この変数は、シェルによって展開されると、次のデフォルト値を決定します。
−e エディタ オプションの エディタ オプション引数。 もし FC編集 null または未設定です。 ed
をエディタとして使用します。
ヒストファイル コマンド履歴ファイルのパス名を決定します。 もし ヒストファイル 変数は
設定されていない場合、シェルはファイルへのアクセスまたはファイルの作成を試みる可能性があります .sh_history 会場は
によって参照されるディレクトリ ホーム 環境変数。 シェルができない場合は、
履歴ファイルへの読み取りと書き込みの両方のアクセス権を取得するか、履歴ファイルを作成するには、使用するものとします。
履歴が適切に動作することを可能にする不特定のメカニズム。
(このセクションにおける履歴「ファイル」への言及は、これを意味すると理解されるものとします。
(そのような場合は、不特定のメカニズムが使用されます。) 実装は、アクセスすることを選択する場合があります。
この変数は履歴ファイルを初期化する場合にのみ使用されます。 この初期化は、
次の場合に発生します fc or sh 最初にエントリを取得するか、エントリを追加しようとします。
ユーザーが発行したコマンドの結果としてのファイル、ユーザーによって名前が付けられたファイル
ENV 変数、または実装定義のシステム起動ファイル。 一部では
履歴シェルの場合、履歴ファイルは直後に初期化されます。 ENV ファイルがあります
処理された。 したがって、変更が加えられるかどうかは実装によって定義されます。
ヒストファイル 履歴ファイルが初期化された後が有効になります。
実装では、次のようなユーザーの履歴リスト メカニズムを無効にすることもできます。
適切な権限を設定していない人 ヒストファイル; 特定の状況下で
これが発生するかどうかは実装によって定義されます。 複数のインスタンスがある場合、
シェルは同じ履歴ファイルを使用しているため、シェルがどのように更新されるかは不明です。
これらのシェルの履歴ファイルは相互作用します。 履歴からエントリが削除されるため、
ファイルの場合、古いものから順に削除されます。 履歴ファイルがいつになるかは不明
エントリは履歴ファイルから物理的に削除されます。
履歴サイズ 以前の数の制限を表す XNUMX 進数を決定します。
アクセス可能なコマンド。 この変数が設定されていない場合、未指定のデフォルトが設定されます。
128 以上を使用する必要があります。 コマンドの最大数
履歴リストは指定されていませんが、少なくとも 128 でなければなりません。
履歴ファイルを初期化するときのみ、この変数にアクセスすることを選択できます。
以下に説明 ヒストファイル。 したがって、変更が加えられたかどうかは不明です
履歴サイズ 履歴ファイルが初期化された後が有効になります。
言語 設定されていない、または設定されていない国際化変数のデフォルト値を指定します
ヌル。 (POSIX.1‐2008の基本定義ボリュームを参照してください。 セクション 8.2,
国際化 Variables 国際化の優先順位について
ロケールカテゴリの値を決定するために使用される変数。)
LC_ALL 空でない文字列値に設定されている場合は、他のすべての値を上書きします
国際化変数。
LC_CTYPE テキストデータのバイトシーケンスを解釈するためのロケールを決定します
文字として(たとえば、のマルチバイト文字ではなくシングルバイト
引数と入力ファイル)。
LC_MESSAGES
の形式と内容に影響を与えるために使用する必要があるロケールを決定します
標準エラーに書き込まれる診断メッセージ。
NLSパス の処理のためのメッセージカタログの場所を決定します LC_MESSAGES.
非同期 イベント
デフォルト。
標準出力
時 −l オプションはコマンドをリストするために使用されます。リスト内の各コマンドの形式は次のとおりです。
次のようになる:
"%d\t%s\n", <ライン 数>、 command>
両方の場合 −l と −n オプションが指定されている場合、各コマンドの形式は次のようになります。
"\t%s\n", < command>
もし command> 複数の行で構成されている場合、最初の行の後の行は
次のように表示されます:
"\t%s\n", <継続コマンド>
標準
標準エラーは、診断メッセージにのみ使用されます。
出力 ファイル
なし。
拡張済み DESCRIPTION
なし。
EXIT ステータス
次の終了値が返されます。
0 出品が正常に完了しました。
> 0エラーが発生しました。
それ以外の場合、終了ステータスは、によって実行されたコマンドのステータスになります。 fc.
結果 OF エラー
デフォルト。
この フォロー中 セクション 有益です。
お申込み USAGE
編集者は編集の不可欠な部分としてファイル記述子を使用することがあるため、
ファイル記述子を fc コマンドでは予期しない結果が生じる可能性があります
結果。 たとえば、次の場合 vi は FC編集 エディターのコマンド:
fc −s | 他には?
多くのシステムでは正しく動作しません。
ウィンドウ システムのユーザーは、ウィンドウごとに個別の履歴ファイルを作成したい場合があります。
設定 ヒストファイル 次のように:
HISTFILE=$HOME/.sh_hist$$
例
なし。
理論的根拠
このユーティリティは、 fc KornShell の組み込み。
初期の提案では、 −e オプションとして [−e エディタ [古い= 新製品 ]]、これは
歴史的な慣習。 における歴史的実践 fc いずれかの [−e エディタ] or [−e - [ 古い= 新製品
]] は許容されますが、両方を同時に使用することはできません。 これを明確にするための新しいオプション −s 紹介されました
交換 [−e −]。 これにより競合が解決され、 fc ユーティリティに準拠
構文ガイドライン。
ヒストファイル KornShell の一部の実装ではスーパーユーザーをチェックし、スーパーユーザーを作成しません。
場合を除き、履歴ファイル ヒストファイル が設定されています。 これは主に、作成を避けるために行われます。
シングルユーザー モードでログインすると、ルート ファイル システム内のリンクされていないファイルが削除されます。
ヒストファイル スーパーユーザーが履歴を持つように設定する必要があります。
履歴サイズ 履歴ファイルのサイズを制限するために必要です。 それが規格の趣旨です
開発者は、XNUMX つのシェルが同じ履歴ファイルを共有する場合、コマンドは
一方のシェルに入力された内容は、もう一方のシェルからもアクセス可能になります。 のせいで
ネットワーク上での同期の難しさ、正確な性質
インタラクションは特定されていません。
履歴ファイルの初期化プロセスは、システムの起動に依存する場合があります。
ファイルには、ユーザーの設定を効果的に先取りするコマンドが含まれている可能性があります。
のために持っています ヒストファイル と 履歴サイズ。 たとえば、関数定義コマンドは次のように記録されます。
履歴ファイル。 システム管理者が何らかのシステムに関数定義を含めた場合
前に呼び出される起動ファイル ENV ファイルの場合、履歴ファイルはユーザーの前に初期化されます。
その特性に影響を与える可能性があります。 一部の履歴シェルでは、履歴ファイルは次のとおりです。
直後に初期化されました ENV ファイルが処理されました。 こうした状況のため、
テキストでは、初期化プロセスを実装定義にする必要があります。
を省略することも考慮されました。 fc コマンドライン編集を優先するユーティリティ
機能で sh。 たとえば、 vi 編集モード、入力 」v" は次と同等です。
編集者=vi fc
しかし、 fc このユーティリティを使用すると、ユーザーは複数のコマンドを柔軟に編集できます。
同時に(例えば fc 10 20) でサポートされているエディタ以外のエディタを使用する場合 sh for
コマンドライン編集。
KornShell では、エイリアス r (「やり直し」) は次のようにプリセットされています。 fc −e - (POSIX と同等 fc
−s)。 これはおそらく、コマンド名よりも覚えやすいでしょう。 fc (「修正コマンド」) しかし、
ユーティリティ構文ガイドラインを満たしていません。 名前の変更 fc 〜へ シーッ or やり直し ました
検討されていますが、この説明は歴史的な KornShell の実践と非常に一致しているため、
すでに、そのような名前変更は無償であると見なされていました。 ユーザーはエイリアスを自由に作成できます
歴史上の奇妙な名前が登場するたびに、 fc, awk, cat, grepまたは ヤック によって標準化されています
POSIX。
コマンド番号には順序付けの効果はありません。 それらはシリアル番号のようなものです。 の −r オプション
- 数 オペランドは、シリアル番号に関係なく、コマンド実行のシーケンスをアドレスします。
したがって、たとえば、コマンド番号が任意の時点で 1 に戻った場合、
ラップポイントを通過することに関連した曖昧さはなくなります。 たとえば、
コマンド履歴は次のとおりです。
32766: echo 1
32767: echo 2
1: echo 3
数字 -2 はコマンド 32767 を指します。これは XNUMX つ前のコマンドであるためです。
シリアルナンバー問わず。
未来 道順
なし。
onworks.net サービスを使用してオンラインで fcposix を使用する