ls --color

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
HansD
Beiträge: 234
Registriert: 29.04.2013 15:47:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

ls --color

Beitrag von HansD » 11.06.2017 18:13:58

Was ist der Grund, wenn der folgende Alias, den ich in der "/etc/profile" definiert habe, keine farbige Dateiliste produziert?

Code: Alles auswählen

alias lsc='ls --color -l'
Oder

Code: Alles auswählen

alias lsc='ls --color -l | more'
(Ich habe gesehen, dass es in der .bashrc eine andere Vorgehensweise gibt, farbige Ausgaben an der Kommandozeile zu aktivieren; ich möchte aber nicht wissen, wie viele anderen Wege es noch nach Rom gibt; sondern warum das obige Kommando nicht tut, was ich laut Manual erwarte. Ich bin fast überhaupt nicht an farbigen Prompts interessiert, sondern daran Linux sehr gut zu verstehen.)

DeletedUserReAsG

Re: ls --color

Beitrag von DeletedUserReAsG » 11.06.2017 18:23:10

Bei der Verwendung von more werden die Steuerzeichen für Farben wieder rausgefiltert. Die ~/.profile wird nur beim Login (oder bei su -) gelesen – mal aus- und wieder eingeloggt?

Benutzeravatar
whisper
Beiträge: 3190
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: ls --color

Beitrag von whisper » 11.06.2017 18:26:21

man hat geschrieben:Die Verwendung von Farben zur Unterscheidung von Dateitypen ist sowohl
in der Voreinstellung als auch bei --color=never ausgeschaltet. Mit
--color=auto gibt ls nur dann Farbcodes aus, wenn die Standardausgabe
mit einem Terminal verbunden ist. Die Umgebungsvariable LS_COLORS kann
diese Einstellungen ändern. Benutzen Sie den Befehl dircolors, um sie
festzulegen.
evtl. Pfuscht dir die Umgebungsvariable dazwischen, oder eine andere Einstellung

Benutzeravatar
whisper
Beiträge: 3190
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: ls --color

Beitrag von whisper » 11.06.2017 21:17:33

Das die Leute immer noch more benutzen... Mein Liebling ist less
@niemand, das hatte ich gar nicht bemerkt, wieder einmal nicht richtig zu Ende gelesen :roll:

wanne
Moderator
Beiträge: 7463
Registriert: 24.05.2010 12:39:42

Re: ls --color

Beitrag von wanne » 11.06.2017 22:24:27

Du willst dasda versuchen:

Code: Alles auswählen

lsc='ls --color=always -l'
Manual scheint schlicht falsch zu sein.
Default ist tty nicht force wie im Manual behauptet.
rot: Moderator wanne spricht, default: User wanne spricht.

wanne
Moderator
Beiträge: 7463
Registriert: 24.05.2010 12:39:42

Re: ls --color

Beitrag von wanne » 11.06.2017 23:28:19

Sorry, jetzt nochmal ausprobiert. Jetzt verhält es sich so wie es soll. Glaube habe mich vorher irgend wie vertippt.
jetzt reicht --color dass es tut.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: ls --color

Beitrag von ThorstenS » 12.06.2017 17:31:08

Bei mir funktioniert es mit less in der Art:

Code: Alles auswählen

alias lsc='ls --color=always -l| less'
oder

Code: Alles auswählen

alias lsc='ls --color=always -l| less -r'
Meinem less habe ich gesagt, dass es immer -r nutzen soll:
(lesskey aktiviert das Ganze)

Code: Alles auswählen

echo -e "#env\nLESS = -Ssr" > ~/.lesskey
lesskey
Ein -r bewirkt, dass die ANSII Escape Codes als Farben interpretiert werden. git diff wird dann plötzlich bunt. :THX:

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: ls --color

Beitrag von scientific » 12.06.2017 17:32:36

Coole Sache! Danke
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: ls --color

Beitrag von tobo » 12.06.2017 18:00:40

ThorstenS hat geschrieben:Ein -r bewirkt, dass die ANSII Escape Codes als Farben interpretiert werden.
Geht's einem nur um die Farben, dann vielleicht besser -R!?

Und was die ursprüngliche Frage angeht, vermute ich die Ursache entweder in TERM oder aber in LS_COLORS. More kann Farben darstellen und an der /etc/profile kann es auch nicht liegen, da das Problem dann nicht die fehlende Farbe, sondern das undefinierte lsc wäre. Bleiben eigentlich nur noch die Umgebiungsvariablen und der Terminalaufruf übrig. Und möglicherweise Antworten darauf, ob das aktuelle Terminal denn ein ls --color farbig darstellt und wie die Ausgabe von alias aussieht.

DeletedUserReAsG

Re: ls --color

Beitrag von DeletedUserReAsG » 12.06.2017 19:08:59

More kann Farben darstellen
Könntest du da näher drauf eingehen? Mein normales ls ist farbig, ein ls | more nicht – wäre schon praktisch, das auch farbig zu haben.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: ls --color

Beitrag von tobo » 12.06.2017 19:59:07

niemand hat geschrieben:
More kann Farben darstellen
Könntest du da näher drauf eingehen? Mein normales ls ist farbig, ein ls | more nicht – wäre schon praktisch, das auch farbig zu haben.
Ich habe an more nur die Tab-Breite geändert, sonst nichts. Aber auch das heirloom-more reicht bei mir die Farben durch, solange die nicht gerade vom heirloom-ls kommen (heirloom-lc funktioniert wieder). Ist more vielleicht in der Anzahl der darstellbaren Farben beschränkt?!
Funktioniert das bei dir auch nicht?

