ESC
Команды Bash / Терминала

Навигация

Команда Параметры Пример Вывод Описание
ls -la, -lh, -R ls -la /etc список файлов Вывод содержимого каталога; -l длинный формат, -a скрытые файлы, -h размеры в читаемом виде
cd -, ~, .. cd ~/projects смена каталога Смена каталога; cd - возврат назад, cd ~ переход в домашний каталог
pwd pwd /home/user Вывод текущего рабочего каталога (полный путь)
tree -L n, -a tree -L 2 дерево каталогов Вывод дерева каталогов; -L ограничивает глубину (может потребоваться установка)
find -name -type -mtime find . -name '*.log' пути к файлам Поиск файлов и каталогов по заданным критериям
locate -i locate nginx.conf пути к файлам Быстрый поиск файлов по индексной базе; сначала выполните updatedb

Работа с файлами

Команда Параметры Пример Вывод Описание
cp -r, -i, -u cp -r src/ dst/ копирует файл Копирование файлов; -r для каталогов, -i запрос перед перезаписью
mv -i, -n mv old.txt new.txt перемещает/переименовывает Перемещение или переименование файлов; -i запрос перед перезаписью
rm -r, -f, -i rm -rf dist/ удалено Удаление файлов и каталогов; -r рекурсивно, -f принудительно — используйте осторожно
mkdir -p mkdir -p a/b/c новый каталог Создание каталога; -p создаёт родительские каталоги при необходимости
touch touch index.html пустой файл Создание пустого файла или обновление временной метки файла
ln -s ln -s /etc/nginx nginx symlink Создание жёсткой ссылки; -s для символической ссылки (symlink)

Просмотр файлов

Команда Параметры Пример Вывод Описание
cat -n, -A cat -n file.txt содержимое файла Вывод файла; -n нумерация строк, -A показывает непечатаемые символы
head -n N head -n 20 log.txt первые N строк Вывод первых строк файла (по умолчанию 10)
tail -n N, -f tail -f app.log последние N строк Вывод последних строк; -f следит за новым содержимым в реальном времени
less /search, q less large.log постраничный просмотр Постраничный просмотр файла; / для поиска, q для выхода, пробел для перелистывания
wc -l, -w, -c wc -l file.txt количество Подсчёт слов; -l строки, -w слова, -c байты/символы

Поиск и обработка текста

Команда Параметры Пример Вывод Описание
grep -r -i -n -v -E grep -rn 'error' logs/ совпадающие строки Поиск текстовых шаблонов; -r рекурсивно, -i без учёта регистра, -n номера строк
grep -v grep -v 'debug' app.log несовпадающие строки Инвертированный поиск — вывод строк, НЕ содержащих шаблон
grep -E grep -E 'warn|error' log совпадающие строки Расширенный regex — | для ИЛИ, + для одного или более символов
awk '{print $N}' awk '{print $1}' f значение столбца Обработка текста по шаблонам; $1 первое поле, $NF последнее поле
sed -i 's/a/b/g' sed -i 's/foo/bar/g' f изменённый текст Потоковый редактор; s/поиск/замена/g выполняет глобальную замену
sort -n -r -k N sort -n numbers.txt отсортированный вывод Сортировка строк; -n числовая, -r обратная, -k сортировка по столбцу N
uniq -c, -d sort f | uniq -c уникальные строки Удаление соседних дублирующихся строк; обычно используется после sort

Права доступа

Команда Параметры Пример Вывод Описание
chmod 755, 644, +x chmod +x script.sh права изменены Изменение прав доступа; 755=rwxr-xr-x, 644=rw-r--r--
chown -R user:group chown -R www-data:www-data /var/www владелец изменён Изменение владельца и группы файла; -R рекурсивно
ls -la ls -la /var/www список прав Вывод прав доступа, владельца, группы и размера для всех файлов
umask 022, 027 umask 022 права по умолчанию Установка маски прав по умолчанию для новых файлов (022 → 644 для файлов)
sudo -u user sudo systemctl restart nginx команда с повышенными правами Выполнение команды от имени суперпользователя; -u для другого пользователя

Управление процессами

Команда Параметры Пример Вывод Описание
ps aux, -ef ps aux | grep nginx список процессов Вывод процессов; aux=все пользователи, -ef=полный формат
top q, k, M top интерактивный монитор Интерактивный монитор процессов; q выход, k завершить процесс, M сортировка по памяти
htop F3, F9 htop интерактивный монитор Улучшенный top с цветовым выделением; F3 поиск, F9 завершить (может потребоваться установка)
kill -9, -15 kill -9 1234 сигнал отправлен Отправка сигнала процессу по PID; -15 SIGTERM (мягкое завершение), -9 SIGKILL (принудительное)
killall -9, -u killall node сигнал отправлен Завершение всех процессов по имени
jobs -l jobs -l список задач Вывод фоновых и приостановленных задач в текущей оболочке
bg / fg %N fg %1 задача возобновлена bg отправляет задачу в фон, fg возвращает задачу на передний план

Сеть

