Tüm barındırma hizmetlerinde 15% tasarruf edin

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

Kodu kullanın: Skills Başlayın
Bölüm
İşletim sistemleri Linux Yönetim

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

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

Bu kılavuzda göreceğiniz terimler burada. Bunları ezberlemenize gerek yok — sadece var olduklarını bilin ve bağlam her şeyi açıklayacak.

TerimAnlamı
Terminal 💻Komut 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ızı sağlayan komut
Paket yöneticisi 📦Yazılım yükleyen ve güncelleyen araç (apt gibi)
Daemon / Hizmet 👻Sürekli çalışan arka plan programı (web sunucusu gibi)
İzinler 🔒Bir dosyayı kimin okuyabileceğini, yazabileceğini veya çalıştırabileceğini kontrol eden kurallar
Root 👑Tüm güçlü sistem yöneticisi hesabı

Bu terimler cebinizde olduğuna göre, hazırsınız. Başlayalım.


Giriş: Sunucu Yolculuğuna Başlama

Yeni sunucunuza bağlandınız. Belki de AlexHost gibi bir sağlayıcıdan tek tıkla anında Ubuntu dağıtımı sunan bir sunucu sağladınız. Terminal’inizi açarsınız, şunu yazarsınız: ssh root@your-server-ip ve Enter tuşuna basarsınız. Ekran temizlenir. Yanıp sönen bir imleç, root@vps:~# gibi okunan bir satırdan size geri bakar.

Şimdi ne?

“Bir sunucum var” ile “bununla ne yapacağımı biliyorum” arasındaki boşluk — çoğu insanın durduğu yer burası. Terminal’i kapatırlar, bunu daha sonra çözeceğini kendilerine söylerler ve grafik arayüzler aracılığıyla tıklamaya geri dönerler. Ama işte şu var: Linux, dünyanın bulut sunucularının %90’ından fazlasını çalıştırır. Android telefonlarını, gömülü cihazları, süper bilgisayarları ve neredeyse her gün kullandığınız hizmetin altyapısını güçlendirir. Bu sistemleri gerçekten kontrol eden insanlar fare tıklaması kullanmaz. Komut satırını kullanırlar.

Terminal eski bir kalıntı değildir. Bir bilgisayara ne yapması gerektiğini söylemenin en doğrudan, birleştirilebilir ve güvenilir yoludur. Grafik yükü yoktur, gezinilecek menü yoktur, bir UI’nin yüklenmesini beklemek yoktur. Bir komut yazarsınız, bir şey olur ve bir sonraki komutu buna zincirlersiniz. SSH üzerinden, sunucunuz oda içinde olsun ya da okyanus ötesinde olsun, aynı şekilde çalışır.

Bu makale size bir ezberletme listesi sunmayacak. Bunun yerine, yeni bir Linux VPS’de gerçekçi bir 7 günlük yolculuktan geçeceksiniz — bugün gerçekten yeni bir sunucuya oturduysanız izleyeceğiniz aynı ilerleme. Sonunda, sadece komutları bilmeyeceksiniz. Her birinin ne zaman kullanılacağını bileceksiniz.


Gün 1: Bağlantı Kurma & Keşfetme

Sunucunuza bağlandınız. Terminal şöyle bir şey gösteriyor: root@vps:~#. Giriş yaptınız — ama neredesiniz? Burada ne var? Öğrenelim.

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

Her şey ssh ile başlar — Secure Shell. Bu, sizi yerel makinenizden uzak sunucuya götüren ağ geçidi komutudur.

ssh username@server-ip

Çoğu VPS sağlayıcısında, barındırma panelinizdeki 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 istenecek — yes yazın ve Enter tuşuna basın.

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

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

Herhangi bir şey yapmadan önce, hangi kullanıcı olarak giriş yaptığınızı doğrulayın.
whoami
root görürseniz, tüm güçlü yönetici olarak çalışıyorsunuz. Bu yeni bir VPS’de yaygındır, ancak bu aynı zamanda yazdığınız her komutun tam sistem erişimine sahip olduğu anlamına gelir — dikkat edin.

Bu sistemde kim olduğunuzu biliyorsunuz.

Adım 3: Konumunuzu “pwd” ile Bulun

pwd komutu — Print Working Directory — dosya sisteminde tam olarak nerede olduğunuzu söyler.
pwdYeni 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 “ana üs” olarak düşünün — yapacağınız her şeyin başlangıç noktası.

Nerede olduğunuzu biliyorsunuz.

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

Şimdi sunucunun etrafına bakalım. ls komutu, geçerli konumdaki dosya ve dizinleri listeler.
lsBoş bir çıktı, burada henüz hiçbir şey olmadığı anlamına gelir — bu yeni bir sunucu için normaldir. Ancak gerçek güç bayraklardan gelir. Şunu deneyin:

ls -laBu, nokta ile başlayanlar da dahil olmak üzere gizli dosyları ve ayrıntılı bilgileri görmenizi sağlar:

-l bayrağı uzun biçim (izinler, sahip, boyut, tarih) verir ve -a gizli dosyalar da dahil olmak üzere tüm dosyaları gösterir. ls -la komutunu sürekli kullanacaksınız.
✅ Geçerli dizindeki her şeyi görebilirsiniz.
Adım 5: “cd” ile Hareket Edin
cd komutu — Change Directory — dosya sisteminde nasıl gezineceğ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 -“ hilesi özellikle kullanışlıdır — son dizin değişikliğiniz için bir “geri al” gibidir.

Dosya sisteminde herhangi bir yere gidebilirsiniz.

Adım 6: “clear” ile Temizleyin

Birkaç komut çalıştırdıktan sonra, terminaliniz dağınık hale gelir. clear komutu ekranı temizler ve size yeni bir başlangıç verir.
clearPro ipucu: aynı efekt için Ctrl+L tuşlarına da basabilirsiniz — kas hafızası haline geldikten sonra daha hızlıdır.

Terminaliniz temiz ve sonraki komut için hazır.

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

Her komutun her bayrağını ezberlemek zorunda değilsiniz. man komutu — Manual — herhangi bir komutun yerleşik belgelerini açar.
man lsBu, ls için tam kılavuz sayfasını açar ve kullanılabilir her bayrağı, ne yaptığını ve örnekleri gösterir. Ok tuşları veya boşluk tuşu ile gezinin ve çı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 yanıtı vardır.

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

Adım 8: “history” ile Geçmişinizi İnceleyin

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 yararlı kısım: “!” ve ardından numarasını yazarak herhangi bir komutu yeniden çalıştırabilirsiniz.
!3Bu, komut numarası 3 (ls -la) komutunu yeniden çalıştırır. Uzun komutları yeniden yazmaktan sizi kurtarır — ve acele ettiğinizde yazım hatası yapmanızdan korur.

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


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

Nerede olduğunuzu ve nasıl hareket edeceğinizi biliyorsunuz. Şimdi bir şey 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, iç içe dizinleri tek seferde oluşturur — henüz mevcut olmayan tüm üst dizinleri de dahil ederek.

mkdir -p projects/myapp/logs

-p olmadan, projects‘i, sonra projects/myapp‘i, sonra projects/myapp/logs‘u ayrı ayrı oluşturmanız gerekir. 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.txtYeni dosyayı kontrol edin:

ls projects/myapp/
# logs  notes.txt

Dosya zaten varsa, touch bunun yerine 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 — dosyaları ve dizinleri çoğaltır.

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

Dizinler için -r bayrağına ihtiyacınız vardır (recursive), bu da dizinin içindeki her şeyi 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‘i aynı dizinde readme.txt olarak yeniden adlandırır. Bir dosyayı başka bir konuma taşımak için:

mv projects/myapp/readme.txt projects/

