LINUX TRAINER
SIMULATOR TERMINAL + MISI TERPANDU + KUIS - BELAJAR DENGAN MENGETIK, BUKAN MEMBACA SAJA
TERMINAL SANDBOX
PANEL MISI
LANGKAH DICEK OTOMATIS SAAT KAMU MENGETIK
DAFTAR MISI
8 MISI - TOTAL 480 XP. SELESAIKAN BERURUTAN: SETIAP MISI MEMAKAI SKILL MISI SEBELUMNYA.
KUIS CEPAT
10 SOAL ACAK - 15 DETIK PER SOAL - TOMBOL 1-4 UNTUK MENJAWAB
MATERI LINUX
8 MODUL - BACA SEBELUM / SESUDAH MISI & KUIS. KLIK UNTUK MEMBUKA.
Setiap baris terminal punya pola yang sama. Dekonstruksi contoh: grep -i error /var/log/syslog
- Prompt -
tkj@srv-tkj01:~$artinya: user tkj di host srv-tkj01, lokasi ~ (home), $ = user biasa (# = root). Baca prompt dulu sebelum mengetik apa pun. - Command -
grep: nama program yang dicari di $PATH. - Options -
-i: mengubah perilaku (short). Bentuk long:--ignore-case. Digabung:-in. - Arguments -
error(pola) dan/var/log/syslog(target): data yang dioperasikan.
Urutan umum: command -options arguments. Sebagian besar tool fleksibel, tapi konsisten lebih mudah dibaca.
Dokumentasi bawaan: man ls (manual lengkap, q untuk keluar, / untuk cari) dan ls --help (ringkas). Ini sumber paling akurat karena ikut versi sistemmu - tutorial internet bisa basi.
Exit code: setiap perintah mengembalikan angka status. 0 = sukses, selain 0 = gagal dengan arti berbeda. Cek dengan echo $? - ini fondasi operator && dan scripting.
Fitur shell yang wajib dibiasakan: Tab (auto-complete perintah & path - menurunkan typo drastis), panah atas / history (riwayat), Ctrl+R (cari balik), Ctrl+C (batalkan baris), Ctrl+L (bersihkan layar).
Linux adalah satu pohon besar yang berakar di / (root directory). Tidak ada C: atau D: - semua partisi dan drive "digantung" (mount) ke sebuah folder.
| NOTASI | ARTI | CONTOH |
|---|---|---|
| /etc/nginx | PATH ABSOLUT - dari akar, selalu sama | cd /etc/nginx |
| lab/data | PATH RELATIF - dari posisi sekarang | cd lab/data |
| . | Direktori sekarang | cp x ./ |
| .. | Satu level di atas | cd .. |
| ~ | Home user (=/home/tkj) | cd ~ atau cd |
| - | Direktori sebelumnya | cd - |
File tersembunyi = nama dimulai titik: .bashrc. ls biasa tidak menampilkannya - pakai ls -a. Banyak konfigurasi ada di file titik.
Jurusan cepat: tersesat? pwd. Ingin pulang? cd tanpa argumen. Ingin lihat isi sebelum pindah? ls /etc tanpa perlu cd.
Peta FHS ringkas untuk pekerjaan harian: /etc konfigurasi, /home data user, /var/log log, /var/www web, /tmp sementara, /opt aplikasi pihak ketiga, /dev perangkat.
Setiap proses punya 3 aliran: stdin (0, input), stdout (1, output normal), stderr (2, pesan error). Shell bisa "menyambung kabel" aliran ini - di sinilah kekuatan sejati terminal.
| SINTAKS | EFEK |
|---|---|
| cmd > file | stdout ke file - TIMPA isi lama |
| cmd >> file | stdout ke file - TAMBAH di akhir |
| cmd 2> err.log | stderr ke file; 2>/dev/null = buang error |
| cmd &> all.log | stdout + stderr sekaligus |
| cmd1 | cmd2 | PIPE: stdout cmd1 jadi stdin cmd2 |
| cmd1 && cmd2 | cmd2 jalan HANYA jika cmd1 sukses |
| cmd1 || cmd2 | cmd2 jalan HANYA jika cmd1 gagal |
Jebakan klasik: > menimpa tanpa konfirmasi. echo log > data.txt menghapus isi lama data.txt selamanya. Kalau maksudnya menambah, wajib >>.
Pipeline analisis log - pola yang dipakai teknisi tiap hari:
grep -i failed /var/log/auth.log | wc -l -> hitung upaya login gagal.
cat /var/log/nginx/access.log | cut -d' ' -f1 | sort | uniq -c | sort -rn | head -5 -> 5 IP paling sering mengakses. Baca dari kiri: ambil -> potong kolom IP -> urutkan -> kelompokkan -> hitung -> urut terbalik -> ambil 5.
Latih langsung di simulator: M03 menuntut pipeline nyata.
Tiga izin untuk tiga kelompok: r baca=4, w tulis=2, x eksekusi/masuk=1, untuk owner / group / others. Membaca ls -l: -rwxr-xr-- -> owner rwx(7), group r-x(5), others r--(4) = 754.
Untuk direktori artinya berbeda: x = boleh masuk (cd); tanpa x, r pun tak berguna. Ini penyebab "Permission denied" paling sering dipelajari dengan cara sulit.
Kombinasi standar industri:
| MODE | UNTUK | ALASAN |
|---|---|---|
| 644 | File biasa / konfigurasi / HTML | Owner boleh tulis, lainnya hanya baca |
| 755 | Folder & script (.sh) | Owner penuh; lainnya baca + masuk/eksekusi |
| 600 | File rahasia / private key | Hanya owner - bahkan grup tak bisa baca |
| 700 | Folder pribadi | Privasi penuh dari user lain |
chmod dua gaya: numerik chmod 755 deploy.sh (set total) dan simbolik chmod +x deploy.sh, chmod u+x,g-w file (ubah sebagian). Numerik untuk standar, simbolik untuk penyesuaian cepat.
chown mengganti pemilik - butuh root: sudo chown www-data:www-data /var/www/site. Workflow web server nyata: file milik www-data (atau deploy user), folder 755, file 644 - BUKAN 777. 777 membuat siapa pun bisa menyuntik kode ke situsmu.
Catatan simulator: di Linux asli, root TETAP bisa membaca file 600 - permission membatasi user biasa, tidak membatasi root.
Setiap proses berjalan sebagai sebuah user - dan permission memeriksa identitas itu. UID 0 = root (tak terbatas), 1-999 = akun layanan, 1000+ = manusia.
Alur membuat user standar (Debian/Ubuntu):
sudo useradd -m -s /bin/bash siswa01- low level; -m buat home, -s set shellsudo passwd siswa01- wajib, useradd TIDAK membuat passwordid siswa01- verifikasi UID/GID/grup
Memberi hak admin: sudo usermod -aG sudo siswa01. Hafalkan bahayanya: -aG = TAMBAH ke grup. Tanpa -a (hanya -G), daftar grup sekunder user TERTIMPA semua - kesalahan klasik yang mengunci orang dari sudo.
Filsafat sudo: root dipakai seperlunya, bukan sebagai identitas harian. Keunggulan: jejak audit (siapa menjalankan apa tercatat di /var/log/auth.log), salah ketik tidak selalu fatal, dan aturan bisa dibatasi per perintah lewat visudo.
Perintah pendamping: whoami, w (siapa online), last (riwayat login), passwd -l user (kunci akun), userdel -r user (hapus + home). Coba semuanya di simulator M05.
Program yang berjalan = proses dengan PID unik. ps aux memotret semua; top / htop memantau langsung (P=sort CPU, M=sort RAM). Kolom STAT penting: R jalan, S tidur, D macet I/O (indikasi disk lambat), Z zombie.
Menghentikan proses dengan sopan: kill PID mengirim SIGTERM (15) - proses sempat menutup file dan menyimpan data. kill -9 PID (SIGKILL) hanya darurat: tanpa kesempatan merapikan diri, risiko data rusak. Urutan: 15 -> tunggu -> cek -> 9.
Layanan (service) = proses jangka panjang yang dikelola systemd: web server, SSH, database. Perintah inti:
| PERINTAH | EFEK | KAPAN |
|---|---|---|
| systemctl status nginx | Lihat kondisi (aman, tanpa root) | Langkah pertama SELALU |
| systemctl start nginx | Jalankan sekarang (perlu sudo) | Setelah install/konfigurasi |
| systemctl restart nginx | Stop + start (koneksi putus sejenak) | Setelah edit konfigurasi |
| systemctl reload nginx | Baca ulang config tanpa putus | Server produksi yang hidup |
| systemctl enable nginx | Otomatis saat boot (TIDAK menjalankan) | Agar hidup setelah reboot |
Ritual debugging layanan - hafalkan urutan ini: 1) systemctl status (hidup atau mati?), 2) journalctl -u nginx -n 50 (pesan error terakhir), 3) perbaiki sebab, 4) restart, 5) uji curl localhost, 6) baca log akses/error lagi. Coba ritual ini di M07 dan M08.
Keunggulan teknisi Linux: semua alat diagnosa jaringan ada di terminal, tanpa GUI. Alur baku mengisolasi masalah dari bawah ke atas:
| LANGKAH | PERINTAH | MENJAWAB PERTANYAAN |
|---|---|---|
| 1 - INTERFACE | ip a | Apakah ada IP? State UP? |
| 2 - LAN | ping 192.168.1.1 | Apakah gateway terjangkau? |
| 3 - INTERNET | ping -c 4 8.8.8.8 | Apakah rute keluar hidup? |
| 4 - DNS | dig google.com | Apakah nama domain terjawab? |
| 5 - APLIKASI | curl -I http://host | Apakah layanannya merespons? |
Berhenti di langkah yang pertama gagal = lokasi masalahnya. Contoh: ping 8.8.8.8 sukses tapi dig gagal -> masalah 100% di DNS, bukan kabel.
ip r menunjukkan gateway (baris "default via"). ss -tulpn adalah alat audit wajib: daftar port yang terbuka + proses pemiliknya - port asing = pertanyaan keamanan. curl -I menampilkan status HTTP: 200 ok, 301 pindah, 404 tak ada, 503 layanan down.
Port yang wajib hafal: 22 SSH, 53 DNS, 67/68 DHCP, 80 HTTP, 443 HTTPS, 3389 RDP.
Ini rangkaian kerja yang ditiru BOSS MISSION (M08) di simulator. Urutannya logika dan selalu sama - hafalkan alurnya, detailnya menyesuaikan distro:
- 1. Pasang paket:
sudo apt update && sudo apt install nginx- update dulu agar index segar. - 2. Siapkan document root:
sudo mkdir -p /var/www/tkj- -p membuat bertingkat tanpa error. - 3. Tulis konten:
echo "<h1>TKJ HEBAT</h1>" | sudo tee /var/www/tkj/index.html(tee menulis file sebagai root; di simulator cukup echo + >). - 4. Rapikan permission: file 644, folder 755, pemilik konsisten (www-data atau deploy user).
- 5. Arahkan konfigurasi nginx ke root /var/www/tkj lalu
sudo nginx -t(uji sintaks) dansudo systemctl restart nginx. - 6. Aktifkan saat boot:
sudo systemctl enable nginx. - 7. Uji dari sisi klien:
curl -I localhostharus 200; buka isi dengancurl localhost. - 8. Verifikasi bukti:
tail /var/log/nginx/access.log- permintaan curl tadi tercatat. Log = dokumen resmi bahwa layanan hidup.
Pola mentalnya: SIAPKAN -> IZINKAN -> NYALAKAN -> UJI -> BUKTIKAN. Pola ini berlaku juga untuk SSH, Samba, DNS server, dan hampir semua layanan yang akan kamu sentuh di dunia kerja.
TIPS TERMINAL
10 TIPS BERJENJANG: BASIC -> INTER -> PRO. URUTAN MENGIKUTI ALUR LATIHAN.
FAQ TRAINER
10 PERTANYAAN YANG PALING SERING MUNCUL DI KELAS & LAB TKJ.
Cheat sheet = kamus referensi (baca, cari, salin). Trainer = ruang latihan (ketik, jalankan, diverifikasi). Urutan belajar yang benar: baca materi di sini -> praktik misi di trainer -> uji hafalan di KUIS -> gunakan cheat sheet saat lupa flag. Keduanya saling melengkapi, bukan duplikat.
Kuis mengambil 10 soal acak dari 32 bank soal yang mencakup 7 kategori: navigasi, teks, permission, user, jaringan, layanan, dan shell. Setiap soal punya 4 pilihan dan timer 15 detik - waktu habis dihitung salah. Skor = jumlah benar (0-10). Skor 10 membuka gelar ROOT MASTER KUIS dan tersimpan sebagai rekor. Pembahasan singkat selalu muncul setelah menjawab - itu bagian belajarnya, bukan hanya angkanya.
Tidak 100% - beberapa output disederhanakan (mis. ping, ps, apt) dan rentang perintah terbatas pada yang relevan untuk pembelajaran. Yang DIPERTAHANKAN identik adalah perilaku inti: path resolution, permission, redirection, pipe, sudo, dan pola error. Tujuannya membangun intuisi, bukan menggantikan sistem asli.
VM butuh install + spesifikasi RAM; simulator jalan di browser kapan saja termasuk HP sekolah. Lebih penting: di sandbox kamu berani EKSPERIMEN - rm, chmod asal, pipeline gagal - tanpa takut rusak. Rasa berani itulah yang mempercepat belajar. Setelah 8 misi lancar, pindah ke VirtualBox untuk pengalaman sistem penuh.
Karena di Linux asli memang begitu: mengganti pemilik file (chown), membuat user, mengatur layanan, dan install paket adalah aksi administratif yang hanya boleh root. Simulator meniru aturan ini agar kebiasaan yang terbentuk benar. Tanpa sudo kamu akan melihat error yang sama seperti di server sungguhan.
Cek dua hal: 1) ketik help untuk melihat daftar perintah yang didukung simulator - belum semua perintah Linux ada di sini; 2) periksa ejaan, Linux case-sensitive (LS bukan ls). Jika perintahnya memang belum didukung, latih konsepnya lewat perintah padanan yang tersedia lalu coba aslinya di VM.
Jangan hafal daftar - hafalkan MAKNYA: l = long (detail), a = all (termasuk tersembunyi), h = human (ukuran manusiawi), r = reverse, n = number. Karena singkatan kata Inggris, kamu "menebak dengan benar". Lalu kunci dengan pengulangan: jalankan ls -lah tiap sesi latihan dan sering-sering kuis - soal flag sering muncul.
Tiga langkah: 1) Ulangi BOSS MISSION tanpa melihat hint - target di bawah 20 perintah; 2) Pasang Ubuntu di VirtualBox dan ulangi seluruh workflow deploy di sana; 3) Ambil proyek nyata: web server untuk lab, share file Samba, atau SSH hardening. Setelah itu siapkan diri untuk sertifikasi (materi jaringan di tool lain di situs ini).
Karena permission membatasi user BIASA, bukan root. Root melewati semua pemeriksaan izin (itulah makna UID 0). Konsekuensi praktisnya: 600 melindungi file dari teman satu lab, TIDAK dari admin. Dan sebaliknya: jangan pernah memberi akses sudo pada orang yang belum kamu percaya 100%.
Ya - semua tersimpan di localStorage perangkat ini (prefix abr_tr_): misi selesai, XP, jumlah perintah diketik, skor kuis terbaik, dan jumlah ronde kuis. Tidak terkirim ke server mana pun. Catatan: menghapus data browser / clear site data akan menghapus progres; gunakan browser yang sama agar XP tetap terkumpul.