Pertama kali login ke sebuah server, tidak ada ikon, tidak ada folder buat di-klik dua kali, tidak ada jendela yang menunjukkan kamu sedang di mana. Cuma kursor berkedip dan sebuah prompt. Rasanya seperti dilempar ke ruangan gelap — kamu tahu ada satu rumah utuh di sekelilingmu, tapi kamu tidak bisa melihatnya. Belajar menjelajah direktori itu ibarat menyalakan lampunya. Begitu kamu bisa bergerak di pohon berkas lewat keyboard, server berhenti terasa asing dan mulai terasa seperti tempat yang benar-benar kamu huni.
Kabar baiknya, semua ini cuma soal tiga perintah kecil dan satu ide tentang path. Kuasai itu, dan kamu tidak akan tersesat lagi. Semua hal lain yang kamu kerjakan di server Linux — mengedit config, mengecek log, men-deploy situs — selalu diawali dengan kemampuan untuk sampai ke tempat yang benar.
Aku di mana? Perintah pwd
Sebelum bisa pergi ke mana-mana, kamu perlu tahu kamu sedang berdiri di mana. Di file browser grafis, judul jendela yang memberi tahu. Di server, kamu menanyakannya dengan pwd — singkatan dari print working directory.
pwd
Jawabannya berupa path lengkap dari folder tempat kamu berada sekarang:
/home/jane
Sesederhana itu. pwd tidak mengubah apa pun — dia cuma melaporkan posisimu saat ini. Folder tempat kamu “berada” sekarang punya nama: working directory (kadang disebut juga direktori saat ini). Setiap perintah yang kamu jalankan terjadi relatif terhadap titik ini kecuali kamu bilang sebaliknya, jadi inilah hal pertama yang layak dicek setiap kali kamu merasa ragu.
Kalau ragu, pwd dulu
Biasakan menjalankan pwd begitu kamu merasa bingung arah — apalagi tepat sebelum menjalankan sesuatu yang merusak seperti menghapus berkas. Sebagian besar kecelakaan pemula sebenarnya cuma “aku kira aku ada di tempat lain”. Satu pwd cepat tidak memakan apa pun dan menyelamatkanmu dari menjalankan perintah yang benar di tempat yang salah.
Melihat sekeliling: perintah ls
Tahu posisimu itu baru separuh gambaran. Separuh lainnya adalah melihat ada apa di sini. Itu tugas ls — singkatan dari list. Jalankan begitu saja dan dia menampilkan nama berkas dan folder yang ada di direktori saat ini:
ls
documents downloads notes.txt project
Tapi ls polos memang agak irit. Dia tidak memberi tahu mana yang folder dan mana yang berkas, dan dia menyembunyikan apa pun yang diawali titik. Beberapa opsi membuatnya jauh lebih berguna:
ls -l # format panjang: izin, pemilik, ukuran, tanggal, satu per baris
ls -a # all: ikut tampilkan berkas tersembunyi (yang diawali titik)
ls -la # dua-duanya sekaligus — kombinasi yang paling sering kamu pakai
Begini tampilan ls -la, dan apa arti tiap bagiannya:
drwxr-xr-x 2 jane jane 4096 Sep 17 09:12 project
-rw-r--r-- 1 jane jane 280 Sep 16 18:40 notes.txt
Karakter paling depan memberi tahu jenisnya: d berarti dia sebuah direktori, dan - berarti dia sebuah berkas biasa. Sisa kolom pertama itu adalah izin, lalu nama-nama itu adalah pemilik dan grup, kemudian ukuran, tanggal terakhir diubah, dan terakhir namanya. Kamu tidak perlu menerjemahkan semuanya hari ini — cukup tahu d = folder dan - = berkas, daftarnya sudah jadi gampang dibaca.
Berkas tersembunyi sebenarnya tidak benar-benar disembunyikan
Di Linux, nama apa pun yang diawali titik — seperti .bashrc atau .ssh — diperlakukan sebagai tersembunyi dan tidak ikut muncul di ls polos. Tidak ada yang rahasia soal mereka; itu cuma konvensi supaya berkas config tidak berserakan menghalangi. Begitu kamu menambahkan -a, mereka semua muncul. Di server, banyak pengaturan penting yang justru tinggal di dotfile ini, jadi ls -a adalah cara kamu menemukannya.
Berpindah tempat: perintah cd
Sekarang yang benar-benar membawamu ke mana-mana: cd — change directory. Kamu beri dia tujuan, dan working directory-mu pindah ke sana.
cd documents
Jalankan pwd setelah itu, kamu akan lihat kamu sudah masuk satu tingkat lebih dalam:
/home/jane/documents
Untuk naik satu tingkat — menuju akar pohonnya — kamu pakai dua titik, yang selalu berarti “direktori induk”:
cd ..
Satu titik (.) berarti “di sini juga, direktori saat ini”. Kedengarannya tidak berguna sampai kamu perlu menunjuk posisi sekarang secara eksplisit, dan itu lebih sering muncul daripada yang kamu kira. Lalu cd tanpa argumen apa pun adalah hadiah kecil: dia langsung melompatkanmu kembali ke home directory-mu, sejauh apa pun kamu sudah menjelajah.
cd # langsung pulang ke home
cd ~ # juga ke home — tanda ~ itu singkatan untuk home directory-mu
cd - # balik ke direktori sebelumnya tempat kamu tadi (sakelar yang praktis)
Yang terakhir, cd -, adalah pahlawan yang sering diremehkan. Dia membalikkanmu ke tempat asal tadi — pas banget buat bolak-balik antara dua folder yang sedang kamu garap bareng.
Path: absolut vs relatif
Semua yang di atas bertumpu pada satu konsep yang layak kamu pelankan: cara kamu menjelaskan di mana sesuatu berada. Ada dua cara, dan paham bedanya menghilangkan sebagian besar kebingungan yang dirasakan pemula.
Path absolut dimulai dari puncak pohon — root, ditulis dengan satu / — dan mengeja seluruh rutenya. Dia selalu diawali garis miring di depan:
/home/jane/project/config
Karena dimulai dari root, path absolut berarti hal yang sama tidak peduli kamu sekarang ada di mana. Ibarat memberi seseorang koordinat GPS lengkap: tidak ambigu, selalu jalan.
Path relatif dimulai dari tempat kamu kebetulan sedang berdiri — working directory-mu — dan tidak punya garis miring di depan:
project/config
Kalau kamu sudah ada di /home/jane, maka project/config dan /home/jane/project/config menunjuk ke tempat yang persis sama. Path relatif lebih pendek dan lebih cepat diketik, makanya orang terus-menerus memakainya — tapi dia baru masuk akal kalau kamu tahu titik mulainya di mana. (Karena itulah: pwd dulu.)
Ini seluruh pohon Linux dalam versi mini, supaya kamu bisa melihat bagaimana kepingannya saling pas:
/ ← root: puncak dari segalanya
├── home/
│ ├── jane/ ← home directory Jane (~)
│ │ ├── documents/
│ │ └── project/
│ │ └── config
│ └── john/
├── etc/ ← config se-sistem tinggal di sini
├── var/
│ └── log/ ← log server tinggal di sini
└── usr/
Dari dalam /home/jane, semua titik ini bisa dijangkau. Untuk menyelam masuk: cd project. Untuk keluar dan menyeberang ke log: cd /var/log (absolut, karena letaknya jauh dari posisimu). Untuk naik dua tingkat ke root: cd ../... Pohonnya tidak pernah berubah — yang berubah cuma posisimu di dalamnya.
Garis miring di depan mengubah segalanya
cd etc dan cd /etc bukan perintah yang sama. cd /etc (pakai garis miring) pergi ke direktori etc di tingkat paling atas sistem — sebuah path absolut. cd etc (tanpa garis miring) mencari folder bernama etc di dalam direktori kamu saat ini, dan biasanya gagal dengan pesan “No such file or directory”. Satu garis miring mungil itulah beda antara path absolut dan relatif. Kalau sebuah perintah tidak pergi ke tempat yang kamu harapkan, cek apakah sebenarnya kamu bermaksud mulai dari root.
Tab completion: ketik lebih sedikit, salah lebih jarang
Kamu tidak harus mengetik nama sampai lengkap. Tekan tombol Tab di tengah-tengah nama berkas atau folder, dan shell akan menyelesaikannya untukmu — selama apa yang sudah kamu ketik tidak ambigu.
cd doc<Tab> # menjadi: cd documents/
Kalau ada dua hal yang berawalan sama (misalnya downloads dan documents), satu Tab belum cukup — shell butuh lebih banyak huruf untuk memutuskan. Tekan Tab dua kali dan dia akan mendaftar semua opsi yang cocok supaya kamu bisa melihat apa saja yang ada lalu mengetik satu huruf lagi. Ini bukan sekadar kepraktisan: karena Tab completion cuma mengisi nama yang benar-benar ada, dia diam-diam melindungimu dari salah ketik dan dari mengetik path ke berkas yang sebenarnya tidak ada.
cd do<Tab><Tab>
documents/ downloads/
Andalkan Tab terus-menerus. Orang yang sudah terbiasa di command line mengetik beberapa huruf lalu nge-Tab untuk hampir segalanya — itu lebih cepat sekaligus lebih aman daripada mengetik nama dengan tangan sampai habis.
Satu tur singkat, dari awal sampai akhir
Mari satukan tiga perintah tadi seperti cara kamu memakainya sungguhan. Misalkan kamu baru saja login ke sebuah server sebagai user jane dan ingin mengecek log sebuah aplikasi:
pwd # /home/jane — pastikan aku di mana
ls # lihat ada apa di sini
cd /var/log # lompat ke log (path absolut)
ls -la # daftar semuanya, termasuk berkas tersembunyi
cd nginx # masuk ke satu folder log tertentu
pwd # /var/log/nginx — pastikan sudah sampai
cd ~ # selesai — balik pulang ke home
Tidak ada yang lebih dari loop itu: cek kamu di mana, lihat sekeliling, pindah, ulangi. Ini jadi refleks otot lebih cepat daripada yang kamu kira, dan sejak itu pohon berkas server terasa seperti tempat yang kamu hafal jalannya, bukan labirin.
Kenapa ini fondasinya
Menjelajah direktori kedengarannya sepele, dan memang — tapi sepele dalam arti hafal jalan di sebuah kota itu sepele. Hampir semua hal lain di server Linux menganggap kamu sudah bisa sampai ke folder yang benar: mengedit berkas konfigurasi berarti pergi ke tempat dia tinggal, membaca log berarti masuk ke /var/log, men-deploy website berarti menaruh berkas di direktori yang dibaca web server. Tidak satu pun dari itu mungkin kalau kamu tidak bisa bergerak dengan pwd, ls, dan cd.
Ini juga berpasangan langsung dengan paham kenapa pohonnya disusun seperti itu — folder mana yang menampung config, mana yang menampung log, mana yang menampung berkasmu sendiri. Kalau kamu ingin gambaran besar kenapa Linux jadi lantai standar di bawah hampir setiap server, ada baiknya membaca kenapa Linux menjalankan kebanyakan server berdampingan dengan ini. Perintah di sini adalah bagaimana-nya; itu kenapa-nya.
Penutup
Ini rangkuman semuanya dalam satu tempat:
pwdmencetak posisimu saat ini — working directory-mu. Jalankan kapan pun kamu merasa tersesat, dan selalu sebelum melakukan apa pun yang merusak.lsmendaftar isi direktori saat ini. Pakails -launtuk melihat detail dan dotfile tersembunyi;ddi depan berarti folder,-berarti berkas.cdmemindahkanmu:cd namamasuk,cd ..naik,cdataucd ~pulang ke home, dancd -melompat balik ke tempatmu barusan.- Path absolut dimulai dari root (
/) dan berarti sama di mana pun; path relatif dimulai dari posisimu dan tidak punya garis miring di depan. Satu garis miring itu mengubah segalanya. - Tab completion mengetikkan nama untukmu, cuma mengisi hal yang ada, dan diam-diam menyelamatkanmu dari salah ketik — pakai terus.
Begitu kamu bisa bergerak di pohon berkas tanpa berpikir lagi, langkah berikutnya yang wajar adalah memahami apa yang tinggal di mana — bagaimana sistem berkas Linux ditata, dan kenapa config, log, dan program masing-masing punya rumah standarnya sendiri. Itulah peta yang mengubah penjelajahan dari “aku bisa bergerak” jadi “aku tahu persis aku mau ke mana”.