ls Komutunda Dizinlerin ve Dosyaların Renkleri Nasıl Değiştirilir

Yayınlanan: 2022-01-29

Bash'de ls komutunu çalıştırdıysanız, gördüğünüz dizin ve dosyaların türlerine göre renklendirildiğini fark edeceksiniz. Farklı metin renkleri, arka plan renkleri ve kalın ve altı çizili gibi biçimlendirmeler seçmek için kendi renk düzeninizi özelleştirebilirsiniz.

Bu Nasıl Çalışır?

Renk şeması LS_COLORS değişkeninde saklanır. Mevcut renk düzeninizi görüntülemek için Bash'e değişkenin içeriğini yazdırmasını söyleyebilirsiniz:

 yankı $LS_COLORS

Dosya türleri ve numara kodlarından oluşan uzun bir liste göreceksiniz. Bunun gibi bir listenin nasıl oluşturulacağını kendi başınıza açıklayacağız.

Bununla uğraşmadan önce, LS_COLORS değişkeninin mevcut içeriğini başka bir değişkene kaydetmenizi öneririz. Bu, kabuktan çıkış yapmadan ve tekrar oturum açmadan veya terminal penceresini kapatıp yeniden açmadan varsayılan ayarları hızlı bir şekilde geri yüklemenizi sağlar. LS_COLORS değişkeninin mevcut içeriğini ORIGINAL adlı yeni bir değişkene kaydetmek için şunu çalıştırın:

 ORİJİNAL=$LS_COLORS 

İstediğiniz zaman değişikliklerinizi geri almak ve varsayılan renkleri geri yüklemek için aşağıdaki komutu çalıştırabilirsiniz:

 LS_COLORS=$ORİJİNAL
Reklamcılık

Değişiklikleriniz, bir dosyayı yeni varsayılanlarınız yapmak için düzenleyene kadar her zaman geçicidir. Renkleri varsayılan ayarlarına geri yüklemek için her zaman çıkış yapabilir ve tekrar giriş yapabilir veya bir terminal penceresini kapatıp yeniden açabilirsiniz. Ancak bu, tek bir hızlı komutla bunu yapmayı kolaylaştırır.

Özel Renkler Nasıl Ayarlanır

LS_COLORS değişkeni, ilişkili renk kodlarıyla birlikte dosya türlerinin bir listesini içerir. Varsayılan liste uzundur çünkü bir dizi farklı dosya türü için farklı renkler belirtir.

Bunun nasıl çalıştığını göstermek için temel bir örnekle başlayalım. Diyelim ki dizinlerin rengini varsayılan koyu maviden koyu kırmızıya değiştirmek istiyoruz. Bunun için aşağıdaki komutu çalıştırabiliriz:

 LS_COLORS="di=1;31"

di=1;31 biti, ls dizinine ( di ) dizinlerinin ( = ) kalın ( 1; ) kırmızı ( 31 ) olduğunu söyler.

Ancak bu, dizinleri tek renk olarak tanımlayan ve diğer tüm dosya türlerini varsayılan renk olarak bırakan çok basit bir LS_COLORS değişkenidir. .desktop dosya uzantısına sahip dosyaları da altı çizili camgöbeği rengi yapmak istediğimizi varsayalım. Bunun için aşağıdaki komutu çalıştırabiliriz:

 LS_COLORS="di=1:31:*.desktop=4;36"
Reklamcılık

Bu, ls dizinlerin ( di ) ( = ) kalın ( 1; ) kırmızı ( 31 ) olduğunu ve ( : ) .desktop ( *.desktop ) ile biten herhangi bir dosyanın ( = ) altı çizili ( 4; ) camgöbeği ( 36 ) olduğunu söyler.

Bu, dosya türleri ve renk listenizi bir araya getirme işlemidir. Her birini iki nokta üst üste (:) karakteriyle ayırarak filetype=color biçiminde istediğiniz kadar belirtin.

İLGİLİ: Bash İsteminizi Nasıl Özelleştirirsiniz (ve Renklendirirsiniz)

Kendi listenizi oluşturmak için renk kodlarının ve dosya türü kodlarının listesini bilmeniz yeterlidir. Bu, Bash komut isteminde rengi değiştirirken kullandığınız sayısal renk kodlarının aynısını kullanır.

Ön plan metni için renk kodlarının listesi:

  • Siyah: 30
  • mavi: 34
  • Camgöbeği: 36
  • Yeşil: 32
  • Mor: 35
  • Kırmızı: 31
  • Beyaz: 37
  • Sarı: 33

Örneğin, sarı metin 33 renk kodu olduğundan, dizinleri sarı yapmak için di=33 kullanırsınız.

Metin rengi özniteliklerinin listesi:

  • Normal Metin: 0
  • Kalın veya Açık Metin: 1 (Terminal öykünücüsüne bağlıdır.)
  • Soluk Metin: 2
  • Altı çizili metin: 4
  • Yanıp Sönen Metin: 5 (Bu, çoğu terminal öykünücüsünde çalışmaz.)
  • Ters Metin: 7 (Bu, ön plan ve arka plan renklerini tersine çevirir, böylece mevcut metin siyah bir arka plan üzerinde beyaz metinse, beyaz bir arka plan üzerinde siyah metin görürsünüz.)
  • Gizli Metin: 8

