15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
15.04.2026

Linux Sunucusunda İlk Haftanız — 35+ Temel Komut

Anahtar Kelimeler: Başlamadan Önce Hızlı Referans

Başlamadan önce, bu kılavuz boyunca göreceğiniz terimler burada. Bunları ezberlemenize gerek yok — sadece var olduklarını bilin ve bağlam onları anlamanızı sağlayacak.

TerimAnlamı
Terminal 💻Komutları yazdığınız metin tabanlı arayüz
Shell 🐚Komutlarınızı yorumlayan program (genellikle Bash)
Bash ⚙️En yaygın shell; terminalinizin “konuştuğu” dil
Sudo 🔑Diğer komutları yönetici ayrıcalıklarıyla çalıştırmanıza izin veren bir komut
Paket yöneticisi 📦Sizin için yazılım yükleyen ve güncelleyen bir araç (örneğin apt gibi)
Daemon / Servis 👻Sürekli çalışan bir arka plan programı (örneğin bir web sunucusu gibi)
İzinler 🔒Bir dosyayı kimin okuyabileceğini, yazabileceğini veya çalıştırabileceğini kontrol eden kurallar
Root 👑Her şeye gücü yeten sistem yöneticisi hesabı

Bu terimleri cebinize koyduğunuzda, hazırsınız. Başlayalım.


Giriş: Sunucu Yolculuğuna Başlamak

Yeni sunucunuza bağlandınız. Belki de tek tıklamayla anında Ubuntu dağıtımı sunan AlexHost gibi bir sağlayıcıdan temin ettiniz. Terminalinizi açıyorsunuz, ssh root@your-server-ip yazıyorsunuz ve Enter’a basıyorsunuz. Ekran temizleniyor. Yanıp sönen bir imleç, root@vps:~# gibi bir satırdan size bakıyor.

Şimdi ne yapacaksınız?

O an — “Bir sunucum var” ile “Onunla ne yapacağımı biliyorum” arasındaki boşluk — çoğu insanın durduğu yerdir. Terminali kapatırlar, bunu daha sonra çözeceklerini söylerler ve grafik arayüzlerde gezinmeye geri dönerler. Ama işin aslı şu: Linux, dünya çapındaki bulut sunucularının %90’ından fazlasını çalıştırıyor. Android telefonları, gömülü cihazları, süper bilgisayarları ve günlük olarak kullandığınız neredeyse her hizmetin arkasındaki altyapıyı güçlendiriyor. Bu sistemleri gerçekten kontrol eden insanlar fare tıklamaları kullanmazlar. Komut satırını kullanırlar.

Terminal bir kalıntı değildir. Bir bilgisayara ne yapacağını söylemenin en doğrudan, bileşen ve güvenilir yoludur. Grafiksel yük yoktur, gezilecek menüler yoktur, bir kullanıcı arayüzünün yüklenmesini beklemek yoktur. Bir komut yazarsınız, bir şey olur ve bir sonraki komutu ona zincirlersiniz. SSH üzerinden, sunucunuz yan odada veya okyanusun ötesinde olsa da aynı şekilde çalışır.

Bu makale size bir ezberleme listesi vermeyecek. Bunun yerine, bugün yeni bir sunucuyla otursaydınız izleyeceğiniz aynı ilerlemeyi yaşayarak gerçekçi bir 7 günlük yolculuğa çıkacaksınız. Sonunda, sadece komutları bilmeyeceksiniz. Her birine ne zaman başvuracağınızı da bileceksiniz.


1. Gün: Bağlanma ve Keşfetme

Sunucunuza yeni bağlandınız. Terminal root@vps:~# gibi bir şey gösteriyor. Giriş yaptınız — ama neredesiniz? Burada ne var? Hadi bulalım.

Adım 1: “ssh” ile Bağlanın

Her şey ssh — Secure Shell ile başlar. Bu, sizi yerel makinenizden uzak sunucuya götüren kapı komutudur.

ssh username@server-ip

Çoğu VPS sağlayıcısında, barındırma kontrol panelinizden IP adresini ve size atanan kullanıcı adını (genellikle root veya ubuntu) kullanacaksınız. Bu, ilk kez bağlanıyorsanız, sunucunun parmak izini onaylamanız istenecektir — yes yazın ve Enter’a basın.

Artık sunucunuza bağlısınız.

Adım 2: Kimliğinizi “whoami” ile Onaylayın

Bir şey yapmadan önce, hangi kullanıcı olarak giriş yaptığınızı doğrulayın.

whoami

Eğer root görüyorsanız, her şeye gücü yeten yönetici olarak çalışıyorsunuz demektir. Bu, yeni bir VPS’de yaygındır, ancak aynı zamanda yazdığınız her komutun tam sistem erişimine sahip olduğu anlamına gelir — bu yüzden dikkatli olun.

Bu sistemde kim olduğunuzu biliyorsunuz.

Adım 3: Konumunuzu “pwd” ile Bulun

pwd — Print Working Directory — komutu, dosya sisteminde tam olarak nerede olduğunuzu söyler.

pwd
Yeni bir VPS’de root olarak giriş yaptığınızda genellikle /root dizinine inersiniz. Normal bir kullanıcı hesabı kullanıyorsanız, bunun yerine /home/username görürsünüz. Bunu, yapacağınız her şey için “ev üssü” olarak düşünün.

Nerede olduğunuzu biliyorsunuz.

Adım 4: “ls” ile Nelerin Mevcut Olduğunu Görün

