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

文字通りの意味を超える意味、メタ意味がある場合、それを特殊文字と呼びます。

11
`^ M`とは何ですか?どうすれば削除できますか?
でファイルを開くと、vim奇妙な^M文字が表示されます。 残念ながら、世界で人気のある検索エンジンは、クエリ内の特殊文字ではうまく機能しないため、ここで質問しています: この^Mキャラクターは何ですか? どうしてそこに着いたのでしょうか? どうすればそれを取り除くことができますか?

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

7
bashで感嘆符(!)を使用できませんか?
curlコマンドを使用!して、パスに感嘆符()が付いたhttp URLにアクセスしようとしています。例えば: curl -v "http://example.org/!287s87asdjh2/somepath/someresource" コンソールはで応答しbash: ... event not foundます。 ここで何が起こっていますか?感嘆符をエスケープするための適切な構文は何でしょうか?

7
任意のファイルをcatすることはどれくらい安全ですか?
時にはとき、私cat誤ってバイナリファイルには、私の端末がアップ文字化け。すぐにreset修正できないものはありませんが、攻撃者は理論的には、端末に表示されたときに任意のコードを実行するファイルを作成できませんでしたか?ターミナルエミュレーターまたはその他の脆弱性を利用します。

16
ファイル名に非印刷文字が含まれているファイルを削除するにはどうすればよいですか
どういうわけか、ファイル名がないように見えるファイルを作成することができました。次のスレッドでファイルの詳細を取得する方法に関する情報を見つけました。 しかし、リストされている提案のいくつかを試してみたところ、ファイルを削除できないようです。私はそれを作成するために何をしたのか分かりませんが、xmlファイルをコピーしようとしたときに起こりました。 ファイルに関するいくつかの情報は次のとおりです。 > ls -lb total 296 -rw-r--r-- 1 voyager endeavor 137627 Jan 12 12:49 \177 > file * : XML document > ls -i 417777 私はinumスイッチを使って見つけてそれをrmにパイプしようとしましたが、それはそれを取り除く最も確実な方法のように見えました。ただし、下にリンクされているスレッドの下部にある例は失敗しました。例は: > find -inum 41777 -exec ls -al {} \; find: illegal option -- i find: [-H | -L] path-list predicate-list だから私は次のように最初にパスリストを使用しようとしましたが、それも機能しませんでした: > …

10
特別な最初の文字を含むファイル名の処理(例:♫)
最近、名前が文字「character」で始まるファイルに出会いました。このファイルをコピーしてに送りffmpeg、ターミナルで他のさまざまな方法で参照したかったのです。私は通常、奇妙なファイル名をオートコンプリートしますが、最初の文字を入力することさえできないため、これは失敗します。 コピーアンドペースト操作を実行するためにマウスに切り替えたくありません。考えられるシナリオのために、大量のコードを記憶したくありません。私のアドホックな解決策は、問題のキャラクターに切り替えvim、貼り付け!ls、コピーしてから、終了してターミナルに貼り付けることでした。これは機能しましたが、非常に恐ろしいです。 そのようなシナリオに対処する簡単な方法はありますか? 注:物事を変更する場合、私は魚の殻を使用しています。

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


3
Unixファイル名のエンコードについて
ファイル名のエンコードがどのように機能するかを理解するのに苦労しています。unix.SEには矛盾する説明があります。 ファイル名は文字として保存されます 別の答えを引用するには: Linuxでのファイルシステムの文字エンコーディングに関するいくつかの質問 […]質問で述べたように、UNIXファイル名は単なる文字列です。カーネルはエンコードについて何も知りません。これは完全にユーザー空間(つまり、アプリケーションレベル)の概念です。 ファイル名が文字として保存される場合、最終的にファイル名がディスク上のビットまたはバイトシーケンスとして終了する必要があるため、何らかの種類のエンコーディングが必要になります。ユーザーが選択できる場合は任意のカーネルに供給されたバイト配列に文字をマップするためのエンコーディングを、作成することが可能である任意の有効なファイル名のバイトシーケンスを。 次のことを想定します。ユーザーがランダムエンコーディングXを使用して、ファイルfooをバイトシーケンスαに変換し、ディスクに保存します。別のユーザーはエンコーディングYを使用します。このエンコーディングでは、αはに変換されますが/、これはファイル名として許可されていません。ただし、最初のユーザーの場合、ファイルは有効です。 このシナリオは起こらないと思います。 ファイル名はバイナリBLOBとして保存されます 別の答えを引用するには: Linuxでファイル名とパスに使用される文字セットエンコーディングは何ですか? 他の人が述べたように、これに対する答えは実際にはありません。ファイル名とパスにはエンコードがありません。OSはバイトシーケンスのみを処理します。個々のアプリケーションは、何らかの方法でエンコードされていると解釈することを選択できますが、これは異なります。 システムが文字を処理しない場合、特定の文字(/またはNULL)をファイル名でどのように禁止できますか?/ エンコーディングなしの概念はありません。 説明は、ファイルシステムは任意の 文字を含むファイル名を格納でき、無効な文字を含むファイル名で停止するのはエンコードを考慮するユーザープログラムのみであるということです。これは、ファイルシステムとカーネルが/。を含むファイル名を問題なく処理できることを意味します。 また、これは間違っていると思います。 エンコードはどこで行われ、特定の文字を許可しないという制限はどこにありますか?

