Roadmap

Cara belajar Linux dari nol: rencana dari perintah pertama sampai administrasi server

Diperbarui: · Skillaria.Top

Belajar Linux dari nol paling mudah dilakukan per lapisan: mulai dari terminal dan sistem berkas, lalu pengguna dan izin, skrip Bash, paket, proses dan systemd, dan setelah itu disk, log, jaringan, SSH, serta keamanan server. Setiap tahap membutuhkan latihan di mesin virtual atau VPS murah sendiri, dan hasil akhirnya adalah server yang Anda pasang dan amankan sendiri dengan layanan yang berjalan.

Belajar Linux dari nol sebenarnya lebih mudah daripada kelihatannya, asalkan urutannya benar dan langsung dipraktikkan. Kesalahan terbesar pemula adalah membaca tentang perintah tanpa mengetiknya, atau melompat ke Docker dan Kubernetes tanpa memahami apa itu proses dan izin akses. Berikut rencana sembilan tahap: apa yang dipelajari, apa yang dipraktikkan, dan bagaimana mengetahui bahwa sebuah tahap sudah selesai.

Patokan waktunya dua sampai empat bulan dengan belajar satu jam per hari, tetapi kecepatan setiap orang berbeda. Yang lebih penting dari kecepatan adalah bahwa setelah setiap tahap Anda bisa melakukan sesuatu dengan tangan sendiri.

Tahap 0. Siapkan lingkungan

Linux dipelajari di Linux. Pilihannya, dari yang sederhana sampai yang paling realistis:

  • WSL2 di Windows — terminal Ubuntu dalam beberapa menit. Cocok untuk perintah dan skrip, tetapi systemd dan jaringan tidak berperilaku seperti di server.
  • Mesin virtual (VirtualBox, VMware, UTM di Mac) dengan Ubuntu Server atau Debian. Bisa dirusak tanpa konsekuensi dan dikembalikan ke snapshot.
  • VPS murah dari penyedia cloud. Server sungguhan dengan IP publik adalah lapangan latihan terbaik untuk tahap jaringan dan keamanan.

Distribusi untuk memulai adalah Ubuntu Server atau Debian: dokumentasi dan jawabannya paling banyak. Antarmuka grafis tidak diperlukan: server dikelola lewat terminal, dan kebiasaan itu sebaiknya dimulai sejak hari pertama.

Tahap 1. Terminal dan sistem berkas

Tujuannya adalah bergerak di dalam sistem dengan percaya diri dan mengerjakan berkas tanpa mouse.

  • Navigasi: pwd, ls -la, cd, path absolut dan relatif, ~, ., dan ...
  • Berkas: cp, mv, rm, mkdir -p, touch, melihat isi dengan cat, less, head, tail -f.
  • Pencarian: find, which, locate.
  • Bantuan: man, --help. Kemampuan membaca man akan berguna sepanjang karier.
  • Struktur direktori: apa isi /etc, /var/log, /home, /usr, /proc, /dev; apa itu mount dan inode.
  • Editor teks di terminal: nano untuk awal, lalu perintah dasar vim — ia ada di hampir setiap server.

Latihan: cari semua berkas .conf di /etc yang diubah dalam seminggu terakhir (find /etc -name "*.conf" -mtime -7). Buka /etc/os-release dan cari tahu versi sistem Anda. Lihat apa yang dicatat sistem di /var/log.

Tahap 2. Pengguna, grup, dan izin

Izin adalah dasar keamanan Linux dan sumber separuh error "Permission denied".

  • Membaca keluaran ls -l: jenis, izin, pemilik, grup.
  • chmod dalam bentuk simbolik dan angka, chown, umask.
  • Bit khusus: SUID, SGID, sticky bit — dan mengapa /tmp bisa ditulis semua orang, tetapi berkas orang lain di sana tidak bisa dihapus.
  • Pengguna dan grup: useradd, usermod -aG, passwd, berkas /etc/passwd, /etc/shadow, /etc/group.
  • sudo, aturan di sudoers, dan pengeditan lewat visudo.

Latihan: buat dua pengguna dan satu direktori proyek bersama, tempat keduanya bisa membuat berkas, sementara pihak lain tidak melihat apa pun. Petunjuk: grup, chmod 2770, dan SGID agar grup diwarisi.

Tahap 3. Bash dan utilitas teks

Administrasi sebagian besar adalah mengolah teks: log, konfigurasi, dan keluaran perintah. Di tahap ini terminal berubah dari kumpulan perintah menjadi alat kerja.

  • Pengalihan dan pipeline: >, >>, 2>&1, |, xargs.
  • Filter: grep (dengan ekspresi reguler), sort, uniq -c, wc, cut, sed, awk.
  • JSON dan HTTP dari konsol: curl dan jq.
  • Skrip: shebang, variabel, tanda kutip, kondisi if dan [[ ]], perulangan, fungsi, kode keluar, set -euo pipefail.

