Perintah Dasar & Navigasi

Perintah Dasar & Navigasi

Bitnesia • Aug 30, 2026 82 •EN

Setelah lingkungan Bash siap di Bab 1, langkah berikutnya adalah belajar bergerak dan bekerja di dalam filesystem lewat baris perintah. Bab ini membahas struktur direktori Linux, perintah dasar untuk berpindah lokasi dan mengelola file (pwd, cd, ls, cp, mv, rm, mkdir, touch), cara membaca isi file langsung dari terminal (cat, less, head, tail), sampai cara mencari bantuan saat lupa sintaks sebuah perintah (man, --help, tldr). Penguasaan perintah-perintah ini adalah modal wajib sebelum masuk ke Bab 3 tentang variabel, karena hampir semua script Bash pada akhirnya memanipulasi file dan direktori lewat perintah-perintah dasar ini.

2.1 Struktur Direktori Linux dan Filesystem Hierarchy

Berbeda dengan Windows yang mengenal banyak drive terpisah seperti C:\ dan D:\, sistem Linux hanya punya satu struktur pohon direktori tunggal yang dimulai dari root directory, dilambangkan dengan tanda garis miring (/). Semua file, direktori, bahkan perangkat keras seperti hard disk dan flash drive, pada akhirnya "menempel" di suatu titik dalam pohon direktori ini lewat proses yang disebut mounting.

2.1.1 Filesystem Hierarchy Standard (FHS)

Susunan direktori di Linux tidak sembarangan. Sebagian besar distribusi mengikuti Filesystem Hierarchy Standard (FHS), sebuah spesifikasi yang mengatur direktori apa saja yang harus ada di sistem Unix-like dan untuk apa masing-masing dipakai. Standar ini membuat kita bisa berpindah dari satu distro Linux ke distro lain, atau dari server ke server, tanpa harus belajar ulang dari nol ke mana file konfigurasi atau binary program biasanya disimpan.

Di lapangan, mengenal FHS dengan baik adalah salah satu pembeda Sysadmin berpengalaman: saat troubleshooting server yang tidak dikenal sekalipun, Sysadmin tahu harus mencari file log di /var/log, bukan menebak-nebak atau mencari lewat seluruh filesystem.

2.1.2 Direktori Penting yang Wajib Dikenal

Tabel berikut merangkum direktori tingkat atas yang paling sering dipakai sehari-hari, baik untuk kebutuhan User di desktop maupun Sysadmin di server.

DirektoriFungsiContoh Isi
/Root, titik awal seluruh filesystemSemua direktori lain bercabang dari sini
/bin, /usr/binBinary/perintah dasar yang bisa dipakai semua userls, cp, bash
/sbin, /usr/sbinBinary untuk administrasi sistem, biasanya butuh sudouseradd, iptables
/etcFile konfigurasi sistem dan aplikasi/etc/passwd, /etc/ssh/sshd_config
/homeHome directory tiap user biasa/home/budi
/rootHome directory khusus user root-
/varData yang sering berubah (variable data)/var/log, /var/www
/tmpFile sementara, biasanya dibersihkan otomatisFile cache aplikasi
/optSoftware tambahan pihak ketiga di luar package manager distroAplikasi vendor tertentu
/devFile perangkat (device file) yang mewakili hardware/dev/sda, /dev/null
/procFilesystem virtual, informasi kernel dan proses berjalan/proc/cpuinfo
/mnt, /mediaTitik mount untuk storage tambahanMount point flash drive, partisi lain

Satu catatan penting untuk distro modern: banyak distro Linux terkini (termasuk Fedora, Arch Linux, dan Debian/Ubuntu versi baru) sudah menerapkan usr-merge, yaitu menjadikan /bin, /sbin, dan /lib sebagai symlink ke /usr/bin, /usr/sbin, dan /usr/lib. Perubahan ini transparan untuk pemakaian sehari-hari, tapi ada baiknya kita mengetahuinya supaya tidak bingung saat menemukan kedua path tersebut ternyata mengarah ke lokasi fisik yang sama.

2.1.3 Absolute Path vs Relative Path

