Linux/Unix にはシグナルがあります。( CtrlC)SIGINTは私には明らかです。CtrlXさて、他のいくつかのアプリケーションでは、 ?!経由のシグナルがあります。それはシグナルですか、それともエスケープシーケンスを生成しますか? CtrlC( CtrlV、CtrlX...)に似たものとして使用できるものは他にありますか?
誰かが手がかりを持っている場合、私はbashよりもCに精通していますが、両方の言語での回答は大歓迎です!
Linux/Unix にはシグナルがあります。( CtrlC)SIGINTは私には明らかです。CtrlXさて、他のいくつかのアプリケーションでは、 ?!経由のシグナルがあります。それはシグナルですか、それともエスケープシーケンスを生成しますか? CtrlC( CtrlV、CtrlX...)に似たものとして使用できるものは他にありますか?
誰かが手がかりを持っている場合、私はbashよりもCに精通していますが、両方の言語での回答は大歓迎です!
すべての端末制御文字の割り当てを取得するには:
stty -a
誤解がある可能性があります。CtrlC信号を生成しません。どこでも押すことが完全に可能CtrlCであり、悪いことが起こることはありません (たとえば、すべてのテキスト エディターやワープロでは、これが「コピー」のデファクト スタンダードです)。
ただし、シェルでプログラムを実行すると、キーを押すと、実際にはプログラムではなくシェルに入ります。シェルは (ほぼ) すべてをプログラムの stdin に転送し、stdout からのすべてを端末または別のプロセスまたはファイル (パイプまたはリダイレクトを使用した場合) に転送します。
が押されたことをシェルが認識すると、CtrlCシェルは割り込みシグナルを送信します。しかし、それは実際にはシェルが行うことであり、キーの組み合わせによって魔法のように起こることではありません。
についてCtrlX、あなたはおそらく を意味していCtrlZました。fgこれによりプロセスが停止し、シェルは、プロセスを再度実行するために使用できる番号を出力します。
ウィキペディアより
Ctrlx Ctrle: $EDITOR プログラムの現在の行を編集するか、未定義の場合は vi を編集します。
Ctrlx Ctrlr: inputrc ファイルの内容を読み取り、そこにあるバインディングまたは変数割り当てを組み込みます。
Ctrlx Ctrlu: 行ごとに個別に記憶される、増分アンドゥ。
Ctrlx Ctrlv: bash の現在のインスタンスに関するバージョン情報を表示します。
Ctrlx Ctrlx: カーソルを元の位置に変更します。(Cx、x は十字形なので)。
のもう 1 つの使用法は、シェルでコマンドを入力するときCtrlxに を展開することです。*
あなたが持っているとしましょう:
$ ls *
を押すCtrlxと、現在のディレクトリ内のすべてのアイテムが次の*ように展開されます。*
$ ls dir1 dir2 file1 file2 file3`
上記の使用方法については、SuperUser に関するこのトピックも参照できます。
ターミナルは、特定のキー シーケンスに特別な意味を割り当てます。これには、文字の削除、行頭までの削除 ( CtrlU)、...
具体的には、端末ISIGのローカル モードが有効になっている場合:
VINTR(通常) (ユーザーによる中断CtrlC) を生成します。SIGINTVQUIT(通常) (SIGINT と同様ですが、コアのダンプもCtrl\) を生成します。SIGQUITVSUSP(通常は) (ターミナル I/O で停止CtrlZ) を生成します。SIGTSTPVDSUSP(Linux ではなく、一部のシステムでは)SIGTSTPプログラムがそれを読み取ろうとすると、 が生成されます。上記は設定可能です。これについては、termios(3)マンページに記載されています。