Jawaban:
Biasanya polos C. Perintah lsdan pwdberasal dari GNU Coreutilspaket di (kebanyakan?) Distribusi Linux (dan mungkin beberapa sistem lain). Anda dapat menemukan kode di beranda mereka .
Untuk coreutilskhusus, Anda membangun mereka dengan langkah-langkah yang biasa: setelah membongkar sumber, masalah:
./configure --prefix=/some/path
# type ./configure --help to get the available options
make
make install # could require root access depending on the path you used
Hati-hati - menginstal utilitas dasar seperti yang ada di salinan distribusi Anda adalah ide yang buruk . Gunakan manajer paket apa pun yang digunakan sistem Anda untuk itu. Anda dapat menginstal ke awalan yang berbeda (menginstal suatu tempat ke direktori home Anda adalah ide yang baik jika Anda ingin bereksperimen).
Perhatikan bahwa meskipun ada cdexecutable , cdAnda akan menggunakan dalam sebagian besar keadaan bukanlah executable terpisah. Itu harus berupa shell-built-in (jika tidak, ia tidak dapat mengubah direktori shell saat ini - ini harus dilakukan dengan proses itu sendiri), sehingga ditulis dalam bahasa yang sama dengan shell (yang sering Cjuga).
Contoh lain:
Anda dapat menemukan lebih banyak lagi di internet ini.
Hanya untuk menambahkan sedikit lebih banyak ke jawaban Mat, meskipun Unix mengimplementasikan ini sebagai program mandiri, banyak perintah juga diimplementasikan di dalam bash(untuk menyimpannya harus menelurkan proses baru) lihat bashhalaman manual untuk detail lebih lanjut, atau lihat shell tag -builtin .
bash juga ditulis dalam C
Mungkin perlu dicatat bahwa perintah-perintah ini tidak harus ditulis dalam C - memang, beberapa distribusi mini linux menggunakan luaimplementasi ini dan lainnya.
cdshell harus dibangun agar dapat bekerja secara efektif.