Absolute path adalah alamat lengkap sebuah file atau direktori dihitung dari root (/), contohnya /home/budi/dokumen/laporan.txt. Path jenis ini selalu menunjuk ke lokasi yang sama, tidak peduli dari direktori mana kita menjalankan perintah.

Relative path adalah alamat yang dihitung relatif terhadap direktori aktif saat ini (current working directory), contohnya dokumen/laporan.txt tanpa garis miring di depan. Dua simbol khusus sering dipakai dalam relative path: titik tunggal (.) merujuk pada direktori aktif itu sendiri, dan titik ganda (..) merujuk pada satu tingkat direktori di atasnya (parent directory).

Di lapangan, script Bash yang ditulis untuk dijalankan lewat cron sebaiknya selalu memakai absolute path, karena direktori aktif saat script dijalankan oleh cron sering kali berbeda dari yang diasumsikan penulis script, salah satu pitfall paling umum yang bikin script "kerja di laptop tapi gagal di server" akan dibahas lebih dalam di Bab 18.

2.1.4 Menjelajahi Struktur dengan ls

Cara paling cepat memahami FHS adalah langsung menjelajahinya. Jalankan perintah berikut untuk melihat isi root directory.

ls /

Keluarannya menampilkan daftar direktori tingkat atas seperti bin, etc, home, var, dan seterusnya, persis seperti yang dirangkum di tabel subbab 2.1.2. Sub-bab 2.2 akan membahas perintah ls beserta opsi-opsinya secara lebih detail.

2.2 Perintah Dasar: pwd, cd, ls, cp, mv, rm, mkdir, touch

Delapan perintah ini adalah alat paling sering dipakai untuk berinteraksi dengan filesystem lewat terminal. Semuanya adalah bagian dari GNU coreutils (kecuali cd yang merupakan shell builtin, bukan program eksternal terpisah), sehingga hampir pasti sudah tersedia di sistem Linux mana pun tanpa perlu instalasi tambahan.

2.2.1 pwd dan cd: Mengetahui dan Berpindah Lokasi

pwd (print working directory) menampilkan absolute path dari direktori aktif saat ini.

pwd

cd (change directory) dipakai untuk berpindah direktori. Perintah ini menerima absolute path maupun relative path sebagai argumen.

cd /var/log
cd dokumen/proyek
cd ..
cd ~

Simbol tilde (~) adalah singkatan untuk home directory user yang sedang login, sehingga cd ~ setara dengan cd /home/budi misalnya. Menjalankan cd tanpa argumen sama sekali juga akan membawa kita kembali ke home directory. Satu trik yang cukup berguna, cd - membawa kita kembali ke direktori sebelumnya, praktis dipakai saat berpindah-pindah antara dua lokasi kerja.

cd -

2.2.2 ls: Melihat Isi Direktori

ls (list) menampilkan isi sebuah direktori. Tiga opsi paling sering dipakai adalah -l untuk format panjang (menampilkan permission, pemilik, ukuran, dan tanggal modifikasi), -a untuk menampilkan file tersembunyi (nama yang diawali titik), dan -h untuk menampilkan ukuran file dalam format yang mudah dibaca manusia (KB, MB, GB).

ls -lah

Ketiga flag di atas bisa digabung dalam satu penulisan seperti contoh, kebiasaan umum di antara Sysadmin karena kombinasi ini menampilkan informasi paling lengkap dalam satu perintah.

2.2.3 mkdir dan touch: Membuat Direktori dan File

mkdir (make directory) membuat direktori baru.

mkdir proyek-baru

Untuk membuat struktur direktori bertingkat sekaligus, misalnya proyek/src/utils yang induknya belum ada satu pun, pakai flag -p (parents). Tanpa flag ini, mkdir akan gagal dengan pesan error jika direktori induk belum ada.

mkdir -p proyek/src/utils

touch membuat file kosong baru jika file dengan nama tersebut belum ada, atau memperbarui timestamp modifikasi file yang sudah ada tanpa mengubah isinya.

touch catatan.txt

2.2.4 cp dan mv: Menyalin dan Memindahkan

