Tutorial

Panduan Command Linux Server dari Dasar sampai Advanced

IT Musafir · 18 Jul 2026 · 25 views
Panduan Command Linux Server dari Dasar sampai Advanced

Ringkasan

Mengelola Linux server tidak harus dimulai dari hafalan puluhan command. Mulailah dari navigasi, membaca kondisi server, mengelola file, lalu naik ke proses, jaringan, service, dan troubleshooting. Di produksi, command sederhana seperti df -h, journalctl, dan ss justru sering lebih berguna daripada command yang terlalu eksotis.

Contoh di bawah cocok untuk Ubuntu, Debian, Rocky Linux, AlmaLinux, dan sebagian besar distribusi server modern. Jalankan command berisiko dengan hati-hati, terutama saat memakai sudo atau bekerja di direktori sistem.

Prasyarat

  • Akses ke server melalui SSH atau terminal lokal.

  • User yang memiliki akses sudo bila perlu mengelola service atau paket.

  • Pemahaman dasar bahwa Linux membedakan huruf besar dan kecil.

  • Sebaiknya latihan dulu di VM atau server development, bukan langsung di server produksi.

Langkah-langkah

1. Masuk ke server dan kenali identitas sistem

  1. Login melalui SSH.

    ssh user@alamat-ip-server
    

    Jika memakai port SSH selain default, tambahkan opsi -p.

    ssh -p 2222 user@alamat-ip-server
    
  2. Periksa user aktif dan lokasi direktori saat ini.

    whoami
    pwd
    

    whoami berguna untuk memastikan Anda tidak sedang bekerja sebagai root tanpa sengaja. Kebiasaan kecil ini menghindarkan banyak insiden yang sebenarnya sepele.

  3. Lihat informasi sistem operasi dan kernel.

    cat /etc/os-release
    uname -a
    hostnamectl
    

    Saat menerima tiket masalah, saya biasanya mulai dari tiga command ini. Versi OS dan hostname sering menentukan langkah troubleshooting berikutnya.

2. Navigasi direktori dan membaca isi file

  1. Tampilkan isi direktori.

    ls
    ls -lah
    

    Opsi -l menampilkan detail, -a menyertakan file tersembunyi, dan -h membuat ukuran file lebih mudah dibaca manusia.

  2. Berpindah direktori.

    cd /var/log
    cd ..
    cd ~
    

    ~ mengarah ke home directory user aktif. Hindari asumsi bahwa Anda selalu berada di /root; pada server yang dikelola tim, asumsi seperti itu mudah membuat command salah sasaran.

  3. Baca file teks.

    cat /etc/hosts
    less /var/log/syslog
    head -n 20 /etc/passwd
    tail -n 50 /var/log/auth.log
    

    Untuk log besar, gunakan less atau tail, bukan cat. Membuka log berukuran gigabyte dengan cat hanya membuat terminal tidak nyaman dan tidak memberi nilai tambah.

  4. Pantau log yang terus bertambah.

    tail -f /var/log/nginx/access.log
    

    Tekan Ctrl+C untuk berhenti. Ini praktis saat menguji deploy, request API, atau perubahan konfigurasi reverse proxy.

3. Mengelola file dan direktori dengan aman

  1. Buat direktori dan file.

    mkdir proyek
    mkdir -p proyek/logs/aplikasi
    touch proyek/README.md
    

    Gunakan mkdir -p jika struktur folder bertingkat. Command ini tidak gagal hanya karena parent directory belum ada.

  2. Salin, pindahkan, dan ubah nama file.

    cp konfigurasi.conf konfigurasi.conf.bak
    mv aplikasi-v1 aplikasi-v2
    

    Sebelum mengubah file konfigurasi, buat backup sederhana dengan ekstensi .bak. Tidak mewah, tetapi sangat membantu ketika perubahan kecil ternyata memutus service.

  3. Hapus file atau direktori.

    rm file-lama.txt
    rm -r direktori-lama
    

    Jangan biasakan memakai rm -rf tanpa memastikan path terlebih dahulu. Jalankan pwd dan ls sebelum menghapus direktori, terutama bila bekerja dengan sudo.

  4. Cari file berdasarkan nama.

    find /var/log -name "*.log"
    find /home -type f -mtime -7
    

    Contoh kedua mencari file yang dimodifikasi dalam tujuh hari terakhir. Ini sering dipakai saat melacak artefak deploy atau file upload yang bermasalah.