Latihan: dengan satu baris perintah, hitung sepuluh alamat IP dengan permintaan terbanyak di log web server:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

Lalu tulis skrip cadangan sebuah direktori ke arsip dengan tanggal di namanya, yang menghapus arsip berumur lebih dari tujuh hari dan mengembalikan kode bukan nol jika terjadi error.

Tahap 4. Paket, lingkungan, dan penjadwal

  • Manajer paket: apt update, apt install, apt remove, apt search, dpkg -l. Di sistem keluarga RHEL — dnf. Pahami apa itu repositori dan untuk apa kunci tanda tangan.
  • Variabel lingkungan: env, export, PATH, berkas ~/.bashrc, ~/.profile, /etc/environment — dan kapan masing-masing dibaca.
  • Penjadwalan: crontab -e, sintaks lima bidang, dan mengapa di cron sebuah perintah "tidak jalan" padahal jalan di terminal (lingkungan dan PATH yang berbeda).

Latihan: pasang nginx dari repositori, tambahkan direktori skrip Anda ke PATH, dan jadwalkan skrip cadangan dari tahap 3 setiap malam lewat cron dengan keluaran dicatat ke log.

Tahap 5. Proses dan systemd

Di tahap ini Anda mulai memahami apa yang sebenarnya terjadi di dalam sistem.

  • Proses: ps aux, top/htop, PID dan PPID, status, prioritas (nice), sinyal, dan kill.
  • Beban: load average, memori dan swap (free -h), arti proses dalam status D.
  • Debugging: lsof — berkas dan port apa yang dibuka proses; strace — system call apa yang dilakukan proses dan di mana ia macet.
  • systemd: unit, systemctl status/start/enable, unit file sendiri dengan Restart=on-failure, timer sebagai pengganti cron.
  • Log: journalctl -u, -f, -b, -p err, rotasi, rsyslog; statistik performa lewat sysstat (sar, iostat).

Latihan: jadikan aplikasi kecil (setidaknya python3 -m http.server) sebagai layanan systemd dari pengguna terpisah, matikan prosesnya dengan kill -9, dan pastikan systemd menjalankannya kembali. Temukan catatan restart di journal.

Tahap 6. Disk, LVM, dan RAID

  • Perangkat dan partisi: lsblk, blkid, fdisk atau parted, sistem berkas ext4 dan XFS, mkfs.
  • Pemasangan: mount, /etc/fstab dengan UUID, pemeriksaan dengan mount -a.
  • Ruang: df -h, df -i, du -sh, mencari apa yang memakan disk.
  • LVM: physical volume, volume group, logical volume, dan memperbesar partisi tanpa menghentikan layanan.
  • RAID perangkat lunak dengan mdadm — memahami level 0, 1, 5, 10, dan bahwa RAID bukan cadangan.

Latihan: tambahkan dua disk ke mesin virtual, buat LVM di atasnya, buat volume, pasang lewat fstab, lalu perbesar dengan lvextend -r.

Tahap 7. Jaringan

  • Model TCP/IP pada tingkat yang cukup untuk diagnosis: IP, subnet mask, gateway, port, TCP dan UDP.
  • Perintah: ip a, ip r, ss -tlnp, ping, traceroute/mtr, curl -v, nc.
  • DNS: cara kerja resolusi, /etc/hosts, /etc/resolv.conf, dig, resolvectl.
  • Konfigurasi jaringan di distribusi Anda (netplan di Ubuntu, NetworkManager di distribusi lain).
  • Penangkapan lalu lintas dengan tcpdump untuk kasus ketika semua yang lain gagal.

Latihan: cari tahu proses mana yang mendengarkan setiap port terbuka di server Anda. Pahami mengapa layanan yang mendengarkan di 127.0.0.1 tidak bisa diakses dari luar, lalu perbaiki.

Tahap 8. Kerja jarak jauh: SSH dan transfer berkas

  • SSH: kunci (ssh-keygen -t ed25519, ssh-copy-id), berkas ~/.ssh/config, ssh-agent, penerusan port (ssh -L), bastion lewat ProxyJump.
  • Penyalinan: scp dan rsync -avz --delete — dan mengapa rsync lebih baik untuk sinkronisasi.
  • Sistem berkas jaringan: NFS antar server Linux, SMB (Samba) untuk pertukaran dengan Windows.

