タグ付けされた質問 「escape-characters」

端末コマンドやファンクションキーのエンコーディングなどのエスケープシーケンス

2
Vimはコピーアンドペースト攻撃の影響を受けませんか?
あなた必要がありますウェブから自分の端末に貼り付けることはありません。代わりに、テキストエディターに貼り付け、コマンドを確認してからターミナルに貼り付けてください。 大丈夫ですが、Vimが私のテキストエディタである場合はどうでしょうか。Vimをコマンドモードに切り替えて悪意のあるコマンドを実行するコンテンツを偽造できますか?

2
Ctrl-D(EOF)がシェルを終了するのはなぜですか?
このエスケープシーケンスを入力することにより、文字通り「ファイルを終了する」のですか、つまり、対話型のシェルセッションは、他のファイルストリームのように、シェルによって実際のファイルストリームとして表示されますか?ある場合、どのファイルですか? または、Ctrl+ Dシグナルは単なるプレースホルダーであり、「ユーザーは入力の提供を終了し、終了してもよい」という意味ですか?

12
スクリプト出力から制御文字(コンソールコード/色を含む)を削除する
「スクリプト」コマンドを使用して、コマンドラインで対話型セッションを記録できます。ただし、これにはすべての制御文字とカラーコードが含まれます。「col -b」で制御文字(バックスペースなど)を削除できますが、カラーコードを削除する簡単な方法が見つかりません。 コマンドラインは通常の方法で使用するため、そこで色を無効にしないでください。スクリプト出力から色を削除するだけです。また、私は遊んで、物事を修正するための正規表現を見つけることができることを知っていますが、よりシンプルな(そしてより信頼性の高い-正規表現を開発するときにわからないコードがある場合はどうすればよいですか?) 問題を表示するには: spl62 tmp:スクリプト スクリプトが開始されました、ファイルはtypescriptです spl62 lepl:ls add-licence.sed build-example.sh commit-test push-docs.sh add-licence.sh build.sh delete-licence.sed setup.py asn build-test.sh delete-licence.sh src build-doc.sh clean doc-src test.ini spl62 lepl:終了 スクリプトが完了しました、ファイルはtypescriptです spl62 tmp:cat -v typescript スクリプトは木曜日に開始2011年6月9日09:47:27 AM CLT spl62 lepl:ls ^ M ^ [[0m ^ [[00madd-licence.sed ^ [[0m ^ [[00; 32mbuild-example.sh ^ [[0m …

5
シェルで引用符をエスケープする方法は?
bashで文字をエスケープするのに問題があります。別のユーザーでコマンドを実行しているときに、一重引用符と二重引用符をエスケープしたいと思います。この質問の目的のために、画面に以下をエコーし​​たいとしましょう。 'single quote phrase' "double quote phrase" 別のユーザーに切り替える必要がある場合、すべての特殊文字をエスケープするにはどうすればよいですか: sudo su USER -c "echo \"'single quote phrase' \"double quote phrase\"\"" もちろん、これは正しい結果を生み出しません。


4
bashでショートカットを再マップするターミナルキーコードのリストはどこにありますか?
例えば: "\e[1;5C" "\e[Z" "\e-1\C-i" 私\eはエスケープとC-forの略のように、ほんの少ししか知りませんCtrlが、これらの数字(1)と文字(Z)は何ですか?;、[および-サインとは何ですか? 試行錯誤だけですか、それともbashキーコードの完全なリストとその構文の説明がありますか?

2
別のプロセスにパイプすると、ANSIエスケープコードはどこに移動しますか?保管してもいいですか?
プロセス用に色分けされた出力をパイプしたい場合があります。grep ...しかし、私がそれを別のプロセスにパイプするとき、例えば。sed、カラーコードは失われます... コードをそのまま保持する方法はありますか? 色付きの出力が失われる例を次に示します。 echo barney | grep barney | sed -n 1,$\ p

7
コンソールのログイン画面で上矢印を押したときに^ [[Aが表示される理由はありますか?
コンソールにログインしているときはいつもup、以前に入力したコマンドを見るために意図的に矢印を押します。しかし、私はこれを見る^[[A。 しかし、Ctrl Alt Print Screen Scroll Lock Pause Break Page Up Page Down Winキーを押しても文字がエコーされません。 背後にある理由は何でしょうか? DOESの^[[A文字のソートは何を意味しますか?

5
端末にuser @ machineを太字で表示するにはどうすればよいですか?
私は、端末が[username@machine /]$太字で表示できることをいくつかのスクリーンショットで見ました(Webのどこにあるか覚えていません)。私はいつも長い出力をスクロールして、コマンドの後の最初の行を見つけるのが難しいので、これも楽しみにしています。 ユーザー名などを太字または色付きにするにはどうすればよいですか?

2
端末でエスケープシーケンス攻撃を回避する方法
読み込みCVE-2009-4487の詳細を(ログファイル内のエスケープシーケンスの危険性についてである)私は少し驚いています。 CVE-2009-4487を引用するには: nginx 0.7.64は、印刷できない文字をサニタイズせずにログファイルにデータを書き込みます。これにより、リモート攻撃者は、ターミナルエミュレータのエスケープシーケンスを含むHTTPリクエストを介して、ウィンドウのタイトルを変更したり、任意のコマンドを実行したり、ファイルを上書きしたりできます。 明らかに、これは実際にはnginxのセキュリティホールではなく、ターミナルエミュレータにあります。 確かに、おそらくcat端末へのログファイルgrepの書き込みは偶然だけで起こりますが、ログファイルの書き込みは非常に一般的です。lessおそらくエスケープシーケンスをサニタイズしますが、どのシェルコマンドがエスケープシーケンスを変更しないかを知っている人は... 私はワニスの反応に同意する傾向があります: 一般に、端末応答エスケープの知恵は定期的に疑問視されていますが、主要な端末エミュレーションプログラムはいずれも、おそらく使用されていない1970年代の技術との互換性の見当違いの試みで、これらのシーケンスを破棄するのにふさわしいものではありませんでした。[..]ログファイルを書き込むすべてのプログラムを非難するのではなく、セキュリティの観点から、端末エミュレーションプログラムに愚かなことをやめさせ、この問題やその他のセキュリティ問題を一度修正する方がはるかに生産的です。そしてすべてのために。 したがって、私の質問: コマンドを実行したり、エスケープシーケンスを介してファイルを上書きしたりすることができなくなるように、xtermをセキュリティで保護するにはどうすればよいですか? Xのどのターミナルエミュレーターがこの攻撃から保護されていますか?

3
ランダムなコンソール出力が端末を壊さないようにする方法は?
で壊れた端末から回復する方法を示す多くの質問がSEにありますcat /dev/urandom。この問題に慣れていない人のために-ここでそれが何であるかについて: 実行cat /dev/urandomまたは同等(たとえばcat binary_file.dat)。 ごみが印刷されます。 コマンドが終了した後でも端末がゴミを出力し続けることを除いて、それは大丈夫でしょう!これは、実際にはg ++出力である誤ってレンダリングされたテキストのスクリーンショットです。 私は、C ++エラーが時々不可解すぎることについて人々は正しかったと思います! 通常の解決策はを実行stty sane && resetすることですが、これが発生するたびに実行するのは面倒です。 そのため、この質問で私が注目したいのは、これが起こる元の理由と、そのようなコマンドが発行された後に端末が壊れないようにする方法です。問題のあるコマンドをtrやにパイプするなどのソリューションを探しているわけではありません。xxdこれには、実際に実行/印刷する前にプログラム/ファイルがバイナリを出力し、そのようなデータを出力するたびに記憶する必要があることを知る必要があるためです。 URxvt、PuTTY、Linuxフレームバッファーで同じ動作に気づいたので、これは端末固有の問題ではないと思います。私の主な疑いは、ランダムな出力に文字エンコーディングを反転するANSIエスケープコードが含まれていることです(実際、cat /dev/urandomもう一度実行すると、端末が壊れない可能性があり、これがこの理論を裏付けているようです)。これが正しい場合、このエスケープコードは何ですか?それを無効にする標準的な方法はありますか?

4
検索パターンを斜体にするのではなく、強調表示を少なくする
私の理解ではless、男はポケットベルとして使用し、lessそれを使用してキーワードを検索するとき、斜体でキーワードを「強調」します。これは本当に不便だと思うので、これをset hlsearch、見つかったパターンの背景が異なるvimのようなものに変更したいと思います。 実行しようとしましたman -P vim systemdが、エラーステータス1で終了しましたless。 man lessその助けで私が見つけることができたものは何もありませんでした(代わりに、オプション-Gが一緒に強調表示をオフにすることがわかりましたが、イタリックよりもさらに悪いです)。 そうは言っても、manページで検索の強調表示(背景色の変更)を実現する方法を知っている人はいますか? 参考までにUbuntu 14.10を実行しています 私はこの質問に出くわしたのと同じことについて尋ねているようですが、この動作をどのように行っているかわかりません(LESS_TERMCAP_so)。lessmanページには、このことを言及していません。(このソリューションでは奇妙な結果が得られます)

3
異なるシェルで「echo -e」を使用したエスケープシーケンス
Linuxのシェルに-eは、echoコマンドのフラグが存在しないように思えます。これはめちゃくちゃな設定ですか、それとも「通常」ですか? 例としてのコード: #!/bin/sh echo -e "\e[3;12r\e[3H" プリント: -e \e[3;12r\e[3H これは以前に機能しました!いくつかのsttyコマンドがひどく間違っていて、今はもう機能しないと思います。誰かが私shが実際にちょうどであると提案しましたbash。

8
ファイル内でバイトシーケンスが発生する回数をカウントするにはどうすればよいですか?
私が持っているファイル内で特定のバイトシーケンスが何回発生するかをカウントします。たとえば\0xdeadbeef、実行可能ファイル内でその数が何回発生するかを知りたいです。今、私はgrepを使用してそれをやっています: #/usr/bin/fish grep -c \Xef\Xbe\Xad\Xde my_executable_file (私のCPUはリトルエンディアンであるため、バイトは逆の順序で書き込まれます) ただし、アプローチには2つの問題があります。 これらの\Xnnエスケープシーケンスは、魚の殻でのみ機能します。 grepは実際に、マジックナンバーを含む行の数をカウントしています。パターンが同じ行で2回発生する場合、1回だけカウントされます。 これらの問題を修正する方法はありますか?この1つのライナーをBashシェルで実行し、ファイル内でパターンが発生する回数を正確にカウントするにはどうすればよいですか?

2
\ eと^ [の違い
ジルは書いた: 文字27 = 033 = 0x1b = ^[=\e デミゼイは書いた: ^ [はESCAPEの単なる表現であり、\ eは実際のESCAPE文字として解釈されます 次に、TechRepublicの記事からこの行を見つけました キーシーケンスを^ [[24〜ではなく\ e [24〜として記述してください。これは、^ [シーケンスがシェルの\ eで表される[Esc]キーと同等であるためです。したがって、たとえば、キーシーケンスが^ [[OPの場合、使用するバインドコードは\ e [OPになります。 しかし、私は\ eの代わりに^ [を使用するマッピングを使用しています。 それで、それらは交換可能ですか?いつ他方を使用する必要がありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.