4. Memahami permission dan ownership

  1. Lihat permission file.

    ls -l
    

    Contoh output -rw-r----- berarti pemilik dapat membaca dan menulis, grup dapat membaca, sementara user lain tidak memiliki akses.

  2. Ubah permission.

    chmod 640 aplikasi.conf
    chmod 755 /var/www/html
    

    Permission 777 hampir tidak pernah menjadi solusi yang benar di server. Jika aplikasi gagal menulis file, periksa ownership, grup, dan konteks service terlebih dahulu.

  3. Ubah pemilik file.

    sudo chown nginx:nginx /var/www/html/uploads
    sudo chown -R www-data:www-data /var/www/html
    

    Nama user service berbeda antar distro. Ubuntu sering memakai www-data, sedangkan beberapa instalasi Nginx memakai nginx.

5. Memantau resource server

  1. Cek kapasitas disk.

    df -h
    du -sh /var/log
    du -sh
    
    
  • 
    `df -h` menunjukkan penggunaan filesystem, sedangkan `du` membantu menemukan direktori yang memakan ruang. Jika disk penuh, jangan langsung menghapus log; cari sumber pertumbuhannya dulu.
    
    
  1. Cek penggunaan memori dan CPU.

    free -h
    uptime
    top
    

    uptime menampilkan load average. Angka load tidak bisa dinilai sendirian; bandingkan dengan jumlah core melalui nproc.

  2. Gunakan htop bila tersedia.

    htop
    

    htop lebih nyaman untuk melihat proses dan melakukan sorting. Namun, top tetap penting karena hampir selalu tersedia pada instalasi minimal.

  3. Lihat proses yang paling berat.

    ps aux --sort=-%cpu | head
    ps aux --sort=-%mem | head
    

    Hasil ini berguna saat server mendadak lambat. Catat PID dan command proses sebelum mengambil tindakan apa pun.

6. Mengelola proses dan service

  1. Cari proses.

    pgrep -a nginx
    ps aux | grep nginx
    

    pgrep -a biasanya lebih bersih daripada pola grep, karena tidak ikut menampilkan proses grep itu sendiri.

  2. Hentikan proses dengan terukur.

    kill PID
    kill -9 PID
    

    Gunakan kill biasa terlebih dahulu agar aplikasi punya kesempatan menutup koneksi dan menulis data. kill -9 adalah pilihan terakhir karena proses tidak dapat melakukan cleanup.

  3. Periksa status service systemd.

    sudo systemctl status nginx
    sudo systemctl status ssh
    
  4. Jalankan, hentikan, restart, dan aktifkan service saat boot.

    sudo systemctl restart nginx
    sudo systemctl reload nginx
    sudo systemctl enable nginx
    

    Untuk perubahan konfigurasi web server, reload sering lebih aman daripada restart karena koneksi aktif tidak selalu terputus. Tetap validasi konfigurasi sebelum reload.

  5. Baca log service.

    sudo journalctl -u nginx -n 100
    sudo journalctl -u nginx -f
    

    Ini salah satu jalur tercepat ketika service gagal start. Pesan error biasanya jauh lebih jelas daripada menebak-nebak dari status merah di systemctl.

7. Dasar jaringan dan koneksi

  1. Lihat alamat IP dan interface.

    ip addr
    ip route
    
  2. Uji konektivitas dan DNS.

    ping -c 4 8.8.8.8
    ping -c 4 google.com
    getent hosts google.com
    

    Jika IP dapat diping tetapi domain gagal di-resolve, masalahnya kemungkinan ada di DNS, bukan koneksi internet secara umum.

  3. Periksa port yang sedang listening.

    sudo ss -tulpn
    sudo ss -ltnp
    

    Command ini penting saat aplikasi tidak dapat diakses. Pastikan proses benar-benar mendengarkan pada port yang diharapkan dan bukan hanya berjalan di background.

  4. Uji HTTP dari server.

    curl -I http://127.0.0.1
    curl -v https://contoh-domain.com
    

    curl -v menampilkan detail koneksi, TLS, header, dan respons. Sangat berguna untuk membedakan masalah aplikasi, reverse proxy, DNS, atau sertifikat.

