В базе знаний Serverspace уже есть статья “Что такое Linux Bash и как его использовать?“, если вы хотите получить больше информации об bash, рекомендуем прочитать ее. Мы рассмотрим более подробно, сам Bash, его особенности возможности и основные функции.
Начнем с того, что Bash (Bourne-Again SHell) — это стандартная командная оболочка для Unix-подобных систем, сочетающая мощь автоматизации, гибкость управления процессами и простоту создания скриптов. Эта шпаргалка охватывает ключевые аспекты работы с Bash: базовые команды для навигации и управления файлами, перенаправление ввода-вывода, использование переменных, циклов и условий, а также приёмы ускорения работы (алиасы, автодополнение, история команд). Материал подойдёт как новичкам, осваивающим терминал, так и опытным пользователям, ищущим краткий справочник для повседневных задач — от администрирования серверов до автоматизации рутинных операций.
Bash – это крайне универсальный инструмент, позволяющий выполнить множество функций.
Ниже представлен список команд Bash по категориям с основными функциями и их командами.
Исполнение команд и программ
- Функция : Запуск программ, утилит и скриптов
- Команды/Конструкции :
- ls, grep, mkdir, cd, chmod, ./script.sh, bash
Автоматизация и скриптинг
- Функция: Создание и выполнение скриптов, условия, циклы
- Команды/Конструкции:
- ls>, grep, mkdir, cd, chmod, ./script.sh, bash
Работа с переменными и данными
- Функция: Создание переменных, арифметика, строки
- Команды/Конструкции:
- ls, grep, mkdir, cd, chmod, ./script.sh, bash
Управление процессами и сигналами
- Функция: Управление процессами, сигналы
- Команды/Конструкции:
- &, kill, killall, jobs, fg, bg, Ctrl+C, Ctrl+Z
Перенаправление ввода/вывода и конвейеры
- Функция: Управление потоками данных
- Команды/Конструкции:
- >, >>, 2>, &>, \|
Управление файловой системой и шаблоны
- Функция: Навигация, манипуляции, шаблоны
- Команды/Конструкции:
- >, >>, 2>, &>, \|
Взаимодействие с пользователем и удобство
- Функция: История, автодополнение, алиасы
- Команды/Конструкции:
- history, !!, !n, Tab, alias, man>, –help
Расширенные возможности (экспансия)
- Функция: Расширения для генерации последовательностей
- Команды/Конструкции:
- {}, ~
Символы/операторы: >, >>, |, &, *, ?, [], {}, ~ — не являются командами, но активно используются в Bash для управления данными и процессами.
Клавиши: Ctrl+C, Ctrl+Z, Tab — комбинации клавиш для управления процессами и автодополнения.
Скриптинговые конструкции: if, for, while, function — элементы синтаксиса Bash для написания скриптов.
Для более подробного, описания методов и составления скриптов, уже была опубликована статья, команды были рассмотрены в другой статье. Мы же рассмотрим, особенности Переменные и окружение, Управление процессами, Перенаправление ввода/вывода, История команд, Aliases, Подстановки и Горячие клавиши
Переменные и окружение
Локальные переменные хранят данные в текущей сессии:
echo $name # вывод: User
Экспорт переменных делает их доступными для дочерних процессов (например, скриптов):
Специальные переменные:
$? — код завершения последней команды (0 = успех);
$$ — PID текущего процесса;
$PATH — пути для поиска программ.
Подстановки для гибкости:
${var:-default} — если var не задана, вернёт default;
${str// /_} — заменит все пробелы на подчёркивания.
Совет: Настройте переменные окружения в ~/.bashrc, чтобы сохранять их между сеансами.
Управление процессами
Фоновый режим>: Добавьте & к команде, чтобы освободить терминал:
Приостановка/возобновление:
Ctrl+Z — остановить процесс;
fg — вернуть в foreground, bg — продолжить в фоне.
Завершение процессов:
Ctrl+C — мягкое завершение (SIGINT);
kill -9 PID — принудительное завершение (SIGKILL).
Как найти PID процесса:
ps aux | grep ssh # поиск через фильтр
Перенаправление ввода/вывода
Управляйте потоками данных:
stdin (ввод), stdout (вывод), stderr (ошибки).
Основные операторы:
> — перезаписать файл:
>> — добавить в конец файла;
2> — записать ошибки в файл:
| — передать вывод между командами:
Комбинированное перенаправление:
Подстановки (Parameter Expansion)
Манипуляции со строками:
Удаление части строки:
echo ${file##*/} # doc.txt (аналог basename)
Замена текста:
echo ${str// /_} # hello_world
Генерация списков:
Арифметика:
Горячие клавиши
Редактирование команд:
Ctrl+A / Ctrl+E — в начало/конец строки;
Ctrl+W / Alt+D — удалить слово слева/справа;
Ctrl+T — поменять символы местами.
История команд:
Ctrl+R — поиск по истории;
!! — повторить последнюю команду;
!$ — подставить последний аргумент прошлой команды.
Автодополнение:
Tab — дополнить имя файла/команды;
Двойной Tab — показать все варианты.
Полезные советы
1. Алиасы для часто используемых команд:
2. Работа с историей:
3. Быстрое исправление: