web-dev-qa-db-ja.com

ターミナルでCtrl-sを永久に無効にする方法は?

から ここ 無効にすることを理解しています Ctrl+Sstty -ixonコマンドを使用でき、機能しますが、ターミナルを閉じて別のターミナルを開くとすぐに、コマンドを再入力する必要があります。

永久に無効にするには Ctrl+Sstartup.shコマンドを含むstty -ixonを作成し、crontab@rebootで実行しましたが、機能しません。

だから永久に無効にする解決策は何ですか Ctrl+S

32
Cristian

無効にする Ctrl-s ターミナルで永続的にこの行を.bashrcスクリプトの最後に追加するだけです(通常はホームディレクトリにあります)。

stty -ixon

これが存在する理由とそれに関連する理由の説明は、この回答にあります: https://retrocomputing.stackexchange.com/a/7266

45
Dababi

他の人が述べたように、必要な修正はstty -ixon~/.bashrcファイルに追加することです。ただし、非対話型シェルによる実行から保護する必要があります。

if [[ -t 0 && $- = *i* ]]
then
    stty -ixon
fi 

これにより、そもそもTTYまたはインタラクティブセッションがない場合のエラーを回避できるため、デスクトップ環境などの「内部」シェル呼び出しでエラーメッセージが発生することはありません。

1
telcoM

TelcoMのソリューションに加えて、Archのデフォルトの.bashrcには以下があります。

# If not running interactively, don't do anything
[[ $- != *i* ]] && return

bashrcにそのようなチェックがあるかどうかを確認することは価値があるため、追加のifsの必要性を回避します。

0
helloIamaguest