Примеры команд я имею в виду это ls
, pwd
и cd
. Кроме того, как они построены? У вас есть пример?
command-line
source
coreutils
fronthem
источник
источник
Ответы:
Обычно это просто
C
. Командыls
иpwd
приходят изGNU Coreutils
пакета в (большинство?) Дистрибутивах Linux (и, возможно, в некоторых других системах). Вы можете найти код на их домашней странице .В
coreutils
частности, вы создаете их обычными шагами: после распаковки исходного кода выполните:Будьте осторожны - установка базовых утилит, подобных тем, что находятся в копии вашего дистрибутива, - плохая идея . Для этого используйте любой менеджер пакетов, который поставляется с вашей системой. Вы можете установить другой префикс (хотя установка в ваш домашний каталог - хорошая идея, если вы хотите поэкспериментировать).
Обратите внимание, что хотя существует
cd
исполняемый файл ,cd
в большинстве случаев вы будете использовать его не как отдельный исполняемый файл. Он должен быть встроенным в оболочку (иначе он не может изменить текущий каталог оболочки - это должен делать сам процесс), поэтому он написан на том же языке, что и оболочка (что частоC
тоже).Другие примеры:
pwd
источник.ls
Вы можете найти много других из них в Интернете.
источник
Просто чтобы добавить немного больше к ответу Мэта, хотя Unix реализует их как автономные программы, многие команды также реализованы внутри
bash
(чтобы избавить его от необходимости порождать новый процесс), смотритеbash
страницу руководства для более подробной информации или посмотрите оболочку. -встроенный тег.bash
также написано на CВозможно, стоит отметить, что эти команды не должны быть написаны на C - действительно, некоторые дистрибутивы mini linux используют
lua
реализации этих и других.источник
cd
должны быть встроенными в оболочку для эффективной работы.