Блог компании 3v-Hosting

Как настроить bash-алиасы для администрирования Linux

Администрирование

9 мин.


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

Конечно, можно каждый раз печатать длинные команды вручную и поначалу это является хорошей практикой для того, чтобы их запомнить. Потом можно искать их в истории терминала, когда уже выполнял то или иное задание. Но куда проще будет один раз настроить bash-алиасы - это короткие команды, которые заменяют длинные конструкции и экономят время при работе в консоли. Алиас - буквально означает "псевдоним".

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

 

 

 

 

Что такое bash-алиасы

Алиас - это короткое имя, которое оболочка Bash подставляет вместо заранее заданной команды или целой последовательности команд.

Например, вместо длинной записи:

ls -lah --color=auto

можно просто написать:

ll

 

Для этого достаточно лишь создать соответствующий алиас:

alias ll='ls -lah --color=auto'

После этого при вводе команды ll оболочка сама заменит её на ls -lah --color=auto и сразу выполнит.

Но есть один нюанс. Алиасы работают только в интерактивной оболочке Bash. А так как это не отдельные программы и не вспомогательные скрипты, то и дополнительной нагрузки на систему они почти не создают, что очень эффективно.

 

 

 

 

 

Где хранятся алиасы. Создание и управление алиасами.

Пользовательские алиасы зачастую располагаются в одном из трёх файлов:

  • ~/.bash_aliases
  • ~/.bashrc
  • ~/.profile

В большинстве современных дистрибутивов рекомендуется использовать именно ~/.bash_aliases , а если такого файла нет, то его можно создать самостоятельно.

Создать собственный алиас очень просто. Для этого откройте или создайте файл:

nano ~/.bash_aliases

Добавьте в него строку:

alias ll='ls -lah --color=auto'

и сохраните файл.

 

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

source ~/.bashrc

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

 

Просмотреть все активные алиасы, существующие в системе, можно командой:

alias

 

Удалить алиас до закрытия терминала:

unalias имя_алиаса

Подчёркиваем: это не полное удаление алиаса, а как бы его выключение в рамках конкретной сессии. Но во всех других и новых сессиях алиас будет работать, пока вы не удалите его из файла и не сохраните изменения.

 

После того, как вы добавили в файл строку с алиасом, сохранили файл и применили изменения, достаточно ввести в консоли команду:

ll

после чего Bash выполнит полную команду ls -lah --color=auto.

 

 

 

 

Почему алиасы иногда не работают

Если новый алиас не срабатывает, то причина обычно довольно проста.

  • После изменения конфигурации не была выполнена команда source ~/.bashrc;
  • Терминал был открыт ещё до внесения изменений, поэтому Bash продолжает использовать старую конфигурацию;
  • В файле есть синтаксическая ошибка или неправильно расставлены кавычки;
  • Вместо Bash используется другая оболочка, например Zsh или Fish;
  • Файл ~/.bash_aliases не подключён в ~/.bashrc.

Напомним, что проверить, какие алиасы правильно прописаны и загружены в текущем сеансе, можно командой:

alias

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

 

 

 

 

Полезные bash-алиасы для повседневной работы

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

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

Алиас Полная команда Назначение
ll ls -lah --color=auto Подробный список файлов
la ls -A Показ скрытых файлов
grep grep --color=auto Подсветка найденных совпадений
df df -h Использование дисков
du du -sh Размер каталога
ports ss -tulnp Просмотр открытых портов
cls clear Очистка терминала

 

Но этим всё не ограничивается, ведь алиасы также отлично подходят для просмотра журналов, управления сервисами, работы с Docker и другими сторонними программами, а также для быстрого перехода по каталогам.

Например:

# Журналы
alias nginxlog='tail -f /var/log/nginx/access.log'
alias syslog='journalctl -f'
​
# Управление сервисами
alias nginxrestart='systemctl restart nginx'
alias nginxstatus='systemctl status nginx'
​
# Docker
alias dps='docker ps -a'
alias dlogs='docker logs -f'
alias dc='docker compose'
alias dcu='docker compose up -d'
​
# Навигация
alias www='cd /var/www'
alias logs='cd /var/log'
alias projects='cd ~/projects'

 

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

 

 

 

 

Алиасы могут объединять несколько команд