cp (copy) menyalin file atau direktori. Sintaks dasarnya adalah cp [sumber] [tujuan].

cp laporan.txt laporan-backup.txt

Menyalin direktori beserta seluruh isinya butuh flag -r (recursive), karena secara default cp menolak menyalin direktori.

cp -r proyek/ proyek-backup/

mv (move) memindahkan file atau direktori, dan juga dipakai untuk mengganti nama (rename) karena secara teknis rename adalah memindahkan file ke nama baru di lokasi yang sama.

mv catatan.txt catatan-lama.txt
mv laporan.txt arsip/

Baik cp maupun mv mendukung flag -i (interactive) yang akan meminta konfirmasi sebelum menimpa file tujuan yang sudah ada, kebiasaan baik untuk mencegah file tertimpa tanpa sengaja terutama saat baru belajar.

cp -i laporan.txt arsip/laporan.txt

2.2.5 rm: Menghapus File dan Direktori

rm (remove) menghapus file. Direktori butuh flag -r agar dihapus beserta seluruh isinya, sama seperti pola pada cp.

rm catatan-lama.txt
rm -r proyek-backup/

Perintah ini butuh perhatian ekstra karena sifatnya destruktif. Berbeda dari menghapus file lewat file manager berbasis GUI yang biasanya masih masuk ke Trash atau Recycle Bin dan bisa dipulihkan, rm langsung menghapus file dari filesystem tanpa mekanisme pemulihan bawaan. Kombinasi flag -rf (recursive dan force, yang menekan semua prompt konfirmasi) sangat sering dipakai dalam script otomatisasi, tapi juga jadi salah satu penyebab insiden kehilangan data paling umum jika path yang dituju salah ketik, misalnya spasi yang tidak sengaja tersisip antara path dan opsinya.

Di lapangan, kebiasaan aman yang layak dibawa sejak awal adalah menjalankan ls dulu terhadap path yang sama sebelum menjalankan rm, terutama saat memakai wildcard seperti tanda bintang (*), untuk memastikan file yang akan terhapus memang benar-benar yang dimaksud.

ls *.tmp
rm *.tmp

2.2.6 Verifikasi dan Troubleshooting Umum

Kebiasaan baik setelah menjalankan perintah yang mengubah filesystem adalah memverifikasi hasilnya lewat ls -l, bukan berasumsi perintah pasti berhasil tanpa dicek.

mkdir -p proyek/src/utils
ls -l proyek/src

Beberapa pesan error paling umum saat baru belajar perintah-perintah ini juga penting dikenali. Error mkdir: cannot create directory 'proyek/src/utils': No such file or directory muncul saat direktori induk belum ada dan kita lupa menambahkan flag -p, seperti dibahas di subbab 2.2.3.

Error rm: cannot remove 'proyek': Is a directory muncul saat mencoba menghapus direktori tanpa flag -r. Pesan serupa juga muncul di cp dengan bunyi cp: -r not specified; omitting directory 'proyek', tandanya target yang disalin atau dihapus ternyata direktori, bukan file biasa.

rm -r proyek
cp -r proyek proyek-backup

Error bash: cd: proyek: No such file or directory biasanya berarti nama direktori salah ketik, atau direktori aktif saat ini bukan lokasi yang kita kira. Jalankan pwd dan ls lebih dulu untuk memastikan posisi dan isi direktori sebelum berpindah.

pwd
ls

Jika rm, cp, atau mv menampilkan Permission denied, penyebabnya biasanya file tersebut dimiliki user lain atau butuh akses root. Topik permission dan kepemilikan file (chmod, chown) dibahas lebih rinci di Bab 17.

2.3 Melihat dan Membaca File: cat, less, head, tail

Setelah bisa berpindah dan mengelola file, langkah berikutnya adalah membaca isinya langsung dari terminal tanpa perlu membuka text editor. Empat perintah ini masing-masing punya kegunaan berbeda tergantung ukuran file dan kebutuhan.

2.3.1 cat: Menampilkan Isi File Singkat

cat (concatenate) menampilkan seluruh isi file langsung ke layar sekaligus. Cocok dipakai untuk file pendek seperti file konfigurasi kecil.

