如何關閉特定指令的顏色?

如何關閉特定指令的顏色?

是否可以關閉特定命令(如 )的顏色ls,但不使用命令本身的 api?是否有一種 env 變數之類的東西可以關閉像 do 這樣的命令的著色COLOR=off ls?任何解決方案都將受到高度讚賞。

編輯:我想要一個適用於所有命令的通用解決方案。喜歡COLOR=off command_name

答案1

如果您願意允許對格式進行一些更改,您也可以直接透過管道傳遞cat

 ls | cat

沒有顏色,但每個條目都有換行符。


編輯:

透過 shell 設定關閉顏色

檢查 shell 的 rc 文件並查看顏色設定的位置,然後.<shell>rc_mono在刪除這些設定的位置建立新文件,取得它並完成。例如對於 bash:

$cat ~/.bashrc_mono
export TERM=xterm-mono
. ~/.bashrc
alias ls='ls --color=none'
alias grep='grep --color=none'

請注意,必須位於和. ~/.bashrc的新別名之前,因為它們的顏色通常在 中設定。所以你需要做的就是lsgrep~/.bashrc

. ~/bashrc_mono ; ls 

因此,“重做顏色”-rc 可能會很好:

$cat ~/.bashrc_recolorize
export TERM=xterm-256color
. ~/.bashrc

使用eg htop,你會看到差異。

答案2

一種選擇是將TERM變數設定為不支援顏色的終端類型。

例子:

TERM=dumb ls
TERM=dumb command_name
echo foo | TERM=dumb grep --color o

告訴程式使用啞終端也可能產生其他(不需要的)效果,這取決於您執行的命令,例如vi可能不再識別遊標鍵。

正如建議的費利克斯JN你也可以嘗試TERM=xterm-mono,但在我的測試系統(Windows 上的 Git bash)上,與TERM=dumb.

相關內容