Мы предполагаем, что вы уже знаете, как создать псевдоним в Linux. Псевдоним поможет вам легко выполнять длинные пользовательские команды. Вы можете сделать псевдоним постоянным, добавив его в bashrc или в файл конфигурации любой оболочки, которую вы используете в Linux.
Проблема возникает, когда вы пытаетесь запустить псевдоним с помощью sudo. Вы увидите ошибку, подобную этой:
sudo: my_alias: command not found
Вы будете думать, что, поскольку вы работаете как пользователь root, псевдоним должен быть определен в bashrc пользователя root, т.е. /.bashrc. Попробуйте, но держим пари, это не сработает.
Позвольте нам показать вам хитрый маленький трюк для запуска команды alias как sudo.
Хитрость в том, чтобы создать псевдоним для самого sudo следующим образом:
sudo='sudo '
Пробел (или табуляция, если вы предпочитаете это) после sudo важен в приведенном выше коде. Теперь, если вы запустите команду псевдонима с помощью sudo, она будет работать нормально.
Но почему? Почему это работает сейчас, когда все, что вы сделали, это заменили команду sudo на sudo и пробел? Ответ заключается в том, как псевдоним предназначен для использования.
Если вы обратитесь к руководству alias в bash, вы увидите, что первое слово каждой простой команды, если оно не заключено в кавычки, проверяется на наличие псевдонима. Если последний символ значения псевдонима является пробелом или символом табуляции, то следующее слово команды, следующее за псевдонимом, также проверяется на расширение псевдонима.
Другими словами, в команде только первое слово проверяется на псевдоним. Но если значение псевдонима имеет пробел или табуляцию в конце, следующее слово команды также проверяется на псевдоним.
Вот почему, когда вы просто запускаете команду sudo my_alias с псевдонимом sudo ‘sudo’, сначала sudo проверяется на псевдоним. Псевдоним найден с пробелом в конце, и поэтому ваша система проверяет следующее слово для псевдонима. Он также находит псевдоним для этого, и ваша команда с псевдонимом работает так, как вы хотите.
Надеюсь, вам понравился этот небольшой совет, полезный для работы с псевдонимом sudo. Любые вопросы или предложения всегда приветствуются.