Bash основы

Bash основы

Для начала определим, что такое bash?

Bash – модернизированная командная оболочка shell. Shell – это ранняя командная оболочка UNIX.

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

Bash имеет ряд встроенных команд, с которыми можно ознакомиться на справочной странице выполнив команду man bash в вашем терминале.

Вот несколько таких команд:
- echo – вывод выражения или содержимого переменной в stdout
- cd – изменяет текущий каталог
- source или . – читает и выполняет команды из переданного файла
и так далее.

Так же вы можете выполнять ваши скрипты передавая в них аргументы снаружи, можете перенаправлять потоки ввода и вывода. Можете объединять вызовы нескольких программ в конвейер (pipeline) с помощью оператора | (pipe). Конвейер передаёт вывод предыдущей команды на ввод следующей или на вход командного интерпретатора.

Пример:

cat filename | grep pattern

Так же тут есть циклы, условные переходы, массивы, переменные и операторы для работы с ними.

Для чего это все нужно?

Чтобы автоматизировать рутину. Скорей всего вы выполняете множество одних и тех же действий, собираете какие-то файлы из разных папок в одну, потом надо их переименовать, затем собрать в архив. В случае, когда такое надо сделать 1 или 2 раза, то можно сделать это вручную, но что, если это надо делать каждый день десятки раз?

Тут вам придет на помощь знание bash и умение писать скрипты.

В простейшем случае, скрипт — простой список команд, записанный в файл. Командный процессор должен знать, что он должен этот файл обработать, а не просто прочесть его содержимое. Для этого служит специальная конструкция, называемая shebang: #!. Символ # задаёт комментарий, но в данном случае shebang означает, что после этого спецсимвола находится путь к интерпретатору для исполнения сценария.

Решаем нашу задачу с фалами используя знания bash

  1. Создать новый файл и сохранить его с расширением sh, prepare.sh;
  2. Необходимо сказать системе, что это исполняемый файл, для этого файлу необходимо выдать права на выполнение используя программу chmod. С документацией можно ознакомиться выполнив man chmod в терминале;
  3. Примеры:

    • chmod 555 scriptname (выдача прав на чтение/исполнение любому пользователю в системе);
    • chmod +rx scriptname (выдача прав на чтение/исполнение любому пользователю в системе);
    • chmod u+rx scriptname (выдача прав на чтение/исполнение только "владельцу" скрипта);
  4. Первой строкой пишете #!/bin/bash;
  5. Потом пишете команды используя синтаксис bash:
    • Скопировать/переместить файлы;
    • Переименовать файлы;
    • Архивировать файлы;
    • Удалить исходные файлы;
    • Открыть папку с архивом;
  6. Чтобы запустить скрипт в терминале нужно перейти в папку со скриптом и выполнить ./prepare.sh или написать полный путь к файлу.

Таким образом, потратив какое-то время на написание скрипта вы упростите себе жизнь, и сэкономленное время сможете потратить на что-то полезное.

В наше время, мне кажется, всем так или иначе надо уметь писать скрипты, чтобы не тратить время на подобную рутину.

19 декабря 2021 г.