Команда Параметры Пример Вывод Описание
curl -o -L -X -H -d curl -O https://example.com/f ответ сервера Передача данных по HTTP/FTP; -L следовать перенаправлениям, -o сохранить в файл
wget -O -r -q wget -q https://example.com сохранённый файл Загрузка файлов; -O переименовать вывод, -r рекурсивно, -q тихий режим
ping -c N ping -c 4 google.com RTT мс Проверка сетевого подключения; -c ограничивает количество пакетов
ssh -i -p -L ssh user@host -p 2222 удалённая оболочка Защищённое подключение; -i файл ключа, -p порт, -L локальная переадресация порта
scp -r -P -i scp file user@host:~/ скопировано Защищённое копирование по SSH; -r рекурсивно, -P порт (заглавная)
netstat -tuln netstat -tuln список портов Вывод сетевых соединений; -t TCP, -u UDP, -l прослушивающие, -n числовой формат
ss -tuln ss -tuln список портов Современная замена netstat; быстрее и детальнее

Архивы и сжатие

Команда Параметры Пример Вывод Описание
tar -czf -czf out.tar.gz tar -czf arc.tar.gz dir/ архив Создание сжатого gzip tarball; c=создать, z=gzip, f=имя файла
tar -xzf -xzf file.tar.gz tar -xzf arc.tar.gz -C /tmp распаковано Распаковка gzip tarball; x=извлечь, -C каталог назначения
tar -tf tar -tf archive.tar.gz список файлов Вывод содержимого tarball без распаковки
zip -r, -9 zip -r out.zip dir/ zip-архив Создание zip-архива; -r рекурсивно, -9 максимальное сжатие
unzip -d, -l unzip archive.zip -d out/ распаковано Распаковка zip; -d каталог назначения, -l список содержимого без распаковки
gzip / gunzip -k, -d gzip -k file.txt сжато gzip сжимает один файл; -k сохранить оригинал, gunzip для распаковки

Окружение и оболочка

Команда Параметры Пример Вывод Описание
env env | grep PATH переменная=значение Вывод всех переменных окружения; фильтрация через grep
export export NODE_ENV=production переменная задана Установка переменной окружения для текущего сеанса и дочерних процессов
echo $VAR echo $HOME значение Вывод значения переменной; используйте ${VAR} для точного указания в строках
which which node путь Вывод полного пути к исполняемому файлу команды
alias alias ll='ls -la' псевдоним Создание псевдонима команды; добавьте в ~/.bashrc для постоянного использования
source source ~/.bashrc перезагружено Выполнение файла в контексте текущей оболочки (также: . ~/.bashrc)
history !N, !! history | tail -20 список команд История команд; !! повторяет последнюю, !N выполняет N-ю команду

Краткий справочник Git

Команда Параметры Пример Вывод Описание
git init git init my-project репозиторий создан Инициализация нового репозитория Git в каталоге
git clone --depth 1 git clone url репозиторий клонирован Клонирование удалённого репозитория; --depth 1 для поверхностного клонирования
git status -s git status -s изменения Показ состояния рабочего дерева; -s краткий формат
git add -A, -p git add -p проиндексировано Индексирование изменений; -A все файлы, -p интерактивный режим
git commit -m, --amend git commit -m 'msg' зафиксировано Фиксация проиндексированных изменений; --amend изменяет последний коммит
git push -u origin git push -u origin main отправлено Отправка в удалённый репозиторий; -u устанавливает ветку слежения
git pull --rebase git pull --rebase синхронизировано Получение и интеграция удалённых изменений; --rebase вместо merge
git log --oneline --graph git log --oneline -10 история Вывод истории коммитов; --oneline компактный формат, --graph визуальное дерево
git stash pop, list git stash pop восстановлено Временное сохранение незафиксированных изменений; pop для восстановления
git diff --staged git diff --staged различия Вывод изменений; --staged показывает проиндексированные, но ещё не зафиксированные изменения

Часто задаваемые вопросы

sh (Bourne Shell) — исходная оболочка Unix, стандартизированная по POSIX. bash (Bourne Again Shell) — её преемник и надмножество, добавляющее массивы, расширенный синтаксис проверки [[]], арифметическое расширение $(( )), историю команд, автодополнение табуляцией и многое другое. В большинстве систем Linux /bin/sh является символической ссылкой на bash или dash (облегчённую оболочку, совместимую только с POSIX). Скрипты с #!/bin/sh должны использовать только функции POSIX для переносимости; скрипты с #!/bin/bash могут использовать расширения bash.

Три шага: (1) Добавьте строку shebang в самом начале файла: #!/bin/bash. (2) Сделайте скрипт исполняемым: chmod +x script.sh. (3) Запустите его командой ./script.sh (префикс ./ необходим, поскольку текущий каталог не входит в $PATH по умолчанию). Чтобы запускать скрипт из любого места, переместите его в каталог из вашего PATH: mv script.sh ~/bin/ и убедитесь, что ~/bin есть в $PATH.

В bash есть три стандартных потока: stdin (0), stdout (1), stderr (2). Перенаправить stdout в файл: command > file.txt (перезапись) или command >> file.txt (дополнение). Перенаправить stderr: command 2> errors.txt. Перенаправить оба потока: command > output.txt 2>&1 или command &> output.txt. Отбросить вывод: command > /dev/null 2>&1. Передать stdout следующей команде по конвейеру: command1 | command2.

sudo (superuser do) выполняет команду с правами root (администратора). Используйте его только при необходимости — например, для установки системных пакетов, редактирования файлов в /etc или управления службами. Не запускайте под root инструменты разработки, скрипты чужого производства или что-либо, изменяющее ваш домашний каталог. Никогда не используйте sudo npm install -g без крайней необходимости, так как это может нарушить права собственности на пакеты. Принцип минимальных привилегий: используйте минимально необходимые разрешения.