Ctrl+C を押すと ^C を削除

Ctrl+C を押すと ^C を削除

^CRed Hat Enterprise Linux 6(「Santiago」)のシェルでCTRL+を押したときに削除する方法はありますか?C私は自分自身を編集する権限があります.bash_profile

答え1

ファイルを編集(または作成)します~/.inputrc。次の行を追加してください。

set echo-control-characters Off

これは、GNU Readlineライブラリ(Bashで使用)に制御文字を画面に出力(エコー)しないように指示します。その後、この設定はすべての新しいBashセッション(およびReadlineライブラリを使用する他のユーティリティ)で有効になります。

参考にしてくださいもしUnixシステムには、Readlineライブラリ用のシステム全体の構成ファイル(通常は/etc/inputrc)が付属しており、個人用構成ファイルには次のファイルを含める必要があります。

$include /etc/inputrc
set echo-control-characters Off

別のオプションは、システム全体の構成ファイルの個人コピーを作成して変更することです。

答え2

以下を試してください。

stty -echoctl

説明については、以下を参照してください。この素晴らしい、詳細な投稿のソースは次のとおりです。スティーブン・チャジェラスこれは他のstty機能のいくつかも説明します。

変更を永久に維持するには(bash質問で提案されているように使用している場合)、コメントに追加することをお勧めします.bashrcギリンガーコメントとして(したがって、すべての対話型シェルで動作します)

答え3

一般的なエコー(含まれている)を許可し、信号生成文字のエコーだけをサイレントにする構成を探していますechoctl

あなたはこのようなことが起こるのを見たでしょう。しかし、これはもはや可能ではありません。今回提出してください:

ec5b1157f8e819c72fc93aa6d2d5117c08cdc961 送信

N_TTYラインルールでINTR / QUIT / SUSPエコーをオンにします(たとえば、stty echoctlが設定され、ctrl-CがINTRに設定されている場合、ctrl-Cは「^ C」と表示されます)。

LinuxはUNIXに似た唯一のオペレーティングシステムであるようです(最近、Solaris、BSD、およびMac OS Xでこれを確認しました)。いいえこれにより、コンソールまたはxtermでプログラムの中断を視覚的に確認できることが本当に懐かしくなります。私は何年も使ってきた多くのUnixでこれを覚えています。これをLinuxにインポートすることも、標準のUNIXと同様の動作とより一貫性を維持する良い方法のようです。

Linuxが何であるか覚えているならいいえ^C以前の動作を復元する唯一の方法は、カーネルにパッチを適用することです。最新バージョンでは、信号生成文字は1215-1218行にエコーされています。ドライバ/tty/n_tty.c

関連情報