Perintah dasar Linux dibagi menjadi beberapa kelompok: navigasi (pwd, ls, cd), pengelolaan berkas (cp, mv, rm, mkdir), hak akses (chmod, chown), paket (apt), proses (ps, top, kill), pencarian dan olah teks (find, grep, sed, awk), jaringan (ip, ss, curl), dan layanan (systemctl, journalctl). Di bawah ini tabel perintah dengan contoh yang menutup sebagian besar pekerjaan harian di terminal.
Cheat sheet perintah Linux ini disusun berdasarkan kelompok tugas: mencari berkas, memasang paket, menghentikan proses yang macet, mengambil satu baris dari log, atau memeriksa port. Perintah sudah diuji di Ubuntu dan Debian; hampir semuanya juga berjalan di distribusi lain, dengan perbedaan utama pada manajer paket.
Bantuan dan petunjuk
| Perintah | Fungsi |
man ls | panduan lengkap sebuah perintah, keluar dengan q, mencari dengan /kata |
ls --help | bantuan singkat tentang opsi |
type cd | apa itu: perintah bawaan shell, alias, atau berkas |
which python3 | path ke berkas yang dapat dieksekusi |
history | riwayat perintah; !123 mengulang perintah nomor 123 |
Ctrl+R | mencari dalam riwayat |
Ctrl+C / Ctrl+D | menghentikan perintah / menutup shell |
Navigasi sistem berkas
| Perintah | Fungsi |
pwd | direktori saat ini |
ls -la | semua berkas termasuk yang tersembunyi, dengan hak akses dan ukuran |
ls -lh | ukuran dalam format yang mudah dibaca (K, M, G) |
ls -lt | urut berdasarkan waktu perubahan |
cd /var/log | pindah dengan path absolut |
cd .. / cd ~ / cd - | satu tingkat ke atas / ke home / ke direktori sebelumnya |
tree -L 2 | pohon direktori sampai 2 tingkat (paket tree) |
Bekerja dengan berkas dan direktori
| Perintah | Fungsi |
touch file.txt | membuat berkas kosong atau memperbarui waktu perubahannya |
mkdir -p a/b/c | membuat direktori beserta induknya |
cp file.txt backup.txt | menyalin berkas |
cp -r src/ dst/ | menyalin direktori secara rekursif |
mv old.txt new.txt | mengganti nama atau memindahkan |
rm file.txt | menghapus berkas (tanpa tong sampah) |
rm -r dir/ | menghapus direktori beserta isinya; -f tanpa konfirmasi, hati-hati |
rmdir dir | menghapus direktori kosong |
ln -s /opt/app/current app | tautan simbolik |
stat file.txt | detail: ukuran, hak akses, inode, tanggal |
file image.bin | menentukan jenis berkas dari isinya |
Melihat isi berkas
| Perintah | Fungsi |
cat file | menampilkan seluruh berkas |
less file | melihat per halaman, cari /, keluar q |
head -n 20 file | 20 baris pertama |
tail -n 50 file | 50 baris terakhir |
tail -f /var/log/syslog | memantau berkas secara real-time |
wc -l file | jumlah baris |
diff a.conf b.conf | perbedaan antar berkas |
Hak akses dan pemilik
| Perintah | Fungsi |
chmod +x script.sh | mengizinkan eksekusi |
chmod 644 file | rw-r--r--: pemilik menulis, yang lain membaca |
chmod 755 dir | rwxr-xr-x: lazim untuk direktori dan skrip |
chmod 600 ~/.ssh/id_ed25519 | hanya pemilik: untuk kunci privat |
sudo chown www-data:www-data file | mengganti pemilik dan grup |
sudo chown -R alice /srv/app | mengganti pemilik secara rekursif |
id | UID, GID, dan grup Anda |
sudo -i | shell root |
sudo usermod -aG docker alice | menambahkan pengguna ke grup |
Paket (apt, Debian dan Ubuntu)
| Perintah | Fungsi |
sudo apt update | memperbarui daftar paket dari repositori |
sudo apt upgrade | memperbarui paket yang terpasang |
sudo apt install nginx | memasang paket |
sudo apt remove nginx | menghapus, konfigurasi tetap disimpan; purge menghapus termasuk konfigurasi |
sudo apt autoremove | menghapus dependensi yang tidak lagi dibutuhkan |
apt search htop | mencari paket |
apt show nginx | deskripsi dan versi |
dpkg -l | grep nginx | memeriksa apakah paket terpasang |
dpkg -L nginx | berkas apa saja yang dipasang paket |
Di RHEL, Fedora, dan Rocky Linux, padanannya adalah dnf install, dnf remove, dnf upgrade, dan rpm -qa.
Lingkungan dan profil
| Perintah | Fungsi |
echo $PATH | tempat shell mencari program |
env | semua variabel lingkungan |
export APP_ENV=prod | mengatur variabel untuk sesi saat ini dan proses turunannya |
alias ll='ls -la' | singkatan perintah |
source ~/.bashrc | memuat ulang profil tanpa keluar dan masuk lagi |
crontab -e / crontab -l | mengedit / menampilkan tugas cron |
Proses
| Perintah | Fungsi |
ps aux | semua proses dengan pengguna, CPU, dan memori |
ps aux | grep nginx | mencari proses |
pgrep -a nginx | PID dan baris perintah berdasarkan nama |
top / htop | beban sistem secara real-time |
kill 1234 | meminta proses berhenti (SIGTERM) |
kill -9 1234 | menghentikan paksa (SIGKILL) — jalan terakhir |
pkill -f "python app.py" | menghentikan proses yang cocok dengan baris perintahnya |
command &, jobs, fg | menjalankan di latar belakang dan mengelola job |
nohup ./job.sh & | proses tetap berjalan setelah terminal ditutup |
free -h | memori dan swap |
uptime | lama sistem menyala dan rata-rata beban |
strace -p 1234 | system call yang dilakukan proses |
Layanan dan log (systemd)
| Perintah | Fungsi |
systemctl status nginx | status layanan dan beberapa baris log terakhir |
sudo systemctl start|stop|restart nginx | menjalankan, menghentikan, memulai ulang |
sudo systemctl reload nginx | memuat ulang konfigurasi tanpa menghentikan layanan |
sudo systemctl enable --now nginx | mengaktifkan autostart dan langsung menjalankan |
systemctl --failed | unit yang gagal |
journalctl -u nginx -f | log layanan secara real-time |
journalctl -u nginx --since "1 hour ago" | log satu jam terakhir |
journalctl -p err -b | error sejak boot terakhir |
Mencari berkas
| Perintah | Fungsi |
find /var/log -name "*.log" | mencari berdasarkan nama |
find . -type f -mtime -1 | berkas yang diubah dalam 24 jam terakhir |
find / -size +500M 2>/dev/null | berkas besar; error akses disembunyikan |
find . -name "*.tmp" -delete | mencari lalu menghapus |
du -sh * | ukuran setiap item dalam direktori |
df -h | ruang kosong pada sistem berkas |
Pencarian dan olah teks: grep, sed, awk, jq
| Perintah | Fungsi |
grep "error" app.log | baris yang mengandung kata tersebut |
grep -i -n "error" app.log | tanpa membedakan huruf besar-kecil, dengan nomor baris |
grep -r "listen" /etc/nginx/ | rekursif dalam direktori |
grep -v "DEBUG" app.log | baris yang tidak mengandung kata tersebut |
grep -c "500" access.log | jumlah kecocokan |
grep -E "warn|error" app.log | ekspresi reguler yang diperluas |
sed 's/old/new/g' file | mengganti dan menampilkan hasilnya |
sed -i 's/8080/9090/' app.conf | mengganti langsung di dalam berkas |
sed -n '10,20p' file | menampilkan baris 10–20 |
awk '{print $1}' access.log | kolom pertama setiap baris |
awk -F: '{print $1}' /etc/passwd | nama pengguna (pemisah :) |
awk '$9 == 500' access.log | baris yang kolom kesembilannya bernilai 500 |
sort | uniq -c | sort -rn | menghitung pengulangan dan mengurutkan menurut frekuensi |
cut -d, -f2 data.csv | kolom kedua dari CSV |
jq '.items[].name' data.json | mengambil field dari JSON |
Contoh pipeline: sepuluh alamat IP dengan jumlah permintaan terbanyak ke nginx.
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10
Pengalihan dan pipeline
| Konstruksi | Fungsi |
cmd > out.txt | menulis keluaran ke berkas (menimpa) |
cmd >> out.txt | menambahkan ke akhir berkas |
cmd 2> err.txt | mengalihkan error |
cmd > all.log 2>&1 | keluaran dan error ke satu berkas |
cmd1 | cmd2 | mengirim keluaran satu perintah sebagai masukan perintah lain |
cmd | tee out.txt | menampilkan di layar sekaligus menyimpan |
cmd1 && cmd2 | menjalankan perintah kedua hanya jika yang pertama berhasil |
cmd1 || cmd2 | menjalankan perintah kedua jika yang pertama gagal |
Arsip
| Perintah | Fungsi |
tar -czf backup.tar.gz dir/ | mengemas dan mengompresi dengan gzip |
tar -xzf backup.tar.gz | mengekstrak |
tar -tzf backup.tar.gz | melihat isinya |
zip -r site.zip site/ / unzip site.zip | arsip zip |
Jaringan
| Perintah | Fungsi |
ip a | antarmuka dan alamat IP |
ip r | tabel rute |
ping -c 4 8.8.8.8 | mengecek apakah host dapat dijangkau |
ss -tulpn | port yang terbuka beserta proses pemiliknya |
dig example.com / nslookup example.com | kueri DNS |
curl -I https://example.com | hanya header respons |
curl -s https://api.example.com | jq | permintaan ke API dengan JSON yang rapi |
wget URL | mengunduh berkas |
traceroute example.com | jalur paket menuju host |
ssh user@host | terhubung ke server |
ssh-keygen -t ed25519 | membuat pasangan kunci SSH |
scp file user@host:/tmp/ | menyalin berkas ke server |
rsync -avz dir/ user@host:/srv/dir/ | menyinkronkan direktori |
sudo ufw status | aturan firewall |
Sistem dan disk
| Perintah | Fungsi |
uname -a | kernel dan arsitektur |
cat /etc/os-release | distribusi dan versinya |
hostnamectl | nama host dan informasi sistem |
lsblk | disk dan partisi |
sudo mount /dev/sdb1 /mnt | memasang partisi |
who / w | siapa yang sedang login |
sudo reboot / sudo shutdown -h now | restart / mematikan sistem |
Kesimpulan
Untuk pekerjaan sehari-hari, cukup beberapa lusin perintah: ls, cd, cp, mv, rm, chmod, sudo, apt, ps, kill, systemctl, journalctl, grep, find, ss, curl, dan ssh. Simpan cheat sheet perintah Linux ini dan rujuk terus sampai perintah-perintah tersebut sudah otomatis. Semua kelompok perintah ini dibahas dengan praktik dalam kursus Linux.
Bagaimana cara keluar dari man atau less?
Tekan q. Untuk mencari di dalamnya, ketik garis miring diikuti kata yang dicari; n berpindah ke kecocokan berikutnya.
Bagaimana cara keluar dari editor vim?
Tekan Esc, lalu ketik :q! dan Enter untuk keluar tanpa menyimpan, atau :wq untuk menyimpan dan keluar. Pemula biasanya lebih mudah mengedit berkas dengan nano.
Mengapa rm -rf berbahaya?
Perintah itu menghapus tanpa konfirmasi dan tanpa tong sampah, sehingga satu kesalahan path (misalnya spasi yang salah sebelum tanda bintang) bisa menghapus direktori yang keliru. Periksa path dengan ls sebelum menjalankannya.
Bagaimana cara mengulang perintah terakhir dengan sudo?
Ketik sudo !! — shell akan menggantinya dengan perintah sebelumnya secara utuh.
Bagaimana cara menghentikan perintah yang macet di terminal?
Ctrl+C mengirim sinyal interupsi. Jika perintah tidak merespons, cari PID-nya dengan ps atau pgrep di terminal lain, lalu hentikan dengan kill.