Şimdi sunucunun etrafına bakalım. ls komutu, mevcut konumunuzdaki dosya ve dizinleri listeler.

ls
Boş bir çıktı, burada henüz bir şey olmadığını gösterir — bu, yeni bir sunucu için normaldir. Ancak gerçek güç bayraklarla gelir. Deneyin:

ls -la
Bu, her şeyi görmenizi sağlar, gizli dosyalar dahil (nokta ile başlayanlar) ve ayrıntılı bilgi:

-l bayrağı size uzun formatı verir (izinler, sahip, boyut, tarih) ve -a tüm dosyaları, gizli olanlar dahil gösterir. ls -la komutunu sürekli kullanacaksınız.

Mevcut dizininizdeki her şeyi görebiliyorsunuz.

Adım 5: “cd” ile Gezin

cd komutu — Change Directory — dosya sisteminde nasıl gezindiğinizdir.

cd /var/log
#Check new dir location
pwd
/var/log

Sürekli kullanacağınız üç varyasyon:

cd ..      # Go up one directory level
cd ~       # Go back to your home directory
cd -       # Go back to the previous directory you were in

“cd -“ numarası özellikle kullanışlıdır — son dizin değişikliğiniz için bir “geri al” gibidir.

Dosya sisteminde istediğiniz yere gidebilirsiniz.

Adım 6: “clear” ile Temizleyin

Birçok komut çalıştırdıktan sonra, terminaliniz dağınık hale gelir. clear komutu ekranı siler ve size temiz bir başlangıç verir.

clear
İpucu: aynı etkiyi elde etmek için Ctrl+L tuşlarına da basabilirsiniz — kas hafızası haline geldiğinde daha hızlıdır.

Terminaliniz temiz ve bir sonraki komuta hazır.

Adım 7: “man” ile Bilgileri Arayın

Her komut için her bayrağı ezberlemenize gerek yok. man komutu — Manual — herhangi bir komut için yerleşik belgeleri açar.

man ls
Bu, ls için tam kılavuz sayfasını açar, her mevcut bayrağı, ne yaptığını ve örnekleri gösterir. Ok tuşları veya boşluk çubuğu ile gezin, çıkmak için q tuşuna basın.
man komutunu güvenlik ağınız olarak düşünün. Bir komutun ne yaptığından veya hangi seçenekleri desteklediğinden emin olmadığınızda, man cevabı verir.

Her komut için yerleşik belgelere erişiminiz var.

Adım 8: Geçmişinizi “history” ile Gözden Geçirin

history komutu, bu oturumda yazdığınız her komutu gösterir.

history

    1  whoami
    2  pwd
    3  ls -la
    4  cd /var/log
    5  clear
    6  history

İşte kullanışlı kısmı: herhangi bir komutu, numarasının önüne “!” koyarak yeniden çalıştırabilirsiniz.

!3
Bu, 3 numaralı komutu (ls -la) yeniden çalıştırır. Uzun komutları yeniden yazmaktan ve aceleyle yazarken yazım hatalarından kurtarır.

Önceki herhangi bir komutu gözden geçirebilir ve yeniden çalıştırabilirsiniz.


2. Gün: Çalışma Alanınızı Oluşturma ve Yönetme

Nerede olduğunuzu ve nasıl hareket edeceğinizi biliyorsunuz. Şimdi bir şeyler inşa etme zamanı — projeniz için bir dizin yapısı.

Adım 1: “mkdir” ile Dizinler Oluşturun

mkdir komutu — Make Directory — yeni klasörler oluşturur.

mkdir projects
# Check dir
ls
projects

Ancak gerçek yıldız mkdir -p‘dir, bu, henüz var olmayan herhangi bir üst dizin dahil olmak üzere bir kerede iç içe dizinler oluşturur.

mkdir -p projects/myapp/logs

-p olmadan, önce projects, sonra projects/myapp, sonra projects/myapp/logs ayrı ayrı oluşturmanız gerekirdi. Bununla, bir komut her şeyi yapar.

Projeniz için bir dizin yapısı oluşturdunuz.

Adım 2: “touch” ile Boş Dosyalar Oluşturun

touch komutu anında boş bir dosya oluşturur.

touch projects/myapp/notes.txt
Yeni dosyayı kontrol edin:


ls projects/myapp/
# logs notes.txt

Eğer dosya zaten varsa, touch onun zaman damgasını günceller. Yer tutucu dosyalar oluşturmanın veya bir şey üzerinde çalıştığınızı işaretlemenin hızlı bir yoludur.

Sunucuda ilk dosyanızı oluşturdunuz.

Adım 3: “cp” ile Dosyaları Kopyalayın

cp komutu — Copy — dosya ve dizinleri çoğaltır.

cp projects/myapp/notes.txt projects/myapp/notes-backup.txt

Dizinler için, -r bayrağına (recursive) ihtiyacınız var, bu da dizin içindeki her şeyi de kopyalar:

cp -r projects/myapp projects/myapp-backup

Dosyaları ve tüm dizin ağaçlarını çoğaltabilirsiniz.

Adım 4: “mv” ile Dosyaları Taşıyın veya Yeniden Adlandırın

mv komutu iki işi yapar: dosyaları taşır ve yeniden adlandırır. Aynı komut, farklı bağlam.

mv projects/myapp/notes.txt projects/myapp/readme.txt

Bu, notes.txt‘yi aynı dizinde readme.txt olarak yeniden adlandırır. Bir dosyayı gerçekten farklı bir konuma taşımak için:

