Я установил Ubuntu 14.04 на virtualbox, мне нужно иметь возможность читать исходный код команд оболочки и изменять какие-либо команды? любая помощь, пожалуйста? где я могу найти команды оболочки? в каком каталоге?
1 ответ
Различные команды оболочки будут приходить из разных мест, однако следующая процедура, вероятно, будет работать для очень многих из них:
(Примечание: вам не нужно быть пользователем root).
- Выясните, где находится командный файл, например, чтобы найти
which
, попробуйтеtype which
в вашей оболочке bash, или дажеwhich which
(в общем,which ...
, где...
представляет любую команду, которую вы хотите найти). - Далее вы захотите посмотреть, какой пакет обычно обеспечивает это.
dpkg -S /path/name
может дать вам это или объединить шаги 1 и 2:dpkg -S $(which ...)
, например,dpkg -S $(which which)
. В этом случае я получаю:debianutils: /usr/bin/which
- Наконец, вы хотите получить фактический источник. (Примечание: вам может потребоваться запустить
apt-get update
прежде чем делать это, особенно если вы получаете сообщение об ошибке типаE: You must put some 'source' URIs in your sources.list
, который появляется, по крайней мере, в моем случае, чтобы немного сообщения об ошибке красной сельди.) Это можно сделать с помощьюapt-get source ...
, например,apt-get source debianutils
(можно объединить шаги и сделатьapt-get source $(dpkg -S $(which which) | cut -d: -f1)
).
Оттуда у вас должно быть несколько новых файлов и каталогов в любом каталоге, в котором вы начали (поэтому начните с соответствующего каталога), содержащего соответствующий источник.
Другой пример в однострочном виде:
cmd_to_get=ls; apt-get source $(dpkg -S $(which $cmd_to_get) | cut -d: -f1)
это берет источник для ls
(вместе с кучей других вещей, которые есть в coreutils
вместе с ним).
Оттуда вы можете поиграть дальше.
Если вы хотите создать что-то, посмотрите этот вопрос на askubuntu.
Счастливого взлома!