Bahasa apa yang digunakan untuk membangun perintah Unix?

9

Contoh perintah saya maksudkan adalah ls, pwd, dan cd. Juga, bagaimana ini dibangun? Apakah kamu punya contoh?

fronthem
sumber
2
Apakah ini pekerjaan rumah?
Stefan Lasiewski

Jawaban:

26

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:

  • pwdSumber OpenSolaris .
  • FreeBSD ls

Anda dapat menemukan lebih banyak lagi di internet ini.

Tikar
sumber
5

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 tag .

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.

symcbean
sumber
2
Nah bash, atau kulit bagus lainnya.
rds
1
Perhatikan juga bahwa beberapa perintah seperti cdshell harus dibangun agar dapat bekerja secara efektif.
Pemrogram