mv projects/myapp/readme.txt projects/

Bir komutla dosyaları taşıyabilir ve yeniden adlandırabilirsiniz.

Adım 5: “rm” ile Dosyaları Silin

rm komutu — Remove — dosyaları kalıcı olarak siler.

rm projects/myapp-backup/readme.txt

Dizinler için, -r (recursive) kullanın:

rm -r projects/myapp-backup

⚠️ UYARI: rm -rf nükleer seçenektir. -f bayrağı, onay istemeden silmeyi zorlar ve -r ile birleştiğinde, tüm dizin ağaçlarını sessizce siler. Geri alma yoktur. Enter’a basmadan önce yolu iki kez kontrol edin. Asla rm -rf / çalıştırmayın — tüm dosya sisteminizi silmeye çalışacaktır.

Artık ihtiyacınız olmayan dosya ve dizinleri kaldırabilirsiniz.

Adım 6: “echo” ile Metin Yazdırın ve Yazın

echo komutu metni terminale yazdırır — ancak gerçek gücü yönlendirme operatörleriyle birleştiğinde gelir.

echo "Hello, server"

Hello, server

Şimdi bu çıktıyı bir dosyaya “>” (üzerine yaz) veya “>>” (ekle) kullanarak yönlendirin:

echo "Server setup started" > projects/myapp/notes.txt

echo "Added a log entry" >> projects/myapp/notes.txt

> operatörü dosyayı oluşturur veya varsa üzerine yazar. >> operatörü mevcut içeriği etkilemeden sonuna ekler. Bu, yönlendirmenin ilk tadıdır — Linux’un temel süper güçlerinden biri.

Komut satırından doğrudan dosyalara metin yazabilirsiniz.

Adım 7: “cat” ile Dosyaları Okuyun

cat komutu — Concatenate — dosya içeriklerini terminalde görüntüler.

cat projects/myapp/notes.txt

Küçük dosyalar için, cat içerikleri incelemenin en hızlı yoludur. Daha büyük dosyalar için, kaydırmanıza izin veren less kullanmak isteyeceksiniz, ancak cat hızlı kontroller için başvuracağınız araçtır.

Bir editör açmadan dosya içeriklerini okuyabilirsiniz.

Adım 8: “nano” ile Dosyaları Düzenleyin

Bir dosyayı gerçekten değiştirmek gerektiğinde, nano en kullanıcı dostu terminal editörüdür.

nano projects/myapp/notes.txt

Nano, dosyayı terminalinizde basit bir arayüzle açar. Klavye kısayolları ekranın alt kısmında görüntülenir.

💡 İPUCU: Nano’nun temel kısayolları: Ctrl+O kaydetmek için (sonra onaylamak için Enter), Ctrl+X çıkmak için, Ctrl+W metin aramak için. Başlamak için bilmeniz gerekenler bunlar.

vim hakkında da duyacaksınız — daha güçlüdür ancak ünlü bir şekilde dik bir öğrenme eğrisine sahiptir. Şimdilik nano ile devam edin. Terminale alıştığınızda vim‘i keşfedebilirsiniz.

Sunucuda doğrudan dosyaları düzenleyebilirsiniz.


3. Gün: İhtiyacınız Olanı Bulmak

Bir düzine dosya ve birkaç dizin oluşturdunuz. Şimdi dün düzenlediğiniz dosyayı bulmanız gerekiyor. İşte nasıl.

Adım 1: “find” ile Dosyaları Arayın

find komutu, dosyaları ada, türe, boyuta ve daha fazlasına göre arar.

find ./projects -name "*.txt"

Bu, /home altındaki her şeyi .txt ile biten dosyalar için arar. Ayrıca türüne göre de arama yapabilirsiniz — find / -type f -name “config” tüm sistemde “config” adlı dosyaları bulur.

find kapsamlıdır ancak büyük dosya sistemlerinde yavaş olabilir. Günlük aramalar için, en güvenilir aracınızdır.

Sistemdeki herhangi bir dosyayı adı veya türüne göre bulabilirsiniz.

Adım 2: “grep” ile Dosya İçinde Arama Yapın

Eğer find dosyaları buluyorsa, grep içindeki içeriği bulur. Bu, komut satırı dedektifidir.

grep "error" /var/log/syslog
Apr 10 12:15:03 server kernel: [error] disk I/O timeout
Apr 10 12:18:22 server nginx: [error] connection refused
İşte grep daha da güçlü hale geliyor — diğer komutlarla boru “|” operatörünü kullanarak birleştirin. Boru, bir komutun çıktısını alır ve bir sonraki komuta giriş olarak besler.

cat /var/log/syslog | grep "error"

Bu, önceki örnekle aynı şeyi yapar, ancak boru deseni, komutları bir araya zincirlemenizi sağlar. Boruları sürekli kullanacaksınız, bir kez anladığınızda. Örneğin, bugünün günlük girişlerinde hataları aramak için:

cat /var/log/syslog | grep "Apr 15" | grep "error"

Her boru, sonuçları daha da daraltır. Bu bileşenlik, Linux komut satırını bu kadar güçlü kılan şeydir.

Herhangi bir dosyada herhangi bir metin desenini arayabilirsiniz.

Adım 3: Çalıştırılabilir Dosyaların Yerini “which” ile Bulun

which komutu, bir komutun çalıştırılabilir dosyasının sistemde nerede olduğunu söyler.

