
Bila anda memulakan kerjaya sebagai pengaturcara (software engineer), pembangun web, atau pentadbir sistem (sysadmin), lambat laun anda pasti akan berhadapan dengan skrin hitam yang menakutkan—Terminal Linux.
Sama ada anda menyewa Virtual Private Server (VPS) di DigitalOcean, menguruskan container Docker, atau menggunakan macOS (yang berasaskan sistem Unix), kemahiran menggunakan command line interface (CLI) bukanlah satu pilihan, ia adalah kemahiran yang wajib dikuasai.
Ramai graduan baru merasa panik apabila disuruh “ssh masuk ke server dan check log”. Jangan risau! Artikel panjang ini akan membimbing anda memahami struktur fail Linux dan senarai arahan (command) yang paling banyak digunakan dalam senario pekerjaan sebenar.
Minda Asas: Memahami Struktur Direktori Linux
Sebelum mula menaip, anda perlu faham bahawa Linux tidak menggunakan konsep pemacu C:\ atau D:\ seperti Windows. Semuanya bermula dari satu akar utama yang dipanggil Root (/).
/: Ini adalah tahap paling atas (Root). Jangan sesekali padam folder di sini./home/username: Ini adalah “rumah” anda (Home Directory). Di sinilah tempat anda menyimpan fail peribadi atau projek./var/log: Tempat semua log sistem dan perisian disimpan./etc: Folder konfigurasi sistem (umpama Control Panel di Windows).
Kategori 1: Navigasi & Pengurusan Fail Asas
Ini adalah kemahiran hidup (survival skills) paling asas. Anda perlu tahu di mana anda berada, dan bagaimana nak berpindah folder.
1. pwd (Print Working Directory)
Bila anda tersesat dalam terminal, arahkan command ini. Ia akan memaparkan laluan penuh direktori (folder) di mana anda berada sekarang.
$ pwd
/home/mzulkamal/projects/webapp
2. ls (List)
Sama seperti double-click folder dalam Windows Explorer untuk tengok apa ada kat dalam.
ls: Senaraikan nama fail/folder biasa.ls -l: Senaraikan dengan format panjang (saiz fail, tarikh dicipta, hak cipta).ls -a: Tunjukkan fail tersembunyi (seperti fail.envatau.gitignore).ls -la: Gabungan kedua-duanya (paling kerap digunakan).
3. cd (Change Directory)
Digunakan untuk masuk atau keluar dari folder.
cd nama-folder: Masuk ke dalam folder.cd ..: Undur ke belakang satu langkah (naik satu tahap direktori).cd ~: Terus melompat balik ke Home Directory anda, tak kira di mana anda berada.cd /: Pergi ke Root Directory.
4. mkdir (Make Directory)
Cara pantas untuk buat folder baru.
$ mkdir projek-baru
Jika nak buat folder dalam folder secara serentak, gunakan flag -p:
$ mkdir -p folder-utama/folder-anak
5. touch
Perintah untuk mencipta fail kosong dengan pantas tanpa perlu buka fail tersebut.
$ touch index.html style.css
6. rm (Remove)
AMARAN Keras: Linux tiada “Recycle Bin”. Bila fail dipadam guna rm, ia hilang buat selamanya.
rm nama-fail.txt: Padam satu fail.rm -r nama-folder: Padam folder dan semua isinya (r bermaksud recursive).rm -rf nama-folder: Padam folder secara paksa tanpa tanya pengesahan (Sangat bahaya kalau tersilap jalan!).
Kategori 2: Membaca & Menyunting Fail
Bila anda remote ke server, anda tak ada VS Code atau Notepad. Anda kena baca dan ubah suai fail terus dari terminal.
7. cat (Concatenate)
Cetak keseluruhan isi kandungan fail terus ke skrin terminal. Sangat berguna untuk tengok fail kecil seperti konfigurasi.
$ cat .env
8. less
Kalau anda guna cat pada fail log yang ada 10,000 baris, skrin terminal anda akan berlari laju tanpa henti. Gunakan less untuk baca fail panjang halaman demi halaman.
$ less /var/log/nginx/error.log
(Gunakan anak panah atas/bawah untuk tatal, dan tekan q untuk keluar).
9. tail (Penting Untuk Debugging!)
Bila sistem bermasalah, anda cuma nak tengok error yang terkini (di bahagian paling bawah fail log).
tail error.log: Tunjuk 10 baris terakhir fail.tail -f error.log: Tunjuk 10 baris terakhir dan jangan tutup. Jika ada orang akses sistem dan error baru masuk, terminal akan terus update (real-time stream).
10. nano atau vim (Teks Editor Terminal)
Kalau perlu edit kod dalam server:
nano config.php: Teks editor paling mesra pengguna (beginner-friendly). Nak save tekanCtrl+O, nak keluar tekanCtrl+X.vim config.php: Teks editor berkuasa tapi ada keluk pembelajaran (learning curve). (Ramai sangkut tak reti nak tutup Vim. Tips: TekanEsc, taip:wq, kemudian tekan Enter).
Kategori 3: Mencari Fail & Isi Kandungan
Bila projek terlalu besar, anda pasti lupa letak fail kat mana.
11. find
Mencari fail mengikut nama, saiz, atau masa diubah suai. Contoh mencari fail bernama database.yml dalam keseluruhan sistem:
$ find / -name "database.yml"
12. grep (Penyelamat Nyawa!)
Ini alat ajaib. Berbeza dengan find yang cari nama fail, grep mencari teks/perkataan di dalam fail. Contohnya anda nak cari baris kod yang ada perkataan “password” di dalam fail config.php:
$ grep "password" config.php
Lebih menarik, grep selalu digabungkan (piping |) dengan command lain. Contoh:
$ cat error.log | grep "500 Internal Server Error"
Kategori 4: Hak Akses (Permissions)
Pernah dapat mesej “Permission Denied”? Ini kerana konsep pemilikan fail Linux yang sangat ketat.
13. sudo (SuperUser DO)
Sama fungsinya seperti “Run as Administrator” dalam Windows. Ia memberi anda kuasa sementara sebagai pengguna utama (Root) untuk pasang perisian atau ubah setting sistem.
$ sudo apt update
14. chmod (Change Mode)
Digunakan untuk menukar hak (Boleh baca, Boleh tulis, Boleh laksana/run) terhadap fail.
$ chmod 777 nama-fail.sh (Beri semua akses penuh - BAHAYA jika digunakan semberono)
$ chmod +x skrip-saya.sh (Jadikan skrip boleh dieksekusi/run)
15. chown (Change Ownership)
Menukar pemilik fail/folder. Biasanya digunakan kalau fail dimiliki oleh ‘root’, dan anda nak tukar jadi milik user anda (supaya boleh edit tanpa sudo).
$ sudo chown -R mzulkamal:mzulkamal /var/www/html/projek-web
Kategori 5: Rangkaian (Networking) & Pemantauan Sistem
16. top atau htop
Sama macam Task Manager di Windows. Ia memaparkan senarai proses, kegunaan CPU, dan baki RAM pelayan secara real-time. Kalau pelayan sangkut, buka htop dan cari aplikasi mana yang makan RAM paling banyak.
17. df dan du
Nak periksa baki storage (ruang cakera keras):
df -h: Tunjuk baki saiz hard disk secara keseluruhan (dalam saiz Human-readable: GB/MB).du -sh folder-nama: Kira berapa besar saiz folder tersebut.
18. ping
Cara pantas nak check adakah server anda ada sambungan internet atau adakah laman web luar masih “hidup”.
$ ping google.com
(Tekan Ctrl+C untuk berhentikan)
19. curl
Browser versi terminal! Boleh diguna untuk uji adakah API anda memulangkan data yang betul atau sekadar nak muat turun fail dari internet.
$ curl https://api.github.com/users/mzulkamal
20. tar
Untuk ekstrak (unzip) fail arkib (zip/tar.gz) yang dimuat turun, atau buat fail arkib sandaran (backup).
- Ekstrak:
tar -xvf nama-fail.tar.gz - Buat Zip:
tar -cvf backup.tar folder-projek/
Kesimpulan
Bila anda baca senarai ini, mungkin ia terasa berat untuk dihafal. Tetapi rahsia sebenar menguasai Linux bukanlah melalui hafalan teori, tetapi pengulangan (muscle memory). Praktis setiap hari; setup satu pelayan VPS murah berharga $5 sebulan, pasang Linux Ubuntu, dan cuba jalankan arahan-arahan ini.
Semakin selesa anda dengan CLI, semakin mudah anda menyelidik masalah backend dan membina seni bina pelayan. Lagipun, tiada rupa “hacker/pro developer” yang lebih meyakinkan selain jari yang pantas menari di atas terminal skrin hitam berbanding menggunakan tetikus!