Введение и повторение

Введение в Bash-скриптинг

Alex Scriven

Data Scientist

Введение в курс

В этом курсе рассматриваются:

  • Переход от командной строки к Bash-скрипту
  • Переменные и типы данных в Bash
  • Управляющие конструкции
  • Функции и автоматизация скриптов
Введение в Bash-скриптинг

Зачем Bash-скриптинг? (Bash)

Для начала — почему именно Bash?

  • Bash расшифровывается как 'Bourne Again Shell' (игра слов)

  • Разработан в 80-х, но по-прежнему популярен. Оболочка по умолчанию во многих Unix-системах и на Mac

  • Unix — это основа интернета! (запуск ML-моделей, конвейеров данных)

    • AWS, Google и Microsoft предоставляют CLI для своих продуктов
Введение в Bash-скриптинг

Зачем Bash-скриптинг? (скриптинг!)

Итак, зачем нужен Bash-скриптинг?

  • Удобный запуск команд оболочки (не нужно каждый раз копировать и вставлять!)
  • Мощные программные конструкции
Введение в Bash-скриптинг

Необходимые знания

 

Для прохождения курса потребуются базовые знания.

  • Понимание того, что такое командная строка (терминал, оболочка)
  • Опыт работы с основными командами: cat, grep, sed и другими

Если что-то подзабылось — не беспокойтесь, сейчас повторим!

Введение в Bash-скриптинг

Повторение команд оболочки

Важные команды оболочки:

  • (e)grep фильтрует ввод по шаблону регулярного выражения
  • cat объединяет содержимое файлов построчно
  • tail \ head выводят только последние или первые -n строк (флаг)
  • wc подсчитывает слова или строки (флаги -w -l)
  • sed выполняет замену строк по шаблону
Введение в Bash-скриптинг

Напоминание о REGEX

«Regex», или регулярные выражения, — важнейший навык для Bash-скриптинга.

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

Для проверки регулярных выражений удобно использовать такие сайты, как regex101.com

Введение в Bash-скриптинг

Практика работы с оболочкой

Повторим команды оболочки на примере.

Предположим, есть текстовый файл fruits.txt с 3 строками данных:

banana
apple
carrot

Если запустить grep 'a' fruits.txt, получим:

banana
apple
carrot
Введение в Bash-скриптинг

Практика работы с оболочкой

А если запустить grep 'p' fruits.txt, получим:

apple

Напомним: квадратные скобки задают набор символов для сопоставления, например [eyfv]. Символ ^ инвертирует набор (исключает указанные символы/цифры)

Таким образом, grep '[pc]' fruits.txt вернёт:

apple
carrot
Введение в Bash-скриптинг

Практика работы с оболочкой

Вы, вероятно, уже использовали «пайпы» в терминале. Если в файле очень много фруктов, можно применить sort | uniq -c

  • Первая команда сортирует по алфавиту, вторая подсчитывает вхождения
  • Чтобы получить топ n фруктов, можно добавить в цепочку wc -l и head
cat new_fruits.txt | sort | uniq -c | head -n 3
  14 apple
  13 bannana
  12 carrot
Введение в Bash-скриптинг

Давайте потренируемся!

Введение в Bash-скриптинг

Preparing Video For Download...