which python3
/usr/bin/python3
Bu, hangi sürümün çalıştığını bilmeniz gerektiğinde veya bir betiğin çalıştırılabilir dosyaya tam yol ihtiyacı olduğunda kullanışlıdır.

Herhangi bir komutun çalıştırılabilir dosyasının tam olarak nerede olduğunu biliyorsunuz.

Adım 4: Daha Fazlasını “whereis” ile Bulun

whereis komutu, which‘ten daha ileri gider — ikili dosyayı, kaynak kodunu (eğer yüklüyse) ve kılavuz sayfasını bulur.

whereis python3
python3: /usr/bin/python3 /usr/lib/python3 /etc/python3 /usr/share/man/man1/python3.1.gz
which size bir yol verirken, whereis size tam resmi verir. Sadece çalıştırılabilir dosyayı gerektiğinde which kullanın. Bir komutla ilgili her şeyi görmek istediğinizde whereis kullanın.

Sistemde bir komutun her bileşenini bulabilirsiniz.

Adım 5: “whatis” ile Hızlı Bir Açıklama Alın

whatis komutu, herhangi bir komutun bir satırlık açıklamasını verir.

whatis grep
grep (1) - print lines that match patterns
Bu, bir komutun ne yaptığını hatırlamanın en hızlı yoludur, tam man sayfasını açmadan. Bunu hızlı bir sözlük araması olarak düşünün.

Herhangi bir komutun amacının bir satırlık özetini alabilirsiniz.


4. Gün: Makinenizi Anlamak

Bir şey yüklemeden önce, neyle çalıştığınızı bilmelisiniz. Ne kadar disk alanınız var? Ne kadar RAM? Zaten ne çalışıyor?

Adım 1: Sistem Bilgilerini “uname” ile Kontrol Edin

uname komutu — Unix Name — sistem bilgilerini görüntüler.

uname -a
Linux alexserver 6.8.0-110-generic #110-Ubuntu SMP PREEMPT_DYNAMIC Thu Mar 19 15:09:20 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
-a bayrağı her şeyi gösterir: çekirdek adı, ana bilgisayar adı, çekirdek sürümü, mimari ve işletim sistemi. Bir VPS’de, bu size tam olarak hangi çekirdeği çalıştırdığınızı ve 64 bit bir sistemde olup olmadığınızı söyler (muhtemelen öylesinizdir).

Çekirdek sürümünüzü ve sistem mimarinizi biliyorsunuz.

Adım 2: Disk Alanını “df” ile Kontrol Edin

df komutu — Disk Free — ne kadar depolama alanınız olduğunu ve ne kadarının kullanıldığını gösterir.

df -h

-h bayrağı “insan tarafından okunabilir” anlamına gelir — boyutları GB ve MB olarak, ham baytlar yerine gösterir. “/” kök bölümü satırına dikkat edin. %7 kullanılmış, bu sunucunun bolca alanı var demektir. Eğer bu sayının %80’i geçtiğini görürseniz, temizleme zamanı gelmiştir.

Ne kadar disk alanının mevcut olduğunu tam olarak biliyorsunuz.

Adım 3: Belleği “free” ile Kontrol Edin

free komutu RAM kullanımınızı gösterir.

free -h

Yine, -h size insan tarafından okunabilir çıktı verir. Buradaki anahtar sütun “available” — bu, yeni uygulamalar için gerçekten boş olan bellek. “Used” sütunu, gerektiğinde serbest bırakılabilecek önbellek için çekirdeğin kullandığı belleği içerir. 4GB RAM’e sahip yeni bir VPS’de, 3.3GB kullanılabilir görmek tam olarak istediğiniz şeydir.

Sunucunuzun ne kadar belleği olduğunu ve ne kadarının boş olduğunu biliyorsunuz.

Adım 4: Süreçleri “top” ile İzleyin

top komutu, gerçek zamanlı süreç izleme — çalışan süreçlerin ve her bir sürecin ne kadar kaynak tükettiğinin canlı bir görünümünü gösterir.

top

top her birkaç saniyede bir güncellenir. En önemli sütunlar PID (süreç kimliği), %CPU, %MEM ve COMMAND’dir. Sunucunuz yavaş hissediyorsa, top bakmanız gereken ilk yerdir.

💡 İPUCU: top komutundan çıkmak için q tuşuna basın. Eğer top çalışıyorsa ve nasıl durduracağınızı bilmiyorsanız, cevap budur.

Çalışan süreçleri gerçek zamanlı olarak izleyebilirsiniz.

Adım 5: Süreçleri “ps” ile Anlık Görüntü Alın

ps komutu — Process Status — çalışan süreçlerin statik bir anlık görüntüsünü verir.

ps aux

aux bayrakları, tüm kullanıcıların tüm süreçlerini ayrıntılı bilgilerle gösterir. Anahtar sütunlar: USER (sürecin sahibi), PID (öldürmek için kullanacağınız süreç kimliği), %CPU ve %MEM (kaynak kullanımı) ve COMMAND (ne çalışıyor). Hızlı bir anlık görüntüye ihtiyacınız olduğunda ps kullanın.

Her çalışan sürecin anlık görüntüsünü alabilirsiniz.

Adım 6: Takvimi “cal” ile Kontrol Edin

cal komutu basit bir takvim görüntüler.

cal

     April 2026
Su Mo Tu We Th Fr Sa
           1  2  3  4
  5  6  7  8  9 10 11
 12 13 14 15 16 17 18
 19 20 21 22 23 24 25
 26 27 28 29 30