Latihan: atur login ke VPS hanya dengan kunci, deskripsikan di ~/.ssh/config dengan nama pendek, dan jadikan sinkronisasi harian sebuah direktori ke server lewat rsync.

Tahap 9. Keamanan server

  • Firewall: prinsip "tolak semua yang tidak diizinkan", ufw untuk kasus sederhana, nftables agar Anda paham apa yang terjadi di baliknya.
  • fail2ban: memblokir IP setelah serangkaian login gagal, diperiksa dengan fail2ban-client status sshd.
  • Konfigurasi sshd: melarang login dengan kata sandi dan login sebagai root.
  • Pembaruan keamanan dan pemasangan otomatisnya (unattended-upgrades di Debian dan Ubuntu).
  • GPG: verifikasi tanda tangan paket dan berkas, enkripsi cadangan.

Latihan: di firewall, buka hanya port 22, 80, dan 443, aktifkan fail2ban, lalu setelah sehari lihat di statusnya berapa alamat yang sudah diblokir.

Proyek akhir: rakit server dari awal

Pembuktian terbaik bahwa Anda benar-benar mempelajari Linux adalah membangun server dari nol tanpa petunjuk:

  1. VPS baru, pengguna sendiri dengan sudo, login SSH dengan kunci, kata sandi dan root dinonaktifkan.
  2. Firewall dan fail2ban, pembaruan keamanan otomatis.
  3. Web server dan aplikasi sebagai layanan systemd dengan restart otomatis.
  4. Disk atau volume terpisah untuk data, dipasang lewat fstab.
  5. Cadangan terjadwal (cron atau timer systemd) ke mesin lain lewat rsync, dengan log dan pengujian pemulihan.
  6. Instruksi singkat: bagaimana membangun ulang semuanya.

Jika Anda bisa menyelesaikan daftar ini dan menjelaskan setiap langkahnya, Anda sudah punya fondasi untuk bekerja sebagai administrator atau DevOps engineer. Lanjutannya secara alami adalah kontainer, otomatisasi konfigurasi, dan monitoring.

Cara belajar lebih efektif

  • Ketik perintahnya sendiri. Menyalin dari artikel tidak melekat, mengetik dan membuat kesalahan itulah yang melekat.
  • Rusak lalu perbaiki. Rusakkan fstab atau izin ~/.ssh di mesin virtual, lalu pulihkan sistemnya. Pengalaman seperti ini dihargai di wawancara.
  • Catat sendiri. Catatan perintah dengan contoh milik Anda lebih berguna daripada cheat sheet orang lain.
  • Baca log. Hampir setiap masalah di Linux bisa dijelaskan oleh log — biasakan melihat ke sana pertama kali.

Kesimpulan

Jawaban atas pertanyaan cara belajar Linux dari nol adalah bergerak lapis demi lapis: terminal dan berkas, izin, Bash, paket, proses dan systemd, disk, jaringan, SSH, lalu keamanan — dan di setiap tahap menyelesaikan satu tugas praktik di lingkungan sendiri. Tujuan akhirnya adalah memasang dan mengamankan server sendiri dengan layanan yang berjalan. Rute inilah, dari pelajaran pengantar sampai proyek akhir, yang dipakai untuk membangun kursus Linux di platform ini.

Pertanyaan umum

Berapa lama waktu yang dibutuhkan untuk belajar Linux dari nol?

Dasar untuk bekerja dengan server biasanya dikuasai dalam beberapa bulan dengan belajar sekitar satu jam per hari. Keyakinan datang dari latihan pada tugas nyata, jadi keteraturan lebih penting daripada total jam.

Apakah perlu bisa memprogram untuk belajar Linux?

Tidak, Anda bisa mulai tanpa itu. Tetapi pada tahap skrip Bash Anda sebenarnya sudah mulai memprogram, dan keterampilan itu nanti berguna untuk otomatisasi.

Bisakah belajar Linux di Windows?

Bisa, lewat WSL2 atau mesin virtual. Untuk topik systemd, disk, dan jaringan, lebih baik memakai mesin virtual penuh atau VPS.

Perlukah menjadikan Linux sebagai sistem utama di komputer?

Berguna, tetapi tidak wajib. Untuk administrasi, yang lebih penting adalah bekerja dengan Linux server lewat terminal, bukan memakai desktop grafis.

Distribusi apa yang sebaiknya dipilih pemula?

Ubuntu Server atau Debian: dokumentasinya banyak, dan keterampilannya mudah dipindahkan ke distribusi lain. Perbedaan utama distribusi keluarga RHEL adalah manajer paket dnf.

Pelajari topik ini lewat video

Topik ini dibahas mendalam dengan praktik di kursus “Linux: с нуля до уверенного администрирования”.

Ke kursus