В базе знаний 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, Подстановки и Горячие клавиши
Переменные и окружение
Локальные переменные хранят данные в текущей сессии:
name="User" # пробелы вокруг '=' запрещены
echo $name # вывод: UserЭкспорт переменных делает их доступными для дочерних процессов (например, скриптов):
export EDITOR=nano # задаёт редактор по умолчаниюСпециальные переменные:
$? — код завершения последней команды (0 = успех);
$$ — PID текущего процесса;
$PATH — пути для поиска программ.
Подстановки для гибкости:
${var:-default} — если var не задана, вернёт default;
${str// /_} — заменит все пробелы на подчёркивания.
Совет: Настройте переменные окружения в ~/.bashrc, чтобы сохранять их между сеансами.
Управление процессами
Фоновый режим>: Добавьте & к команде, чтобы освободить терминал:
sleep 30 & # запуск в фонеПриостановка/возобновление:
Ctrl+Z — остановить процесс;
fg — вернуть в foreground, bg — продолжить в фоне.
Завершение процессов:
Ctrl+C — мягкое завершение (SIGINT);
kill -9 PID — принудительное завершение (SIGKILL).
Как найти PID процесса:
pgrep firefox # найти PID по имени
ps aux | grep ssh # поиск через фильтрПеренаправление ввода/вывода
Управляйте потоками данных:
stdin (ввод), stdout (вывод), stderr (ошибки).
Основные операторы:
> — перезаписать файл:
ls > files.txt # сохранить список файлов>> — добавить в конец файла;
2> — записать ошибки в файл:
grep "text" nofile.txt 2> errors.log| — передать вывод между командами:
cat logs.txt | grep "ERROR" | sortКомбинированное перенаправление:
script.sh &> output.log # stdout + stderr в один файлПодстановки (Parameter Expansion)
Манипуляции со строками:
Удаление части строки:
file="/home/user/doc.txt"
echo ${file##*/} # doc.txt (аналог basename)Замена текста:
str="hello world"
echo ${str// /_} # hello_worldГенерация списков:
echo file.{txt,log} # file.txt file.logАрифметика:
echo $((10 / 2)) # 5Горячие клавиши
Редактирование команд:
Ctrl+A / Ctrl+E — в начало/конец строки;
Ctrl+W / Alt+D — удалить слово слева/справа;
Ctrl+T — поменять символы местами.
История команд:
Ctrl+R — поиск по истории;
!! — повторить последнюю команду;
!$ — подставить последний аргумент прошлой команды.
Автодополнение:
Tab — дополнить имя файла/команды;
Двойной Tab — показать все варианты.
Полезные советы
1. Алиасы для часто используемых команд:
alias ll='ls -alh' # добавить в ~/.bashrc2. Работа с историей:
history | grep "git" # найти все команды с "git"3. Быстрое исправление:
^old^new # заменить "old" на "new" в последней команде