Відповіді:
Зазвичай це просто C
. Команди ls
і pwd
виходять з GNU Coreutils
пакету в (більшості?) Дистрибутивах Linux (а може бути і в деяких інших системах). Ви можете знайти код на їх домашній сторінці .
Для coreutils
конкретно, ви будуєте їх зі звичайними кроками: після розпакування джерела, питання:
./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
Будьте обережні - установка базових утиліт, таких як копія їх дистрибутиву, є поганою ідеєю . Використовуйте для цього будь-який менеджер пакунків, який має ваша система. Однак ви можете встановити інший префікс (якщо ви хочете експериментувати, десь у вашому домашньому каталозі є хорошою ідеєю).
Зауважте, що хоч є cd
виконаний файл , cd
ви будете використовуватись у більшості випадків, це не окремий виконуваний файл. Це має бути вбудована оболонка (інакше вона не могла б змінити поточний каталог оболонки - це повинен зробити сам процес), тому він пишеться тією ж мовою, що і оболонка (що часто C
теж є).
Інші приклади:
Ви можете знайти ще багато таких в Інтернеті.
Просто щоб додати трохи більше відповіді Мета, хоча Unix реалізує їх як окремі програми, багато команд також реалізовані в bash
(щоб зберегти його необхідності породжувати новий процес) побачити bash
сторінку людини для отримання більш докладної інформації, або мати погляд наоболонка тег.
bash
також написано на С
Можливо, варто відзначити, що ці команди не повинні бути записані на С - дійсно, кілька міні-Linux розподілу використовують lua
реалізацію цих та інших.
cd
повинні бути вбудованими в оболонку, щоб ефективно працювати.