問題タブ [stty]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - STTYが削除された可能性がありますか?
ruby/rails/gem と自作をインストールしていてイライラしました。stty フォルダーを削除したと思います。とにかく、私は何ができますか?これまでインターネット上で起こったことはないようです。
stty を実行すると、command not found が返されます...
macos - ターミナルでのmacコマンドキーの表現は何ですか?
コントロールキーがターミナルで「^」で表されるように、コマンドキー(mac)に相当するものは何ですか?
sttyを使用してbashショートカットを再マップしようとしています
例えば
stty eof ^ D
しかし、制御の代わりに、コマンドキーを使用したいと思います。
編集:
さて、私が解決しようとしていた問題は、私がosxとlinuxで作業していて、キーの組み合わせが異なると多くの苦痛を引き起こすため、コマンドキーとコントロールキーを交換したかったということでした。
そこで、osxプリファレンスを使用して修飾キーを交換しました。しかし、Ctrl + Cなどのすべてのbashショートカットは、キーシーケンス「cmd+c」を使用するのと同等になりました。これは受け入れられません。
ありがたいことに、iTerm2は修飾キーの再マッピングもサポートしているので、iterm2についてはそれらを再度逆にしました。つまり、iTerm2はコマンドをコマンドとして認識し、制御を制御として認識します。
だから今のところ問題は解決した。
bash - stty コマンドは bash ドットファイルのどこに置かれますか? .bash_profile?
すべての端末/シェル/tmux でフロー制御、xon-xoff、Control-S Control-Q 機能がオフになっていることを確認しようとしています (これにより、Control-S を他の目的で確実に使用できるようになります)。 X、urxvt、tmux、コンソール、ssh などで動作します。
構成はどのドットファイルに入れる必要がありますか? それは何ですか?私の最善の推測:
私のマシンで見つけた例では .bash_profile を使用していますが、ログインしていないシェルをキャッチしていないようです。一方、.bashrc に stty 呼び出しを配置すると、端末があると想定されます。端末をテストするだけでよいでしょうか (if [ -to ] )、または $PS1 を確認する必要がありますか?
おそらく、「stty」よりも端末を構成するためのより良い方法がありますか? おそらく、すべての bash インスタンスをログイン シェルにする必要がありますか?
stty は、私が避けたい難解な謎の 1 つです。
sigint - オーバーライド「^c」または「ctrl-c」はシェルインタープリターの割り込み信号です
すべてのシェルの信号割り込み文字としてctrl-cをオーバーライドし、別のものに置き換えたいと思います。sttyとxmodmapを調べましたが、現時点で理解できるものは見つかりませんでした。
誰かがいくつかのアイデアを持っているなら、私はそれを大いに感謝します。
linux - stty でシリアルポートを使用しても動作せず、minicom は問題ありません
シリアル ポートに書き込み、bash scrpts (echo、printf、および read) を介して結果を読み取ろうとしています。ワークアウトできる限り stty を正しくセットアップしましたが、文字を読み取ることができません。
ポートをループバックにすると、minicom を使用して文字を送受信できます。わーい :)
しかし、minicom を終了し、いくつかの文字をデバイスにエコーすると、seial ポートが rx led を 1 回フラッシュし、読み取りに文字が表示されません。さらにエコー コマンドを実行しても rx led が点滅しないため、送信できるのは 1 回だけのようです。
何が起こっているのか、どうすれば物事を機能させることができるのか、どんなアイデアでも。
ありがとう、ブレンダン。
perl - Windows で perl を使用してパスワードを読み取る
stty を使用してパスワードを読み取るには、perl スクリプトがあります。Windows では stty を使用できないため、このスクリプトは失敗します。いくつかの検索を行ったところ、ReadKey がこれに代わるものであることがわかりました。ただし、このパッケージはデフォルトで出荷されていません。
stty と ReadKey を使用せずに perl でパスワードを読み取る方法はありますか?
誰かがこの点で私を助けることができれば、それは大きな助けになるでしょう.
ruby - Ruby: read_nonblock(???) が「システム」コマンドを壊す
メソッドには 2 つのバージョンがありますが、両方で同じ問題が発生します。
バージョン 1
バージョン 2
私は両方に同じ問題を抱えています。具体的には、Kernel#system コマンドの動作を変更します。
例として:
システムの動作が変更されたことは簡単にわかります。2 番目のバージョンでは、inout が tty から引き出されていません。
これは、任意のキーを押した場合には発生しないことに注意してください。カーソル キーなどのエスケープ シーケンスに変換されるキーだけです。
では、これはどのように修復されるのでしょうか。
PS
2 番目の場所で system("strace -o logfile irb") を実行し、読み取りステートメントを確認することを誰かが提案しました。代わりに、両方の irbs をたどって比較しました。読み取りステートメントは、最後のものを除いてすべて同じであり、すべてそうでした。最終的な読み取りは異なって見えました:
PPS
Linuxシステムでこれを行っています。
bash - bash の bind から呼び出されたときに、スクリプトが stdin で入力を受け入れないのはなぜですか?
コマンドラインの存在を簡素化するために書いた多くの bash/bind ツールがあり、最近、これらのツールの 1 つをインタラクティブにしたいと考えています。これらのスクリプトのいずれかで stdin から読み取ろうとすると、読み取りの時点で実行がロックされます。ここでの私の例は python ですが、呼び出されたスクリプトが ruby で書かれている場合、まったく同じ動作を見てきました。
したがって、スクリプトは機能します。それを呼び出すと、入力を与えることができ、フィードしたものが出力されます。
bind
期待どおりに動作します。バインドされたキーストロークがコマンドを呼び出します。私はいつもこのようなものを使用していますが、今までは、stdin 読み取りを必要としないスクリプトしか呼び出していませんでした。
[Alt-H] をスクリプトにバインドしましょう:
これで、バインドされたキーストロークによって呼び出されたときにスクリプトが stdin から読み取られるように構成されました。[Alt-H] を押すとスクリプトが開始されますが、何も入力されていません。[Crl-D]を押しても終わらない。抜け出す唯一の方法は、[Crl-C] を押して readline のプロセスを強制終了することです。(sys.stdin.read() も同じ運命をたどります。)
冒頭で述べたように、Ruby でも同じ問題が見られるので、使用している言語とは関係ないことはわかっています。(スクリプトは省略しました。)
バインドに関する Bash リファレンス マニュアルのエントリに目を通しましたが、入力の制限については何も述べていません。何かご意見は?
編集:
プロセスがスタックしている間に /proc/[PID]/fd/0 を cat すると、スクリプトの入力が表示されます。(奇妙なことに、ランダムに見えるかなりの数の文字がここに表示されません。この症状は、数百バイトの入力を行った後にのみ表示されます。)
thisを見つけました。これは、端末がクック モードと生モードを切り替える方法とタイミングの説明です。プロンプトの開始時に呼び出しstty cooked
、その後またはその後に呼び出しを行うと、問題の新しいカスケードがトリガーされます。主にバインドされた文字の処理方法に関連していますが、return が数回ヒットするまで、ほとんどの alt バインディング (およびそれ以上) を破壊すると言えば十分です。stty echo
stty sane
stty raw
bash - ここのドキュメントを端末にエコーしない方法は?
ユーザーにsudoパスワードの入力を求め、ホストのリストを繰り返し処理してリモートホストでコマンドを実行するスクリプトがあります。「-s」を読み取ってパスワードをサイレントに取得できますが、パスワードがリモートホストで使用されるたびに、端末にエコーバックされます。ローカル ホストで stty を変更しても役に立ちません。例:
出力には引き続きパスワードが含まれます。
リモートホストで stty をいじっても役に立ちません:
FWIW、私は主にOSX bash/shに関心があります
c++ - Cでのバッファリングされていない入力中にLinuxでESCを読み取る
プログラムの getch 関数を書きました。iostream
すでに使用している端末が壊れるため、curses を使用できませんでした。コード:
termios.h
システムコールの代わりに使用する方が良いことはわかっています。の場合を除いて、すべて正常に動作しESC
key
ます。たとえば の文字列である矢印をキャプチャしようとしています"\1B[A"
。最初の文字として検出するESC
と、2 番目の 2 文字も読み取って完全なキー コードを取得します。ESC
問題は、コードが 1B だけであるため、押しても発生しないはずです。読み取り中にバッファーが空の場合は、単に停止する必要cin.get()
があります。return EOF
呪いを使わずにESC
キーオンを読む方法はありますか? linux
ソリューションが機能しないのはなぜですか?
ありがとう