Bash основы
Опубликовано:
Для начала определим, что такое bash?
Bash – модернизированная командная оболочка shell. Shell – это ранняя командная оболочка UNIX.
Bash может использоваться как интерактивный командный процессор, который вы можете увидеть когда запускаете терминал. Он поддерживает автозавершение имен файлов, команд, переменных и т.д.
Bash имеет ряд встроенных команд, с которыми можно ознакомиться на справочной странице выполнив команду man bash в вашем терминале.
Вот несколько таких команд:
echo– вывод выражения или содержимого переменной вstdoutcd– изменяет текущий каталогsourceили.– читает и выполняет команды из переданного файла и так далее.
Так же вы можете выполнять ваши скрипты передавая в них аргументы снаружи, можете перенаправлять потоки ввода и вывода. Можете объединять вызовы нескольких программ в конвейер (pipeline) с помощью оператора | (pipe). Конвейер передаёт вывод предыдущей команды на ввод следующей или на вход командного интерпретатора.
Пример:
cat filename | grep patternТак же тут есть циклы, условные переходы, массивы, переменные и операторы для работы с ними.
Для чего это все нужно?
Чтобы автоматизировать рутину. Скорей всего вы выполняете множество одних и тех же действий, собираете какие-то файлы из разных папок в одну, потом надо их переименовать, затем собрать в архив. В случае, когда такое надо сделать 1 или 2 раза, то можно сделать это вручную, но что, если это надо делать каждый день десятки раз?
Тут вам придет на помощь знание bash и умение писать скрипты.
В простейшем случае, скрипт — простой список команд, записанный в файл. Командный процессор должен знать, что он должен этот файл обработать, а не просто прочесть его содержимое. Для этого служит специальная конструкция, называемая shebang: #!. Символ # задаёт комментарий, но в данном случае shebang означает, что после этого спецсимвола находится путь к интерпретатору для исполнения сценария.
Решаем нашу задачу с фалами используя знания bash
- Создать новый файл и сохранить его с расширением
sh,prepare.sh; - Необходимо сказать системе, что это исполняемый файл, для этого файлу необходимо выдать права на выполнение используя программу
chmod. С документацией можно ознакомиться выполнивman chmodв терминале; Примеры:chmod 555 scriptname(выдача прав на чтение/исполнение любому пользователю в системе);chmod +rx scriptname(выдача прав на чтение/исполнение любому пользователю в системе);chmod u+rx scriptname(выдача прав на чтение/исполнение только "владельцу" скрипта); 3. Первой строкой пишете#!/bin/bash; 4. Потом пишете команды используя синтаксис bash:- Скопировать/переместить файлы;
- Переименовать файлы;
- Архивировать файлы;
- Удалить исходные файлы;
- Открыть папку с архивом; 5. Чтобы запустить скрипт в терминале нужно перейти в папку со скриптом и выполнить
./prepare.shили написать полный путь к файлу.
Таким образом, потратив какое-то время на написание скрипта вы упростите себе жизнь, и сэкономленное время сможете потратить на что-то полезное.
В наше время, мне кажется, всем так или иначе надо уметь писать скрипты, чтобы не тратить время на подобную рутину.