Псевдонимы

Если при работе в командной строке Linux вы часто используете программы с одними и теми же аргументами командной строки, пора задуматься об использовании псевдонимов.

Для работы с псевдонимами используются команды (это действительно не программы, а команды встроенные в оболочку.) alias и unalias.

  • alias — показывает список псевдонимов, создаёт новые псевдонимы.
  • unalias — удаляет псевдоним.

Например, вам часто приходится запускать программу ls со следующими параметрами:

ls -l --color=no

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

$ alias ll='ls -l --color=no'
$

В приведённом примере определяется псевдоним с именем ll. Теперь, если в командной строке набрать ll и нажать Enter, будет выполнена программа ls со всеми перечисленными параметрами.

Как работают псевдонимы? Дело в том, что оболочка после нажатия пользователем на Enter считывает строку, но не сразу выполняет написанную в ней команду. В первую очередь она пытается обработать специальные символы и другие псевдонимы. То есть он сначала ищет ll в списке псевдонимов и если находит, запускает на выполнение то, что определено в псевдониме. Если не находит, то производит поиск программы ll в файловой системе.

Этой особенностью оболочки пользуются в некоторых дистрибутивах Linux, заранее определяя псевдонимы. Как уже говорилось выше, программы в Linux стараются не задавать лишних вопросов пользователю. Считается, что он знает что делает. И если пользователь хочет удалить файл, значит он хорошо подумал перед вызовом программы rm. Работая в некоторых из дистрибутивов вы увидите, что при выполнении rm, программа начинает задавать вопросы. Если программы становятся разговорчивыми, значит хозяин дистрибутива заранее «позаботился» о вас и определил псевдоним для программы rm. Например так:

alias rm='/bin/rm -i'

То есть оболочка сначала смотрит список псевдонимов, обнаруживает псевдоним с именем rm и выполняет rm с параметром –i. Поэтому программа начинает задавать вопросы.

Для удаления псевдонима используется команда unalias. Например, что бы удалить псевдоним rm следует выполнить команду:

$ unalias rm
$

Если вы в командной строке определили псевдоним, потом вышли из системы и вернулись обратно, вашего псевдонима в списке не будет. Чудес не бывает, все следует описывать в конфигурационных файлах. Для того чтобы псевдонимы оставались, их определение следует написать в файле который выполняется при входе пользователя в систему. Какой файл использовать зависит от программы оболочки. При использовании bash псевдонимы записывают в файл .bash_profile в домашней директории пользователя. В этом же файле можно написать команду удаления определённых в системе псевдонимов.

Старайтесь регулярно проверять список текущих псевдонимов, явно вызывая команду alias без аргументов. Если в списке появляются нежелательные псевдонимы их лучше удалять. Псевдонимами могут пользоваться хакеры для сбора информации. Им достаточно поставить в систему свою программу (На самом деле это не так просто сделать. Но вероятность взлома системы существует.), выполняющую действия аналогичные стандартной программы и написать псевдоним. Например, самой желанной является информация о паролях. Для смены пароля пользователи системы применяют программу passwd. Если хакер просто заменит стандартную программу своей, администратор это почти сразу обнаружит. Поэтому можно поставить в систему свою программу, назвать ее mypasswd и прописать псевдоним:

$ alias passwd='mypasswd'
$

Таким образом при вызове программы passwd на самом деле будет выполняться программа mypasswd. А это как раз и нужно хакеру. Поэтому следите за списком псевдонимов.