Bu zorunlu değildir, ancak terminalin sadece sunucu yönetmekten daha fazlasını yapabileceğinin hoş bir hatırlatıcısıdır. Ayrıca oturumunuzu terk etmeden tarihi kontrol etmenin hızlı bir yoludur.

Terminalinizde bir takvim görüntüleyebilirsiniz.

Adım 7: Tarihi “date” ile Kontrol Edin

date komutu, mevcut sistem tarihini ve saatini gösterir.

date
Wed Apr 15 14:32:01 UTC 2026
Bu, düşündüğünüzden daha önemlidir. Birçok hizmet — özellikle SSL sertifikaları, günlük döndürme ve zamanlanmış görevler — doğru sistem zamanına bağlıdır. Tarih yanlış görünüyorsa, bir şey yüklemeden önce düzeltmek isteyeceksiniz.

Sunucunuzun mevcut tarih ve saatini biliyorsunuz.


5. Gün: Yazılım Yükleme ve Hizmetleri Çalıştırma

Sunucunuz çalışıyor, özelliklerini biliyorsunuz ve şimdi onu kullanışlı hale getirme zamanı. Yazılım yükleyelim ve hizmetleri çalıştıralım.

Adım 1: Paket Listelerini “apt update” ile Güncelleyin

Bir şey yüklemeden önce, paket deposu listelerinizi yenileyin.

sudo apt update
Sonuç:
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
Get:3 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
Fetched 257 kB in 2s (134 kB/s)
Reading package lists... Done
Building dependency tree... Done
Önemli ayrım: apt update mevcut paketlerin listesini yeniler — hiçbir şey yüklemez. apt upgrade ise zaten sahip olduğunuz paketlerin daha yeni sürümlerini indirir ve yükler. Neredeyse her zaman birlikte giderler:

sudo apt update && sudo apt upgrade -y

CentOS veya Fedora gibi Red Hat tabanlı sistemlerde, eşdeğer komutlar yum update veya dnf update‘dir.

Paket listeniz güncel ve yüklemelere hazır.

Adım 2: Yazılımı “apt install” ile Yükleyin

Şimdi bir şey yükleyelim. Nginx, popüler bir web sunucusudur — kurmak için iyi bir ilk hizmet.

sudo apt install nginx -y
Sonuç:
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
nginx nginx-common nginx-core
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 582 kB of archives.
Setting up nginx (1.18.0-6ubuntu14.4) ...
Bu, sunucunuzun gerçekten bir şey yapmaya başladığı yerdir. -y bayrağı, yüklemeyi otomatik olarak onaylar, böylece yes yazmanıza gerek kalmaz. Nginx yüklenecek ve genellikle hemen çalışmaya başlayacaktır.

Sunucuda ilk hizmetinizi yüklediniz.

Adım 3: Hizmetleri “systemctl” ile Yönetin

systemctl komutu — System Control — hizmetleri başlatmak, durdurmak ve yönetmek için kullanılır.

systemctl status nginx
Sonuç:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2026-04-15 14:35:00 UTC; 2min ago
Main PID: 1234 (nginx)
Tasks: 2 (limit: 4915)
Memory: 3.2M
CGroup: /system.slice/nginx.service
Anahtar satır Active: active (running) — bu, Nginx’in çalıştığı ve çalıştığı anlamına gelir. Sürekli kullanacağınız üç systemctl komutu:

sudo systemctl start nginx    # Start the service now
sudo systemctl stop nginx     # Stop the service
sudo systemctl enable nginx   # Start automatically on every boot

enable komutu, yeni başlayanların kaçırdığı bir şeydir. start hizmeti hemen çalıştırır. enable, sunucu her yeniden başlatıldığında başlamasını sağlar. Bir web sunucusu için, neredeyse her zaman her ikisini de istersiniz.

Sunucunuzdaki herhangi bir hizmeti kontrol edebilirsiniz.

Adım 4: Süreçleri “kill” ile Durdurun

Bazen bir süreci manuel olarak sonlandırmanız gerekir. kill komutu bunu PID ile yapar.

kill 1234

Bu, 1234 numaralı sürece bir sonlandırma sinyali gönderir ve nazikçe kapanmasını ister. Eğer yanıt vermezse, onu zorlayabilirsiniz:

kill -9 1234

⚠️ UYARI: kill -9 zorla öldürmedir. Sürecin temizlenmesine izin vermez — durum kaydetme, bağlantıları düzgün kapatma yoktur. Normal bir kill çalışmadığında kullanın.

PID’yi ps aux veya top kullanarak bulun, ardından öldürün.

Herhangi bir süreci kimliğiyle sonlandırabilirsiniz.

Adım 5: “pkill” ile İsimle Öldürün

Önce PID’yi bulmak bazen gereksizdir. pkill komutu, süreçleri isme göre öldürür.

pkill nginx

Bu, “nginx” ile eşleşen tüm süreçleri bulur ve sonlandırır. ps ile PID’yi aramaktan ve ardından kill çalıştırmaktan daha hızlıdır. Süreç adını bildiğinizde ve hızlı bir sonlandırma istediğinizde pkill kullanın.

PID’lerini bilmeden süreçleri öldürebilirsiniz.

Adım 6: Dosyaları “wget” ile İndirin

wget komutu — Web Get — internetten dosya indirir.