Bir öznitelik veya birden fazla renk kodu belirtirken, kod listesini noktalı virgül (;) karakteriyle ayırın. Burada bir öznitelik belirtmediğinizde normal metin kullanıldığı için normal metin için 0 belirtmeniz gerekmez.

Örneğin, kalın metin renk kodu 1 ve sarı metin renk kodu 33 olduğundan, dizinleri koyu sarı yapmak için di=1;33 kullanırsınız. Ayrıca birden fazla öznitelik belirtebilirsiniz. Örneğin, dizinleri kalın, altı çizili sarı yapmak için di=1;4;33 kullanabilirsiniz.

İşte arka plan renk kodlarının listesi:

  • Siyah arka plan: 40
  • Mavi fon: 44
  • Camgöbeği arka plan: 46
  • Yeşil fon: 42
  • Mor zemin: 45
  • Kırmızı zemin: 41
  • Beyaz arka plan: 47
  • Sarı arka plan: 43

Örneğin, mavi bir arka plan renk kodu 44 olduğundan, dizinler için mavi bir arka plan kullanmak için di=44 kullanırsınız. Ayrıca arka plan renk kodunu, ön plan renk kodunu ve istediğiniz kadar özniteliği birleştirebilirsiniz. Örneğin, di=1;4;33;44 size mavi bir arka plan üzerinde kalın, altı çizili sarı metin verir.

İşte dosya türü kodlarının listesi:

  • dizin: di
  • dosya: fi
  • Sembolik Bağlantı: ln
  • Adlandırılmış Boru (FIFO): pi
  • Soket: yani
  • Blok Aygıtı: bd
  • Karakter Aygıtı: cd
  • Orphan Symbolic Link (artık var olmayan bir dosyaya işaret eder): veya
  • Eksik Dosya (yetim sembolik bağlantının işaret ettiği eksik bir dosya): mi
  • Yürütülebilir Dosya (“x” iznine sahiptir): eski
  • *.extension: Belirttiğiniz bir uzantıyla biten herhangi bir dosya. Örneğin, .txt ile biten dosyalar için *.txt, .mp3 ile biten dosyalar için *.mp3, .desktop ile biten dosyalar için *.desktop veya istediğiniz herhangi bir şeyi kullanın. İstediğiniz kadar farklı dosya uzantısı belirtebilirsiniz.
Reklamcılık

: karakteriyle ayırarak, istediğiniz kadar farklı renge sahip çok sayıda farklı türde dosya türü kodu belirtin. LS_COLORS değişkeninizi birleştirmek için bu işlemi tekrarlayın.

Örneğin, dizinler için koyu mor metin, yürütülebilir dosyalar için altı çizili kırmızı metin ve .mp3 dosyaları için kırmızı bir arka plan üzerinde koyu yeşil metin kullanmak istediğinizi varsayalım. Yukarıdaki listelerden dosya türü kodlarını ve renk kodlarını bir araya getirerek şunları elde edersiniz:

 LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41" 

Yeni Varsayılan Renklerinizi Nasıl Ayarlayabilirsiniz?

Artık mevcut Bash oturumunda çalışan özel bir LS_COLORS değişkeniniz var. Ancak, muhtemelen bunu kalıcı hale getirmek istersiniz, böylece yeni bir Bash oturumu başlattığınızda, bunu hatırlamanıza gerek kalmadan otomatik olarak kullanılır.

Özel LS_COLORS değişkeninizi ve istediğiniz diğer Bash değişkenlerini kullanıcı hesabınızın .bashrc dosyasına ekleyerek ayarlayabilirsiniz. Bu dosya ~/.bashrc konumunda bulunur. Yani kullanıcı adınız bob ise /home/bob/.bashrc adresinde bulabilirsiniz. Ortam değişkenlerini ayarlamanın başka yolları da vardır, ancak bu basit bir tanesidir.

İlk önce, bu dosyayı tercih ettiğiniz metin düzenleyicide açın. Burada nano'yu örnek olarak kullanacağız, ancak vi, emacs veya istediğiniz herhangi bir şeyi kullanabilirsiniz.

 nano ~/.bashrc 

Özel LS_COLORS değişkeninizi dosyanın sonundaki yeni bir satıra şu şekilde ekleyin:

 LS_COLORS="di=1;35:ex=4;31:*.mp3=1;32;41"
Reklamcılık

Dosyayı kaydet ve çık. Nano'da Ctrl+O'ya basın ve ardından kaydetmek için Enter'a basın, ardından çıkmak için Ctrl+X'e basın.

Yeni bir Bash oturumu başlattığınızda, Bash .bashrc dosyasını okuyacak ve LS_COLORS değişkeninizi otomatik olarak ayarlayacaktır. Gelecekte renklerinizi değiştirmek için .bashrc dosyanıza geri dönün ve LS_COLORS satırını düzenleyin.

Varsayılan renkleri tekrar kullanmak için .bashrc dosyanıza eklediğiniz LS_COLORS= satırını da silebilirsiniz. LS_COLORS değerini ayarlamazsanız, Bash varsayılan renkleri kullanır.