(Gentoo) LinuxのPowerShellでデフォルトで一般的に使用されるユーティリティの色を有効にする方法は?

(Gentoo) LinuxのPowerShellでデフォルトで一般的に使用されるユーティリティの色を有効にする方法は?

現在Gentoo Linuxを実行しており、PowerShellがインストールされています(アプリケーションシェル/pwsh-bin)私は反対者だからです。

ところで、特定のコマンドを実行すると、デフォルトでは色が得られません。または、ls実行grep中または通常のシェル(bashなど)でデフォルトでカラー出力が表示されます。 PowerShellの実行または実行時に色を取得するには、これら2つのコマンドを使用するか手動で呼び出す必要があります。つまり、このコマンドはPowerShellでデフォルトで色を持ちます(Energyは機能しませんが、これは別の問題です)。lsgreplsgrepls --colorgrep --coloremerge

これらのコマンドに色があるかどうかを確認するにはどうすればよいですか?たぶんPowerShellはデフォルトユーティリティを使用しませんが、ls独自のコマンドのエイリアスを定義できます。しかし、この情報を使用して問題を解決する方法がわかりません。

編集:提供された答えは実際に私の問題を解決しません。今私が走るときは色がありますが、ls走るときは色がありませんgrep。また、提供された設定ファイルで、次のような多くのエラーが発生しました。

Set-Alias: /home/jj/.config/powershell/Microsoft.PowerShell_profile.ps1:2 Line | 2 | set-alias cd set-location | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | The AllScope option cannot be removed from the alias 'cd'.

答え1

lsPowerShell は、grep他のシェルで使用するのと同じバイナリを使用します。私のBunsenラボベリリウム(Deb 11)では、/usr/bin/ls/usr/bin/grep。色付けはのエイリアスを使用して定義されます.bashrc

alias grep='grep --color=auto'
alias ls='ls --color=auto'

などで定義されたエイリアスは.bashrcPSセッションに渡されません。ただし、PSには$profile文書があります(参照マイクロソフト)「環境をカスタマイズし、セッション固有の要素を追加する」。構成ファイルを見つけるには、$profileシェルに入力します。私のシステムではデフォルト値ですが、~/.config/powershell/Microsoft.PowerShell_profile.ps1インストール後にファイルは存在しません。 MS リンクには、作成方法のガイドラインが含まれていますが、従っていません。先ほどディレクトリを作成してファイルを作成しました。

このトピックを調査した後の最も簡単な方法は次のとおりです。エイリアシングのコマンドは$profile定義された機能と組み合わせられます。私はこれを私のものとして使うようになりました$profile

if ($host.Name -eq 'ConsoleHost')
{
    function ls_col { & '/usr/bin/ls' --color=always $args }
    Set-Alias -name ls -Value ls_col -Option AllScope
    function grep_col { & '/usr/bin/grep' --color=always $args }
    Set-Alias -name grep -Value grep_col -Option Allscope
}

...私のBashセッションと同じ色lsです。grep

Allscope - オプションの説明ここ

注 - これは徹底的かつ徹底的な方法ではなく、迅速で汚れたテストです。このリンクは、これをさらに促進するのに役立ちます。もっとよく知っている方が修正してもらえますね :-)

関連情報