wget https://example.com/file.zip
Örnek sonuç:
--2026-04-15 14:40:00-- https://example.com/file.zip
Resolving example.com (example.com)... 93.184.216.34
Connecting to example.com (example.com)|93.184.216.34|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1048576 (1.0M) [application/zip]
Saving to: 'file.zip'
file.zip 100%[===================>] 1.00M 2.34MB/s in 0.4s
2026-04-15 14:40:01 (2.34 MB/s) - 'file.zip' saved [1048576/1048576]
wget basittir: ona bir URL verin, dosyayı mevcut dizininize indirir. Ayrıca wget -c ile kesilen indirmeleri devam ettirmeyi destekler.

Dosyaları doğrudan sunucunuza indirebilirsiniz.

Adım 7: Verileri “curl” ile Aktarın

curl komutu — Client URL — wget‘ten daha çok yönlüdür. İndirmeleri, API isteklerini ve özel başlıklarla veri aktarımlarını yönetir.

curl -O https://example.com/file.zip

-O bayrağı dosyayı orijinal adıyla kaydeder (tıpkı wget gibi). Ancak curl çok daha fazlasını yapabilir:

curl -s https://api.example.com/data

-s bayrağı sessizce çalışır, bu da curl‘u betik yazma ve API çağrıları için mükemmel kılar. wget basit indirmeler için harika olsa da, curl web hizmetleriyle etkileşim kurmanız, API’leri test etmeniz veya özel HTTP başlıkları göndermeniz gerektiğinde başvuracağınız araçtır.

Herhangi bir URL’den veri aktarabilirsiniz — dosyalar, API’ler ve daha fazlası.


6. Gün: Güvenliği Sağlama

Sunucunuz bir hizmet çalıştırıyor ve çalışıyor. Ancak şu anda, tamamen açık. Hadi güvenli hale getirelim.

📝 NOT: Bu komutların çalışması için kullanıcınızın sudo izinlerine sahip olması gerekir. Çoğu VPS sağlayıcısında, varsayılan kullanıcı zaten sudo erişimiyle ayarlanmıştır. Yeni bir kullanıcı oluşturduysanız, önce onları sudo grubuna eklemeniz gerekecektir.

Adım 1: Komutları Güvenli Bir Şekilde “sudo” ile Çalıştırın

sudo komutu — Superuser Do — komutları yükseltilmiş ayrıcalıklarla çalıştırmanıza izin verir.

sudo apt update

Bir oturumda ilk kez sudo kullandığınızda şifreniz istenecektir. Bundan sonra, birkaç dakika boyunca hatırlar. sudo‘nun var olma nedeni basittir: her zaman root olarak çalışmak tehlikelidir. Root ayrıcalıklarıyla yapılan tek bir yazım hatası sisteminizi silebilir. sudo, her komut için ayrıcalıkları bilinçli olarak yükseltmenizi zorlar — bu, sadece bir ayrıcalık yükseltici değil, bir güvenlik mekanizmasıdır.

Root olarak giriş yapmadan yönetici komutları çalıştırabilirsiniz.

Adım 2: Dosya İzinlerini “chmod” ile Değiştirin

chmod komutu — Change Mode — bir dosyayı kimin okuyabileceğini, yazabileceğini veya çalıştırabileceğini kontrol eder.

chmod 755 script.sh

Sayılar üç grup için izinleri temsil eder: sahip, grup ve diğer herkes. Her rakam, okuma (4), yazma (2) ve çalıştırma (1) toplamıdır:

  • 755 demektir ki: sahip her şeyi yapabilir (4+2+1=7), grup okuyabilir ve çalıştırabilir (4+1=5), diğer herkes okuyabilir ve çalıştırabilir (4+1=5). Bu, betikler ve dizinler için standarttır.
  • 644 demektir ki: sahip okuyabilir ve yazabilir (4+2=6), grup okuyabilir (4), diğer herkes okuyabilir (4). Bu, yapılandırma dosyaları ve belgeler için standarttır.

chmod 644 config.txt

Bir betik çalışmıyorsa, neredeyse her zaman bir izin sorunudur. chmod +x script.sh, herhangi bir dosyayı çalıştırılabilir hale getirmenin hızlı bir yoludur, sayıları hatırlamadan.

Her dosyaya kimin erişebileceğini tam olarak kontrol ediyorsunuz.

Adım 3: Dosya Sahipliğini “chown” ile Değiştirin

chown komutu — Change Owner — bir dosyanın kimin sahip olduğunu ayarlar.

sudo chown www-data:www-data /var/www/html/index.html

Bu, sahipliği www-data ve grubu www-data olarak değiştirir. Bu, web sunucuları kurarken yaygın olarak kullanılır — web sunucusu süreci, sunduğu dosyaların sahibi olmalıdır. Format user:group‘tur ve sahipliği değiştirmek için neredeyse her zaman sudo gerekecektir.

Herhangi bir kullanıcıya veya gruba dosya sahipliği atayabilirsiniz.

Adım 4: Şifreleri “passwd” ile Değiştirin

passwd komutu, kullanıcı şifrelerini günceller.

passwd username
Yeni bir VPS’de, varsayılan şifreyi değiştirmek ilk eylemlerinizden biri olmalıdır. Şifresini değiştirmek istediğiniz kullanıcı olarak giriş yaptıysanız, sadece passwd çalıştırın, kullanıcı adı olmadan.

Sistemdeki herhangi bir kullanıcı için şifreleri güncelleyebilirsiniz.

Adım 5: Yeni Kullanıcılar “useradd” ile Oluşturun

