Аліаси і функції bash

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

Більшість популярних команд bash насправді є невеликими подмножествами інших доступних команд.

Творці багатьох найбільш поширених командних утиліт спробували усунути зайве друкування, використовуючи скорочення (як, наприклад, ls замість list, cd замість change-directory), однак це не повсюдно. Крім того, часто командам необхідні опції.

На щастя, bash дозволяє створювати призначені для користувача скорочення - аліаси команд. Даний посібник навчить використовувати команду alias і продемонструє кілька корисних прикладів алиасов.

Додавання аліаса команди

Додати алиас команди дуже просто.

Аліаси залишатимуться дійсними протягом сесії оболонки; для цього потрібно просто ввести алиас в командний рядок. Базовий синтаксис має такий вигляд:

Важливо! Між знаком рівності і сусідніми елементами немає прогалин. З пробілами ця команда не спрацює.

Спробуйте створити простий алиас який-небудь поширеною команди. Наприклад, багато хто часто використовують ls -lha або ls -lhA. Створіть для неї алиас ll:

Тепер за допомогою команди ll можна отримати лістинг каталогу в розширеному форматі, включаючи приховані каталоги:

Щоб видалити алиас, використовуйте команду unalias:

Можна тимчасово обійти алиас; наприклад, команда ls -a скорочена до ls. В такому випадку обійти цей алиас можна за допомогою:

При цьому буде виконана звичайна команда без опцій.

Створений раніше алиас ll буде доступний тільки в поточній сесії оболонки. Якщо відкрити новий термінал, в ньому алиас діяти не буде.

Все аліаси можна зробити постійними. Для цього їх потрібно додати в один з файлів, які читаються при запуску сесії (

/.bash_profile). Відкрийте файл:

Можливо, цей алиас або його варіанти вже знаходяться в цьому файлі. Багато дистрибутиви поставляються з набором стандартних конфігураційних файлів bash, які вже містять список найпоширеніших алиасов.

Збережіть і закрийте файл. Всі додані в файл аліаси будуть доступні в новій сесії. Щоб активувати внесені в файл зміни в поточній сесії, bash може перечитати конфігураційні файли:

приклади алиасов

Тепер ви знаєте, як створювати призначені для користувача аліаси. Розглянемо найбільш популярні і корисні аліаси. Деякі з них можна знайти в інтернеті, а деякі можуть бути включені в конфігурації bash за замовчуванням.

Навігація і лістинг

Раніше ми розглянули один приклад команди ls. Але існує безліч інших алиасов цієї команди.

Щоб команда ls повертала висновок в шпальтах і з індикатором типу файлу, використовуйте:

Можна також попередити деякі помилки і створити алиас, який буде викликати правильну команду:

alias lsl = "ls -lhFA | less"

Тепер розглянемо кілька корисних варіантів команди cd.

Цей алиас поверне в батьківський каталог:

Встановивши цей алиас, ви зможете легко знаходити файли в поточному каталозі:

alias fhere = "find. -name"

Системні аліаси

Також корисними бувають аліаси для моніторингу та запиту статистики системи. Наступний алиас показує використання дискового простору в зручному для читання форматі (включаючи тип файлової системи) і виводить підсумок в кінці:

alias df = "df -Tha --total"

Також можна створити алиас для виведення du:

alias du = "du -ach | sort -h"

Спробуйте зробити висновок команди free зручнішим для сприйняття:

alias free = "free -mt"

Також можна налаштувати таблицю процесів. Налаштуйте стандартний висновок:

alias ps = "ps auxf"

Щоб налаштувати в таблиці процесів можливості пошуку, потрібно створити алиас, який буде шукати процес, зазначений як аргумент:

alias psg = "ps aux | grep -v grep | grep -i -e VSZ -e"

Тепер при виклику таблиці можна задавати ім'я процесу. Команда поверне компактний і зручний висновок:

psg bash
USER PID% CPU% MEM VSZ RSS TTY STAT START TIME COMMAND
1001 5227 0.0 0.0 26320 3376 pts / 0 Ss 16:29 0:00 bash

інші аліаси

З командою mkdir часто використовується опція -р, яка створює всі необхідні батьківські каталоги. Можна створити алиас для команди з цією опцією:

alias mkdir = "mkdir -p"

Можна також додати прапор -v, який буде повідомляти про додавання нових каталогів. Це дозволяє вчасно помітити помилку, що стала причиною створення непотрібної гілки каталогів.

alias mkdir = "mkdir -pv"

Під час завантаження файлів з інтернету за допомогою wget використовується опція -c, яка відновлює завантаження в разі виникнення помилки. Аліас для такої команди:

alias wget = "wget ​​-c"

Можна також прискорити пошук по історії:

alias histg = "history | grep"

Деякі системні інструменти можна оновити до більш сучасної версії за допомогою алиасов; в такому слчае потрібно встановити обидві версії інструменту. Однак майте на увазі: це може відбитися на роботі деяких алиасов.

Аналогічно можна налаштувати команду ncdu, яка виводить розміри файлів і каталогів в інтерактивному режимі і дозволяє переглядати файли і виконувати прості дії:

Існує також вдосконалена версія команди df - pydf. Вона повертає інформацію в кольорі. Щоб створити її алиас:

Щоб швидко знайти свій зовнішній IP, створіть алиас:

Якщо ви віддаєте перевагу оптимізувати зображення, використовуйте пакет ImageMagick. Щоб встановити його, введіть:

sudo apt-get install imagemagick

Для оптимізації зображень використовується команда mogrify. Щоб створити алиас для неї, введіть:

alias webify = "mogrify -resize 690 \> * .png"

Такий алиас змінить розмір всіх зображень PNG в поточному каталозі, чия ширина перевищує 690px.

Щоб потім довантажити зображення на сервер, можна створити алиас для команди sftp:

alias upload = "sftp [email protected]: / path / to / upload / directory

функції bash

Аліаси прості у використанні, але їх можливості все ж вельми обмежені. Іноді, поєднуючи команди в ланцюжки, неможливо отримати доступ до необхідних аргументів. Крім того, аліаси зчитуються після функцій, тому вони можуть працювати повільно.

Більш надійною альтернативою алиасов є функції bash. Вони являють собою щось між аліасом і повноцінним скриптом. Працюють вони майже так само, як аліаси, але вони більш гнучкі і приймають стандартне введення.

Даний посібник розглядає основні функції.

Існує два основних синтаксису функцій bash. Перший використовує команду function:

function function_name command1
command2
>

Другий варіант - використання дужок:

function_name () command1
command2
>

Другий варіант синтаксису функції можна стиснути в один рядок за допомогою крапки з комою:

Важливо! Крапку з комою потрібно поставити також і в кінці останньої команди.

Для прикладу можна створити дуже корисну функцію, яка створює каталог і відразу відкриває його.

Змінюйте цю опцію так:

mcd test
pwd
/ Home / demouser / test

Також існує дуже корисна функція extract. Вона об'єднує багато утиліт для розпакування стисненого файлу в будь-якому форматі. Є цілий ряд варіантів її використання. Ось один з них:

function extract if [-z "$ 1"]; then
# Display usage if no parameters given
echo "Usage: extract ."
else
if [-f $ 1]; then
# NAME = $
# Mkdir $ NAME cd $ NAME
case $ 1 in
* .tar.bz2) tar xvjf. / $ 1 ;;
* .tar.gz) tar xvzf. / $ 1 ;;
* .tar.xz) tar xvJf. / $ 1 ;;
* .lzma) unlzma. / $ 1 ;;
* .bz2) bunzip2. / $ 1 ;;
* .rar) unrar x -ad. / $ 1 ;;
* .gz) gunzip. / $ 1 ;;
* .tar) tar xvf. / $ 1 ;;
* .tbz2) tar xvjf. / $ 1 ;;
* .tgz) tar xvzf. / $ 1 ;;
* .zip) unzip. / $ 1 ;;
* .Z) uncompress. / $ 1 ;;
* .7z) 7z x. / $ 1 ;;
* .xz) unxz. / $ 1 ;;
* .exe) cabextract. / $ 1 ;;
*) Echo "extract: '$ 1' - unknown archive method" ;;
esac
else
echo "$ 1 - file does not exist"
fi
fi
>

Ця функція бере перший аргумент і викликає відповідну утиліту (в залежності від розширення файлу).

висновок

Даний посібник охоплює тільки основи створення алиасов і функцій bash.

Створювати аліаси для команд з потенційно шкідливим поведінкою вкрай не рекомендується! Навіть створивши для такої команди більш безпечний алиас, ви можете випадково нанести системі непоправної шкоди.

Щоб вибрати команди, для яких необхідно створити аліаси, вивчіть історію команд системи.

history | awk 'END '| grep -v "./" | column -c3 -s "" -t | sort -nr | nl | head -n10
1 247 24.7% cd
2 112 11.2% vim
3 90 9% exit
4 72 7.2% ls
5 70 7% xset
6 56 5.6% apt-get
7 40 4% vlc
8 40 4% rm
9 38 3.8% screen
10 27 2.7% htop

Copyright © 2024