cat /etc/hostname

Nama cat berasal dari fungsi aslinya untuk menggabungkan (concatenate) isi beberapa file sekaligus, bukan sekadar menampilkan satu file.

cat file1.txt file2.txt

Untuk file yang isinya panjang, memakai cat akan membuat teks langsung membanjiri layar tanpa jeda, sehingga kurang praktis. Kasus seperti ini lebih cocok memakai less.

2.3.2 less: Membaca File Panjang secara Interaktif

less membuka file dalam mode pager, memungkinkan kita menggulir isi file secara interaktif tanpa memuat semuanya sekaligus ke layar.

less /var/log/syslog

Beberapa navigasi dasar di dalam less yang wajib dihafal: tombol spasi untuk maju satu halaman, huruf b untuk mundur satu halaman, garis miring (/) diikuti kata kunci untuk mencari teks tertentu, huruf n untuk lompat ke hasil pencarian berikutnya, dan huruf q untuk keluar. Sysadmin banyak memakai less untuk membaca file log berukuran ratusan megabyte tanpa membebani memori, karena less hanya memuat bagian file yang sedang ditampilkan, bukan seluruh isinya sekaligus seperti cat.

2.3.3 head dan tail: Melihat Bagian Awal atau Akhir File

head menampilkan sejumlah baris pertama dari sebuah file, secara default 10 baris.

head /var/log/syslog

tail menampilkan sejumlah baris terakhir, juga secara default 10 baris. Kedua perintah menerima flag -n diikuti angka untuk menentukan jumlah baris yang diinginkan.

tail -n 20 /var/log/syslog

2.3.4 Studi Kasus: Memantau Log secara Real-Time dengan tail -f

Salah satu kegunaan paling praktis dari tail di dunia sysadmin adalah flag -f (follow), yang membuat tail tidak langsung keluar setelah menampilkan baris terakhir, melainkan terus berjalan dan menampilkan baris baru secara real-time begitu ditambahkan ke file.

tail -f /var/log/syslog

Perintah ini sangat berguna saat Sysadmin sedang men-debug masalah yang terjadi langsung (misalnya menonton log server web sambil mencoba mengakses halaman yang error), karena tidak perlu membuka ulang file berkali-kali untuk melihat baris terbaru. Tekan Ctrl+C untuk menghentikan proses follow ini. Topik pemantauan log secara lebih mendalam, termasuk journalctl, akan dibahas lebih jauh di Bab 19.

2.3.5 Troubleshooting: cat pada File Biner

Menjalankan cat pada file biner, seperti file gambar atau program hasil kompilasi, bisa membuat tampilan terminal jadi berantakan. Penyebabnya, cat menampilkan byte mentah apa adanya ke layar, termasuk karakter kontrol yang bisa mengubah warna atau pengaturan tampilan terminal, dan kadang terminal terlihat seperti macet atau menampilkan karakter aneh setelahnya.

Jika ini terjadi, jalankan perintah reset untuk mengembalikan tampilan terminal ke kondisi normal.

reset

Untuk mencegah masalah ini sejak awal, biasakan memeriksa jenis file lebih dulu dengan perintah file sebelum membukanya dengan cat, terutama untuk file yang belum dikenal asal-usulnya.

file dokumen-tidak-dikenal

Jika hasilnya menunjukkan file biner, gunakan utilitas seperti xxd atau hexdump -C untuk melihat isinya dalam format heksadesimal yang aman, bukan cat.

hexdump -C dokumen-tidak-dikenal | head

2.4 Mendapatkan Bantuan: man, --help, tldr

Tidak ada yang bisa menghafal seluruh opsi dari ratusan perintah Linux. Kebiasaan mencari bantuan langsung dari terminal, alih-alih berpindah ke browser setiap kali lupa sintaks, adalah keterampilan yang menghemat banyak waktu dalam jangka panjang.

2.4.1 man: Manual Resmi Perintah

man (manual) menampilkan halaman manual resmi sebuah perintah, lengkap dengan deskripsi, daftar opsi, dan sering kali juga contoh pemakaian.

