Hacknet tarzı interaktif Linux öğrenme oyunu
Özellikler • Kurulum • Kullanım • Görevler • Geliştirme
Linux Command Quest, terminal tabanlı interaktif bir Linux öğrenme oyunudur. Güvenli bir sanal ortamda Linux komutlarını pratik yaparak öğrenirsiniz. rm -rf / gibi tehlikeli komutları bile güvenle deneyebilirsiniz!
📸 Ekran Görüntüleri
┌─────────────────────────────────────────────────────────────────────────────┐
│ 🐧 LINUX QUEST │ Temel Komutlar Puan: 30 │ 🏆 50 │ 💡 3/3 │
├──────────────────────────────┬──────────────────────────────────────────────┤
│ ┌──────────────────────────┐ │ ┌──────────────────────────────────────────┐ │
│ │ 📋 GÖREVLER │ │ │ TERMİNAL │ │
│ ├──────────────────────────┤ │ ├──────────────────────────────────────────┤ │
│ │ ✓ Mevcut dizini göster │ │ │ │ │
│ │ ✓ Dizin içeriğini listele│ │ │ user@quest:~$ pwd │ │
│ │ ▶ Gizli dosyaları göster │ │ │ /home/user │ │
│ │ ○ Documents'a git │ │ │ │ │
│ │ ○ Üst dizine çık │ │ │ ✓ DOĞRU! +10 puan │ │
│ │ ○ Ev dizinine dön │ │ │ │ │
│ │ │ │ │ user@quest:~$ ls │ │
│ ├──────────────────────────┤ │ │ Documents Downloads Music Pictures │ │
│ │ ⌨ KISAYOLLAR │ │ │ │ │
│ │ F1 Yardım │ │ │ │ │
│ │ F2 İstatistik │ │ │ │ │
│ │ Tab Tamamla │ │ │ │ │
│ └──────────────────────────┘ │ └──────────────────────────────────────────┘ │
├──────────────────────────────┴──────────────────────────────────────────────┤
│ [▓▓▓░░░░░░░] 30% │ F1: Yardım │ F2: Stats │ F3: Başarılar │ ESC: Menü │
└─────────────────────────────────────────────────────────────────────────────┘
- Sanal dosya sistemi - gerçek sisteminize dokunmaz
- Tehlikeli komutları güvenle deneyebilirsiniz
rm -rf /bile simüle edilir!
- 8 görev paketi (Eğitim + Hacker Eğitimi)
- 49 interaktif görev
- 25+ Linux komutu
- Türkçe açıklamalar ve ipuçları
- Akıllı yardım sistemi (F1)
- 44 başarı kazanılabilir
- İstatistik takibi (F2)
- Başarı galerisi (F3)
- Puan ve combo sistemi
- Hacknet tarzı terminal estetiği
- 5 farklı renk teması (Matrix, Cyberpunk, Retro, Ocean, Mono)
- Boot animasyonu
- Profil özelleştirme (F4)
- Komut geçmişi (↑/↓ tuşları)
- Tab ile otomatik tamamlama
- Pipe ve redirect desteği (
|,>,>>) - $HOME ve $USER değişken desteği
- Save/Load sistemi
- İşletim Sistemi: Linux (Ubuntu, Debian, Fedora, Arch, vb.)
- Python: 3.10 veya üstü
- Terminal: Minimum 80x24, önerilen 120x35
- Bağımlılık: Yok! (Sadece Python standart kütüphanesi)
# Depoyu klonla
git clone https://github.com/alibedirhan/linux-command-quest.git
cd linux-command-quest
# İzinleri ayarla
chmod +x play.sh
# Başlat!
./play.sh# Doğrudan Python ile
python3 -m src.main
# Farklı tema ile
./play.sh --theme cyberpunk
# Boot animasyonu olmadan
./play.sh --no-boot
# Özel kullanıcı adı
./play.sh --user ali| Tuş | İşlev |
|---|---|
F1 |
Akıllı Yardım (ipuçları) |
F2 |
İstatistikler |
F3 |
Başarı Galerisi |
Tab |
Otomatik tamamlama |
↑ / ↓ |
Komut geçmişi |
Ctrl+H |
Hızlı ipucu |
Ctrl+R |
Görevi sıfırla |
ESC |
Duraklatma menüsü |
| Tuş | İşlev |
|---|---|
F2 |
İstatistikler |
F3 |
Başarılar |
F4 |
Profil düzenle |
Q |
Çıkış |
| Kategori | Komutlar |
|---|---|
| Navigasyon | pwd, cd, ls |
| Dosya İşlemleri | touch, mkdir, rm, rmdir, cp, mv, find |
| Metin İşleme | cat, echo, head, tail, grep, wc |
| Sistem | clear, whoami, hostname, date, uname, help, history |
| # | Görev | Zorluk | Açıklama |
|---|---|---|---|
| 1 | Temel Komutlar | Eğitim | pwd, ls, cd komutlarını öğren |
| 2 | Dosya İşlemleri | Kolay | Dosya ve klasör oluşturma, silme |
| 3 | Sistem Gezisi | Kolay | Linux dosya sistemi yapısını keşfet |
| 4 | Metin İşleme | Orta | Dosya içeriği okuma ve metin işleme |
| 5 | Tehlike Bölgesi | Orta |
| # | Görev | Zorluk | Açıklama |
|---|---|---|---|
| 1 | Sistem Keşfi | Orta | whoami, hostname, /etc/passwd |
| 2 | Log Analizi | Orta | grep, tail, log dosyaları |
| 3 | Dosya Avı | Zor | Gizli dosyalar, find, echo > |
Ayarlar menüsünden veya komut satırından tema değiştirin:
# Matrix (Varsayılan) - Klasik yeşil hacker teması
./play.sh --theme matrix
# Cyberpunk - Neon mavi/pembe
./play.sh --theme cyberpunk
# Retro - Amber terminal
./play.sh --theme retro
# Ocean - Mavi tonları
./play.sh --theme ocean
# Mono - Siyah/Beyaz
./play.sh --theme monolinux-command-quest/
├── src/
│ ├── core/ # Çekirdek sistemler
│ │ ├── game.py # Ana oyun döngüsü
│ │ ├── colors.py # Renk ve tema yönetimi
│ │ ├── achievements.py # Başarı sistemi
│ │ └── audio.py # Ses sistemi
│ │
│ ├── simulation/ # Sanal Linux
│ │ ├── filesystem.py # Sanal dosya sistemi
│ │ ├── shell.py # Komut yorumlayıcı
│ │ └── commands/ # Komut implementasyonları
│ │
│ ├── missions/ # Görev sistemi
│ │ └── missions.py # 8 görev paketi, 49 task
│ │
│ └── ui/ # Arayüz
│ └── widgets.py # Panel ve widget'lar
│
├── tests/ # Test dosyaları (116 test)
├── play.sh # Başlatıcı script
├── pyproject.toml # Proje yapılandırması
└── README.md # Bu dosya
# Tüm testleri çalıştır
python3 -m pytest
# Detaylı çıktı
python3 -m pytest -v
# Belirli test dosyası
python3 -m pytest tests/test_filesystem.pyfrom .base import BaseCommand, CommandResult, register_command
@register_command
class MyCommand(BaseCommand):
name = "mycommand"
help_short = "Kısa açıklama"
usage = "mycommand [argümanlar]"
def execute(self, args: list[str]) -> CommandResult:
return CommandResult.ok("Çıktı")src/missions/missions.py dosyasına:
self._missions["new_mission"] = Mission(
id="new_mission",
name="Yeni Görev",
description="Açıklama",
difficulty=Difficulty.MEDIUM,
category="tutorial",
tasks=[
Task(
id="task1",
description="Görev açıklaması",
hint="İpucu",
accepted_commands=["komut"],
),
],
)- Fork yapın
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Değişikliklerinizi commit edin (
git commit -m 'Add amazing feature') - Branch'i push edin (
git push origin feature/amazing-feature) - Pull Request açın
MIT License - Detaylar için LICENSE dosyasına bakın.
Ali Bedirhan
- YouTube: @ali_bedirhan
- GitHub: @alibedirhan
⭐ Bu projeyi beğendiyseniz yıldız vermeyi unutmayın!
Linux öğrenmeye başla! 🐧