Я установил Ubuntu 14.04 на virtualbox, мне нужно иметь возможность читать исходный код команд оболочки и изменять какие-либо команды? любая помощь, пожалуйста? где я могу найти команды оболочки? в каком каталоге?

1 ответ1

0

Различные команды оболочки будут приходить из разных мест, однако следующая процедура, вероятно, будет работать для очень многих из них:

(Примечание: вам не нужно быть пользователем root).

  1. Выясните, где находится командный файл, например, чтобы найти which , попробуйте type which в вашей оболочке bash, или даже which which (в общем, which ... , где ... представляет любую команду, которую вы хотите найти).
  2. Далее вы захотите посмотреть, какой пакет обычно обеспечивает это. dpkg -S /path/name может дать вам это или объединить шаги 1 и 2: dpkg -S $(which ...) , например, dpkg -S $(which which) . В этом случае я получаю: debianutils: /usr/bin/which
  3. Наконец, вы хотите получить фактический источник. (Примечание: вам может потребоваться запустить 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.

Счастливого взлома!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .