Linux console (Türkçe)

From ArchWiki
Çeviri Durumu: Bu makale, Linux console makalesinin çevirisidir. Son çeviri tarihi (yıl-ay-gün şeklinde): 2024-05-21. Eğer makalenin İngilizce sürümünde değişiklik yapılmış ise çevirinin senkronize edilmesine yardımcı olabilirsiniz. Çevirmenliğe dair bilgi edinmek için Telegram grubumuzu ziyaret edebilirsiniz. Çevrilmiş tüm makelelere buradan erişebilirsiniz.

"Linux Console" İngilizce Vikipedi makalesinden:

Linux konsolu, Linux kernel içerisinde bulunan bir sistem konsoludur. Linux konsolu, çekirdekten ve diğer işlemlerden kullanıcıya yazılı çıktı vermeyi ve kullanıcıdan girdi almayı sağlar. Kullanıcı genellikle girdiyi bir bilgisayar klavyesi ile yapar ve çıktıyı ise bilgisayar monitöründen okur. Linux çekirdeği sanal konsolları desteklemektedir, bu konsollar mantıksal olarak ayrıdır ancak aynı klavyeye ve ekrana bağlıdırlar.

Bu makale Linux konsolunun temellerinden ve yazı tipi gibi bazı ayarların nasıl kişiselleştirilebileceğinden bahsetmektedir. Klavye ayarları Linux console/Keyboard configuration alt sayfasında ele alınmıştır. Daha fazla özellik sunan (tam Unicode yazı tipleri, modern video kartı desteği vb.) diğer konsollar için KMSCON veya diğer benzer projelere göz atın.

Konsolun Uyarlanması

Kullanıcı ile direkt olarak etkileşime geçen diğer servislere kıyasla konsol, çekirdeğin içerisine gömülü hâldedir. Bu durum, Xterm gibi kullanıcı alanında çalışan normal uygulamalar olan uçbirim öykünücülerinden farklılık göstermektedir. Konsol, Linux çekirdeğinin yayınlanan tüm sürümlerinin her zaman bir parçası olmuştur ancak zamanla bazı değişikliklere uğramıştır. Bu değişikliklerden en önemlileri çerçeve belleğinin kullanımı ve Unicode desteğidir.

Yapılan tüm iyileştirmelere rağmen eski donanımlarla uyumlu olması gerekir ve bu sebeple çizgesel uçbirim öykünücülerine kıyasla kısıtlı özelliklere sahiptir. Linux konsolu ve uçbirim öykünücüleri arasındaki ana fark Linux konsolundaki kabukların direkt olarak TTY cihazlarına (/dev/tty*) bağlı olmasıdır. Oysaki çizgesel uçbirim öykünücülerinde kabuklar sözde-TTYlara bağlıdır (/dev/pty*).

Ek olarak çizgesel uçbirim öykünücüleri Linux konsoluna kıyasla birçok farklı özelliğe sahip olabilir. Örneğin kullanılabilir daha fazla yazı tipi, birden fazla sekme/pencere, ikili pencere modu, yukarı kaydırma bellekleri/sliderları (kullanıcının kaydırarak değer seçmesine izin veren bileşen), farklı arkaplan renkleri veya resimleri (tercihen saydamlık) gibi birçok ekstra özelliği barındırabilir. Bu özelliklerin bazıları Tmux veya GNU Screen gibi uçbirim çoklayıcılar ile, veya ncurses gibi kütüphanelerin yardımıyla metin esaslı kullanıcı arayüzüne sahip Vim, nano ve Emacs gibi programlar ile Linux konsolunda da kullanılabilir. Tabii bu programlar Linux konsolunda kullanıldığı gibi çizgesel uçbirim öykünücülerinde de kullanılabilir.

Sanal konsollar

