Как изменить стандартные команды Linux? - PullRequest
0 голосов
/ 20 мая 2019

Я ищу способ редактирования исходного кода распространенных команд Linux (passwd, cd, rm, cat)

Пример.Каждый раз, когда команда 'cat' вызывается (любым пользователем), она выполняет свою обычную функцию, но также выводит "done" в стандартный вывод после.

Ответы [ 2 ]

1 голос
/ 20 мая 2019

Ответ на вопрос об изменении источника - нет, если у вас нет ДЕЙСТВИТЕЛЬНО веской причины.Существует множество причин, по которым вы не должны этого делать, но главная из них заключается в том, что вам следует избегать изменения источника всего, что может получить обновление.Обновление ломает, если не стирает, ваш код, и у вас остается много работы.

В качестве альтернативы вы можете использовать такие вещи, как Alias, для быстрой настройки и написания сценариев, которые вызывают и полагаются на доступную командувместо того, чтобы беспокоиться о его реализации.Я уже объяснил, но это потому, что я прихожу к вам как к человеку с небольшим опытом работы с Linux, но с гораздо большим опытом разработки, и то, что я сказал, выходит за рамки возможностей CLI операционных систем и углубляется в общие концепцииразвитие.

1 голос
/ 20 мая 2019

Если вы хотите «дополнить» команды, как в вашем примере, вы можете создать, например, /opt/bin/cat.sh

/bin/cat && echo "done"

и затем либо:

изменить значение по умолчанию PATH/etc/bash.bashrc в Ubuntu) следующим образом:

PATH=/opt/bin:$PATH

или переименовать cat, например, в. cat.orig и переместите cat.sh на /bin/cat. (Если вы делаете последнее, ваш скрипт должен вызывать cat.orig, а не cat).

Если вы действительно хотите изменить поведение, то вам нужно взглянуть на источники здесь: https://ftp.gnu.org/gnu/coreutils/ а затем построить их и заменить их.

Все это предполагает, конечно, что у вас есть права root, и вы видите, как вы хотите изменить это поведение для любого пользователя.

...