Dosyaları bir komutla 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‘yi (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ştirildiğinde, tüm dizin ağaçlarını sessizce siler. Geri alma yoktur. Enter tuşuna basmadan önce yolu iki kez kontrol edin. Asla rm -rf / çalıştırmayın — tüm dosya sisteminizi silmeye çalışacaktır.

Artık ihtiyaç duymadığınız dosyaları 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ştirildiğinde ortaya çıkar.

echo "Hello, server"

Hello, server

Bu çıktıyı “>” (üzerine yaz) veya “>>” (ekle) kullanarak bir dosyaya 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ğe dokunmadan sonuna ekler. Bu, Linux’un temel süper güçlerinden biri olan yönlendirmenin ilk tadıdır.
✅ Komut satırından doğrudan dosyalara metin yazabilirsiniz.
Adım 7: “cat” ile dosyaları okuyun
cat komutu — Concatenate — dosya içeriğini terminalde görüntüler.
cat projects/myapp/notes.txt

Küçük dosyalar için cat içeriği incelemenin en hızlı yoludur. Daha büyük dosyalar için less‘i isteyeceksiniz (kaydırmanıza izin verir), ancak cat hızlı kontroller için sizin gidişatınızdır.

Bir editör açmadan dosya içeriğini okuyabilirsiniz.

Adım 8: “nano” ile dosyaları düzenleyin

Bir dosyayı gerçekten değiştirmeniz gerektiğinde, nano en başlangıç 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ı: kaydetmek için Ctrl+O (sonra onaylamak için Enter), çıkmak için Ctrl+X, metin aramak için Ctrl+W. Düzenlemeye başlamak için ihtiyacınız olan tüm bunlar.

Ayrıca vim hakkında da duyacaksınız — daha güçlüdür ancak ünlü bir dik öğrenme eğrisine sahiptir. Şimdilik nano‘da kalın. Terminal ile rahat olduğunuzda daha sonra vim‘i keşfedebilirsiniz.

Sunucuda doğrudan dosyaları düzenleyebilirsiniz.


Gün 3: İhtiyacınız Olanı Bulma

Birkaç dizin arasında düzine dosya oluşturdunuz. Şimdi dün düzenlediğiniz dosyayı bulmanız gerekiyor. İşte nasıl yapılacağı.

Adım 1: “find” ile dosya arama

find komutu dosyaları ad, tür, boyut ve daha fazlasına göre arar.

find ./projects -name "*.txt"
Bu, /home altındaki her şeyde .txt ile biten dosyaları arar. Türe göre de arama yapabilirsiniz — find / -type f -name “config” tüm sistem genelinde “config” adlı tüm dosyaları bulur.
find kapsamlı ama büyük dosya sistemlerinde yavaş olabilir. Günlük aramalar için en güvenilir araçtır.
✅ Sistem üzerindeki herhangi bir dosyayı ada veya türe göre bulabilirsiniz.
Adım 2: “grep” ile dosyaların içinde arama
find dosyaları bulursa, grep içlerindeki 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 refusedgrep‘in daha da güçlü hale geldiği yer burası — pipe “|” operatörünü kullanarak diğer komutlarla birleştirin. Pipe, bir komutun çıktısını alır ve bir sonraki komuta giriş olarak iletir.
cat /var/log/syslog | grep "error"

Bu, önceki örnek ile aynı şeyi yapar, ancak pipe deseni komutları birbirine bağlamanıza izin verir. Bir kez anladığınızda pipe’ları sürekli kullanacaksınız. Örneğin, bugünün günlük girdilerinde hataları aramak için:

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

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

Herhangi bir dosya arasında herhangi bir metin deseni arayabilirsiniz.

Adım 3: “which” ile çalıştırılabilir konumları bulma

which komutu, bir komutun çalıştırılabilir dosyasının sistem üzerinde nerede bulunduğunu söyler.

which python3
/usr/bin/python3Bu, hangi sürümü çalıştırdığınızı bilmeniz gerektiğinde veya bir komut dosyasının bir çalıştırılabilir dosyaya tam yol ihtiyacı duyduğunda kullanışlıdır.
✅ Herhangi bir komutun çalıştırılabilir dosyasının tam olarak nerede depolandığını bilirsiniz.
Adım 4: “whereis” ile daha fazlasını bulma
whereis komutu which‘ten daha ileri gider — ikili dosyayı, kaynak kodu (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.gzwhich size bir yol verirken, whereis size tam resmi verir. Sadece çalıştırılabilir dosyaya ihtiyacınız olduğunda which kullanın. Bir komutla ilgili her şeyi görmek istediğinizde whereis kullanın.
✅ Sistem üzerinde bir komutun her bileşenini bulabilirsiniz.
Adım 5: “whatis” ile hızlı bir açıklama alın
whatis komutu herhangi bir komutun tek satırlık bir açıklamasını verir.
whatis grep
grep (1) - print lines that match patternsTam man sayfasını açmadan bir komutun ne yaptığını hatırlamak için en hızlı yoldur. Bunu hızlı bir sözlük araması olarak düşünün.
✅ Herhangi bir komutun amacının tek satırlık bir özetini alabilirsiniz.

    
        
        
        
        
        
        
        
        
            
                Ready
                to make it happen?
            
            
                Pick what fits your project            
        
        
            VPS
            Dedicated
        
        
    
        
    
Gün 4: Makinenizi Anlamak
Herhangi bir şey kurmadan önce, neyle çalıştığınızı bilmelisiniz. Ne kadar disk alanınız var? Ne kadar RAM’iniz var? Zaten neler çalışıyor?
Adım 1: “uname” ile sistem bilgisini 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: kernel adı, hostname, kernel sürümü, mimari ve işletim sistemi. Bir VPS’de, bu tam olarak hangi kernel’i çalıştırdığınızı ve 64-bit bir sistemde olup olmadığınızı söyler (neredeyse kesinlikle öylesiniz).
✅ Kernel sürümünüzü ve sistem mimarisini biliyorsunuz.
Adım 2: “df” ile disk alanını 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ı ham baytlar yerine GB ve MB cinsinden görüntüler. “/” kök bölümü satırına dikkat edin. %7 kullanıldığında, bu sunucunun bolca alanı var. Bu sayı hiçbir zaman %80’i geçerse, temizleme zamanı gelmiştir.
✅ Tam olarak ne kadar disk alanı kullanılabilir olduğunu biliyorsunuz.
Adım 3: “free” ile belleği kontrol edin
free komutu RAM kullanımınızı gösterir.
free -h
Yine, -h insan tarafından okunabilir çıktı verir. Buradaki anahtar sütun “available” — bu yeni uygulamalar için gerçekten boş bellektir. “Used” kernel’in önbelleğe alma için kullandığı belleği içerir ve gerekirse serbest bırakılabilir. 4GB RAM’li 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: “top” ile işlemleri izleyin
top komutu gerçek zamanlı işlem izlemesini gösterir — çalışan şeylerin ve her işlemin tükettiği kaynakların canlı bir görünümü.
top
top birkaç saniyede bir güncellenir. En önemli sütunlar PID (işlem kimliği), %CPU, %MEM ve COMMAND’dir. Sunucunuz yavaş hissettiğinde, top bakmanız gereken ilk yerdir.
💡 İPUCU: top‘tan çıkmak için q tuşuna basın. top çalışıyorsa ve nasıl durduracağınızı bilmiyorsanız, bu cevaptır.
✅ Çalışan işlemleri gerçek zamanlı olarak izleyebilirsiniz.
Adım 5: “ps” ile işlemlerin anlık görüntüsünü alın
ps komutu — Process Status — çalışan işlemlerin statik bir anlık görüntüsünü verir.
ps aux
aux bayrakları tüm kullanıcılardan tüm işlemleri ayrıntılı bilgilerle gösterir. Anahtar sütunlar: USER (işlemin sahibi), PID (işlem kimliği, kill ile kullanacağınız), %CPU ve %MEM (kaynak kullanımı) ve COMMAND (çalışan şey). Canlı bir görünüm yerine hızlı bir anlık görüntüye ihtiyacınız olduğunda ps kullanın.
✅ Çalışan her işlemin anlık görüntüsünü alabilirsiniz.
Adım 6: “cal” ile takvimi 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

Gerekli değildir, ancak terminalin sunucuları yönetmekten daha fazlasını yapabileceğinin güzel bir hatırlatmasıdır. Ayrıca oturumunuzdan ayrılmadan tarihi kontrol etmenin hızlı bir yoludur.

Terminalinizde doğrudan bir takvim görüntüleyebilirsiniz.

Adım 7: “date” ile tarihi kontrol edin

date komutu geçerli sistem tarihini ve saatini gösterir.

date
Wed Apr 15 14:32:01 UTC 2026Bu 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 saatine bağlıdır. Tarih yanlış görünüyorsa, herhangi bir şey kurmadan önce düzeltmek isteyeceksiniz.
✅ Sunucunuzun geçerli tarihini ve saatini biliyorsunuz.

Gün 5: Hizmetleri Yükleme ve Çalıştırma
Sunucunuz çalışıyor, spesifikasyonlarını 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
Herhangi bir şey yüklemeden önce paket deposu listelerinizi yenileyin.
sudo apt updateSonuç: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 kullanılabilir paketlerin listesini yeniler — hiçbir şey yüklemez. apt upgrade aslında 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 komutlarıdır.

Paket listeniz güncel ve yüklemeler için hazır.

Adım 2: “apt install” ile yazılım yükleyin

Şimdi bir şey yükleyelim. Nginx popüler bir web sunucusudur — kurulacak iyi bir ilk hizmettir.

sudo apt install nginx -ySonuç: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) ...Sunucunuzun gerçekten bir şey yapması buradan başlar. -y bayrağı yüklemeyi otomatik olarak onaylar, böylece yes yazmanız gerekmez. Nginx yüklenecek ve tipik olarak hemen çalışmaya başlayacaktır.
✅ Sunucunuza ilk hizmetinizi yüklediniz.
Adım 3: “systemctl” ile hizmetleri yönetin
systemctl komutu — Sistem Kontrolü — hizmetleri başlatmak, durdurmak ve yönetmek için kullanılır.
systemctl status nginxSonuç:● 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Önemli satır Active: active (running) — bu Nginx’in çalışır durumda olduğu 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 başlangıçta kaçırılan komuttur. start hizmeti şu anda ç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 istiyorsunuz.
✅ Sunucunuzdaki herhangi bir hizmeti kontrol edebilirsiniz.
Adım 4: “kill” ile işlemleri durdurun
Bazen bir işlemi manuel olarak sonlandırmanız gerekir. kill komutu bunu PID ile yapar.
kill 1234

Bu, işlem 1234’e bir sonlandırma sinyali gönderir ve onu düzgün bir şekilde kapatmasını ister. Yanıt vermezse, bunu zorlayabilirsiniz:

kill -9 1234

⚠️ UYARI: kill -9 zorla sonlandırmadır. İşlemin temizlenmesine izin vermez — durum kaydetme yok, bağlantıları düzgün bir şekilde kapatma yok. Bunu yalnızca normal kill işe yaramadığında kullanın.

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

Herhangi bir işlemi kimliğine göre sonlandırabilirssiniz.

Adım 5: “pkill” ile ada göre sonlandırın

PID’yi önce bulmak bazen gereksizdir. pkill komutu işlemleri ada göre sonlandırır.

pkill nginx

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

PID’lerini bilmeden işlemleri sonlandırabilirssiniz.

Adım 6: “wget” ile dosyaları indirin

wget komutu — Web Get — internetten dosyaları indirir.

wget https://example.com/file.zipSonuç örneği:--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ı geçerli dizininize indirir. Ayrıca wget -c ile kesintiye uğrayan indirmeleri sürdürmeyi destekler.
✅ Dosyaları doğrudan sunucunuza indirebilirssiniz.
Adım 7: “curl” ile veri aktarın
curl komutu — Client URL — wget‘ten daha çok yönlüdür. İndirmeler, API istekleri ve özel başlıklarla veri aktarımlarını işler.
curl -O https://example.com/file.zip

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

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

-s bayrağı sessizce çalışır, curl‘ü komut dosyası oluşturma ve API çağrıları için mükemmel hale getirir. wget basit indirmeler için harika olsa da, curl web hizmetleriyle etkileşim kurmak, API’leri test etmek veya özel HTTP başlıkları göndermek istediğinizde ulaşacağınız araçtır.

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


Gün 6: Güvenliği Sağlamak

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

📝 NOT: Kullanıcınızın bu komutları çalıştırabilmesi için sudo izinlerine ihtiyacı vardır. Ç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: “sudo” ile komutları güvenli şekilde ç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 sudo‘yu ilk kez 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 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 oturum açmadan yönetici komutlarını çalıştırabilirsiniz.

Adım 2: “chmod” ile dosya izinlerini 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 basamak okuma (4), yazma (2) ve yürütme (1) toplamıdır:

  • 755 anlamına gelir: 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 anlamına gelir: 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, sayıları hatırlamadan herhangi bir dosyayı çalıştırılabilir hale getirmenin hızlı bir yoludur.

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

Adım 3: “chown” ile dosya sahipliğini değiştirin

chown komutu — Change Owner — bir dosyaya kimin sahip olduğunu ayarlar.

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

Bu, sahibi www-data‘ya ve grubu www-data‘ya değiştirir. Web sunucuları ayarlanırken yaygın olarak kullanılır — web sunucusu işleminin sunduğu dosyalara sahip olması gerekir. Format user:group‘tir ve sahipliği değiştirmek için neredeyse her zaman sudo‘ya ihtiyacınız olacaktır.

Dosya sahipliğini herhangi bir kullanıcıya veya gruba atayabilirsiniz.

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

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

passwd usernameYeni bir VPS’de, varsayılan şifreyi değiştirmek ilk işlemlerinizden biri olmalıdır. Şifresini değiştirmek istediğiniz kullanıcı olarak oturum açtıysanız, passwd‘i kullanıcı adı olmadan çalıştırın.
✅ Sistemdeki herhangi bir kullanıcının şifresini güncelleyebilirsiniz.
Adım 5: “useradd” ile yeni kullanıcılar oluşturun
useradd komutu yeni bir kullanıcı hesabı oluşturur.
sudo useradd -m newuser

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

sudo passwd newuser

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

Adım 6: “su” ile kullanıcıları değiştirin

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

su - newuser
whoami
newuser“-“ bayrağı (veya –login) önemlidir — yeni kullanıcının ortamını yükler, yol ve kabuk yapılandırması dahil. Olmadan, kullanıcıları değiştirirsiniz ancak eski kullanıcının ortamını tutarsınız, bu da kafa karıştırıcı davranışlara yol açar.
✅ Sunucudaki kullanıcı hesapları arasında geçiş yapabilirsiniz.
Adım 7: “ufw” ile güvenlik duvarını ayarlayın
ufw komutu — Uncomplicated Firewall — Ubuntu’da sunucunuzun güvenlik duvarını yönetmenin en basit yoludur.
Önce, varsayılan ilkeyi tüm gelen bağlantıları reddetmek için 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: sudo ufw enable‘den önce her zaman sudo ufw allow 22/tcp‘yi çalıştırın. SSH’ye izin vermeden güvenlik duvarını etkinleştirirseniz, kendinizi sunucudan kilitlersiniz. Tek seçeneğiniz, barındırma sağlayıcınızın konsolundan sunucuya 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 startupDurumu istediğiniz zaman kontrol edebilirsiniz:
sudo ufw status
Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       AnywhereSunucunuz artık yalnızca port 22’de gelen SSH bağlantılarını kabul eder. Diğer her şey engellenir. Daha sonra Nginx’i 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ı tarafından korunur.

Gün 7: Ağ Kontrolleri ve Bitirme
Sunucunuz kurulmuş, güvenli ve çalışıyor. Bitirmeden önce, her şeyin dışarıdan çalışıp çalışmadığını doğrulayalım ve düzgün şekilde kapatmayı öğrenelim.
Adım 1: “ping” ile bağlantıyı test edin
ping komutu, sunucunuzun ağdaki diğer makinelere ulaşıp ulaşamadığını test eder.
ping -c 4 8.8.8.8-c 4 bayrağı ping’i 4 paket ile sınırlandırır. Olmadan, ping Ctrl+C tuşlarına basana kadar sonsuza kadar çalışır. Sonundaki istatistikler her şeyi söyler: 4 paket gönderildi, 4 alındı, %0 kayıp. Sunucunuzun ağı çalışıyor.
✅ Sunucunuzun çalışan ağ bağlantısını doğruladınız.
Adım 2: “ip” ile ağ arayüzlerini kontrol edin
ip komutu sunucunuzun ağ yapılandırmasını gösterir.
ip addrip komutu kullanımdan kaldırılan ifconfig‘in yerini alır. Çıktı, loopback arayüzünüzü (lo, her zaman 127.0.0.1) ve ana ağ arayüzünüzü (eth0 bu durumda) 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 adrestir.
✅ Sunucunuzun IP adreslerini ve ağ arayüzlerini görebilirsiniz.
Adım 3: “ln” ile dosya bağlantıları oluşturun
ln komutu dosyalar arasında bağlantılar oluşturur — temelde kısayollar.
ln -s /var/www/html /home/user/webroot

Bu, /var/www/html‘ye işaret eden /home/user/webroot‘ta sembolik bir 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.

Sistemin herhangi bir yerine dosya ve dizinlere kısayollar oluşturabilirsiniz.

Adım 4: “shutdown” ile güvenli şekilde kapatın

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

sudo shutdown -h now

-h bayrağı “halt” anlamına gelir — her şeyi durdurun ve kapatın. now hemen anlamına gelir. Ancak bir kapatmayı da planlayabilirsiniz:

sudo shutdown -h +5

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

sudo shutdown -c

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

Sunucuyu güvenli bir şekilde, hemen veya zamanlanmış olarak kapatabilirsiniz.

Adım 5: “reboot” ile yeniden başlatın

reboot komutu sunucunuzu yeniden başlatır.

sudo reboot

Bu, shutdown -r now‘a eşdeğerdir — -r bayrağı “halt” yerine “restart” anlamına gelir. Bunu kernel 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ırada Ne Var

Yedi gün önce, bir sunucuya SSH ile bağlandıktan sonra boş bir terminale bakıyordunuz ve o sunucuyu nasıl kullanacağınızı bilmiyordunuz. Şimdi dosya sisteminde gezinebilir, dosyaları oluşturabilir ve yönetebilir, sistemde herhangi bir şey arayabilir, sunucunuzun durumunu 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şlangıçtan kapatılışa 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 — onlar hakkında okumaktan değil.

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

Bu komutları kendi sunucunuzda kullanmaya hazırsanız, AlexHost uygun fiyatlı Linux VPS planları sunmaktadır anında kurulum ve 7/24 destek ile — risk olmadan pratik yapmak için harika bir yer.


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

Bu kılavuzdaki her komut tek bir yerde. Bu sayfayı yer imlerine ekleyin.

 

KomutAnlamıNe Yapar
ssh
Secure ShellUzak 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 komutun kılavuz sayfasını aç
history
HistoryDaha önce yürütülen 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
EchoMetni yazdır veya dosyalara yaz
cat
ConcatenateDosya içeriğini görüntüle
nano
NanoTerminal tabanlı metin editörü
find
FindDosyaları ad, tür veya özniteliklere göre ara
grep
Global Regular Expression PrintDosyalarda metin desenlerini ara
which
WhichKomutun çalıştırılabilir yolunu bulun
whereis
Where IsKomutun ikili, kaynak ve kılavuzunu bulun
whatis
What IsKomutun tek 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ı işlem izleme
ps
Process StatusÇalışan işlemlerin anlık görüntüsü
cal
CalendarTakvim 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
KillPID ile bir işlemi sonlandır
pkill
Process Killİşlemleri ada göre sonlandır
wget
Web Getİnternetten dosya indir
curl
Client URLURL’lerden veri aktar
sudo
Superuser DoKomutları yükseltilmiş ayrıcalıklarla çalıştır
chmod
Change ModeDosya izinlerini değiştir
chown
Change OwnerDosya sahipliğini değiştir
passwd
PasswordKullanıcı parolalarını 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 sabit)
shutdown
ShutdownSunucuyu güvenli bir şekilde kapat
reboot
RebootSunucuyu yeniden başlat