Как я могу найти исходный код для команд Linux?
Я часто сталкиваюсь с интересными командами Linux, которые заставляют меня задуматься; что на самом деле делают эти команды?
Да, это могут быть "принудительное удаление зависимостей", "установка программ" и многое другое, но я хотел бы знать, как они это делают.
Поиск исходного кода кажется правильным решением, но где я должен его получить?
Я полагаю, они будут написаны на C?
РЕДАКТИРОВАТЬ: я не говорю о пакетах, установленных с помощью apt-get
, Я ищу исходный код команд Linux/ Unix.
2 ответа
Я думаю, что вы говорите о командах GNU/Debian. Linux не имеет команд. В большинстве дистрибутивов Linux используются утилиты GNU (поэтому мы должны называть их "GNU/Linux") и свои собственные команды (такие как система APT Debian). Например, в Ubuntu такие команды, как cp
, cd
, mv
являются частью основных утилит GNU, которые являются частью базовой (базовой) системы Ubuntu. Они представлены пакетом coreutils
, Существует параметр apt-get, который вы можете использовать для получения исходного кода пакетов: apt-get source
, Чтобы получить исходный код coreutils, используйте sudo apt-get source coreutils
, Важно знать, что команды - это не более чем двоичные файлы, размещенные в путях переменной среды PATH. Эти двоичные файлы обычно пишутся на C. Также обратите внимание, что команды из некоторых других Unix-подобных систем, даже если они имеют одинаковые имена, не относятся к проекту GNU и иногда имеют другой синтаксис. Это относится к BSD (FreeBSD, OpenBSD, NetBSD) и OSX (основанным на FreeBSD).
Синтаксис: apt-get source command-name
Пример: apt-get source netstat
Если он не может найти:
Добавьте исходный URI в sources.lst
cat /etc/apt/sources.list
deb-src http://ftp.de.debian.org/debian lenny main
apt-get update