Відповіді:
Зазвичай це просто 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повинні бути вбудованими в оболонку, щоб ефективно працювати.