You are currently viewing ls-komennon värit

ls-komennon värit

Terminaali pitää sisällään monta ihmeellistä asiaa. Suurin osa on ajalta ennen graafisia käyttöliittymiä, jolloin nopea visuaalinen informaatio piti antaa jollakin tavalla. Kun mitään muuta ei ollut, niin käytettiin värejä. Nyt vuosikymmeniä myöhemmin kopypeistausperusteinen virtuaaliserverin omistaja ihmettelee SSH:lla shelliin kirjauduttuaan miksi terminaali esittää ls komennolla sinisiä hakemistoja ja tiedostoja valkoisella, punaisella ja sinisellä (tai sinnepäin, en mitä erota syaania sinisestä).

Bash (ja kaikki muutkin) antavat säätää värejä, mutta niille on omat oletusmerkityksenä. Ne mihin useimmin törmää (tai minä törmään) ovat

  • tumman sininen (violetti?) hakemistoille
  • vihreä suoritettaville tiedoistoille
  • vaalean sininen (syaani?) symbolisille linkeille
  • punainen rikkinäisille symbolisille linkeille

Tällä yksinkertaisella koodilla saat selväkielisenä näkyviin käytössä olevat värit. Tee tiedosto haluamallasi nimellä vaikka hakemistoon /usr/bin ja kopioi koodi siihen. Tee siitä suoritettava komennolla chmod u+x

 

#!/bin/bash
# For LS_COLORS, print type and description in the relevant color.
# chmod u+x
IFS=:
for ls_color in $LS_COLORS; do
color="${ls_color#*=}"
type="${ls_color%=*}"
# Add descriptions for named types.
case "$type" in
bd) desc="block device" ;;
ca) desc="file with capability" ;;
cd) desc="character device" ;;
di) desc="directory" ;;
do) desc="door" ;;
ex) desc="executable file" ;;
fi) desc="regular file" ;;
ln) desc="symbolic link" ;;
mh) desc="multi-hardlink" ;;
mi) desc="missing file" ;;
no) desc="normal non-filename text" ;;
or) desc="orphan symlink" ;;
ow) desc="other-writable directory" ;;
pi) desc="named pipe, AKA FIFO" ;;
rs) desc="reset to no color" ;;
sg) desc="set-group-ID" ;;
so) desc="socket" ;;
st) desc="sticky directory" ;;
su) desc="set-user-ID" ;;
tw) desc="sticky and other-writable directory" ;;
*) desc="" ;;
esac
# Separate each color with a newline.
if [[ $color_prev ]] && [[ $color != $color_prev ]]; then
echo
fi
printf "\e[%sm%s%s\e[m " "$color" "$type" "${desc:+ ($desc)}"
# For next loop
color_prev="$color"
done
echo
view raw colortest hosted with ❤ by GitHub

Lopputulos on jotain tämän kaltaista:

Jakke Lehtonen

Teen B2B-markkinoille sisällöntuottoa sekä UX-testauksia. Samaan liittyy myös koulutukset yrityksille ja webmaailman kanssa muutoin painiville. Serverien sielunelämää on joutunut ohessa opettelmaan. Toinen puoli toiminnasta on koirien ravitsemuksen ja ruokinnan suunnittelua sekä varsinkin omistajien kouluttamista hoitamaan koiriaan oikein ja vielä paremmin. Profiili: Jakke Lehtonen

Keskustele foorumilla Katiskan foorumi