man ls

Navigasi di dalam man memakai mekanisme pager yang sama seperti less karena secara internal man memang memakai less sebagai penampilnya, sehingga tombol spasi, / untuk mencari, dan q untuk keluar berlaku sama persis. Man page terbagi dalam beberapa nomor bagian (section), misalnya section 1 untuk perintah user biasa dan section 8 untuk perintah administrasi sistem. Kadang satu nama bisa muncul di lebih dari satu section, sehingga section tertentu bisa ditentukan secara eksplisit lewat angka sebelum nama perintah.

man 8 useradd

Jika lupa nama perintah yang tepat tapi ingat kata kuncinya, man -k (setara dengan perintah apropos) bisa mencari di seluruh database man page berdasarkan kata kunci.

man -k "list directory"

2.4.2 --help: Bantuan Cepat dari Command Itu Sendiri

Sebagian besar perintah GNU coreutils mendukung flag --help, yang menampilkan ringkasan singkat opsi-opsi yang tersedia langsung di terminal, tanpa masuk ke mode pager seperti man.

ls --help

Cara ini lebih cepat dibanding man untuk sekadar mengingat nama flag yang lupa, tapi penjelasannya biasanya jauh lebih ringkas dan tidak selengkap man page. Untuk builtin Bash seperti cd yang bukan program eksternal terpisah, gunakan help alih-alih --help, karena help adalah builtin Bash sendiri yang dirancang untuk menampilkan dokumentasi builtin lainnya.

help cd

2.4.3 tldr: Alternatif Ringkas dan Praktis

tldr adalah tool komunitas yang menampilkan contoh pemakaian paling umum dari sebuah perintah dalam format ringkas, jauh lebih pendek dibanding man page yang formal dan kadang bertele-tele. Berbeda dari man dan help, tldr bukan bawaan sistem dan perlu dipasang secara terpisah, misalnya lewat package manager Node.js.

npm install -g tldr

Beberapa distro juga menyediakan paket tldr lewat package manager masing-masing, misalnya sudo apt install tldr di Ubuntu/Debian. Setelah terpasang, pemakaiannya cukup memanggil tldr diikuti nama perintah.

tldr tar

Keluarannya berupa daftar contoh pemakaian paling umum lengkap dengan penjelasan singkat tiap opsi, jauh lebih cepat dipahami dibanding harus membaca seluruh man page hanya untuk mengingat satu opsi spesifik.

2.4.4 Troubleshooting: man atau tldr Tidak Ditemukan

Di lapangan, terutama saat bekerja di dalam container atau hasil instalasi server minimal, perintah man sering kali belum terpasang secara default. Pesan error yang muncul biasanya bash: man: command not found, atau jika program man ada tapi database halaman manualnya belum lengkap, No manual entry for ls. Solusinya berbeda tergantung distro yang dipakai.

# Ubuntu/Debian
sudo apt install man-db

# Fedora
sudo dnf install man-db

# Arch Linux
sudo pacman -S man-db man-pages

Untuk tldr, pesan bash: tldr: command not found berarti tool ini memang belum terpasang sama sekali, karena seperti dibahas di subbab 2.4.3, tldr bukan bawaan sistem dan harus dipasang manual lebih dulu lewat npm atau package manager distro.

2.4.5 Kapan Pakai yang Mana

Ketiga sumber bantuan ini saling melengkapi, bukan saling menggantikan. Pakai --help saat hanya butuh pengingat cepat nama flag yang sudah pernah dipakai sebelumnya. Pakai tldr saat baru pertama kali memakai sebuah perintah dan butuh contoh konkret tanpa membaca dokumentasi panjang. Pakai man saat butuh detail lengkap dan akurat, misalnya saat menulis script yang perilakunya harus benar-benar sesuai spesifikasi resmi, atau saat tldr dan --help tidak cukup menjawab pertanyaan yang lebih spesifik. Kebiasaan mengecek dokumentasi resmi lewat man alih-alih menebak-nebak perilaku sebuah opsi juga jadi salah satu praktik penting untuk menjaga akurasi script yang kita tulis sepanjang series ini.