Code: Alles auswählen

printf '\e[1;31mHALLO\e[0m\n' | more

DeletedUserReAsG

Re: ls --color

Beitrag von DeletedUserReAsG » 12.06.2017 20:02:07

Doch, das Beispiel funktioniert. Nur halt die vorhandenen Farben der ls-Ausgabe verschwinden rückstandslos.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: ls --color

Beitrag von tobo » 12.06.2017 20:10:18

Dann probiere mal spaßeshalber auf einer virtuellen Konsole, ob da ein ls --color | more funktioniert. Da gibt's nur 16 Farben...

DeletedUserReAsG

Re: ls --color

Beitrag von DeletedUserReAsG » 12.06.2017 20:44:17

Meinst tty[0-9]? Dort auch keine Farben.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: ls --color

Beitrag von tobo » 12.06.2017 21:50:04

Ja meinte ich.
Ich sehe jetzt nichts und komme auch auf Anhieb nicht drauf, was ich da gemacht habe!? Ich schaue morgen nochmal in Ruhe, sofern sich bis dahin niemand meldet, dessen more ebenfalls farbig anzeigt...

Benutzeravatar
Meillo
Moderator
Beiträge: 8817
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: ls --color

Beitrag von Meillo » 12.06.2017 22:16:37

tobo hat geschrieben:[...] sofern sich bis dahin niemand meldet, dessen more ebenfalls farbig anzeigt...
Bei mir ist ``ls --color |more'' farbig. (... oder meintest du mit ``niemand'' tatsaechlich ``niemand''? ;-) )
Use ed once in a while!

DeletedUserReAsG

Re: ls --color

Beitrag von DeletedUserReAsG » 12.06.2017 22:19:25

Das normale more aus util-linux? Könntest du mal schauen, wie deine TERM gesetzt ist?

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: ls --color

Beitrag von tobo » 12.06.2017 22:25:58

Meillo hat geschrieben:Bei mir ist ``ls --color |more'' farbig. (... oder meintest du mit ``niemand'' tatsaechlich ``niemand''? ;-) )
Nein, ich meinte niemand, nicht "niemand". Danke!

Mein $TERM:
X11: TERM=xterm
VT: TERM=linux

Benutzeravatar
Meillo
Moderator
Beiträge: 8817
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: ls --color

Beitrag von Meillo » 12.06.2017 22:54:43

niemand hat geschrieben:Das normale more aus util-linux? Könntest du mal schauen, wie deine TERM gesetzt ist?

Code: Alles auswählen

$ more -V
more (util-linux 2.20.1)

$ echo $TERM
screen
(In urxvt mit mksh und tmux, sowohl unter Crux Linux als auch unter Debian oldstable.)
Use ed once in a while!

HansD
Beiträge: 234
Registriert: 29.04.2013 15:47:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Re: ls --color

Beitrag von HansD » 13.06.2017 20:18:22

whisper hat geschrieben:Das die Leute immer noch more benutzen... Mein Liebling ist less
@niemand, das hatte ich gar nicht bemerkt, wieder einmal nicht richtig zu Ende gelesen :roll:
Ich benutze so gut wie nie more. :-) Das Beispiel stammt aus einem Script über Linux, ich habe den Befehl nur brav buchstäblich ausprobiert, obwohl ich auch gleich gedacht habe "Wieso more?"
Zuletzt geändert von HansD am 15.06.2017 04:24:18, insgesamt 2-mal geändert.

HansD
Beiträge: 234
Registriert: 29.04.2013 15:47:29
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Re: ls --color

Beitrag von HansD » 13.06.2017 20:25:12

ThorstenS hat geschrieben:Bei mir funktioniert es mit less in der Art:
[...]

Code: Alles auswählen

alias lsc='ls --color=always -l| less -r'
[...]
Ein -r bewirkt, dass die ANSII Escape Codes als Farben interpretiert werden. git diff wird dann plötzlich bunt. :THX:
Erstaunlich. :-) Wieder was gelernt.

Ich war bis vor Kurzem aus Erfahrung der Ansicht, dass less, more und dergleichen, jede Farbkodierung immer rausfiltern. Aber more tat dies, als ich den im Ausgangsbeitrag wiederholten Befehl "ls -l --color | more" eingegeben hatte, nicht, sondern zeigte die Liste mit den farblichen Kodierungen, die ls erzeugt hat.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: ls --color

Beitrag von tobo » 13.06.2017 22:55:53

@niemand: Laut meiner manpage entspricht --color ohne Parameter --color=always. In more kommen die Farben an bei --color bzw. explizit bei --color={always,yes,force}. Die Farben kommen in more nicht an bei --color={auto,never,no,none,tty,if-tty}. Was du natürlich auch noch schauen könntest, ob die Farben überhaupt durchgereicht werden; so in etwa mit ls --color=yes | od -c | head. Ansonsten fällt mir da jetzt auch nichts ein...

DeletedUserReAsG

Re: ls --color

Beitrag von DeletedUserReAsG » 14.06.2017 05:53:17

In der Tat, bei --color=yes zeigt auch more noch die Farben an. Danke.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: ls --color

Beitrag von tobo » 14.06.2017 12:54:46

niemand hat geschrieben:In der Tat, bei --color=yes zeigt auch more noch die Farben an.
Aha. Heißt das aber jetzt, dass --color=always bei dir, zusammen mit more, nicht funktioniert oder dass --color nicht den default =always hat?

DeletedUserReAsG

Re: ls --color

Beitrag von DeletedUserReAsG » 14.06.2017 18:10:47

Standard ist bei mir --color=auto.

Antworten