Хоть это и очевидно, но мы решили акцентировать внимание на том, что алиас может запускать сразу несколько команд подряд. Особенно это удобно, когда одна и та же последовательность действий повторяется каждый день. Например, обновление пакетов можно свести к одной короткой команде:

alias update='sudo apt update && sudo apt upgrade'

 

Как вы заметили, для этого используется встроенный логический оператор "И" (&&). Вы можете использовать весь спектр возможностей командной строки bash для написания последовательностей команд или целые скрипты. Например по такому же принципу легко собрать небольшую проверку состояния сервера:

alias health='uptime && free -h && df -h'

После запуска health в терминале сразу появится информация о времени работы системы, использовании оперативной памяти и свободном месте на дисках. Для быстрой проверки состояния вашего VPS-сервера этого обычно вполне хватает.

 

 

 

Когда алиасов уже недостаточно

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

alias rm='rm -i'

На своём компьютере такой алиас может быть удобным, но при работе на другом сервере или в команде он легко становится причиной путаницы, а в худших случаях может и вовсе привести к фатальным последствиям для системы.

 

Также существует и техническое ограничение: алиасы не умеют нормально работать с аргументами. Поэтому если хочется выполнять что-то вроде:

logs nginx

, то лучше использовать Bash функцию:

logs() {
    journalctl -u "$1" -f
}

Теперь одна и та же команда будет работать с любым сервисом, как например:

logs nginx
logs ssh
logs docker

 

Алиасы остаются хорошим выбором для простых сокращений, но так как функции поддерживают параметры, условия, циклы и переменные, то более сложную логику обычно выносят именно в функции Bash.

 

 

 

 

Как поддерживать коллекцию алиасов

Если вы работаете сразу с несколькими серверами, то лучше использовать один и тот же набор алиасов. Проще всего будет просто скопировать файл ~/.bash_aliases на все свои серверы:

scp ~/.bash_aliases user@server:~/

 

Многие администраторы идут дальше и хранят свои конфигурационные файлы (dotfiles) в Git-репозитории. Тогда привычное окружение можно развернуть на новом VPS буквально за несколько минут.

Чтобы со временем список алиасов не превратился в хаотичный набор команд, мы рекомендуем вам придерживаться нескольких простых правил:

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

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

 

 

 

 

 

FAQ

Где лучше хранить пользовательские алиасы?

В большинстве современных дистрибутивов Linux для этого используется файл ~/.bash_aliases, который подключается из ~/.bashrc.

 

Работают ли алиасы при подключении по SSH?

Да. Если после входа запускается Bash и загружается пользовательская конфигурация, то все алиасы будут доступны так же, как и в локальном терминале.

 

Можно ли использовать алиасы в shell-скриптах?

Обычно нет. По умолчанию алиасы предназначены для интерактивной оболочки. В сценариях лучше использовать полноценные команды или функции.

 

Чем функция Bash отличается от алиаса?

Алиас просто заменяет одну строку текста на другую. Функция представляет собой небольшой сценарий, который может принимать параметры, использовать условия, циклы и переменные.

 

Что выбрать - Bash или Zsh?

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

 

 

 

 

Заключение

Bash-алиасы - это один из тех инструментов, к которым быстро привыкаешь. На их настройку достаточно потратить всего несколько минут, а экономить время они будут каждый день.

У каждого администратора постепенно появляется свой набор команд. Кто-то чаще работает с журналами, кто-то постоянно управляет сервисами, кто-то почти не выходит из Docker или SSH-сеансов. Поэтому искать какой-то идеальный список алиасов нет особого смысла - он всё равно будет разным для каждого администратора.

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

3v-Hosting Team

Автор

3v-Hosting Team

Команда 3v-Hosting - это группа преданных своему делу инженеров и операторов, которые занимаются созданием и поддержкой основы наших сервисов. Каждый день мы погружаемся в мир виртуальных и выделенных серверов, занимаясь всем, от развертывания и мониторинга до устранения реальных проблем, возникающих в производственных средах. Большинство наших статей основано на практическом опыте, а не просто на теории. Мы делимся своими наблюдениями о проблемах, с которыми сталкиваемся: перебоях в производительности, ошибках в настройке, тонкостях сетевых решений и архитектурных выборах, влияющих на стабильность и надежность. Наша миссия проста - мы хотим делиться знаниями, которые позволят вам управлять своими проектами с меньшим количеством неожиданностей и гораздо большей предсказуемостью.