Ist es möglich, die Farben für einen bestimmten Befehl wie auszuschalten ls
, ohne die API des Befehls selbst zu verwenden? Gibt es eine Art Umgebungsvariable, mit der die Farbgebung für einen Befehl wie deaktiviert werden kann COLOR=off ls
? Für jede Lösung wäre ich sehr dankbar.
Bearbeiten: Ich möchte eine allgemeine Lösung, die auf alle Befehle anwendbar ist. wieCOLOR=off command_name
Antwort1
Wenn Sie bereit sind, einige Änderungen in der Formatierung zuzulassen, können Sie diese auch einfach weiterleiten.cat
ls | cat
Keine Farben, aber eine neue Zeile für jeden Eintrag.
Bearbeiten:
Farben über die Shell-Einstellungen ausschalten
Überprüfen Sie die RC-Datei(en) Ihrer Shell und sehen Sie nach, wo die Farben eingestellt sind. Erstellen Sie dann eine neue, .<shell>rc_mono
in der diese Einstellungen entfernt sind, geben Sie die Quelle ein und fertig. Beispiel für Bash:
$cat ~/.bashrc_mono
export TERM=xterm-mono
. ~/.bashrc
alias ls='ls --color=none'
alias grep='grep --color=none'
Beachten Sie, dass . ~/.bashrc
den neuen Aliasnamen ls
und vorangestellt werden müssen grep
, da ihre Farbgebung normalerweise in festgelegt ist ~/.bashrc
. Sie müssen also nur
. ~/bashrc_mono ; ls
Dementsprechend wäre ein „Redo Colors“-RC ganz nett:
$cat ~/.bashrc_recolorize
export TERM=xterm-256color
. ~/.bashrc
Verwenden Sie zB htop
und Sie werden den Unterschied sehen.
Antwort2
Eine Möglichkeit wäre, die TERM
Variable auf einen Terminaltyp festzulegen, der keine Farben unterstützt.
Beispiele:
TERM=dumb ls
TERM=dumb command_name
echo foo | TERM=dumb grep --color o
Wenn Sie den Programmen sagen, dass sie ein einfaches Terminal verwenden sollen, kann dies je nach ausgeführtem Befehl auch andere (unerwünschte) Auswirkungen haben. Beispielsweise vi
kann es sein, dass die Cursortasten nicht mehr erkannt werden.
Wie vorgeschlagen vonFelixJNSie können auch versuchen TERM=xterm-mono
, aber auf meinem Testsystem (Git Bash unter Windows) unterdrückt dies die Farben im Gegensatz zu nicht TERM=dumb
.