ABDURROZAK
ABDURROZAK.MY.ID // LINUX COMMAND TKJ

LINUX COMMAND

CHEAT SHEET INTERAKTIF + LATIHAN KUIS UNTUK SISWA TKJ

STATUS: ONLINE PERINTAH: ... KATEGORI: 9
MODUL TOOL

CHEAT SHEET

CARI PERINTAH, KLIK BARIS UNTUK DETAIL, BINTANG UNTUK FAVORIT, COPY UNTUK MENYALIN CONTOH

AMAN HATI-HATI BAHAYA (BISA MERUSAK DATA)
TEKAN / UNTUK FOKUS CARI - ESC UNTUK BERSIHKAN - FAVORIT TERSIMPAN OTOMATIS DI PERANGKAT INI.

LATIHAN KUIS

10 SOAL ACAK - PILIH PERINTAH YANG SESUAI DESKRIPSI. BISA JUGA PAKAI TOMBOL 1-4.

SIAP UJI HAFALAN TERMINAL?
SETiap ronde mengambil 10 perintah acak dari 97 perintah cheat sheet. Jawaban benar = +1 skor & streak naik. Salah = streak reset. Skor 10/10 = gelar SYSADMIN MUDA.
PERINGKAT: -REKOR BARU!
0
SKOR
BENAR-
SALAH-
STREAK TERBAIK-
REKOR-
-

MATERI LINUX

8 MODUL - DARI FILOSOFI SAMPAI SSH. MATERI POKOK UJIAN KOMPETENSI KEAHLIAN TKJ. KLIK UNTUK MEMBUKA.

Linux = kernel (inti pengelola hardware) + shell (penerjemah perintah) + utilitas GNU + distro (paketan siap pakai). Dua keluarga besar yang wajib kamu kenal: Debian/Ubuntu (apt) dan RHEL/CentOS/Rocky (dnf). Perbedaan terbesar ada di manajer paket, bukan perintah dasarnya.

Prinsip paling terkenal: "everything is a file". Perangkat adalah file (/dev), info proses adalah file (/proc), bahkan koneksi jaringan bisa dibaca sebagai file. Konsekuensinya: satu set tools (cat, grep, redirection) bisa dipakai untuk hampir semua hal.

Case-sensitive. File.txt, file.txt, dan FILE.TXT adalah tiga file berbeda. Sebagian besar perintah dan file sistem ditulis huruf kecil.

Path absolut vs relatif: absolut selalu dimulai dari / (/etc/hosts), relatif dari posisi sekarang (./laporan, ../data). Tanda penting: ~ = home, . = direktori ini, .. = satu level di atas, - = direktori sebelumnya.

Filesystem Hierarchy Standard (FHS) - peta direktori yang diujikan dan dipakai di dunia kerja:

DIREKTORIISI
/Akar seluruh filesystem
/etcFile konfigurasi sistem (hosts, ssh, netplan)
/homeFolder pribadi user biasa
/rootHome milik root (terpisah dari /home)
/varData variabel: log (/var/log), web (/var/www), mail
/tmpSementara - biasanya dibersihkan saat reboot
/usrProgram & library untuk semua user
/bin, /sbinBinary esensial (perintah inti & admin)
/optAplikasi pihak ketiga yang mandiri
/devFile perangkat (sda, tty, null)
/proc, /sysVirtual - jendela ke kernel & hardware
/mnt, /mediaTitik mount drive eksternal/USB
/bootKernel & bootloader GRUB

Hukum praktik: backup dulu sebelum mengedit /etc, dan jangan pernah berlatih eksperimen langsung di server produksi - pakai VM.

Setiap file punya pemilik (owner), grup, dan izin untuk tiga kelompok: owner, group, others. Izinnya tiga jenis: r = baca (4), w = tulis (2), x = eksekusi/masuk (1).

Anatomi ls -l: -rwxr-xr-- 1 tkj01 netadmin 4096 ... namafile. Karakter pertama tipe: - file, d direktori, l link. Sembilan berikutnya = izin owner-group-others.

Untuk direktori artinya berbeda: r = boleh melihat daftar isi, w = boleh membuat/menghapus file di dalamnya, x = boleh masuk (cd). Folder tanpa x tidak bisa dimasuki walpaun r aktif.

OCTALBINARYIZINPEMAKAIAN UMUM
7111rwxOwner script / folder pribadi
6110rw-File konfigurasi
5101r-xFolder yang boleh dibaca+dimasuki
4100r--File hanya baca
0000---Tanpa izin