Konsol kullanıcıya bir dizi sanal konsol olarak sunulur. Bunlar aynı anda birkaç bağımsız uçbirimin çalıştığı izlenimini verir; her sanal konsol farklı kullanıcılarla oturum açabilir, kendi kabuğunu çalıştırabilir ve kendi yazı tipi ayarlarına sahip olabilir. Sanal konsolların her biri /dev/ttyX aygıtını kullanır ve Alt+Fx tuşlarına basarak bunlar arasında geçiş yapılabilir (burada x sanal konsol numarasına eşittir ve 1'den başlayacak şekilde tüm rakamları temsil eder). /dev/console aygıtı otomatik olarak etkin sanal konsol ile eşlenir.

Ayrıca chvt(1), openvt(1) ve deallocvt(1) rehberlerine de bakınız.

Yazı modu

Linux, PC donanımı için bir çekirdek olarak başlamıştır. Hâliyle konsol o zamanlar tüm PC'lerin desteklediği standart IBM CGA/EGA/VGA grafikleri kullanılarak geliştirilmiştir. Grafikler, 16 renkli basit bir 80x25 karakter ekran sağlayan VGA metin modunda çalışıyordu. Bu eski mod, DEC VT100 serisi gibi özel metin uçbirimlerinin özellikleri ile benzerlikler barındırır. Sistem donanımı destekliyorsa metin kipinde (vga=0 nomodeset ile) önyükleme yapmak hâlâ mümkündür, ancak neredeyse tüm modern dağıtımlar (Arch Linux dahil) bunun yerine çerçeve belleği konsolunu kullanır.

Çerçeve belleği konsolu

Linux diğer PC dışı mimarilere taşınırken, diğer mimariler VGA uyumlu grafik adaptörleri kullanmadığından ve metin modlarını hiç desteklemeyebileceğinden daha iyi bir çözüm gerekliydi. Çerçeve belleği konsolu tüm platformlarda standart bir konsol sağlamak için uyarlanmıştır. Bu nedenle cihazın sahip olduğu grafik donanımından bağımsız olarak aynı VGA tarzı arayüzü sunar. Bu nedenle, Linux konsolu bir uçbirim öykünücü değil, kendi başına bir uçbirimdir. linux uçbirim tipini kullanır ve VT100 ile büyük ölçüde uyumludur.

Klavye kısayolları

Klavye kısayolları Açıklama
Ctrl+Alt+Del Sistemi yeniden başlatır (/usr/lib/systemd/system/ctrl-alt-del.target sembolik bağlantısında (symlink) belirtildiği üzere)
Alt+F1, F2, F3, ... n'inci sanal konsola geçiş yapar (Xorg ve Wayland'de kullanılan Ctrl+Alt+Fn kısayolu ile karıştırılmamalıdır)
Alt+Left Bir önceki sanal konsola geçiş yapar
Alt+Right Bir sonraki sanal konsola geçiş yapar
Scroll Lock Scroll Lock aktif hâldeyken girdi ve çıktılar kilitlenir.
Ctrl+c Güncel görevi öldürür
Ctrl+d Dosya sonu sinyali gönderir
Ctrl+z Güncel görevi durdurur

Ayrıca console_codes(4) rehberine bakın.

Yazı tipleri

Linux konsolu varsayılan olarak UTF-8 kodlamasını kullanır, ancak standart VGA uyumlu çerçeve belleği kullanıldığından, konsol yazı tipleri standart 256 veya 512 glifle sınırlıdır. Yazı tipi 256'dan fazla glife sahipse, renk sayısı 16'dan 8'e düşürülür. Verilen Unicode değerine görüntülenecek doğru sembolü atamak için, genellikle unimap olarak adlandırılan özel bir çeviri haritasına ihtiyaç duyulur. Geçmişte unimap'in harici olarak yüklenmesi gerekiyordu ancak günümüzde konsol yazı tiplerinin çoğunda unimap gömülü hâlde gelmektedir.

Varsayılan olarak sanal konsol, CP437 karakter seti[1] ile çekirdekte gömülü olan yazı tipini kullanır, ancak bu kolayca değiştirilebilir. Çekirdek 15 adet yazı tipi seçeneği sunar. Bunlarndan iki tanesi resmi olarak desteklenen çekirdekler tarafından sağlanır: VGA 8x16 yazı tipi (CONFIG_FONT_8x16) ve Terminus 16x32 yazı tipi (CONFIG_FONT_TER16x32). Çekirdek, ekran çözünürlüğünü değerlendirir ve yazı tipini buna göre seçer. Başka bir gömülü yazı tipini kullanmak için çekirdek parametrelerine, örneğin fbcon=font:TER16x32 eklenebilir.

kbd paketi, çekirdeğin karar verdiği sanal konsol yazı tipleri ve yazı tipi eşlemelerinin üzerine yazmak için bazı araçlar sunar. Kullanılabilir yazı tipleri /usr/share/kbd/consolefonts/ dizininde sağlanmıştır; .psfu ve .psfu.gz şeklinde bitenler gömülü Unicode çeviri haritasına sahiplerdir.

Tuşeşlemler (basılan klavye tuşu ile bilgisayarda kullanılan karakter arasındaki bağlantı) /usr/share/kbd/keymaps/ dizinin altındaki dizinler içerisindedir. Ayrıntı için Linux console/Keyboard configuration makalesine bakın.

