uz
BK
июня 23, 2025
Обновлено июня 23, 2025

Шпаргалка по Bash

Linux

В базе знаний 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' # добавить в ~/.bashrc

2. Работа с историей:

history | grep "git" # найти все команды с "git"

3. Быстрое исправление:

^old^new # заменить "old" на "new" в последней команде
Оценка:
5 из 5
Аverage rating : 5
Оценок: 1
100029 Ташкент Улица Якка Чинар, дом 2/1
ООО «ИТГЛОБАЛКОМ ЛАБС»

Вам также может быть интересно...