Hampir seluruh pengembangan C dilakukan dari terminal: membuat file, mengompilasi, menjalankan program, hingga melihat pesan kesalahan. Menguasai terminal membuat kita jauh lebih cepat daripada bergantung pada menu grafis IDE. Pada Chapter ini kita akan mempelajari perintah terminal dasar yang dipakai sehari-hari dalam menulis program C, mulai dari navigasi direktori, kompilasi, hingga memeriksa hasil eksekusi.

Tiga perintah terminal yang paling sering dipakai untuk navigasi:

  • pwd — menampilkan path direktori kerja saat ini.
  • ls — mendaftar isi direktori.
  • cd — berpindah ke direktori lain.

Mari kita praktikkan ketiganya. Buat direktori kerja lalu masuk ke dalamnya:

bash
mkdir -p /tmp/ch8_demo
cd /tmp/ch8_demo
pwd

Output yang Dihasilkan:

text
/tmp/ch8_demo

Buat sebuah file C kecil lalu lihat isinya:

bash
cat > halo.c <<'CEND'
#include <stdio.h>

int main(void) {
    printf("Halo dari terminal!\n");
    return 0;
}
CEND
ls -la

Output yang Dihasilkan:

text
total 16
drwxrwxr-x 2 z    z    4096 Oct 13 03:43 .
drwxr-xrwt 1 root root 4096 Oct 13 03:43 ..
-rw-rw-r-- 1 z    z      90 Oct 13 03:43 halo.c

Mari kita telaah perintah-perintah di atas:

  1. mkdir -p /tmp/ch8_demo: opsi -p membuat seluruh path induk bila belum ada, dan tidak mengeluh bila direktori sudah ada.
  2. cd /tmp/ch8_demo: berpindah ke direktori baru tersebut.
  3. pwd: mencetak working directory sebagai konfirmasi.
  4. cat > halo.c <<'CEND' ... CEND: heredoc yang menulis beberapa baris ke file halo.c sekaligus tanpa perlu membuka editor; tanda kutip pada <<'CEND' mencegah ekspansi variabel di dalam teks.
  5. ls -la: -l menampilkan format panjang (izin, pemilik, ukuran, tanggal), -a menyertakan file tersembunyi yang diawali titik.

Kompilasi dan Eksekusi #

Kompilasi program C dilakukan dengan gcc, dan eksekusi dilakukan dengan memanggil binary yang dihasilkan. Pola perintah lengkap untuk program halo.c adalah:

bash
gcc -std=c11 -Wall -Wextra -o halo halo.c
./halo
echo $?

Output yang Dihasilkan:

text
Halo dari terminal!
0

Mari kita telaah perintah-perintah di atas:

  1. gcc -std=c11: memilih standar ISO C11 sebagai baseline.
  2. -Wall -Wextra: mengaktifkan peringatan untuk kategori bug umum dan ekstra.
  3. -o halo: nama output executable menjadi halo.
  4. halo.c: file sumber yang dikompilasi.
  5. ./halo: menjalankan executable halo di direktori saat ini; prefiks ./ wajib di Linux/Unix karena shell tidak mencari executable di direktori kerja saat ini secara default.
  6. echo $?: menampilkan exit code perintah terakhir; 0 berarti program berakhir sukses.

Periksa artefak yang dihasilkan:

bash
ls -la halo halo.c

Output yang Dihasilkan:

text
-rwxrwxr-x 1 z z 15952 Oct 13 03:43 halo
-rw-rw-r-- 1 z z    90 Oct 13 03:43 halo.c

File halo berukuran jauh lebih besar dari halo.c karena executable berisi kode mesin, startup code, serta kode pustaka standar yang di-link ke dalamnya. Karakter x pada izin (-rwxrwxr-x) menandakan file tersebut bisa dieksekusi.

Melihat dan Membuat File #

Beberapa perintah terminal yang sering dipakai untuk bekerja dengan file kode sumber:

bash
# Melihat isi file tanpa membuka editor
cat halo.c

# Menampilkan isi file dengan nomor baris
nl halo.c

# Mencari teks dalam file
grep "printf" halo.c

# Menyalin file
cp halo.c salinan.c

# Memindahkan atau mengganti nama
mv salinan.c halo_lama.c

# Menghapus file
rm halo_lama.c

Kompilasi Multi-File di Terminal #

Pada proyek nyata, kode sumber sering dipecah menjadi beberapa file .c. Kompilasi multi-file dapat dilakukan dengan satu perintah gcc:

bash
gcc -std=c11 -Wall -Wextra -o program main.c util.c io.c

Atau dipisah menjadi tahap object file dan linking agar kompilasi ulang lebih cepat saat hanya satu file yang berubah:

bash
gcc -std=c11 -Wall -Wextra -c main.c
gcc -std=c11 -Wall -Wextra -c util.c
gcc -std=c11 -Wall -Wextra -c io.c
gcc -o program main.o util.o io.o

Ringkasan Perintah Esensial #

Tabel berikut merangkum perintah terminal yang paling sering dipakai dalam pengembangan C:

PerintahFungsi
pwdmenampilkan direktori kerja saat ini
ls -lamendaftar isi direktori dengan detail
cd <dir>berpindah ke direktori lain
mkdir -p <dir>membuat direktori beserta induknya
gcc -std=c11 -Wall -Wextra -o out src.cmengompilasi kode C
./outmenjalankan executable di direktori saat ini
echo $?menampilkan exit code perintah terakhir
cat <file>menampilkan isi file ke terminal
rm <file>menghapus file
clearmembersihkan layar terminal