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.
Navigasi Direktori #
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:
mkdir -p /tmp/ch8_demo
cd /tmp/ch8_demo
pwdOutput yang Dihasilkan:
/tmp/ch8_demoBuat sebuah file C kecil lalu lihat isinya:
cat > halo.c <<'CEND'
#include <stdio.h>
int main(void) {
printf("Halo dari terminal!\n");
return 0;
}
CEND
ls -laOutput yang Dihasilkan:
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.cMari kita telaah perintah-perintah di atas:
mkdir -p /tmp/ch8_demo: opsi-pmembuat seluruh path induk bila belum ada, dan tidak mengeluh bila direktori sudah ada.cd /tmp/ch8_demo: berpindah ke direktori baru tersebut.pwd: mencetak working directory sebagai konfirmasi.cat > halo.c <<'CEND' ... CEND: heredoc yang menulis beberapa baris ke filehalo.csekaligus tanpa perlu membuka editor; tanda kutip pada<<'CEND'mencegah ekspansi variabel di dalam teks.ls -la:-lmenampilkan format panjang (izin, pemilik, ukuran, tanggal),-amenyertakan 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:
gcc -std=c11 -Wall -Wextra -o halo halo.c
./halo
echo $?Output yang Dihasilkan:
Halo dari terminal!
0Mari kita telaah perintah-perintah di atas:
gcc -std=c11: memilih standar ISO C11 sebagai baseline.-Wall -Wextra: mengaktifkan peringatan untuk kategori bug umum dan ekstra.-o halo: nama output executable menjadihalo.halo.c: file sumber yang dikompilasi../halo: menjalankan executablehalodi direktori saat ini; prefiks./wajib di Linux/Unix karena shell tidak mencari executable di direktori kerja saat ini secara default.echo $?: menampilkan exit code perintah terakhir;0berarti program berakhir sukses.
Periksa artefak yang dihasilkan:
ls -la halo halo.cOutput yang Dihasilkan:
-rwxrwxr-x 1 z z 15952 Oct 13 03:43 halo
-rw-rw-r-- 1 z z 90 Oct 13 03:43 halo.cFile 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:
# 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.cKompilasi Multi-File di Terminal #
Pada proyek nyata, kode sumber sering dipecah menjadi beberapa file .c. Kompilasi multi-file dapat dilakukan dengan satu perintah gcc:
gcc -std=c11 -Wall -Wextra -o program main.c util.c io.cAtau dipisah menjadi tahap object file dan linking agar kompilasi ulang lebih cepat saat hanya satu file yang berubah:
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.oRingkasan Perintah Esensial #
Tabel berikut merangkum perintah terminal yang paling sering dipakai dalam pengembangan C:
| Perintah | Fungsi |
|---|---|
pwd | menampilkan direktori kerja saat ini |
ls -la | mendaftar 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.c | mengompilasi kode C |
./out | menjalankan executable di direktori saat ini |
echo $? | menampilkan exit code perintah terakhir |
cat <file> | menampilkan isi file ke terminal |
rm <file> | menghapus file |
clear | membersihkan layar terminal |