
У меня есть сервер Centos 5.5, на котором есть мои собственные команды псевдонимов для моей учетной записи. Когда я это делаю, sudo bash
я все равно могу использовать эти псевдонимы, мне не нужно было добавлять псевдонимы в .bashrc
.
У меня есть другой сервер, Centos 6.5. Но когда я запускаю sudo bash
, он не будет использовать мои псевдонимы пользователя, под которым я вошел. Кто-нибудь знает, где мне настроить его, чтобы включить псевдонимы пользователя, под которым я вошел, когда я использую sudo bash
?
решение1
Добавьте следующую строку в ваш ~/.bashrc:
alias sudo='sudo '
Из руководства bash
Псевдонимы позволяют заменять строку на слово, когда оно используется как первое слово простой команды. Оболочка поддерживает список псевдонимов, которые могут быть установлены и сняты с помощью встроенных команд alias и unalias.
Первое слово каждой простой команды, если оно не заключено в кавычки, проверяется на наличие псевдонима. Если это так, то это слово заменяется текстом псевдонима. Символы '/', '$', '`', '=' и любые метасимволы оболочки или символы кавычек, перечисленные выше, не могут встречаться в имени псевдонима. Текст замены может содержать любые допустимые входные данные оболочки, включая метасимволы оболочки. Первое слово текста замены проверяется на наличие псевдонимов, но слово, идентичное расширяемому псевдониму, не расширяется во второй раз. Это означает, что можно, например, присвоить псевдониму ls значение "ls -F", и Bash не будет пытаться рекурсивно расширить текст замены. Если последний символ значения псевдонима является пробелом или символом табуляции, то следующее слово команды, следующее за псевдонимом, также проверяется на наличие расширения псевдонима.
Итак, Bash проверяет только первое слово команды на наличие псевдонима, все слова после него не проверяются. Это означает, что в такой команде, как sudo ll, bash проверяет только первое слово (sudo) на наличие псевдонима, ll игнорируется. Мы можем указать bash проверить следующее слово после псевдонима (т. е. sudo), добавив пробел в конец значения псевдонима.
решение2
Используйте sudo -E
, который экспортирует вашу среду.