useradd komutu, yeni bir kullanıcı hesabı oluşturur.

sudo useradd -m newuser

-m bayrağı kritiktir — bu, /home/newuser konumunda bir ev dizini oluşturur. Olmadan, kullanıcı var olur ancak bir ev dizini yoktur, bu da SSH ve çeşitli uygulamalarla sorunlara neden olur. Kullanıcıyı oluşturduktan sonra, şifresini ayarlayın:

sudo passwd newuser

Ev dizinleriyle yeni kullanıcı hesapları oluşturabilirsiniz.

Adım 6: Kullanıcılar Arasında “su” ile Geçiş Yapın

su komutu — Switch User — başka bir kullanıcı olarak oturum açmanıza izin verir.

su - newuser
whoami
newuser
“-“ bayrağı (veya –login) önemlidir — bu, yeni kullanıcının ortamını yükler, yol ve kabuk yapılandırması dahil. Olmadan, kullanıcılar arasında geçiş yaparsınız ancak eski kullanıcının ortamını korursunuz, bu da kafa karıştırıcı davranışlara yol açar.

Sunucuda kullanıcı hesapları arasında geçiş yapabilirsiniz.

Adım 7: Güvenlik Duvarını “ufw” ile Ayarlayın

ufw komutu — Uncomplicated Firewall — Ubuntu’da sunucunuzun güvenlik duvarını yönetmenin en basit yoludur.

Öncelikle, varsayılan politikayı tüm gelen bağlantıları reddetmek üzere ayarlayın:

sudo ufw default deny incoming
Ardından, SSH trafiğine açıkça izin verin. Bu adım kritiktir.

sudo ufw allow 22/tcp

⚠️ KRİTİK UYARI: Her zaman sudo ufw enable komutundan önce sudo ufw allow 22/tcp çalıştırın. Güvenlik duvarını SSH’ye izin vermeden etkinleştirirseniz, sunucudan kendinizi kilitlersiniz. Tek seçeneğiniz, sunucuya barındırma sağlayıcınızın konsolu aracılığıyla erişmek olacaktır — bu, tüm planlarda mevcut olmayabilir.

Şimdi güvenlik duvarını etkinleştirmek güvenlidir:

sudo ufw enable
Command may disrupt existing SSH connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Durumu herhangi bir zamanda kontrol edebilirsiniz:

sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Sunucunuz artık yalnızca 22 numaralı portta gelen SSH bağlantılarını kabul ediyor. Diğer her şey engellenmiştir. Daha sonra Nginx yüklediğinizde, başka bir kural ekleyeceksiniz: HTTP için sudo ufw allow 80/tcp ve HTTPS için sudo ufw allow 443/tcp.

Sunucunuz bir güvenlik duvarı ile korunuyor.


7. Gün: Ağ Kontrolleri ve Tamamlama

Sunucunuz kurulu, güvenli ve çalışıyor. Bitirmeden önce, her şeyin dışarıdan çalıştığını doğrulayalım ve düzgün bir şekilde kapatmayı öğrenelim.

Adım 1: Bağlantıyı “ping” ile Test Edin

ping komutu, sunucunuzun ağdaki diğer makinelerle iletişim kurup kuramayacağını test eder.

ping -c 4 8.8.8.8
-c 4 bayrağı, ping’i 4 paketle sınırlar. Olmadan, ping sonsuza kadar çalışır, Ctrl+C tuşuna basana kadar. Sonuçlardaki istatistikler size her şeyi söyler: 4 paket gönderildi, 4 alındı, %0 kayıp. Sunucunuzun ağı çalışıyor.

Sunucunuzun çalışan bir ağ bağlantısına sahip olduğunu doğruladınız.

Adım 2: Ağ Arayüzlerini “ip” ile Kontrol Edin

ip komutu, sunucunuzun ağ yapılandırmasını gösterir.

ip addr
ip komutu, eski ifconfig‘in yerini alır. Çıktı, döngüsel arayüzünüzü (lo, her zaman 127.0.0.1) ve ana ağ arayüzünüzü (bu durumda eth0) gösterir. inet satırı, sunucunuzun IP adresini gösterir — bu, SSH ile giriş yapmak veya web sunucunuza erişmek için kullanacağınız adresdir.

Sunucunuzun IP adreslerini ve ağ arayüzlerini görebiliyorsunuz.

Adım 3: Dosya Bağlantılarını “ln” ile Oluşturun

ln komutu, dosyalar arasında bağlantılar oluşturur — esasen kısayollar.

ln -s /var/www/html /home/user/webroot

Bu, /home/user/webroot konumunda /var/www/html‘ye işaret eden bir sembolik bağlantı oluşturur. Bağlantıya eriştiğinizde, aslında hedef dizine erişiyorsunuz. Sembolik bağlantılar, dosyaları çoğaltmadan uygun erişim yolları oluşturmak için kullanışlıdır.

Sistemdeki herhangi bir dosya ve dizine kısayollar oluşturabilirsiniz.

Adım 4: “shutdown” ile Güvenli Bir Şekilde Kapatın

shutdown komutu, sunucunuzu kontrollü bir şekilde kapatır.

sudo shutdown -h now

-h bayrağı “halt” anlamına gelir — her şeyi durdur ve kapat. now hemen demektir. Ancak bir kapatma planlayabilirsiniz:

sudo shutdown -h +5

