Справочник по командам и синтаксису Bash
Справочник по командам и синтаксису Bash
Bash (Bourne Again SHell) — это интерпретатор командной строки, реализующий стандарт POSIX и являющийся стандартом де-факто для большинства дистрибутивов Linux и macOS. Интерпретатор обрабатывает текстовые команды, выполняет скрипты, управляет процессами и взаимодействует с операционной системой.
Bash объединяет возможности оболочки Bourne shell (sh) с расширенными функциями Korn shell (ksh) и C shell (csh). Инструмент поддерживает программирование на уровне командной строки, автоматизацию рутинных задач и управление сложными workflows.
Основные элементы синтаксиса
Переменные окружения и локальные переменные
Переменные в Bash хранят данные, которые могут использоваться скриптами или подсистемой. Различают переменные окружения (доступны всем дочерним процессам) и локальные переменные (доступны только текущей оболочке).
# Объявление переменной без пробелов вокруг знака равенства
MY_VAR="значение"
# Чтение значения переменной
echo $MY_VAR
echo "${MY_VAR}" # Использование фигурных скобок при наличии суффикса
# Установка переменной окружения (доступна дочерним процессам)
export MY_EXPORTED_VAR="данные"
# Локальная переменная внутри функции
local LOCAL_VAR="локальное значение"
Список системных переменных окружения:
| Имя переменной | Описание | Пример значения |
|---|---|---|
PATH | Список каталогов для поиска исполняемых файлов | /usr/bin:/bin:/usr/sbin |
HOME | Домашний каталог текущего пользователя | /home/user |
USER | Имя текущего пользователя | root |
SHELL | Путь к текущему интерпретатору | /bin/bash |
PWD | Текущий рабочий каталог | /tmp |
OLDPWD | Предыдущий рабочий каталог | /var/log |
LANG | Язык системы и кодировка | ru_RU.UTF-8 |
LC_ALL | Переопределение всех категорий локали | C |
PS1 | Формат приглашения командной строки | \u@\h:\w\$ |
PS2 | Вторичное приглашение (для многострочных команд) | > |
IFS | Разделители символов (по умолчанию пробел, табуляция, перевод строки) | \t\n |
HISTSIZE | Количество строк в истории команд | 1000 |
HISTFILE | Путь к файлу истории | ~/.bash_history |
UID | Уникальный идентификатор пользователя | 1000 |
GID | Групповой идентификатор пользователя | 1000 |
RANDOM | Генерация случайного числа | 34521 |
SECONDS | Время выполнения сессии в секундах | 120 |
BASH_VERSION | Версия интерпретатора | 5.1.16 |
BASHOPTS | Опции bash | checkwinsize:cmdhist |
BASH_ALIASES | Массив алиасов | [0]="ls -la" |
BASH_ARGC | Аргументы, переданные скрипту | [0]=3 |
BASH_ARGV | Значения аргументов скрипта | [0]="file.txt" |
BASH_CMDS | Кэш путей к командам | [0]="grep=/usr/bin/grep" |
BASH_COMMAND | Команда, которая выполняется сейчас | echo "test" |
BASH_LINENO | Номер строки в скрипте | 10 |
BASH_SOURCE | Имена файлов исходного скрипта | [0]="script.sh" |
BASH_SUBSHELL | Уровень вложенности подshell | 0 |
BASH_VERSINFO | Детальная версия bash | [0]=5 [1]=1 ... |
EUID | Эффективный UID | 0 |
GROUPS | Группы, в которых состоит пользователь | [0]=1000 [1]=999 |
DIRSTACK | Стек директорий (pushd/popd) | [0]="/tmp" |
PIPESTATUS | Статус выхода каждой команды в трубе | [0]=0 [1]=1 |
REPLY | Переменная для ввода через read | y |
LINENO | Номер текущей строки в скрипте | 5 |
PPID | PID родительского процесса | 1234 |
SHLVL | Уровень вложенности shell | 1 |
TMOUT | Таймаут ожидания ввода | 300 |
TIMEFORMAT | Формат вывода времени выполнения | %R%U%S |
TERM | Тип терминала | xterm-256color |
TZ | Часовой пояс | Europe/Moscow |
MACHTYPE | Тип машины | x86_64-pc-linux-gnu |
OSTYPE | Тип ОС | linux-gnu |
HOSTTYPE | Тип хоста | x86_64 |
HOSTNAME | Имя хоста | server.local |
MAILCHECK | Интервал проверки почты | 60 |
MAILPATH | Пути к почтовым ящикам | /var/mail/$user |
EMACS | Флаг работы в Emacs | t |
BASHOPTS | Опции оболочки | checkwinsize |
Специальные символы и операторы
Символы управляют потоком данных, выполнением команд и обработкой ошибок.
| Символ | Назначение | Пример использования |
|---|---|---|
; | Разделитель команд на одной строке | cd /tmp; ls |
& | Запуск команды в фоновом режиме | sleep 10 & |
&& | Выполнить вторую команду, если первая успешна | mkdir dir && cd dir |
| ` | ` | |
| ` | ` | Передача вывода первой команды во вход второй (труба) |
> | Перенаправление вывода в файл (перезапись) | echo "hi" > file.txt |
>> | Перенаправление вывода в файл (добавление) | echo "hi" >> file.txt |
< | Перенаправление ввода из файла | sort < Данные.txt |
<< | Гереподобный ввод (heredoc) | cat << EOF |
<> | Открытие файла для чтения и записи | exec 3<>/dev/tcp/host/80 |
() | Группировка команд в подshell | (cd /tmp; ls) |
{} | Группировка команд в текущем shell | { cd /tmp; ls; } |
` | Подстановка вывода команды (устаревший способ) | date = \date`` |
$() | Подстановка вывода команды (современный способ) | date=$(date) |
! | Отрицание логического условия или вызов из истории | !ls, if ! true |
~ | Ссылка на домашний каталог | cd ~ |
* | Мэтчинг любого количества символов (глоббинг) | ls *.txt |
? | Мэтчинг одного символа | ls file?.txt |
[] | Диапазон или набор символов | ls [a-z].txt |
# | Комментарий или параметр расширения | echo # комментарий, ${var:-default} |
: | Ничегонеделательная команда (пустой оператор) | : # ничего не делает |
( ) | Скобки для арифметических вычислений | (( x + y )) |
$ | Разбор параметров, переменных, подстановок | $HOME, $@ |
\ | Экранирование следующего символа | echo \$VAR |
' | Одиночные кавычки (полная защита от разбора) | echo 'Hello $USER' |
" | Двойные кавычки (разбор переменных, но защита спецсимволов) | echo "Hello $USER" |
Управление переменными и подстановками
Расширения параметров
Расширения позволяют манипулировать значениями переменных до их использования.
| Расширение | Описание | Пример | Результат |
|---|---|---|---|
${var} | Значение переменной | ${PATH} | содержимое PATH |
${var:-word} | Если var пуст или не задан, использовать word | ${VAR:-default} | default (если VAR пуст) |
${var:=word} | Если var пуст или не задан, установить word | ${VAR:=default} | VAR=content, content |
${var:?word} | Если var пуст или не задан, вывести ошибку | ${VAR:?missing} | ошибка, выход |
${var:+word} | Если var не пуст, использовать word | ${VAR:+present} | present (если VAR есть) |
${#var} | Длина строки в переменной | ${#VAR} | число |
${var:offset} | Подстрока начиная с offset | ${VAR:2} | часть строки |
${var:offset:length} | Подстрока длиной length | ${VAR:2:5} | часть строки |
${var#pattern} | Удалить минимальное совпадение pattern слева | ${VAR#/path/} | имя файла |
${var##pattern} | Удалить максимальное совпадение pattern слева | ${VAR##*/} | имя файла |
${var%pattern} | Удалить минимальное совпадение pattern справа | ${VAR%.txt} | имя без расширения |
${var%%pattern} | Удалить максимальное совпадение pattern справа | ${VAR%%.*} | имя до точки |
${var/pattern/replacement} | Заменить первое совпадение | ${VAR/foo/bar} | замена |
${var//pattern/replacement} | Заменить все совпадения | ${VAR//foo/bar} | все замены |
${!var} | Динамическая ссылка на переменную (indirect) | name=VAR; ${!name} | значение VAR |
${var?message} | Вывести сообщение при ошибке | ${VAR:?не задана} | ошибка с сообщением |
${var+message} | Вывести message, если var задано | ${VAR+есть} | есть |
Арифметические выражения
Bash поддерживает целочисленную арифметику в специальных конструкциях.
# Синтаксис (( ))
(( x = 5 + 3 ))
(( x++ ))
(( x-- ))
(( x += 10 ))
(( x == y )) # Возвращает статус 0, если равно
# Синтаксис $[ ] (устаревший, но работает)
result=$(( 10 + 5 ))
echo $result
# Битовые операции
(( x & y )) # Побитовое И
(( x | y )) # Побитовое ИЛИ
(( x ^ y )) # Побитовое Исключающее ИЛИ
(( x << 2 )) # Сдвиг влево
(( x >> 2 )) # Сдвиг вправо
Ввод и вывод данных
Команды ввода
Команда read считывает данные из стандартного входа.
| Параметр | Описание | Пример |
|---|---|---|
-p | Вывести приглашение перед чтением | read -p "Введите имя: " name |
-r | Не интерпретировать обратные слеши | read -r line |
-s | Тихий режим (скрыть ввод) | read -s password |
-t | Таймаут ожидания в секундах | read -t 5 input |
-n | Читать ровно n символов | read -n 1 key |
-a | Сохранить слова в массив | read -a arr |
-i | Использовать историю редактирования | read -i "предпросмотр" text |
Пример использования:
read -p "Имя: " user_name
read -sp "Пароль: " pass
echo ""
echo "Добро пожаловать, $user_name"
Команды вывода
| Команда | Описание | Особенности |
|---|---|---|
echo | Вывод текста на экран | Поддерживает флаги -n (без перевода строки), -e (интерпретация escape), -E (отключить интерпретацию) |
printf | Форматированный вывод | Строгий контроль формата, аналог C printf |
cat | Конкатенация файлов и вывод | -A показать все символы, -n нумерация строк |
tee | Вывод в файл и на экран | `command |
dd | Копирование и преобразование файлов | if=, of=, bs= (блок size) |
yes | Бесконечный вывод строки | yes "да" |
Настройки echo:
echo -n "Нет перевода строки"
echo -e "Строка\nС новой строки\tТабуляция"
echo -E "Не интерпретировать \n"
Форматирование printf:
printf "Число: %d\n" 42
printf "Строка: %s\n" "текст"
printf "Float: %.2f\n" 3.14159
printf "Зачистка: %-10s\n" "text"
printf "Заполнение: %05d\n" 42
Структуры управления
Условные конструкции
Конструкция if проверяет условие и выполняет блок кода.
if [ condition ]; then
commands
elif [ other_condition ]; then
other_commands
else
fallback_commands
fi
Операторы сравнения в [ ]:
| Оператор | Описание |
|---|---|
-eq | Равно численно |
-ne | Не равно численно |
-gt | Больше численно |
-ge | Больше или равно численно |
-lt | Меньше численно |
-le | Меньше или равно численно |
== | Равно строкам (или числам) |
!= | Не равно строкам |
< | Меньше лексикографически |
> | Больше лексикографически |
-z | Строка пуста |
-n | Строка не пуста |
-f | Файл существует и является обычным файлом |
-d | Каталог существует |
-x | Файл имеет права на выполнение |
-r | Файл доступен для чтения |
-w | Файл доступен для записи |
-s | Файл не пуст |
-e | Файл или каталог существует |
-O | Владелец файла |
-G | Группа файла |
=~ | Регулярное выражение (в [[ ]]) |
Операторы логические:
| Оператор | Описание |
|---|---|
&& | И (оба условия истинны) |
| ` | |
! | НЕ (отрицание) |
Пример:
if [[ -f "file.txt" && -r "file.txt" ]]; then
cat file.txt
fi
Циклы
Цикл for
Цикл перебирает список элементов.
# По списку
for item in list_of_items; do
echo "$item"
done
# С использованием glob
for file in *.txt; do
echo "Обработка: $file"
done
# Классический цикл C
for (( i=0; i<10; i++ )); do
echo "Счетчик: $i"
done
Цикл while
Цикл выполняется, пока условие истинно.
while [ условие ]; do
команды
done
# Пример бесконечного цикла с проверкой
while true; do
read -p "Выход? (y/n) " ans
if [ "$ans" == "y" ]; then
break
fi
done
Цикл until
Цикл выполняется, пока условие ложно (противоположность while).
until [ условие ]; do
команды
done
Цикл select
Меню выбора из списка.
select option in "Пункт 1" "Пункт 2" "Пункт 3"; do
case $option in
1|2|3)
echo "Выбрано: $option"
break
;;
*)
echo "Неверный выбор"
;;
esac
done
Управляющие ключевые слова
| Ключевое слово | Описание |
|---|---|
break | Выход из цикла |
continue | Пропуск оставшейся части тела цикла, переход к следующей итерации |
return | Выход из функции с кодом возврата |
exit | Выход из скрипта с кодом возврата |
exec | Замена текущего процесса командой (не создает новый процесс) |
trap | Регистрация обработчика сигналов |
set | Настройка опций оболочки |
shift | Сдвиг позиций позиционных параметров |
eval | Выполнение строки как команды |
source | Исполнение скрипта в текущем контексте (.) |
Функции
Функции позволяют группировать команды и переиспользовать код.
# Объявление функции
function_name() {
local_var="значение"
# Логика функции
return 0
}
# Вызов функции
function_name arg1 arg2
Особенности передачи аргументов:
$1,$2, ... — первые, вторые аргументы$#— количество аргументов$@— все аргументы как отдельные слова$*— все аргументы как одна строка$?— код возврата последней команды$0— имя скрипта или функции
Пример функции с локальными переменными:
calculate_sum() {
local a=$1
local b=$2
local result=$((a + b))
echo "Результат: $result"
return 0
}
sum=$(calculate_sum 5 10)
Работа с файлами и потоками
Стандартные потоки
| Поток | Описание | Номер дескриптора |
|---|---|---|
stdin | Стандартный ввод | 0 |
stdout | Стандартный вывод | 1 |
stderr | Стандартный вывод ошибок | 2 |
Перенаправление потоков:
# Перенаправить stderr в stdout
command 2>&1
# Перенаправить stdout в файл, stderr в другой файл
command > out.txt 2> err.txt
# Перенаправить оба потока в один файл
command > both.txt 2>&1
# Перенаправить stdin из файла
command < input.txt
# Открыть файл на чтение и запись
exec 3< input.txt
exec 4> output.txt
Команды работы с файлами
| Команда | Описание |
|---|---|
touch | Создать пустой файл или обновить время модификации |
mkdir | Создать каталог (-p создать вложенные) |
rm | Удалить файлы (-r рекурсивно, -f без подтверждения) |
cp | Копировать файлы (-r для каталогов) |
mv | Переместить или переименовать |
ln | Создать ссылку (-s для символической) |
chmod | Изменить права доступа |
chown | Изменить владельца |
chgrp | Изменить группу |
stat | Отобразить информацию о файле |
file | Определить тип файла |
find | Поиск файлов по критериям |
locate | Быстрый поиск по базе данных |
df | Свободное место на дисках |
du | Размер файлов и каталогов |
wc | Подсчет строк, слов, символов |
head | Первые N строк |
tail | Последние N строк (-f следить за изменением) |
cut | Вырезание колонок |
sort | Сортировка строк |
uniq | Удаление повторяющихся строк |
grep | Поиск шаблонов в файлах |
sed | Редактор строк |
awk | Текстовый процессор |
Практические примеры:
# Поиск файлов с расширением .log старше 7 дней
find /var/log -name "*.log" -mtime +7
# Подсчет строк в файле
wc -l file.txt
# Удаление пустых файлов в каталоге
find . -type f -empty -delete
# Копирование только изменившихся файлов
rsync -av source/ dest/
Обработка ошибок и сигналов
Коды возврата
Каждая команда возвращает код состояния (0 — успех, 1-255 — ошибка).
command
echo $? # Проверка кода
Обработка сигналов
Команда trap регистрирует обработчики для сигналов.
trap 'echo "Произошла ошибка!"; exit 1' ERR
trap 'echo "Завершение..."; rm -f temp.txt' EXIT
trap 'echo "Прервано Ctrl+C"; exit 130' INT TERM
Основные сигналы:
| Сигнал | Код | Описание |
|---|---|---|
INT | 2 | Прерывание (Ctrl+C) |
TERM | 15 | Обычное завершение |
HUP | 1 | Перезагрузка терминала |
KILL | 9 | Принудительное завершение (нельзя перехватить) |
STOP | 19 | Пауза (Ctrl+Z) |
CONT | 18 | Продолжение после паузы |
USR1 | 10 | Пользовательский сигнал 1 |
USR2 | 12 | Пользовательский сигнал 2 |
Отправка сигнала:
kill -9 PID
kill -s TERM PID
Опции оболочки (Set Options)
Команда set включает или отключает специальные режимы работы.
| Опция | Описание | Включение/Выключение |
|---|---|---|
-e | Выход при любой ошибке | set -e / set +e |
-u | Ошибка при обращении к неопределенной переменной | set -u / set +u |
-o pipefail | Выход при ошибке в любой команде трубы | set -o pipefail |
-n | Только проверка синтаксиса (не выполнять) | set -n |
-v | Вывод команд перед выполнением | set -v |
-x | Вывод команд с параметрами (отладка) | set -x |
-e | Выход при ошибке | set -e |
-f | Отключить глоббинг (расширение имен файлов) | set -f |
-h | Обновлять кэш путей к командам | set -h |
-m | Режим мониторинга (для job control) | set -m |
-T | Следить за перемещением функций | set -T |
-B | Следить за перемещением бэкграунд-процессов | set -B |
-C | Запретить перезапись файлов при перенаправлении | set -C |
-D | Включить трассировку макросов | set -D |
-E | Наследовать ловушки в подshell | set -E |
-I | Игнорировать ошибки в подстановках | set -I |
-P | Не следовать символическим ссылкам | set -P |
-t | Выход после выполнения одной команды | set -t |
-T | Отслеживать изменения функций | set -T |
-u | Ошибка при использовании неопределенной переменной | set -u |
-v | Вывод команд перед выполнением | set -v |
-x | Вывод команд с параметрами | set -x |
-a | Автоматический экспорт переменных | set -a |
-b | Сообщать о завершении фоновых процессов | set -b |
-g | Передача переменных в глобальную область | set -g |
-i | Интерактивный режим | set -i |
-k | Параметры после -- считаются аргументами | set -k |
-o | Включить опцию | set -o option |
-p | Привилегированный режим (сохранять права) | set -p |
-r | Запрет на изменение переменных | set -r |
-s | Чтение команд из stdin | set -s |
-t | Выход после одной команды | set -t |
-v | Вывод команд | set -v |
-x | Отладка | set -x |
Пример безопасного скрипта:
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
Массивы
Bash поддерживает одномерные массивы.
# Создание массива
arr=(element1 element2 element3)
# Доступ к элементам
echo "${arr[0]}"
echo "${arr[@]}" # Все элементы
echo "${#arr[@]}" # Количество элементов
echo "${!arr[@]}" # Индексы элементов
# Добавление элементов
arr+=("new_element")
# Срез массива
echo "${arr[@]:1:2}" # Элементы с 1 по 2 шт.
# Замена элементов
arr[1]="replaced"
# Удаление элемента
unset arr[1]
Регулярные выражения
Bash использует регулярные выражения в условиях [[ ]] и командах grep, sed, awk.
Операторы в [[ ]]:
| Оператор | Описание |
|---|---|
=~ | Совпадение с регулярным выражением |
== | Строковое сравнение (может содержать *, ?, []) |
Пример:
if [[ $filename =~ ^data_\d{4}.csv$ ]]; then
echo "Файл соответствует шаблону"
fi
Символы регулярных выражений:
| Символ | Описание |
|---|---|
. | Любой символ кроме новой строки |
^ | Начало строки |
$ | Конец строки |
* | 0 или более предыдущих символов |
+ | 1 или более предыдущих символов |
? | 0 или 1 предыдущий символ |
[] | Набор символов |
[^] | Отрицание набора |
| ` | ` |
() | Группировка |
Жёсткие ссылки и символические ссылки
| Тип ссылки | Описание | Особенности |
|---|---|---|
| Жёсткая ссылка | Альтернативное имя того же inode | Работает только в пределах одной файловой системы, нельзя создавать для каталогов, удаление оригинала не удаляет данные, пока есть ссылки |
| Символическая ссылка | Ссылка на путь к файлу | Может указывать на удаленный файл, может работать между файловыми системами, содержит путь, а не inode |
Создание:
ln original hard_link # Жёсткая
ln -s target soft_link # Символическая
Системные вызовы и утилиты
Команды управления процессами
| Команда | Описание |
|---|---|
ps | Информация о процессах |
top | Мониторинг ресурсов в реальном времени |
htop | Интерактивный мониторинг |
kill | Отправка сигналов процессам |
pkill | Отправка сигналов по имени |
pgrep | Поиск PID по имени |
jobs | Список фоновых задач |
fg | Перевод задачи вForeground |
bg | Перевод задачи вBackground |
wait | Ожидание завершения фоновых задач |
nohup | Запуск процесса, игнорирующего SIGHUP |
disown | Удаление задач из таблицы оболочек |
Пример:
nohup ./long_running_script.sh > output.log 2>&1 &
disown %1
Команды сети
| Команда | Описание |
|---|---|
ping | Проверка доступности узла |
netstat | Статистика сети |
ss | Состояние сокетов |
curl | Передача данных по сети |
wget | Скачивание файлов |
ssh | Безопасное подключение |
scp | Копирование по SSH |
rsync | Синхронизация файлов |
telnet | Тестирование портов (устарело) |
nc | Netcat (универсальный инструмент) |
Пример curl:
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com
Команды безопасности
| Команда | Описание |
|---|---|
passwd | Изменение пароля |
sudo | Выполнение команд от имени суперпользователя |
su | Переключение пользователя |
chmod | Изменение прав доступа |
chown | Изменение владельца |
umask | Маска прав по умолчанию |
gpg | Шифрование и подпись |
openssl | Криптографические инструменты |
iptables | Настройка правил фаервола |
firewalld | Управление фаерволом |
Установка umask:
umask 022 # Права по умолчанию: 755 для каталогов, 644 для файлов
Продвинутые техники
Heredoc и Here-string
Heredoc:
cat << EOF
Строка 1
Строка 2
EOF
Here-string:
echo "Строка" | while read line; do
echo "Обработка: $line"
done
Процессные подстановки
# Сравнение двух файлов
diff <(sort file1) <(sort file2)
# Чтение из процесса
while read line; do
echo "$line"
done < <(ps aux | grep python)
Команды подстановки
# Выполнение команды и подстановка результата
files=$(ls *.txt)
echo "Файлов: $files"
Оптимизация скриптов
- Использование
localдля переменных в функциях. - Минимизация создания подshell (использование
{ }вместо( )). - Применение
caseвместо цепочкиif/elif. - Использование
declareдля явного объявления типов. - Избегание повторных вызовов тяжелых команд в циклах.
Примеры сложных сценариев
Парсинг аргументов командной строки
while getopts "h:v:f:" opt; do
case $opt in
h) echo "Помощь";;
v) verbose=true;;
f) filename="$OPTARG";;
\?) echo "Неизвестный флаг";;
esac
done
shift $((OPTIND-1))
Обработка ошибок в цикле
for file in *.txt; do
if ! mv "$file" "backup_$file"; then
echo "Ошибка при обработке $file" >&2
continue
fi
done
Работа с JSON (через jq или python)
# Использование jq для парсинга JSON
json_data='{"name": "Test", "count": 5}'
name=$(echo "$json_data" | jq -r '.name')
echo "Имя: $name"
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). История развития оболочек представляет собой непрерывный процесс эволюции технологий. Каждая новая версия решала конкретные проблемы своих предшественников и добавляла новые возможности. Стандартные утилиты командной строки включают — Файловые операции — ls, cd, mkdir, rm, cp, mv, chmod, chown, Текстовая обработка — cat, grep, sed, awk, sort, uniq, cut, head, tail, Системная… Примеры переменных окружения — HOME — домашняя директория пользователя, PATH — список директорий для поиска исполняемых файлов, USER — имя текущего пользователя, PWD — текущая рабочая директория Кавычки, точки, запятые, скобки и прочие знаки препинания. Язык Bash предоставляет богатый набор средств для управления логикой выполнения скрипта. Эти конструкции позволяют принимать решения на основе условий и повторять действия многократно. Оболочка… Встроенная команда — это функция, реализованная непосредственно внутри процесса интерпретатора командной строки. Оболочка выполняет такие команды без создания отдельного дочернего процесса. Код… Подстановка значений — это механизм, при котором оболочка заменяет имя переменной на её фактическое значение перед выполнением команды. Существует несколько способов расширения переменных, каждый из… Bash — это язык командной оболочки, который обеспечивает взаимодействие пользователя с операционной системой. Его главная сила заключается не только в выполнении отдельных команд, но и в возможности… Локальная переменная в Bash — это переменная, чья область видимости ограничена телом функции. Такая переменная не влияет на глобальные переменные с тем же именем, существующие вне функции.… Файловая система — это метод организации хранения данных на носителе информации, обеспечивающий упорядоченное размещение файлов и каталогов. Обработка ошибок в Bash базируется на нескольких основных подходах. Выбор метода зависит от контекста задачи и требований к надежности скрипта. Программа htop представляет собой улучшенную версию стандартной утилиты top. Она предлагает графический интерфейс с возможностью прокрутки списка процессов, цветового кодирования и интерактивного…История оболочки Bash
Экосистема скриптов и автоматизации на Bash
Основы языка Bash
Синтаксис и специальные символы в Bash
Ключевые слова и зарезервированные конструкции
Встроенные команды и функции оболочки
Переменные и подстановка значений
Условные операторы и циклы в Bash
Функции и локальные переменные
Работа с файлами, каталогами и процессами
Обработка ошибок и коды возврата
Популярные утилиты и примеры скриптов