8. Mengelola paket software

  1. Untuk Ubuntu dan Debian, gunakan APT.

    sudo apt update
    sudo apt upgrade
    sudo apt install curl
    sudo apt remove nama-paket
    
  2. Untuk Rocky Linux, AlmaLinux, atau RHEL, gunakan DNF.

    sudo dnf check-update
    sudo dnf upgrade
    sudo dnf install curl
    sudo dnf remove nama-paket
    

    Jangan menjalankan upgrade besar di jam trafik tinggi tanpa melihat changelog dan rencana rollback. Update keamanan penting, tetapi cara menjalankannya tetap perlu disiplin operasional.

9. Menggunakan pipe, redirect, dan pencarian log

  1. Filter output dengan grep.

    grep -i "error" /var/log/syslog
    grep -R "DATABASE_URL" /etc 2>/dev/null
    
  2. Gabungkan command dengan pipe.

    journalctl -u nginx | grep -i error
    ps aux | grep php-fpm
    
  3. Simpan output ke file.

    df -h > laporan-disk.txt
    date >> aktivitas.txt
    

    > menimpa isi file, sedangkan >> menambahkan baris di akhir file. Kesalahan memakai redirect pada file konfigurasi bisa fatal, jadi baca command sekali lagi sebelum menekan Enter.

  4. Gunakan awk dan sort untuk analisis ringan.

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

    Contoh ini menghitung alamat IP yang paling sering muncul di access log Nginx. Cocok untuk investigasi awal lonjakan trafik atau bot yang terlalu agresif.

10. Administrasi advanced yang sering dipakai

  1. Jadwalkan pekerjaan dengan cron.

    crontab -e
    

    Contoh menjalankan backup setiap hari pukul 02:00:

    0 2
    
    
    • /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
    
    Pastikan script menggunakan path absolut. Cron memiliki environment yang lebih minim dibanding shell interaktif.
    
    
  1. Jalankan pekerjaan panjang dengan tmux.

    tmux new -s deploy
    tmux attach -t deploy
    

    Saat koneksi SSH putus, proses di dalam sesi tmux tetap berjalan. Ini lebih aman untuk migrasi data, restore backup, atau deploy yang memakan waktu.

  2. Cek koneksi aktif dan masalah socket.

    ss -tan state established
    ss -s
    
  3. Cari error kernel atau indikasi kehabisan memori.

    dmesg -T | tail -n 50
    journalctl -k -n 100
    

    Jika proses mati tanpa alasan jelas, cari kata seperti OOM, killed process, atau out of memory. Banyak kasus aplikasi terlihat crash, padahal kernel menghentikannya karena memori habis.

  4. Cek penggunaan inode.

    df -i
    

    Disk bisa tampak masih lega tetapi tidak dapat membuat file baru karena inode habis. Ini sering terjadi pada aplikasi yang menghasilkan jutaan file kecil, cache, atau session file.

Tips Praktis

  • Biasakan menjalankan pwd, whoami, dan ls -lah sebelum perubahan penting.

  • Gunakan sudo hanya pada command yang memerlukannya; jangan login sebagai root untuk pekerjaan harian.

  • Validasi konfigurasi sebelum reload service, misalnya sudo nginx -t untuk Nginx.

  • Simpan output investigasi penting ke file agar mudah dibandingkan atau dibagikan ke tim.

  • Untuk server produksi, catat waktu perubahan, command utama, dan hasilnya. Dokumentasi kecil seperti ini sangat membantu saat insiden.

  • Jangan menyalin command dari internet secara mentah, terutama yang mengandung rm, curl | bash, perubahan firewall, atau modifikasi permission rekursif.

Penutup

Kemampuan mengelola Linux server terbentuk dari pola kerja, bukan sekadar hafalan command. Kuasai command dasar sampai benar-benar nyaman, lalu gunakan log, status service, dan metrik resource sebagai dasar keputusan. Di lapangan, pendekatan yang tenang dan terukur biasanya menyelesaikan masalah lebih cepat daripada menjalankan banyak command secara acak.

Format gambar: JPG, PNG, GIF, WebP. Maksimal 5MB.

Artikel Terbaru

DENRAMA Support

Online via WhatsApp

Halo, butuh konsultasi IT, produk, billing, service, atau integrasi? Kirim pesan ke tim DenRama dan kami bantu arahkan dari sana.
Konsultasi layanan dan produk
Support teknis dan penjadwalan
Estimasi kebutuhan proyek
Chat via WhatsApp