Blog — by Andrii Dykhlin

Аліаси та лінь

Лінь - рушій прогресу. Думаю, про це знає кожен. А як застосувати свої лінощі собі ж на користь? Наприклад, як спростити собі життя в консолі? Ласкаво прошу до короткого, проте важливого лайфкаху. Я перевіряв це як на живому серверві (Debian), так і на робочій станції (Debian-based ОС, проте запрацює це й на RPM). Поїхали!

Знаєте, може так статися, що вам потрібно написати якусь велику команду. Наприклад, змонтувати якийсь конкретний iso-образ. Команда може виглядати так:

Код:

$ sudo mount -t iso9660 %file%.iso /media/cdrom -o loop

Тут можна вказати абсолютний шлях до файлу, де вказується, наприклад, /home/ та шлях у домашньому каталозі. Інший випадок - змонтувати потрібну теку та запустити напряму. Проте я раджу використовувати повний шлях як більш універсальний.

Після вказування консолі де саме розміщено файл, ми вказуемо шлях до дискового приводу, емулюючи його наявність (ця тека має існувати, а тому sudo mkdir зробить це). Це краще та надійніше за рішення по типу Acetone. Цей програмний продукт створює те саме в домашньому каталозі, але не всі програми зрозуміють, що диск ніби наявний.

Тому, наприклад, можна довгу команду замінити короткою. Звичайно, тут важче створити універсальне рішення через характерну структуру команди, проте саме цю ми можемо прописати таким чином:

Код:

$ alias mnti="sudo mount -t iso9660 %file%.iso /media/cdrom -o loop"

У гру вступає команда alias, яка створює свого роду синоніми до команд. Тоді ви зможете запускати цю велику команду лише написавши в консолі коротеньке mnti.

Тут головне пам’ятати, щоб наш синонім не співпадав з командою, яка вже існує, а то буде трошки некрасиво. Якщо ви так зробили, то слід використати дуже схожу команду. Припустимо, що над вами вирішили пожартувати та створили аліас nano, який запускає не примітивний текстовий редактор, а vi - потужний та функціональний аналог. Нема нічого страшного. Ні у самому vi, ні у цій ситуації. Достатньо написати такий код:

Код:

$ unalias nano

І все - nano знову запускає nano.

Я останнім часом скоротив трохи команди встановлення. Неважливо яким менеджером ви користуєтесь: apt-get, aptitude, yum чи чимось іншим, можна спростити своє життя ще більше!

На прикладі apt-get я створив кілька простих команд, виклик яких можливий й через TAB. Нагадаю, що ця кнопка може запропонувати доповнити команду до кінця поточного слова. Тобто, якщо ви записали "apt-get in" та натиснули на TAB, то консоль автоматично доповнить останнє слово до єдиного можливого варіанту, або запропонує кілька варіантів, якщо їх більше ніж один.

Я створив собі маленьких помічників: sagi, sagr, sagu, sagg. Кмітливий читач вже міг зрозуміти, що тут "зашифровані" sudo apt-get install, remove, update та upgrade. Ці команди встановлюють та видаляють пакет за іменем, оновлюють список пакетів чи оновлюють усі (або обраний) пакети до останньої доступної в репазиторіях версії. Про apt ми ще поговоримо найближчим часом.

Код:

$ alias sagi="sudo apt-get install"

Головне при цьому пам’ятати, що можна використовувати як одинарні лапки, так і подвійні. Головне - не змішувати їх. Другим важливим пунктом цієї команди слід зазначити відсутність пробілу перед та після знаку "=".

Також можна замінити синонімом будь-яку команду. Так, python може перетворитися на py; а ps aux | grep - на щось інше.

Також ви маєте розуміти, що bash - це штука цікава, тому його краще контролювати. Для цього нам знадобиться файл ~/.bash_aliases. Його нема, а тому автоматично створиться, якщо написати, наприклад, наступне:

Код:

$ vim ~/.bash_aliases

Структура ~/ показує шлях до домашньої директорії та відкриє потрібний файл саме з неї, можна не повертатися "додому". В цей файл можна записати усі наші аліаси, один за одним, рядок за рядком. Як це робити? Можна через echo (тоді й файл відкривати не треба), можна просто вручну вбити в nano, emacs, vi, kate, gedit чи до чого ближче душа.

Записуємо файл. Після цього необхідно зробити наступне:

Код:

$ source ~/.bashrc

Ця команда підв’яже вміст нашого файлу через головний. Після цього можна перевантажувати систему та навіть закривати термінал - всі аліаси збережуться у системі. Додавання кожного нового потребує повторного запуску source. Для тих, хто користується більш старими версіями системи, може бути необхідним прибрати коментарі у файлі .bashrc на місці, де згадується .bash_aliases. Ці три рядки починаються з

Код:

if [ -f ~/.bash_aliases ]; then

Але починаючи з Ubuntu (та його аналогів з іншими DE) ці файли вже активні, тому нічого робити там не слід. Хіба що перейменувати .bash_aliases, якщо вам ця назва не подобається. Тоді й свій файл можете назвати згідно ваших смаків.

Інколи лінитися добре. Головне - не зловживати безмежними потужностями ліні, бо затягує.



  1. Коментарі (2):

  2. avatar
    Olexiy · 13.11.16
    Дуже вдячний автору! Корисні поради для початківця, та й для біль-менш досвідченого користувача дуже актуальна тема!
  3. avatar
    Andrii Dykhlin · Сайт · 13.11.16
    Olexiy написав(ла):
    Дуже вдячний автору! Корисні поради для початківця, та й для біль-менш досвідченого користувача дуже актуальна тема!
    Читати далі...

Прокоментуйте!