Bu, kapatmadan önce size 5 dakika verir — çalışmayı kaydetmek, kullanıcıları bilgilendirmek veya fikrinizi değiştirmek için yeterli zaman. Planlanmış bir kapatmayı iptal etmek için:

sudo shutdown -c

-c bayrağı, bekleyen herhangi bir kapatmayı iptal eder. Bu, yanlışlıkla bir kapatmadan sizi kurtarabilecek küçük bir güvenlik ağıdır.

Sunucuyu güvenli bir şekilde, hemen veya bir programla kapatabilirsiniz.

Adım 5: “reboot” ile Yeniden Başlatın

reboot komutu, sunucunuzu yeniden başlatır.

sudo reboot

Bu, shutdown -r now ile eşdeğerdir — -r bayrağı “restart” anlamına gelir, “halt” yerine. Bunu çekirdek güncellemelerinden veya yeni bir başlangıç gerektiren yapılandırma değişikliklerinden sonra kullanacaksınız.

Sunucuyu tek bir komutla yeniden başlatabilirsiniz.


Sıradaki Ne

Yedi gün önce, nasıl kullanılacağını bilmediğiniz bir sunucuya SSH ile bağlandıktan sonra boş bir terminale bakıyordunuz. Şimdi dosya sisteminde gezinebilir, dosyalar oluşturup yönetebilir, sistemde herhangi bir şeyi arayabilir, sunucunuzun sağlığını kontrol edebilir, yazılım yükleyebilir, hizmetleri çalıştırabilir, güvenliği sağlayabilir ve sunucunun yaşam döngüsünü başlatmaktan kapatmaya kadar yönetebilirsiniz.

Gerçek beceri, bu komutları ezberlemek değildir. Bir sorun ortaya çıktığında hangisine başvuracağınızı bilmektir. Bu, onları kullanmaktan gelir — sadece okumaktan değil.

Bugün bir terminal açın. ls, cd ve pwd komutlarını doğal hale gelene kadar çalıştırın. Her gün yeni bir komut ekleyin. Bir hafta içinde, terminal artık yabancı bir arayüz gibi hissettirmeyecek. Sunucunuza doğrudan bir hat gibi hissedecek.

Bu komutları kendi sunucunuzda çalıştırmaya hazırsanız, AlexHost uygun fiyatlı Linux VPS planları sunar, anında kurulum ve 7/24 destek ile — risksiz pratik yapmak için harika bir yer.


Hızlı Başvuru: Tüm Komutlar Bir Bakışta

İşte bu kılavuzdaki her komut bir yerde. Bu sayfayı yer imlerine ekleyin.

 

KomutNe Anlama GelirNe Yapar
ssh
Secure ShellUzak bir sunucuya güvenli bir şekilde bağlanın
whoami
Who Am IGeçerli kullanıcı adını göster
pwd
Print Working DirectoryGeçerli dizin yolunu göster
ls
ListDosya ve dizinleri listele
cd
Change DirectoryDizinler arasında gezin
clear
ClearTerminal ekranını temizle
man
ManualHerhangi bir komut için kılavuz sayfasını aç
history
HistoryÖnceden çalıştırılan komutları göster
mkdir
Make DirectoryYeni dizinler oluştur
touch
TouchBoş dosyalar oluştur veya zaman damgalarını güncelle
cp
CopyDosya ve dizinleri kopyala
mv
MoveDosya ve dizinleri taşı veya yeniden adlandır
rm
RemoveDosya ve dizinleri sil
echo
EchoMetin yazdır veya dosyalara yaz
cat
ConcatenateDosya içeriklerini görüntüle
nano
NanoTerminal tabanlı metin editörü
find
FindDosyaları ada, türe veya özelliklere göre ara
grep
Global Regular Expression PrintDosyalarda metin desenlerini ara
which
WhichBir komutun çalıştırılabilir yolunu bul
whereis
Where IsBir komut için ikili, kaynak ve kılavuzu bul
whatis
What IsBir komutun bir satırlık açıklamasını al
uname
Unix NameSistem bilgilerini görüntüle
df
Disk FreeDisk alanı kullanımını göster
free
FreeBellek/RAM kullanımını göster
top
TopGerçek zamanlı süreç izleme
ps
Process StatusÇalışan süreçlerin anlık görüntüsü
cal
CalendarBir takvim görüntüle
date
DateSistem tarih ve saatini göster veya ayarla
apt update
APT UpdatePaket deposu listelerini yenile
apt install
APT InstallYazılım paketlerini yükle
systemctl
System ControlHizmetleri başlat, durdur ve yönet
kill
KillBir süreci PID ile sonlandır
pkill
Process KillSüreçleri isme göre sonlandır
wget
Web Getİnternetten dosya indir
curl
Client URLURL’lerden veri aktar
sudo
Superuser DoYükseltilmiş ayrıcalıklarla komut çalıştır
chmod
Change ModeDosya izinlerini değiştir
chown
Change OwnerDosya sahipliğini değiştir
passwd
PasswordKullanıcı şifrelerini değiştir
useradd
User AddYeni bir kullanıcı hesabı oluştur
su
Switch UserBaşka bir kullanıcıya geç
ufw
Uncomplicated FirewallSunucu güvenlik duvarını yönet
ping
PingAğ bağlantısını test et
ip
IPAğ arayüzlerini ve adreslerini göster
ln
LinkDosya bağlantıları oluştur (sembolik veya sert)
shutdown
ShutdownSunucuyu güvenli bir şekilde kapat
reboot
RebootSunucuyu yeniden başlat

 


15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın