コンソール2 を使用して msysgit のWindowsでBashシェルを起動しています。サーバー(SLESまたはRHLEサーバー)にssh
してls
を実行するか、vi
を使用すると、色が表示されません。ただし、 PuTTY を使用すると、色は正しく機能します。 Console 2、Bash、またはPuTTYで色のカスタマイズを行ったことがなく、サーバーの色(私の知る限り)はまったく変更されていません。
読んだ後 サーバーにSSH接続するとiTerm2は「ls」の色を失います 試してみましたls --color=always
そしてそれはいくつかの色を表示しますが、すべてではありません。実行可能ファイルとフォルダーの色(私の場合はそれぞれ緑と青)が表示されますが、Zipファイル(私の場合は赤である必要があります)は表示されません。繰り返しますが、PuTTYはこれらを正しく表示します。
何十もの異なるサーバーに定期的にアクセスし、他の管理者がそれらのサーバーを使用している方法と相互作用するため、色が必要な場所で一連のコマンドをエイリアスすることは、私にとって実行可能な解決策ではありません。
何か案は?
LS_COLORS環境変数を探していると思います。この記事には素晴らしい記事があります: http://www.bigsoft.co.uk/blog/index.php/2008/04/11/configuring-ls_colors
Console2は「実際の」コンソールエミュレーターですが、PuTTYはパイプを介してアプリケーションを実行します。
つまり、sshが「コンソールウィンドウなし」(パイプ)を検出すると、色の表示にANSIエスケープシーケンスを使用するように切り替わります。しかし、標準のWindowsコンソールはエスケープをサポートしていません。そのため、sshがエスケープを検出すると(それに応じてConsole2も)、ANSIが利用できないと見なし、win32APIの使用に切り替えます。
私はANSIをWindowsコンソールにもたらす2つのツールを知っています [〜#〜] ansicon [〜#〜] と私自身の ConEm ですが、msysはそれらについて知らず、 ANSI機能の検出。
しかし、私はこれについていくつか考えました-パイプターミナル(PTY)で実行されている特定のアプリケーションを欺く方法。