Pull to refresh

sudo и alias в .bashrc

Reading time 2 min
Views 13K

Предисловие


Недавно в гостях у друга увидел книгу Скотта Граннемана «Linux. Карманный справочник» и выпросил ее почитать. И хотя Linux уже два года красуется на моем компьютере, я далеко не в совершенстве знаю команды командной строки (извиняюсь за тавтологию).
Вообще то еще на третьем курсе университета у нас был курс Unix, который мне очень нравился, и на котором я смог оценить мощь и силу командной строки unix'подобных систем. К сожалению тогда у меня был только dialup, да и кодить приходилось в основном на Delphi, поэтому переход на Linux (Mandrake) не задался, а очень жаль.

alias


Что то я отвлекся от темы поста. Вычитал я в книге значит несколько интересных моментов и тут же решил попробовать. Во первых это назначение в ~/.bashrc alias'ов для команд. Первым делом я назначил alias для команды ls, частенько я ей пользуюсь и почти на автомате вбиваю ls -l. Из той же книги я узнал что полезно указать еще параметр h, для более наглядного отображения размеров файлов, и вот что у меня получилось:
alias l='ls -lh'
Казалось бы ничего особенного, но удобно блин.

sudo


Дальше я дочитал до способов объединения команд, и нашел интересный пример:
apt-get update && apt-get upgrade
Основная идея данной записи — выполнить обновление системы в случае удачного обновления списка пакетов. Так как сейчас у меня стоит бета Ubuntu 10.04 то обновляюсь я каждый день, поэтому решил добавить еще один alias:
alias uu='apt-get update && apt-get upgrade'
Перезапускаю терминал, sudo uu, а он мне в ответ мол не знаю я команды uu. Не долго думая добавляю аналогичный alias в /root/.bashrc.
Перезапускаю терминал, sudo uu, а он мне опять тоже самое. И тут я задумался, а кто же ты тогда sudo?

Немного поразмыслив решил спросить у google, на что сразу получил несколько ответов, но не один у меня так и не заработал. Если кому интересно, предлагалось добавить alias в глобальный файл /etc/bash.bashrc, а так же вызывать sudo -E.

Простое и действенное решение подсказал знакомый гуру Linuxamedvoodoo.
sudo — команда а alias'ы обрабатывает сам bash, поэтому sudo не может понять чего от нее хотят. (Здесь я могу ошибаться, можете поправить меня в комментариях).
В результате мой alias uu выглядит следующим образом:
alias uu='sudo apt-get update && sudo apt-get upgrade -y'

Надеюсь эта информация будет кому-то инересной/полезной.

P.S. Поздравляю всех с праздником Великой Пасхи и с днем 4.04.
Tags:
Hubs:
0
Comments 7
Comments Comments 7

Articles