Блог компанії 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 складається з групи відданих своїй справі інженерів та операторів, які повністю присвятили себе створенню та підтримці основи наших сервісів. Щодня ми занурюємося у світ віртуальних та виділених серверів, займаючись усім, від розгортання та моніторингу до усунення реальних проблем, що виникають у виробничих середовищах. Більшість наших статей ґрунтуються на практичному досвіді, а не лише на теорії. Ми ділимося своїми думками щодо викликів, з якими стикаємося: перебоїв у роботі, помилок у налаштуваннях, складнощів мережевої взаємодії та архітектурних рішень, що впливають на стабільність і надійність. Наша місія проста - ми хочемо ділитися знаннями, які допоможуть вам керувати своїми проектами з меншою кількістю несподіванок та набагато більшою передбачуваністю.