10
デフォルトの英語キーボードレイアウトを使用して、X11で度数記号を入力するにはどうすればよいですか?
外気温を度単位でメールで送信しようとしています。私のMacでは、度数記号(°)はOption+ Shift+ 8です。しかし、Ubuntu 10.10のデフォルトの英語(米国)キーボードレイアウトのThunderbirdでメールを書いています。X11で度数記号を取得するには、どのキーの組み合わせを使用しますか? 編集:ゲルトは問題に答えました...しかし、彼の答えにあるものよりも簡単にキーストロークを使用するためのボーナスポイント!


2
CTRL + 4(およびCTRL + \)はbashで何をしますか?
私はちょうどことを偶然見つけたCTRL+ 4 読ん閉じプログラムstdinのコマンドラインからの入力を。 これは、 読み取りプログラムにCTRL+ 4またはCTRL+ を入力したときの外観です/stdin $ cat wefwef wefwef ^\Quit $ bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. ^\Quit $ 私が手^\Quitに表示して、プログラムが終了します。^Cまたはを使用した場合と比較した場合の違いは何^Dですか?何を^\Quitするの? 編集:CTRL+ \がまったく同じことをすることがわかりました。

5
特定のグリフの共通名を見つけるにはどうすればよいですか?
時々、グリフの名前を知りたいです。たとえば、表示された場合−、それがハイフン-、エンダッシュ–、エムダッシュ—、またはマイナス記号かどうかを知りたい場合があります−。これをコピーして端末に貼り付けて、それが何であるかを確認する方法はありますか? 私のシステムがこれらのグリフの共通名を知っているかどうかはわかりませんが、のようないくつかの(部分的な)情報は確かに利用可能です/usr/share/X11/locale/en_US.UTF-8/Compose。例えば、 <Multi_key> <exclam> <question> : "‽" U203D # INTERROBANG 別のグリフの例:🐄。

2
Grep:manページから見出しの単語を検索すると予期しない結果
macOSでmanページをgrepしようとすると、奇妙な動作になります。たとえば、Bashのマニュアルページには次の文字列が明確に記載されていますNAME。 $ man bash | head -5 | tail -1 NAME そして、私がgrepしnameた場合、結果が得られますが、私がgrepした場合、結果は得られNAMEません: $ man bash | grep 'NAME' $ man bash | grep NAME 私はそこにあることがわかっている他の大文字の単語を試しましたが、SHELLyields を検索すると何も得られませんが、BASHyieldsを検索すると結果が得られます。 何が起きてる? 更新:すべての回答をありがとう!これに遭遇したコンテキストを追加する価値があると思いました。ラップするbash関数を作成したかったのでman、シェルビルトインのマニュアルページを検索しようとした場合は、Bashのマニュアルページの関連セクションにジャンプしてください。より良い方法があるかもしれませんが、ここに私が現在持っているものがあります: man () { case "$(type -t "$1")" in builtin) local pattern="^ *$1" if bashdoc_match "$pattern \+[-[]"; then command man bash | less …

1
曲折/キャレット文字がCtrlの記号として使用されるのはなぜですか?
私はずっと前にLinuxコンソールを使い始めましたが、キャレット文字(キャレット文字^)について曲がり角に疑問を抱くことはありませんでした()。単語の代わりに使われている理由を尋ねたいと思いCtrlます。 先日、nanoを使用しているときに考えました。また、インターネット上でいくつかの答えがあるかどうかも検索しましたが、見つけたのは「それが何であるか」と「それが表すもの」に関する質問だけでした。 歴史的な理由はありますか?それとも奇妙な慣習から来ているのでしょうか?

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