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.
| Terim | Anlamı |
|---|---|
| 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?

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/logSü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

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.txtDosya 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, serverBu çı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

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 30Gerekli 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 -yCentOS 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 1234Bu, 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

📝 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/webrootBu, /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.
| Komut | Anlamı | Ne Yapar |
|---|---|---|
| Secure Shell | Uzak sunucuya güvenli bir şekilde bağlanın |
| Who Am I | Geçerli kullanıcı adını göster |
| Print Working Directory | Geçerli dizin yolunu göster |
| List | Dosya ve dizinleri listele |
| Change Directory | Dizinler arasında gezin |
| Clear | Terminal ekranını temizle |
| Manual | Herhangi bir komutun kılavuz sayfasını aç |
| History | Daha önce yürütülen komutları göster |
| Make Directory | Yeni dizinler oluştur |
| Touch | Boş dosyalar oluştur veya zaman damgalarını güncelle |
| Copy | Dosya ve dizinleri kopyala |
| Move | Dosya ve dizinleri taşı veya yeniden adlandır |
| Remove | Dosya ve dizinleri sil |
| Echo | Metni yazdır veya dosyalara yaz |
| Concatenate | Dosya içeriğini görüntüle |
| Nano | Terminal tabanlı metin editörü |
| Find | Dosyaları ad, tür veya özniteliklere göre ara |
| Global Regular Expression Print | Dosyalarda metin desenlerini ara |
| Which | Komutun çalıştırılabilir yolunu bulun |
| Where Is | Komutun ikili, kaynak ve kılavuzunu bulun |
| What Is | Komutun tek satırlık açıklamasını al |
| Unix Name | Sistem bilgilerini görüntüle |
| Disk Free | Disk alanı kullanımını göster |
| Free | Bellek/RAM kullanımını göster |
| Top | Gerçek zamanlı işlem izleme |
| Process Status | Çalışan işlemlerin anlık görüntüsü |
| Calendar | Takvim görüntüle |
| Date | Sistem tarih ve saatini göster veya ayarla |
| APT Update | Paket deposu listelerini yenile |
| APT Install | Yazılım paketlerini yükle |
| System Control | Hizmetleri başlat, durdur ve yönet |
| Kill | PID ile bir işlemi sonlandır |
| Process Kill | İşlemleri ada göre sonlandır |
| Web Get | İnternetten dosya indir |
| Client URL | URL’lerden veri aktar |
| Superuser Do | Komutları yükseltilmiş ayrıcalıklarla çalıştır |
| Change Mode | Dosya izinlerini değiştir |
| Change Owner | Dosya sahipliğini değiştir |
| Password | Kullanıcı parolalarını değiştir |
| User Add | Yeni bir kullanıcı hesabı oluştur |
| Switch User | Başka bir kullanıcıya geç |
| Uncomplicated Firewall | Sunucu güvenlik duvarını yönet |
| Ping | Ağ bağlantısını test et |
| IP | Ağ arayüzlerini ve adreslerini göster |
| Link | Dosya bağlantıları oluştur (sembolik veya sabit) |
| Shutdown | Sunucuyu güvenli bir şekilde kapat |
| Reboot | Sunucuyu yeniden başlat |
tasarruf edin