BlockChain Node Kurulumu Yapanların İşine Çok Yarayacak Temel Linux Eğitimi
Blockchain Node Kurulumunda Linux'un Önemi
Node kurulumu sürecinde, Linux işletim sistemi sıklıkla tercih edilir. Güvenlik, esneklik ve stabilite gibi özellikleriyle öne çıkan Linux, blockchain node'larını desteklemek için ideal bir ortam sunar. Ancak, Linux ile çalışabilmek için temel komut satırı bilgisi gerekmektedir. Bu yazıda, blockchain node kurulumu için gerekli olan sudo
, apt-get
, curl
, wget
, nano/vi
, mkdir
, cd
, ls
, chmod
,vs. gibi temel Linux komutlarını ve bu komutların nasıl kullanılacağını ele alacağım.
Blockchain dünyasında etkin bir katılımcı olmak istiyorsanız, bu temel Linux komutlarını öğrenmek ve uygulamak, yolculuğunuzun ilk adımı olacaktır. Şimdi, bu alanda kendinizi geliştirmek için gerekli Linux komutlarına daha yakından bakalım.
Linux Dosya Sistemi: Temel Dizinler ve İşlevleri
Linux işletim sistemi, dosyaları ve dizinleri organize etmek için hiyerarşik bir yapı kullanır. Bu yapı, dosya sistemi içindeki her şeyin bir yerde düzenli bir şekilde saklanmasını sağlar. İşte Linux'taki bazı temel dizinler ve bu dizinlerin işlevleri:/
: Kök Dizini
- Tüm dosya ve dizinlerin başlangıç noktasıdır. Sistem üzerindeki her şey bu dizin altında yer alır.
/bin
: Temel Komut Dosyaları
- Esas kullanıcı komutlarını içerir (örn:
ls
,cp
,mv
). Bu komutlar, sistemin başlangıç aşamasında ve tek kullanıcı modunda gereklidir.
/boot
: Önyükleme Dosyaları
- Sistemin başlangıcında (boot) kullanılan dosyalar ve Linux çekirdeği (kernel) burada saklanır.
/dev
: Aygıt Dosyaları
- Linux'ta her şey bir dosya olarak ele alınır, bu kapsamda donanım bile.
/dev
, çeşitli donanım aygıtları (örn: disk sürücüleri, USB cihazları) için özel dosyaları içerir.
/etc
: Yapılandırma Dosyaları
- Sistem genelindeki yapılandırma dosyaları burada bulunur. Bu dosyalar, sistem ayarları ve başlangıç script'leri gibi çok çeşitli konfigürasyonları içerir.
/home
: Kullanıcı Dizinleri
- Sistem kullanıcılarının kişisel dosyaları için ayrılan dizindir. Genellikle her kullanıcının kendi adıyla bir alt dizini vardır.
/lib
: Sistem Kütüphaneleri ve Modülleri
- Sistem çalıştırılabilir dosyaları tarafından kullanılan paylaşılan kütüphane dosyalarını ve çekirdek modüllerini içerir.
/media
ve /mnt
: Çıkarılabilir Ortamlar
/media
genellikle çıkarılabilir ortamlar için kullanılır (USB sürücüler, CD-ROM'lar)./mnt
ise geçici olarak bağlanan dosya sistemleri için kullanılır.
/opt
: İsteğe Bağlı Uygulamalar
- Üçüncü parti yazılımların ve bazı büyük paketlerin yüklendiği dizindir.
/proc
: Sistem ve İşlem Bilgileri
- Çalışan işlemler ve sistem bilgileri hakkında bilgi içerir. Bu dizin, gerçek bir dosya sistemi değil, bir sanal dosya sistemi olarak işlev görür.
/sbin
: Sistem Yönetimi İçin Özel Komutlar
- Sistem yönetimi ve bakımı için kullanılan komutları içerir (örn:
fdisk
,ifconfig
,shutdown
).
/tmp
: Geçici Dosyalar
- Uygulamaların geçici dosyaları için kullanılan dizindir. İçeriği genellikle yeniden başlatma işlemlerinde silinir.
/usr
: Kullanıcı Programları ve Verileri
- Kullanıcı uygulamaları, kütüphaneleri, belgeleri ve sistemin büyük bir bölümünü içerir. Alt dizinleri (
/usr/bin
,/usr/lib
,/usr/local
vb.) çeşitli kullanıcı düzeyi uygulamalarını ve verilerini barındırır.
/var
: Değişken Veriler
- Log dosyaları ve diğer sürekli değişen veriler bu dizinde yer alır.
Şekil 1. Kök dizinde "ls -la" komutuyla listelenmiş dizinler
Sık Kullanılan Bazı Linux Komutları
cd
(Change Directory)
Tanım: Kullanıcıyı bir dizinden diğerine geçirmek için kullanılır.
- Örnek Kullanım:
cd /home/kullanici/dokumanlar
Bu komut, kullanıcıyı/home/kullanici/dokumanlar
dizinine taşır. - "cd" komutu tek başına kullanıldığı zaman kullanıcı dizinine götürür. "cd .." yazılırsa bir alt dizine geri döner.
Şekil 2. cd komutu kullanımı. Gidilen dizin pwd ile gösterilmiştir.
ls
(List)
Tanım: Mevcut dizindeki dosya ve dizinleri listelemek için kullanılır.
- Yaygın Parametreler:
-l
: Detaylı listeleme yapar, dosya/dizin izinleri, sahibi, boyutu gibi bilgileri gösterir. -a
: Gizli dosya ve dizinleri de listeler.-la
: Hem detaylı hem de gizli dosya ve dizinleri listeler.- Örnek Kullanım:
ls -la
Bu komut, mevcut dizindeki tüm dosya ve dizinleri, detaylı ve gizli dosyalar dahil listeler.
Şekil 3. ls -la kullanımı
pwd
(Print Working Directory)
Tanım: Kullanıcının şu anda bulunduğu dizinin tam yolunu gösterir.
- Örnek Kullanım:
pwd
Bu komut, kullanıcının şu anda hangi dizinde olduğunu gösterir.
Şekil 4. pwd kullanımı
rm
(Remove)
Tanım: Dosya veya dizin silmek için kullanılır.
- Yaygın Parametreler:
-r
: Bir dizin ve içindekileri rekursif olarak siler. -f
: Zorla silme, onay istemez.- Örnek Kullanım:
rm -rf /tmp/gecici-dosyalar
Bu komut,/tmp/gecici-dosyalar
dizinini ve içindekileri zorla ve alt klasörler/dosyalar dahil olarak siler.
mkdir
(Make directory)
Tanım: Klasör oluşturmak için kullanılır.touch
Tanım: Boş bir dosya oluşturmak için kullanılır.mv
(Move)
Tanım: Dosya veya dizinleri taşımak veya yeniden adlandırmak için kullanılır.
- Örnek Kullanım:
mv eski_dosya.txt yeni_dosya.txt
Bu komut,eski_dosya.txt
'yiyeni_dosya.txt
olarak yeniden adlandırır.
cp
(Copy)
Tanım: Dosya veya dizinleri kopyalamak için kullanılır.
- Yaygın Parametreler:
-r
: Bir dizini ve içindekileri (alt klasör ve dosyaları) kopyalar. - Örnek Kullanım:
cp -r /kaynak/dizin /hedef/dizin
Bu komut,/kaynak/dizin
'i ve içindekileri/hedef/dizin
'e kopyalar.
Şekil 5. mkdir, touch, mv, cp ve rm komutlarının kullanımı
sudo
(Super User Do)
Tanım: Başka kullanıcıların (genellikle root) ayrıcalıklarıyla komut çalıştırmayı sağlar. Root, Linux'ta en yüksek yetkilere sahip kullanıcıdır ve genellikle sistem yönetimi işlemleri için kullanılır.
- Örnek Kullanım:
sudo apt-get update
Bu komut, root kullanıcısının yetkileriyle paket listelerini günceller.
wget
Tanım: Web sunucularından dosya indirmek için kullanılır.
- Örnek Kullanım:
wget https://ornek.com/dosya.tar.gz
Bu komut, belirtilen URL'dendosya.tar.gz
adlı dosyayı indirir.
curl
Tanım: İnternet üzerinden veri alışverişi yapmak için kullanılır. Web sunucularından veri indirme işini wget gibi gerçekleştirebilir ek olarak, API istekleri gönderme gibi işlemlerde kullanılır (GET, POST, vs.).systemctl
Tanım: systemd
sistemi ve servis yöneticisi için kullanılır. Servisleri başlatma, durdurma, yeniden başlatma ve durumlarını kontrol etme gibi işlevleri vardır.
- Örnek Kullanım:
systemctl start nginx
Bu komut,nginx
servisini başlatır.
Şekil 6. systemctl ve ilgili parametrelerini kullanarak çalışan tüm servisleri listeledik
Şekil 7. Voi isimli servisin durumunu "systemctl status voi.service" komutu ile sorguladık
grep
Tanım: Metin içerisinde desen ve kelime arama yapmak için kullanılır. Dosyalar içinde veya diğer komutların çıktılarında arama yapmak için oldukça yararlıdır.
- Örnek Kullanım:
grep "aranan_kelime" dosya.txt
Bu komut,dosya.txt
içinde "aranan_kelime"yi arar ve eşleşen satırları gösterir.
Şekil 8. Önceki adımda ekrana bastırdığımız tüm servisleri içerisinde "voi" geçenler ile sınırlandırdık
htop
Tanım: Sistem kaynaklarının kullanımını görsel olarak gösteren interaktif bir izleme aracıdır.
- Örnek Kullanım:
htop
Bu komut, sistemde çalışan süreçleri ve kaynak kullanımını gösterir.
nano
/ vi
- Metin editörleri. Dosyaları düzenlemek için kullanılır.
- Örnek:
nano dosya.txt
veyavi dosya.txt
iledosya.txt
dosyasını düzenleyebilirsiniz.
tar
- Dosya arşivleme ve sıkıştırma işlemleri için kullanılır.
- Örnek:
tar -czvf arsiv.tar.gz /dizin
ile/dizin
'iarsiv.tar.gz
olarak sıkıştırır ve arşivler.
chmod
- Dosya ve dizinlerin erişim izinlerini değiştirir.
- Örnek:
chmod 755 script.sh
ilescript.sh
dosyasına çalıştırma izni verir.
Şekil 9. Çalıştırma izni vermeden önce dosyayı çalıştırmamıza izin vermedi. chmod +x ile çalıştırma izni verdik, chmod 755 de olurdu.
NOT: Tek parça olarak yapıştırılması istenilen bazı kodları Github'dan kopyalayıp terminal ekranına yapıştırıken kodlar, tek parça halinde değil de yarım yarım yapıştırılabiliyor. Bu durum da hataya sebebiyet verebiliyor. Böyle durumlar için bir .sh dosyası oluşturup içerisine tüm kod yapıştırılıp +x çalıştırma izni verilip "./dosyaadi.sh" komutu ile çalıştırılırsa komutlar tek seferde çalışacaktır. chown
- Dosya veya dizinin sahipliğini değiştirmek için kullanılır.
- Örnek:
chown kullanici:dizin dosya.txt
iledosya.txt
'nin sahipliğinikullanici
ya verir.
df
- Disk alanı kullanımını gösterir.
- Örnek:
df -h
ile insan okunabilir formatta disk kullanım bilgilerini gösterir.
du
- Dizinlerdeki dosya kullanım alanını gösterir.
- Örnek:
du -sh /dizin
ile/dizin
altındaki dosyaların toplam boyutunu gösterir.
cat, less, more
- Dosyanın içine editör ile girmeden, içerisinde ne olduğunu terminal ekranına bastırarak görmemizi sağlarlar. Küçük dosyalar için "cat" kullanımı yeterlidir. Büyük dosyalar içinse "less" kullanarak içerikleri sayfa sayfa görebiliriz, böylece terminali boşuna doldurmamış oluruz.
Şekil 10. "cat" kullanımı
Yazının sonuna geldik :). Yeterince etkileşim alırsam sizlere sonraki bölümde daha fazla örnek ve daha fazla komut ile daha detaylı bir çalışma sunacağım.