Bash (Bourne Again Shell) - одна из нескольких сотен вариаций командной оболочки (CLI), весьма и очень часто применяемая в среде Linux, но может быть реализована и на Windows, с помощью MinGW или WSL. Скорее всего, в качестве оболочки по умолчанию в Linux ты увидишь или Bash или Sh. Но не исключены другие варианты, вроде Zsh и ksh, но по сути освоив Bash можно легко перекатываться на другие оболочки, потому как суть у них примерно одна, разница лишь в некоторых особенностях. Так же как и любая командная оболочка поддерживает выполнение скриптов.

Список встроенных команд Bash

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

Ввод и вывод

  • echo - вывод выражения или содержимое переменной stdout
  • printf - тот же echo но более функциональный
  • read - чтение переменной с stdin (или ввод с клавиатуры если интерактивный режим)

Файловая система

  • cd - изменение каталога
  • pwd - вывод текущего каталога
  • pushd - изменяет текущий каталог с возможностью возврата в обратном порядке
  • popd - возвращает текущий каталог после pushd
  • dirs - выводит или очищает содержимое стека каталогов, сохранённых через pushd

Переменные

  • let - производит арифметические операции над переменными
  • eval - транслирует список аргументов из списка в команды
  • set - изменяет значения внутренних переменных скрипта
  • unset - удаляет переменную
  • export - экспортирует переменную, делая её доступной дочерним процессам
  • declare, typeset - задают и/или накладывают ограничения на переменные
  • getopts - используется для разбора аргументов, передаваемых скрипту из командной строки

Управление сценарием

  • source, . (точка) запуск указанного сценария
  • exit безусловное завершение работы сценария
  • exec заменяет текущий процесс новым, запускаемым командой exec
  • shopt позволяет изменять ключи (опции) оболочки «на лету»

Команды

  • true возвращает код завершения ноль (успешное завершение)
  • false возвращает код завершения, который свидетельствует о неудаче
  • type prog выводит полный путь к prog
  • hash prog запоминает путь к prog
  • help COMMAND выводит краткую справку по использованию внутренней команды COMMAND

Управление запущенными в командной оболочке задачами

  • jobs показывает список запущенных в командной оболочке задач либо информацию о конкретной задаче по её номеру
  • fg переключает поток ввода на текущую задачу (или на определённую задачу, если указан её номер) и продолжает её исполнение
  • bg продолжает исполнение текущей приостановленной задачи (или определённых задач, если указаны их номера) в фоновом режиме
  • wait ожидает завершения указанных задач

Пример простейшего скрипта

#!/bin/bash
echo "Hello World!"

В первой строчке указан путь до Bash интерпретатора, во второй единственное действие - вывод строчки Hello World! Для того чтобы скрипт выполнился, необходимы права запуска (+x), поэтому назначить его можно так

chmod +x scriptname.sh

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