Kombinasi wajib hafal: 755 untuk folder/script web (owner penuh, lainnya baca+eksekusi), 644 untuk file konfigurasi, 700 folder pribadi, 600 untuk private key SSH.

Mode simbolik lebih tepat sasaran: chmod u+x file (beri eksekusi ke owner), g-w (hapus tulis dari grup), o=r, a+r (semua). chown user:group file mengganti kepemilikan, -R untuk rekursif.

umask menentukan izin default file baru: file mulai 666, folder 777, lalu dikurangi umask. umask 022 -> file 644, folder 755.

Bit spesial (sering keluar soal): SUID (4000) - program berjalan sebagai pemiliknya, contoh passwd agar user biasa bisa mengubah /etc/shadow; SGID (2000) - file baru di folder mewarisi grup folder (kerja tim); Sticky bit (1000, t) - di /tmp: hanya pemilik file yang boleh menghapusnya.

Prinsip keamanan: least privilege - beri izin sekecil mungkin. 777 bukan solusi "biar jalan", itu lubang keamanan.

Setiap user punya UID: 0 = root (dewa), 1-999 = akun sistem/layanan, 1000 ke atas = manusia. Cek dengan id.

File penting: /etc/passwd menyimpan 7 kolom: nama:x:UID:GID:gecos:home:shell - huruf x berarti password asli (hash) ada di /etc/shadow yang hanya bisa dibaca root. /etc/group menyimpan keanggotaan grup.

Alur membuat user yang benar (Debian/Ubuntu): adduser siswa01 (interaktif) atau useradd -m -s /bin/bash tkj01 lalu passwd tkj01. Flag -m membuat folder home, -s menentukan shell.

Memberi hak admin: masukkan ke grup sudo (Ubuntu) atau wheel (RHEL): sudo usermod -aG sudo tkj01. Ingat: -aG = append ke grup; tanpa -a, daftar grup sekunder user akan TERTIMPA semua.

sudo vs su: sudo menjalankan SATU perintah sebagai root dengan identitas & log user asli (tercatat di /var/log/auth.log); su - mengganti seluruh sesi menjadi root. Praktik terbaik: kerja sebagai user biasa, sudo untuk yang perlu. Edit aturan sudo hanya lewat visudo (validasi sintaks otomatis), jangan edit /etc/sudoers langsung.

Manajemen lanjutan: userdel -r hapus user + home; passwd -l / -u kunci/buka akun; chage -l user lihat kebijakan usia password; w dan last untuk audit siapa login kapan.

Kebijakan lab yang sehat: satu akun per orang (semua aksi bisa diaudit), password kuat + masa berlaku, grup untuk berbagi akses folder proyek.

Program yang sedang berjalan = proses, punya PID unik dan PPID (proses induk). Induk semua proses adalah PID 1: systemd. Setelah proses mati, parent harus "memungut" statusnya; kalau tidak, sisanya menjadi zombie (Z) - bukan pemakan CPU, tapi tanda ada program yang tidak rapi.

ps aux kolom penting: %CPU, %MEM, STAT. STAT: R=berjalan, S=tidur menunggu, D=diam total (biasanya antre I/O disk - indikasi storage lambat), Z=zombie, T=di-suspend.

Monitor: top / htop (sort P=CPU, M=RAM), free -h (baca kolom available, bukan free - cache bisa dilepas kapan saja), uptime (load average 1/5/15 menit; sehat jika load di bawah jumlah core CPU).

Sinyal - cara Linux berkomunikasi dengan proses:

SINYALNOMORARTI
SIGHUP1Muat ulang konfigurasi
SIGINT2Ctrl+C dari keyboard
SIGTERM15Mohon berhenti (default kill) - proses sempat rapikan diri
SIGKILL9Paksa mati seketika - tanpa kesempatan membersihkan

Urutan yang benar: kill PID (15), tunggu beberapa detik, baru kill -9 PID jika membandel. Pemakaian -9 langsung berisiko file/rusak karena proses tidak sempat flush data.

systemd mengelola layanan sebagai unit (.service, .socket, .timer): systemctl start|stop|restart|reload|status|enable|disable nginx. Beda tipis tapi sering ditanya: restart memutus layanan sejenak; reload membaca ulang konfigurasi tanpa memutus koneksi (jika didukung); enable membuat layanan otomatis jalan saat boot (membuat symlink), tidak langsung menjalankannya.

