1

Я добавил alias ll='ls -la' в /etc/bash.bashrc, но sudo ll не работает. Есть ли способ "исходного" bash.bashrc? В связанном посте другой пользователь предложил создать псевдоним для sudo с пробелом после него. Например. alias sudo='sudo ' но не было никакого контекста для этого ответа. Должен ли я добавить это к моему bashrc? Кажется хакерским

Как правильно добавить псевдоним для моих одноразовых команд sudo ?

2 ответа2

2

Да, добавление alias sudo='sudo ' решит вашу проблему. Для лучшего определения (из руководства по bash),

Псевдонимы позволяют заменить строку словом, если оно используется в качестве первого слова простой команды. Оболочка поддерживает список псевдонимов, которые можно устанавливать и удалять с помощью встроенных команд alias и unalias.

Первое слово каждой простой команды, если оно не заключено в кавычки, проверяется на наличие псевдонима. Если это так, это слово заменяется текстом псевдонима. Символы '/', '$', '`', '=' и любые метасимволы оболочки или символы цитирования, перечисленные выше, могут не отображаться в псевдониме. Текст замены может содержать любые допустимые входные данные оболочки, включая метасимволы оболочки. Первое слово замещающего текста проверяется на псевдонимы, но слово, идентичное раскрываемому псевдониму, не раскрывается во второй раз. Это означает, что, например, псевдоним ls можно указать как «ls -F», и Bash не пытается рекурсивно развернуть текст замены. Если последний символ значения псевдонима является пробелом или символом табуляции, то следующее слово команды, следующее за псевдонимом, также проверяется на расширение псевдонима.

Вы можете быть уверены, что можете набрать его в окне терминала.

Если вы делаете это таким образом, изменения не являются постоянными, они существуют только до тех пор, пока вы не закроете / не выйдете из терминала.

Я думаю, что в вашем случае было бы безопаснее добавить изменения в ~/.bashrc вместо /etc/bash.bashrc , но на самом деле это не имеет большого значения.

0

Попробуйте вместо этого добавить псевдоним ~/.bashrc, то есть файл инициализации, который bash будет просматривать для каждого пользователя. Я думаю, что редактирование этого файла сделает псевдоним всей системы.

Например, в ~/.bashrc я установил бы следующие команды sudo apt-get в большинстве установок Ubuntu

alias apts='sudo apt-cache search'
alias apti='sudo apt-get install'
alias aptr='sudo apt-get remove'

Для какой команды вы пытаетесь создать псевдоним? обычно псевдоним - это способ сделать длинную сложную команду простой командой, состоящей из одного слова.

Кроме того, почему вы пытаетесь выполнить команду sudo, для которой обычно не требуется sudo, например ls -la? Я думаю, что когда вы запускаете команду через sudo, она изменяет доступные вам переменные окружения, так что это может быть частью вашей проблемы.

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