Perintah Linux Wajib untuk Mengelola Server
Kumpulan perintah Linux yang sering dipakai admin server, dikelompokkan per tugas: file, proses, systemctl, journalctl, disk, jaringan, dan user.
Jawaban singkat
Untuk mengelola server sehari-hari, kamu cukup menguasai beberapa kelompok perintah: navigasi dan file (ls, cp, nano, grep), proses (ps, top, kill), layanan (systemctl), log (journalctl, tail), disk (df, du), jaringan (ss, ip, curl, dig), dan user (useradd, passwd, sudo).
Daftar isi
- Ringkasan perintah per tugas
- File dan direktori: di mana semuanya berada?
- Proses apa yang sedang memakan sumber daya?
- Mengelola layanan dengan systemctl
- Membaca log: dari mana mencari penyebab error?
- Disk penuh dan cara menemukan pelakunya
- Jaringan: port, IP, dan DNS
- User, hak akses, dan sudo
- Pertanyaan yang sering diajukan
Sebagian besar pekerjaan admin server ditangani oleh beberapa lusin perintah yang sama, dikelompokkan menurut tugas: file, proses, layanan, log, disk, jaringan, dan user.
Kenapa ini penting? Panel kontrol memang memudahkan, tapi saat website mati jam dua pagi, yang kamu butuhkan adalah terminal dan tahu harus mengetik apa. Daftar di bawah disusun berdasarkan pertanyaan yang biasa muncul saat bekerja, bukan berdasarkan abjad, dan setiap perintah diberi contoh yang benar-benar dipakai. Contoh memakai distribusi berbasis systemd seperti Ubuntu, Debian, AlmaLinux, atau Rocky Linux.
Ringkasan perintah per tugas
| Tugas | Perintah utama | Contoh singkat |
|---|---|---|
| Navigasi dan file | ls, cd, cp, mv, rm, nano | ls -lah /var/www |
| Mencari teks dan file | grep, find | grep -ri "error" /var/log/nginx |
| Proses | ps, top, htop, kill | ps aux --sort=-%mem |
| Layanan | systemctl | systemctl restart nginx |
| Log | journalctl, tail | journalctl -u nginx -f |
| Disk | df, du, lsblk | du -sh /var/* |
| Jaringan | ss, ip, curl, dig | ss -tulpn |
| User dan hak akses | useradd, passwd, usermod, chmod, chown | usermod -aG sudo budi |
File dan direktori: di mana semuanya berada?
ls -lah menampilkan isi folder lengkap dengan file tersembunyi, ukuran yang mudah dibaca, pemilik, dan hak akses. cd berpindah folder, pwd menunjukkan posisi saat ini. Untuk menyalin dan memindah, ada cp -a (menyalin dengan mempertahankan hak akses dan tanggal) dan mv.
Hati-hati dengan rm -r, karena tidak ada tempat sampah. Biasakan menjalankan ls pada path yang sama sebelum menghapus, agar yakin yang dihapus memang yang dimaksud.
Untuk mengubah konfigurasi, nano paling ramah bagi pemula, sementara vim lebih kuat bila sudah terbiasa. Selalu buat salinan sebelum mengedit file penting, misalnya cp nginx.conf nginx.conf.bak.
Mencari sesuatu adalah pekerjaan harian. grep -rn "DB_HOST" /var/www/app menemukan baris berisi teks tertentu beserta nomor barisnya. find /var/www -name "*.php" -mtime -2 menampilkan file PHP yang berubah dalam dua hari terakhir, berguna saat mencurigai ada file sisipan.
Proses apa yang sedang memakan sumber daya?
top menampilkan proses secara langsung, dan htop (perlu dipasang) versi yang lebih nyaman dibaca. Untuk melihat sekilas, ps aux --sort=-%mem | head mengurutkan proses berdasarkan pemakaian memori, dan ganti %mem dengan %cpu untuk mengurutkan berdasarkan CPU.
Menghentikan proses dilakukan dengan kill PID. Kalau proses tidak mau berhenti, kill -9 PID memaksa, tapi gunakan sebagai pilihan terakhir karena proses tidak sempat merapikan diri. Untuk layanan yang dikelola systemd, lebih baik hentikan lewat systemctl daripada kill.
uptime menunjukkan sudah berapa lama server menyala dan load average. free -h menampilkan pemakaian RAM dan swap. Kalau server terasa lambat padahal angka CPU rendah, ada beberapa penyebab lain yang dijelaskan di server lambat padahal CPU rendah.
Mengelola layanan dengan systemctl
Hampir semua layanan modern, seperti Nginx, PHP-FPM, MySQL, dan SSH, dikelola oleh systemd. Perintah yang paling sering dipakai:
systemctl status nginxuntuk melihat apakah layanan berjalan, sejak kapan, dan beberapa baris log terakhir.systemctl restart nginxuntuk menyalakan ulang, atausystemctl reload nginxuntuk memuat ulang konfigurasi tanpa memutus koneksi (bila layanan mendukung).systemctl enable --now nginxuntuk mengaktifkan layanan saat boot sekaligus menyalakannya sekarang.systemctl list-units --faileduntuk melihat semua layanan yang gagal.
Sebelum restart web server setelah mengubah konfigurasi, uji dulu sintaksnya. Untuk Nginx: nginx -t. Untuk Apache: apachectl configtest. Kebiasaan ini mencegah layanan mati karena satu typo.
Membaca log: dari mana mencari penyebab error?
journalctl membaca log yang dikumpulkan systemd. journalctl -u nginx --since "1 hour ago" menampilkan log Nginx satu jam terakhir. journalctl -u php8.3-fpm -f mengikuti log secara langsung, sesuaikan nama layanan dengan versi PHP di servermu. journalctl -p err -b menampilkan semua pesan error sejak boot terakhir.
Banyak aplikasi juga menulis log ke file di /var/log. tail -f /var/log/nginx/error.log mengikuti log error Nginx secara langsung, dan tail -n 100 menampilkan 100 baris terakhir. Gabungkan dengan grep untuk menyaring: grep " 502 " /var/log/nginx/access.log | tail. Contoh penerapannya ada di artikel error 502 Bad Gateway.
Disk penuh dan cara menemukan pelakunya
df -h menunjukkan pemakaian setiap partisi. Kalau salah satu mendekati 100 persen, cari folder terbesar dengan du -sh /var/* | sort -h, lalu turun ke folder yang paling besar. Tersangka yang sering muncul adalah log yang tidak dirotasi, backup lama, cache aplikasi, dan image Docker yang menumpuk.
df -i memeriksa inode. Disk bisa "penuh" walau masih ada ruang, karena jumlah file kecil terlalu banyak. lsblk menampilkan disk dan partisi yang terpasang, berguna setelah menambah volume.
Jaringan: port, IP, dan DNS
ss -tulpn menampilkan port yang sedang mendengarkan beserta prosesnya. Perintah ini menjawab pertanyaan seperti "apakah MySQL terbuka ke publik?" atau "kenapa Nginx gagal start, port 80 dipakai siapa?".
ip a menampilkan alamat IP setiap antarmuka, dan ip r menampilkan tabel routing. ping menguji apakah sebuah host bisa dijangkau, walau banyak server memblokirnya.
curl -I https://domainmu.com menampilkan header respons, cara cepat melihat kode status dan redirect. curl -v memberi rincian proses koneksi termasuk TLS. dig domainmu.com +short menampilkan IP yang dijawab DNS, dan dig MX domainmu.com menampilkan server email. Dasar DNS dibahas di apa itu DNS.
User, hak akses, dan sudo
Bekerja sebagai root setiap saat itu berisiko. Buat user biasa dengan adduser budi (Debian/Ubuntu) atau useradd -m budi lalu passwd budi, dan beri hak admin dengan usermod -aG sudo budi (Ubuntu/Debian) atau grup wheel di keluarga Red Hat.
chown -R www-data:www-data /var/www/app mengubah pemilik folder aplikasi, dan chmod 640 .env membatasi siapa yang bisa membaca file berisi kata sandi. Hindari chmod 777, karena membuat file bisa ditulis siapa saja. last menampilkan riwayat login, berguna untuk mengecek akses mencurigakan. Langkah pengamanan awal lainnya ada di cara mengamankan VPS baru.
Pertanyaan yang sering diajukan
Apa bedanya restart dan reload di systemctl?
Restart menghentikan lalu menyalakan layanan, sehingga koneksi yang sedang berjalan terputus. Reload hanya memuat ulang konfigurasi tanpa menghentikan proses utama, tapi tidak semua layanan mendukungnya.
Bagaimana cara tahu perintah apa saja yang pernah dijalankan di server?
Perintah history menampilkan riwayat perintah user yang sedang login. Riwayat ini bisa dihapus atau tidak lengkap, jadi untuk audit yang serius gunakan log autentikasi dan alat audit khusus.
Apakah perintah ini sama di semua distribusi Linux?
Sebagian besar sama di distribusi berbasis systemd. Yang biasanya berbeda adalah manajer paket (apt atau dnf), nama grup admin (sudo atau wheel), dan lokasi beberapa file konfigurasi.


