Использование команды alias в Linux для повышения эффективности работы

Как известно, Linux и Unix были созданы как системы, основанные на командной строке, что означает, что контроль над командной строкой - это, по сути, самая важная вещь, чтобы быть *nix СисОпом. В данном контексте команда alias может быть чрезвычайно полезна в целях безопасности и для упрощения работы системного администратора.

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

Возьмем простой пример, где мы должны использовать команду ls, чтобы вывести список в обратном хронологическом порядке. Мы можете постоянно вводить ls -lrta или создать псевдоним этой команды (скажем) ll, который будет эквивалентен ls -lrta. Это сэкономит нам несколько нажатий клавиш.

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

Посмотрим, как использовать alias в Linux.

Продолжим с примером использованным ранее.

$ alias ll='ls -lrta'

Отметим несколько вещей:

  • Заменяемая команда всегда в кавычках (‘).
  • В команде alias не должно быть пробелов до или после знака равенства. Если вы ошибочно поставили пробел, вы увидите ошибку, такую как alias not found.
  • Будьте внимательны при выборе имени псевдонима. Убедитесь, что зарезервированные за системой ключевые слова отсутствуют, т.к. можно заменить существующую команду совершенно не относящейся к делу командой.

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

Чтобы добавить постоянные псевдонимы, нам нужно просто отредактировать файл нашего пользователя (или любого другого пользователя) .bashrc. Этот файл находится в домашней папке пользователя /home/<username>/. Используем команду vim (или любой другой редактор, например, nano) для редактирования файла в терминале.

user@system:~$ vim ~/.bashrc

Откроется файл .bashrc, далее начинаем добавлять псевдонимы в конце файла, сразу после последней записанной в нем строки.

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

Если необходимо увидеть все псевдонимы, установленные в системе, можно проверить конфигурационный файл конкретной оболочки, например ~/.bashrc, ~/.zshrc и т.д.

Однако гораздо более простой способ увидеть все псевдонимы - просто запустить команду alias без каких-либо аргументов.

$ alias

Обычно система Ubuntu имеет следующие псевдонимы, установленные по умолчанию.

$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s[0-9]+\s//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -lrt'
alias ls='ls --color=auto'

Вот примеры некоторых псевдонимов, которые можно использовать для более эффективной работы в Linux.

Как хорошо известно, команда rm очень часто используется изо дня в день и может быть очень разрушительной для системы, если она не используется должным образом.

Вот почему рекомендуется использовать следующий псевдоним:

#make rm command safer
alias rm="rm -i"

Это делает команду rm более безопасной, так как всякий раз, при ее использовании, она всегда будет спрашивать, уверены ли вы, что хотите выполнить операцию удаления, прежде чем продолжить. Таким образом предоставляя последний шанс непреднамеренно что-нибудь не сломать в системе.

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

Пример:

#alias for servers SSH
alias sshserver1='ssh -i ~/Documents/IT/SSH-keys/server1.pem centos@server1.com'
alias sshserver2='ssh -i ~/Documents/IT/SSH-keys/server2.pem centos@server2.com'
alias sshplexserverhome='ssh johndoe@myplexserver.home.local'
alias sshclientserver='ssh -i ~/Documents/IT/SSH-keys/client.pem centos@client-domain.com'

Как можно видеть, в папке с именем SSH-keys внутри папки домашней папки пользователя располагаются ключи, затем просто создаются псевдонимы для подключения каждого из них, следуя стандартному «ssh» + «имя сервера ».

Таким образом, нужно запомнить только имя сервера, к которому необходимо подключиться, а не место, где находится ключ, имя каждого ключа (если они разные) или имя пользователя, которое необходимо использовать для подключения к каждому серверу.

Некоторые либо при необходимости указания времени и/или даты в определенных форматах, либо при написании сценариев, использовать определенное время, могут получить некоторые преимущества псевдонимов:

alias nowtime='date +"%T"' #this will show the current time in 24hrs format as HH:MM:SS
alias nowdate='date +"%d-%m-%Y"' #this will show the current date in format dd-MM-YY

Посмотрим правде в глаза: iptables не самая легкая и не самая дружелюбная вещь в мире, и хотя это не сложно, но когда вы, первый раз, сталкиваетесь с этим, не все так просто. Вот почему использование таких псевдонимов может значительно упростить процесс:

#Отображение информации iptables простым способом :)
alias iptlist='sudo /sbin/iptables -L -n -v --line-numbers' #это покажет все строки вашего текущего iptables
alias iptlistin='sudo /sbin/iptables -L INPUT -n -v --line-numbers' #это покажет все ваши правила INCOMING в iptables
alias iptlistout='sudo /sbin/iptables -L OUTPUT -n -v --line-numbers' #это покажет все ваши правила OUTGOING в iptables

В Debian/Ubuntu обновление сервера одной командой можно выполнить с помощью псевдонима, такого как этот:

# обновление одной командой
alias update='sudo apt-get update && sudo apt-get upgrade'

Заключение

Как видите, все зависит от того, чем вы занимаетесь, и от вашей креативности, но вы можете использовать столько псевдонимов, сколько вам нужно для повседневных задач, и упростить их, используя эту полезную команду alias в Linux.

Источник