Komut satırında Noel ağacı

Yeni yıl geliyor, artık ciddi işler düşünmek istemiyorum.

Herkes tatil için bir şeyler dekore etmeye çalışıyor: ev, ofis, iş yeri... Haydi biz de bir şeyler dekore edelim! Örneğin, bir komut satırı istemi. Bir dereceye kadar komut satırı aynı zamanda bir çalışma alanıdır.

Bazı dağıtımlarda zaten "dekore edilmiştir":

Komut satırında Noel ağacı

Diğerlerinde gri ve göze çarpmaz:

Komut satırında Noel ağacı

Ve örneğin şöyle yapabiliriz:

Komut satırında Noel ağacı

Elbette tüm markerlerin farklı tatları ve renkleri vardır. Böyle bir renklendirme size yapışkan ve uygunsuz geliyorsa, bu bakış açısının her türlü yaşam hakkına sahip olduğunu bilin. Siz de biraz Yeni Yıl ruhu katmak istiyorsanız Cloud4Y'den kısa bir Yeni Yıl makalesi için okumaya devam edin.

Öncelikle terminal çıkışının nasıl “renkli” olduğunu açıklayacağım. Bu, kaçış dizileri kullanılarak yapılır. Daha doğrusu ANSI/VT100 terminalinin kontrol kodu dizileri. Bu otomatik olarak terminal emülatörünüzün bu standardı desteklemesi gerektiği anlamına gelir, aksi takdirde Yeni Yıl mucizesi gerçekleşmeyecektir. Ve evet, $SHELL'in sizin bash'ınız olduğu varsayılıyor.

Bu komutlara kaçış dizileri denir çünkü her birinin başında bir ASCII karakteri olan “escape” bulunur. Pek çok kontrol dizisi vardır ve bunlar örneğin terminal ayarlarını görüntülemeye, imlecin görüntüsünü ve hareketini kontrol etmeye, yazı tipini değiştirmeye, metni silmeye ve gizlemeye olanak tanır. Tüm olasılıklardan birini seçeceğiz - metnin ve arka planın rengini değiştireceğiz.

Kod sırasını yürütün *ESC*[{attr1};...;{attrn}m
Bir sembol olarak Kaçış sekizli formu kullanılır, yani 33. Niteliklere gelince, burada olası değerlerin kısa bir listesi verilmiştir:

0 Tüm özellikleri sıfırla
1 Parlak (arttırılmış parlaklık)
2 Loş
4 Vurgulamak
5 Göz kırpmak
7 Tersi
8 Gizli (metni gizle)

Ön Plan Renkleri (kalem rengi, metin bu renkte görüntülenir):
30 Siyah
31 Kırmızı
32 Yeşil
33 Sarı
34 Mavi
35 Macenta (macenta)
36 Camgöbeği (mavi)
37 Beyaz (белый)

Arka Plan Renkleri (kağıt rengi veya arka plan rengi):
40 Siyah
41 Kırmızı
42 Yeşil
43 Sarı
44 Mavi
45 Macenta (macenta)
46 Camgöbeği (mavi)
47 Beyaz (белый)

Şimdi terminalde komut verirseniz: echo 33[0;31mнекоторый текст 33[0m’

...o zaman çıktıda tahmin edilebileceği gibi monokrom gobbledygook elde edeceksiniz:

Komut satırında Noel ağacı

Neden? Çünkü echo komutunun gelişmiş yeteneklerini kullanmak gerekiyordu. Bir anahtar eklemek yeterlidir: echo -e ‘ 33[0;31mнекоторый текст 33[0m’

Çıktı artık doğru görünecek:

Komut satırında Noel ağacı

Terminale giden çıkışın renklendirilmesini çözdük. Şimdi komut isteminin nasıl renklendirileceğini görelim.

Bu, PS1 değişkenini değiştirerek yapılır. Değişken, komut satırı isteminden sorumludur. Kaçış dizilerinin kullanılması da dahil olmak üzere görünümü de değiştirilebilir. Ancak küçük bir fark var: Sıraya “ sembolüyle başlamanız gerekiyor.[”ve“ sembolüyle bitirin]”, aksi halde terminale gönderilecektir.

Olası tüm komut dizileri bash kılavuzunda ayrıntılı olarak açıklanmıştır, bu nedenle okuyucuları komut satırı isteminde neyi görmeyi tercih edeceklerini kendileri seçmeye davet ediyorum. Örnek olarak PS1 değişkeni için değerimi vereceğim:

[ 33[34;1m]t[ 33[0m],[ 33[32m]u@l@h[ 33[0m]:[ 33[33m]W[ 33[0m],[ 33
[31m]![ 33[0m]$n

Bu korkunç büyüyü çözeceğim:

[ 33[34;1 dk] — parlak mavi (ikinci özellik) yazı tipi rengini aç
t – geçerli saati SS: DD: SS formatında görüntüleyin
[ 33[0m] – yazı tipi rengi ayarlarını sıfırla
, - sadece bir virgül (beklenmedik, değil mi?)
[ 33[32m] — yeşil yazı tipi rengini aç
u@l@h – “@” sembolüyle ayrılmış olarak kullanıcı adını, terminal cihaz numarasını ve kısa ana bilgisayar adını görüntüler
[ 33[0m] — yazı tipi rengi ayarlarını tekrar sıfırlayın
: - sadece iki nokta üst üste (aniden!)
[ 33[33m] — sarı yazı tipi rengini aç
W – geçerli dizinin adını görüntüle
[ 33[0m] — yazı tipi rengi ayarlarını tekrar sıfırlayın
, - başka bir virgül (kim düşünebilirdi!)
[ 33[31m] — kırmızı yazı tipi rengini aç
! - komut numarasını terminalde görüntüleyin
[ 33[0m] - yazı tipi rengi ayarlarını sıfırlamayı unutmayın
$ — root için “#” ve diğer herkes için “$” yazdırın
n - satır çevirisi. Ne için? Böylece komut, komut satırı isteminin sonunda değil, pencerenin sol kenarında başlar.

Bir değişken nerede yeniden tanımlanır? Bunu yapmanın en mantıklı yeri ~/.bashrc'dir.

Davetiyenin görünümü yalnızca sizin hayal gücünüzle sınırlıdır. Prensip olarak hiçbir şey yukarıda açıklanan araçları kullanarak Noel ağacı şeklinde bir komut satırı istemi oluşturmanızı engellemez. Doğru, böyle bir davet çok hantal olacak ve iş kesinlikle daha kolay olmayacak. Noel ağacı, oturum açarken komut satırı isteminin üzerinde görüntülenebilir (yine de ~/.bashrc'yi düzenlememiz gerekir). Göreyim seni! İlginiz için teşekkürler.

Komut satırında Noel ağacı

Blogda başka neler okuyabilirsiniz? Bulut4Y

GNU/Linux'ta top kurulumu
Siber güvenliğin ön saflarında yer alan pentester'lar
Sürpriz yapabilecek girişimler
Bir veri merkezinde yastığa ihtiyaç var mı?
Bir robotun yaptığı ev

Abone olun Telegram-kanal böylece bir sonraki makaleyi kaçırmazsınız! Haftada en fazla iki kez ve yalnızca iş hakkında yazıyoruz. Ayrıca kurumsal bulut sağlayıcısı Cloud4Y'nin “Normal fiyata FZ-152 Bulut” kampanyasını başlattığını da hatırlatırız. Basvurabilirsin 31 Aralık'a kadar.

Kaynak: habr.com

Yorum ekle