← Все статьи

Секреты командной строки Linux: история, фон, права и быстрые приёмы bash

Автор: Юрий Нефёдов, системный инженер · 23.03.2021 · обновлено 24.10.2026

Небольшие приёмы bash, которые заметно ускоряют работу в терминале Linux.

Не помните название команды

Команда apropos ищет по описаниям справочных страниц. Помогает, когда знаете, что нужно сделать, но не помните, какой утилитой:

apropos "disk usage"

Исправить предыдущую команду

Символ ^ заменяет текст в последней команде и сразу выполняет её:

systemctl restart nginx
^restart^status    # выполнится systemctl status nginx

История команд

history     # вся история
!45         # выполнить команду номер 45
!45:p       # только показать команду номер 45
!-5         # выполнить пятую с конца
!more:p     # показать последнюю команду, начинающуюся с more

Подставить аргументы предыдущей команды:

mkdir date
cd !*       # выполнится cd date

Переходы между каталогами

cd ~    # в домашний каталог (или просто cd)
cd -    # в каталог, где были до этого
cd ..   # на уровень выше

Фоновые задачи

cp file1 file2 &          # запустить в фоне
nohup cp file1 file2 &    # в фоне и продолжить работу после закрытия терминала
jobs -l                   # список фоновых задач
fg %1                     # вернуть задачу 1 на передний план
bg %1                     # продолжить остановленную (Ctrl+Z) задачу 1 в фоне

Несколько команд в одной строке

mkdir mydir; cd mydir     # вторая выполнится в любом случае
mkdir mydir && cd mydir   # вторая выполнится, только если первая прошла успешно
mkdir mydir || cd mydir   # вторая выполнится, только если первая завершилась ошибкой

Права доступа цифрами

Каждое право имеет вес: чтение (r) — 4, запись (w) — 2, выполнение (x) — 1. Цифра — их сумма для владельца, группы и остальных. Например, chmod 750 даёт владельцу всё, группе чтение и выполнение, остальным ничего.

rwx = 7 (4+2+1)
rw- = 6 (4+2+0)
r-x = 5 (4+0+1)
r-- = 4 (4+0+0)
-wx = 3 (0+2+1)
-w- = 2 (0+2+0)
--x = 1 (0+0+1)
--- = 0

Склеить строки файла

Заменяет переводы строк на вертикальную черту и выводит всё одной строкой:

cat files | tr '\n' '|'

Напоследок

Утилита cowsay выводит текст от лица коровы. Пользы никакой, но настроение поднимает:

    \   ^__^
     \  (oo)\_______
        (__)\       )\/\
            ||----w |
            ||     ||

Нужна помощь с настройкой?

Если задача сложнее, чем в статье, напишите мне. Первая консультация бесплатная.