Not: Yazı tipini değiştirmek VGA biçiminde yazı tipi bekleyen, örneğin kutu çizme grafikleri kullanan, programlarda soruna yol açabilir.
İpucu: Latin/Yunan alfabesinde yazılan Avrupa dilleri için eurlatgr kullanılabilir. Pek çok Latin/Yunan harf çeşidinin yanı sıra özel karakterler de içerir [2].

Ön izleme ve geçici değişiklikler

İpucu: Yazı tiplerini önizleyebileceğiniz düzenli bir kütüphane mevcuttur: Linux konsol yazı tipleri ekran görüntüleri
$ showconsolefont

komutu istediğiniz bir yazı tipine ait glifleri ve harfleri tablo şeklinde gösterir.

setfont komutu ve önüne eklediğiniz (/usr/share/kbd/consolefonts/ içerisindeki) yazı tipi ismi ile yazı tipini geçici olarak değiştirebilirsiniz, örneğin:

$ setfont lat2-16 -m 8859-2

Yazı tipi isimleri büyük-küçük harf duyarlılığına sahiptir. setfont komutuna herhangi bir parametre eklemezseniz varsayılan yazı tipini döndürür.

Örneğin yüklü olan 8x8 küçük bir yazı tipini kullanmak için aşağıdaki komutu kullanabilirsiniz:

$ setfont -h8 /usr/share/kbd/consolefonts/drdos8x8.psfu.gz

Daha büyük bir yazı tipi için, Terminus yazı tipi (terminus-font) birçok farklı boyut sunar, örneğin ter-132b oldukça büyüktür.

Ayrıca -d bayrağı ile kullancağınız yazı tipinin büyüklüğünü ikiye katlayabilirsiniz. Aşağıdaki örnekte 64*64 bir yazı tipi kullanılmıştır:

$ setfont -d ter-132n


İpucu:
  • Tüm yazı tipi değiştirme komutları, herhangi bir geri dönüş sağlamasa bile hatalı yazlımadığı sürece başarılı bir şekilde çalıştırılır.
  • Terminus yazı tipi isimleri (ter-*) /usr/share/terminus-font/README belgesinde açıklanmıştır.

Kalıcı değişiklikler

/etc/vconsole.conf içerisindeki FONT değişkeni, açılış sırasında yazı tipini tüm konsollarda ayarlamak için kullanılır. Detaylar için vconsole.conf(5) rehberine bakın.

Č, ž, đ, š veya Ł, ę, ą, ś gibi harfleri görüntüleyebilmek için lat2-16.psfu.gz yazı tipini kullanın:

/etc/vconsole.conf
...
FONT=lat2-16
FONT_MAP=8859-2

Bu, ISO/IEC 8859 karakterlerinin ikinci kısmının 16 boyutunda kullanılacağı anlamına gelir. Yazı tipi boyutunu farklı değerler kullanarak değiştirebilirsiniz (örneğin lat2-08). 8859 spesifikasyonu tarafından belirlenen bölgeler için Wikipedia:ISO/IEC 8859#The parts of ISO/IEC 8859 sayfasına bakın.

mkinitcpio v33'ten bu yana /etc/vconsole.conf içinde belirtilen yazı tipi, initramfs'e yazı tipini ekleyen consolefont kancası (hook) aracılığıyla varsayılan olarak erken kullanıcı alanı sırasında otomatik olarak yüklenir. Daha fazla bilgi için Mkinitcpio#HOOKS bölümüne bakın.

Ayrıca /etc/vconsole.conf dosyasını değiştirdikten sonra systemd-vconsole-setup.service servisini yeniden başlatmanız gerekebilir.

Eğer yazı tipi açılış sırasında değişmiyorsa veya sadece belli bir süreliğine değişiyorsa, yüksek ihtimalle ekran kartı sürücüsü başlatıldığında ve konsol çerçeve belleğine geçiş yapıldığında sıfırlanıyordur. Varsayılan olarak çekirdek kaynak kodunda bulunan sürücüler erkenden başlatılırlar. NVIDIA kullanıcıları, ekran kartı sürücülerini /etc/vconsole.conf'dan önce başlatabilmek için NVIDIA#Early loading makalesine bakmalıdırlar.

İmleç görünümü

Bu konunun dokümantasyonu yetersizdir. Aşağıdaki makaleleri okumanız tavsiye edilir:

İmleç tipleri
Donanım Yazılım
Şekil
(0) varsayılan
(2) alt çizgi uygulanır
(1) görünmez
(2) alt çizgi
(3) blokun alttan üçte biri
(4) blokun alttan yarısı
(5) blokun üçte ikisi
(6) tam blok
(16) tam blok
şekil değiştirilemez, ancak imlecin arka plan ve ön plan renkleri aynı renk olarak ayarlanırsa imleç bilfiil görünmez yapılabilir
Yanıp sönme
yanıp söner
sürücüye bağlı
arka plan renginin en yüksek biti "parlak" veya "yanıp sönen" olarak yorumlanabilir
Renk
konsol yazı rengi ile aynı renktedir (genellikle beyaz/gri)
bağımsız bir şekilde ayarlanamaz
kullanıcı tarafından ayarlanabilir

Konsol imleci Device Attributes (DA) kontrol işlevi ile ayarlanabilir. Parametreler dizisine tek tırnak işareti ile başlanması gerekir (console_codes(4) tam aksini söylese de).

Aşağıdaki örnekte tam blok halinde, yeşil, altında siyah semboller barındıran ve yanıp sönmeyen bir imleç verilmiştir:

$ printf "\x1b\x5b?16;$((8+4+2+1));$((32+0+8+4+2+1))\x63"

Yukarıdakinin aynısı, onaltılık kodlar (hex codes) yerine sekizli (sekizli sayı sistemindeki ile aynı "sekizli") ve karakterler ile de ifade edilebilir:

$ printf '\033[?16;15;47c'
Not: ECMA-48 — Control Functions for Coded Character Sets, kontrol işlevlerine (kaçış dizgeleri) dair kapsamlı bir rehberdir.

Bu değişiklikler çekirdek parametreleri ile kalıcı yapılandırmalar olarak uygulanabilir:

vt.cur_default=0x2f0f10
Not: (16, 15, 47) kaçış dizgesi parametreleri, onaltılıkta (10, 0f, 2f) tersten sıralanarak yazılır.

İmleç boyutu

İlk parametre, 16 (çekirdek parametresinde en sağdaki iki hex hanesi, yani 10'dur) koduna sahip olup ismi cursor size yani imleç boyutu olmasına rağmen "yazılımsal imleci kullan" anlamına gelir.

Not: 16 yerine 48 (32+16), 80 (64+16) veya 112 (64+32+16) kullanmanız gerekebilir.

Eğer donanımsal imleç şeklini değiştirmek istiyorsanız karşılık gelen sayıları kullanın (0'dan 6'ya kadar, yukarıdaki tabloya göz atın).

Not: İmleç boyutu, donanımsal imlece uygulanabilecek tek parametredir.

Bit kontrol karakterini değiştirmek

İkincisi ise tam Türkçe karşılığı olmayan ancak bit kontrol karakterini değiştirmek şeklinde çevirebileceğimiz toggle mask parametresidir. Bu parametre bir rengin ilgili bitlerini çevirmeye yarar.

Karakter niteliği bitleri
Arka plan

(imleç bloku)

Ön plan

(imlecin altındaki sembol)

Parlak (vurgu)

veya yanıp sönen

Kırmızı Yeşil Mavi Parlak (vurgu)

veya yanıp sönen

Kırmızı Yeşil Mavi
Ondalıklar 128 64 32 16 8 4 2 1
Onaltılıklar 80 40 20 10 8 4 2 1

Örneğimizde ikinci parametre 15'tir (çekirdek parametresindeki orta hex değeri, yani 0f'dir), yani tüm dört ön plan (sembol) biti çevrilir. Burada en önemli kural: bit çevirme işlemi (ikinci parametre), bit ayarlamadan (üçüncü parametre) sonra yapılır.

Not: Eğer bir bit üçüncü parametre ile ayarlanmış ise ve ikinci parametre ile çevrilmiş ise bilfiil temizlenmiş olur.

Bit kontrol karakterini ayarlama

Üçüncü parametre, tam Türkçe karşılığı olmayan ancak bit kontrol karakterini ayarlamak şeklinde çevirebileceğimiz set mask parametresidir. Bu parametre ilgili karakter niteliği bitlerini ayarlamaya yarar. Örneğimizde 47 (çekirdek parametresinde en soldaki iki hex hanesi, yani 2f'dir) kullanılır, bu şu anlamlara gelir:

  • (32) imleç bloğu için saf yeşil rengini kullan
  • (8+4+2+1) tüm dört ön plan (sembol rengi) bitini ayarla. Bu bitler ikinci parametre ile çevrilecektir, böylece imlecin altındaki sembolün rengi siyah olacaktır (0000).

HiDPI

HiDPI#Linux console (tty) makalesine bakın.

Konsoldan gelen sesler

PC speaker#Beep makalesine bakın.

Ayrıca bakınız