Target boot modern (pengganti runlevel): multi-user.target = mode teks, graphical.target = GUI, rescue.target = perbaikan darurat. Log semua layanan: journalctl -u nginx -f, journalctl -p err --since today.

Perangkat lama sudah deprecated: ifconfig diganti ip a, route diganti ip r, netstat diganti ss. Nama interface modern bersifat predictable: enp0s3 (ethernet), wlp2s0 (wifi) - bukan lagi selalu eth0.

Perintah inti: ip a (IP & state), ip r (gateway ada di baris "default via"), ip link (link up/down), sudo ip link set eth0 up. ss -tulpn menampilkan port yang terbuka + proses pemiliknya - dasar audit keamanan.

Konfigurasi statis (Ubuntu) via netplan - file di /etc/netplan/*.yaml:

network: { ethernets: { enp0s3: { addresses: [192.168.10.10/24], routes: [{to: default, via: 192.168.10.1}], nameservers: {addresses: [1.1.1.1, 8.8.8.8]} }, dhcp4: false } } lalu sudo netplan apply. Di Debian klasik: /etc/network/interfaces.

DNS: /etc/resolv.conf (atau systemd-resolved), override lokal lewat /etc/hosts - sering dipakai di lab untuk simulasi domain.

Alur troubleshooting 5 langkah (mengisolasi lapisan masalah): 1) ip a - IP & link benar? 2) ping gateway - LAN jalan? 3) ping 8.8.8.8 - internet jalan? 4) dig domain - DNS jalan? 5) curl -I situs - aplikasi/web jalan? Berhenti di langkah yang gagal = lokasi masalah.

Port penting (wajib hafalan ujian): 20/21 FTP, 22 SSH/SFTP, 23 Telnet (hindari - plaintext), 25 SMTP, 53 DNS, 67/68 DHCP, 80 HTTP, 110 POP3, 143 IMAP, 443 HTTPS, 445 SMB, 3389 RDP.

Firewall: ufw (sederhana): ufw allow 22/tcp, ufw enable, ufw status verbose. Level bawah modern: nftables (pengganti iptables). Aturan emas: allow port akses remote SEBELUM enable, agar tidak mengunci diri sendiri.

Software Linux diambil dari repositori (gudang paket terverifikasi GPG) yang didaftarkan di /etc/apt/sources.list. Keuntungan: versi teruji, dependensi otomatis, update satu perintah.

Tiga perintah apt yang paling sering tertukar: apt update = segarkan INDEX/daftar paket (tidak mengubah sistem); apt upgrade = naikkan versi semua paket terpasang; apt full-upgrade = sama + boleh menghapus paket bila diperlukan. Pasangan wajib: update dulu, baru upgrade/install. apt autoremove membersihkan dependensi yatim.

dpkg = mesin bawah apt untuk file .deb lokal: dpkg -i paket.deb. Kelemahannya dependensi tidak diatasi otomatis - bila error, lanjutkan dengan sudo apt --fix-broken install. Audit: dpkg -l | grep nginx.

Keluarga Red Hat memakai dnf (dulu yum): dnf install|remove|search|info. Alur konsepnya identik dengan apt.

Arsip & kompresi dengan tar - mnemonik: c=create, x=extract, z=gzip, f=file, v=verbose:

  • Buat arsip: tar -czf backup.tar.gz folder/
  • Ekstrak: tar -xzf backup.tar.gz
  • Lihat isi tanpa ekstrak: tar -tzf backup.tar.gz

Single file: gzip file / gunzip file.gz; lintas platform: zip/unzip.

Disiplin teknisi: sebelum upgrade besar -> backup konfigurasi (tar -czf etc-backup.tar.gz /etc) dan uji di VM/snapshot; setelah upgrade -> verifikasi layanan: systemctl status + cek log.

Setiap proses punya tiga aliran data: 0 stdin (input), 1 stdout (output normal), 2 stderr (error). Seluruh kekuatan shell berasal dari menyambung aliran-aliran ini.

  • cmd > file - stdout ke file (TIMPA)
  • 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 menjadi stdin cmd2
  • cmd1 && cmd2 - jalankan cmd2 HANYA jika cmd1 sukses; || hanya jika gagal; ; berurutan apa pun hasilnya

Pipeline analisis yang wajib dikuasai - pola grep | awk | sort | uniq | head:

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -5 -> 5 IP paling sibuk mengakses server.

grep -i "failed" /var/log/auth.log | wc -l -> jumlah upaya login gagal (indikasi brute force).

ps aux | sort -k3 -rn | head -5 -> 5 proses pemakan CPU teratas.

History & recall: panah atas, !! (ulangi terakhir), !123 (ulangi nomor 123), Ctrl+R (pencarian balik interaktif - paling sering dipakai profesional).

Shortcut keyboard: Ctrl+C (batalkan), Ctrl+Z (suspend, lanjutkan dengan bg/fg), Ctrl+D (EOF/logout), Ctrl+L (clear), Ctrl+A / Ctrl+E (awal/akhir baris), Ctrl+W (hapus satu kata), Ctrl+U/K (potong kiri/kanan kursor).

Alias permanen di ~/.bashrc: alias ll='ls -lah', lalu source ~/.bashrc tanpa perlu logout.

SSH = shell terenkripsi untuk mengendalikan mesin lain lewat jaringan, default port 22. Ia menggantikan telnet yang mengirim segalanya (termasuk password) dalam teks polos. Login pertama akan menampilkan fingerprint server - ini mekanisme anti man-in-the-middle.

Login: ssh user@host, ssh -p 2222 admin@10.0.0.5 bila port diganti.

Autentikasi kunci (standar profesional):

  • Buat pasangan kunci: ssh-keygen -t ed25519 -> id_ed25519 (PRIVAT, jangan pernah keluar dari mesinmu, chmod 600) + id_ed25519.pub (boleh disebar)
  • Pasang ke server: ssh-copy-id admin@10.0.0.5 -> sejak itu login tanpa password
  • Kunci bisa diberi passphrase sendiri = dua lapis proteksi

~/.ssh/config mempercepat hidup:

Host srv1 / HostName 10.0.0.5 / User admin / Port 2222 -> selanjutnya cukup ssh srv1.

Transfer file: scp file admin@host:/path/ (folder: -r), dan rsync -avz untuk backup - hanya mengirim perbedaan data (delta) dan bisa dilanjutkan bila terputus.

Hardening sshd (edit /etc/ssh/sshd_config): PermitRootLogin no, PasswordAuthentication no (paksa kunci), opsi ubah Port, batasi AllowUsers. Restart: systemctl restart sshd. Prosedur aman: buka sesi kedua untuk menguji sebelum menutup sesi lama, dan pastikan firewall mengizinkan port baru dulu.

Perkuat dengan fail2ban (autoblokir IP brute force) dan pantau upaya masuk: journalctl -u ssh atau grep "Failed" di auth.log. Bonus: tunneling - ssh -L 8080:localhost:80 user@host membuka web internal server lewat localhost:8080-mu.

TIPS TERMINAL

10 TIPS BERJENJANG: BASIC -> INTER -> PRO. URUTAN MENGIKUTI ALUR BELAJAR TEKNISI.

BASICMAN DULU, GOOGLE BELAKANGANman cmd dan cmd --help adalah dokumentasi resmi yang SELALU ikut sistemmu - akurat sesuai versi yang terpasang.
BASICTAB & PANAH ADALAH SAHABATTab melengkapi nama file/perintah (cegah typo), panah atas memanggil riwayat, Ctrl+R mencari perintah lama.
BASICPAHAMI SEBELUM SUDOsudo memberi kekuatan merusak sistem. Baca dulu arti setiap flag, jangan asal copas dari internet.
BASICRUTIN 10 MENIT PER HARILatihan kecil konsisten mengalahkan maraton sekali sebulan. Gunakan mode LATIHAN KUIS di tool ini.
INTERAPT UPDATE SEBELUM INSTALLIndex basi = versi lama atau error 404. Rutinitas: update -> upgrade -> install. Jangan terbalik.
INTERSS -TULPN UNTUK AUDITTahu port dan layanan apa yang terbuka adalah langkah pertama keamanan jaringan sekaligus troubleshoot.
INTERTAIL -F SAAT DEBUGGINGPantau log real-time sambil memicu masalah di layar lain. Pesan error langsung terlihat tanpa menebak-nebak.
INTERCHMOD MINIMAL, BUKAN 777777 membuka pintu bagi semua. Standar sehat: 644 file, 755 folder/script, 600 private key.
PROSSH KEY + HARDENINGNonaktifkan login root & password, pakai kunci ed25519. Uji dengan sesi kedua SEBELUM menutup sesi lama.
PRORANTAI PIPE UNTUK LOGgrep | awk | sort | uniq | head mengubah ribuan baris log menjadi 5 baris insight. Itu pekerjaan teknisi sesungguhnya.

FAQ LINUX

9 PERTANYAAN YANG PALING SERING MUNCUL DI KELAS & LAB TKJ.

apt update hanya menyegarkan INDEX (daftar paket terbaru dari repositori) - sistem tidak berubah. apt upgrade yang benar-benar mengunduh dan memasang versi baru paket yang terpasang. Karena itu upgrade tanpa update dulu bisa memakai daftar basi. Urutan benar: update -> (opsional lihat apt list --upgradable) -> upgrade.

Tiga penyebab paling umum: 1) bit eksekusi tidak aktif untuk script -> chmod +x file; 2) FOLDER induknya tidak punya izin x untukmu (ingat: di direktori, x = boleh masuk); 3) file aslinya dimiliki user lain (misal dibuat via sudo) -> cek dengan ls -l, perbaiki dengan chown, atau jalankan sesuai kebutuhan dengan sudo. Baca pesan errornya: "Permission denied" bukan berarti file rusak.

su - mengganti SELURUH sesi menjadi user lain (biasanya root) - setelah itu semua perintah berjalan sebagai root dan jejak audit hilang identitasnya. sudo menjalankan SATU perintah dengan hak tinggi lalu kembali ke user asli, dan setiap pemakaian tercatat di /var/log/auth.log. Praktik profesional: kerja sebagai user biasa, sudo seperlunya. sudo juga bisa dibatasi per perintah lewat aturan visudo.

Anggap tidak. Linux tidak punya recycle bin; rm benar-benar melepas blok data. Tools recovery (extundelete/testdisk) keberhasilannya kecil dan makin kecil setiap detik karena data bisa tertimpa. Pencegahan jauh lebih mudah: cek pwd sebelum rm, hindari sudo rm -rf, biasakan backup (tar/rsync), dan untuk eksperimen pakai VM + snapshot. Sebagian admin menambah alias rm='rm -i' sebagai rem.

Tiga kemungkinan: 1) typo (Linux case-sensitive dan tidak menebak); 2) paketnya belum terpasang -> cari dengan apt search lalu install (Ubuntu bahkan menyarankan paket yang tepat di pesan errornya); 3) binary-nya ada tapi direktorinya tidak ada di $PATH -> cek dengan which nama-perintah dan echo $PATH. Untuk script di folder sendiri, jalankan dengan ./script (dan pastikan chmod +x).

restart = hentikan lalu jalankan lagi (koneksi user terputus sejenak) - aman untuk semua kasus. reload = minta layanan membaca ulang konfigurasi TANPA memutus koneksi aktif - ideal untuk web server produksi, tapi tidak semua layanan mendukung. enable = sama sekali tidak menjalankan sekarang; hanya memastikan layanan otomatis menyala saat boot. Pola lengkap setelah edit config: reload (atau restart) -> systemctl status -> cek log.

Paket net-tools (ifconfig, netstat, route) sudah ditinggalkan dan tidak lagi terpasang default di distro modern. Penggantinya: ip a (alamat), ip r (routing), ip link (status interface), ss -tulpn (port & koneksi). Kalau memang butuh ifconfig (misal ikut modul lama), pasang: sudo apt install net-tools. Tapi biasakan alat baru - itu standar ujian dan dunia kerja sekarang.

Hanya sebagai langkah terakhir. kill -9 (SIGKILL) membunuh proses seketika TANPA memberi kesempatan menutup file, flush buffer, atau hapus file kunci - risikonya data rusak dan file lock tertinggal. Prosedur sopan: kill -15 (default) -> tunggu 5-10 detik -> cek ps -> baru kill -9 kalau masih hidup. Untuk layanan systemd, prioritas: systemctl restart; hanya jika unit macet total gunakan kill -9 pada PID-nya.

Racikan yang terbukti: 1) pasang Linux di VirtualBox/VMware - berani rusak karena ada snapshot; 2) targetkan proyek nyata bertahap: web server (nginx) -> share file (samba) -> server SSH hardening; 3) hafalkan 30 perintah inti lewat mode LATIHAN di tool ini, sisanya akan mengalir; 4) pelajari alur troubleshooting jaringan (M05) - itu nilai jual utama TKJ; 5) dokumentasikan setiap praktikum: perintah, hasil, kesimpulan. Konsistensi 10 menit/hari mengalahkan maraton.

SOSIAL MEDIA