Шпаргалка по Shell
Удобный для поиска и печати справочник по Bash / shell — навигация, файлы, конвейеры, переменные, циклы, условия и удобные однострочники. Бесплатно.
Навигация
8pwd
Вывести рабочий каталог
ls -la
Список всех файлов с подробностями
cd /path
Сменить каталог
cd -
Перейти в предыдущий каталог
cd ~
Перейти в домашний каталог
tree -L 2
Показать дерево каталогов (2 уровня)
pushd / popd
Положить и снять каталог со стека
ls -lhS
Список по размеру, в читаемом виде
Файлы и каталоги
10touch file.txt
Создать пустой файл
mkdir -p a/b/c
Создать вложенные каталоги
cp -r src dest
Скопировать рекурсивно
mv old new
Переместить или переименовать
rm -rf dir
Удалить рекурсивно (осторожно!)
ln -s target link
Создать символическую ссылку
cat file.txt
Вывести содержимое файла
head -n 20 / tail -n 20
Первые / последние 20 строк
tail -f log.txt
Следить за файлом по мере роста
less file.txt
Постранично пролистать файл
Поиск и find
8grep 'pattern' file
Искать шаблон в файле
grep -rin 'text' .
Рекурсивно, без учёта регистра, с номерами
find . -name '*.php'
Найти файлы по имени
find . -type f -mtime -1
Файлы, изменённые за последний день
find . -size +10M
Файлы больше 10 МБ
which node
Найти исполняемый файл
locate file.txt
Найти по индексированной базе
grep -v 'skip' file
Инвертировать совпадение (исключить строки)
Обработка текста
9wc -l file
Подсчитать строки
sort file | uniq -c
Отсортировать, затем подсчитать дубликаты
cut -d',' -f1 file
Извлечь столбец CSV
awk '{print $1}' file
Вывести первое поле
sed 's/old/new/g' file
Заменить текст
tr 'a-z' 'A-Z'
Транслировать символы
diff a.txt b.txt
Сравнить два файла
tee out.txt
Записать в файл и stdout
xargs -I{} cmd {}
Построить команды из ввода
Конвейеры и перенаправление
9a | b
Передать вывод a в b
cmd > file
Перенаправить stdout (перезапись)
cmd >> file
Перенаправить stdout (дозапись)
cmd 2> err.log
Перенаправить stderr
cmd > out 2>&1
Перенаправить оба потока
cmd < input.txt
Читать stdin из файла
cmd1 && cmd2
Запустить cmd2 только если cmd1 успешна
cmd1 || cmd2
Запустить cmd2 только если cmd1 неудачна
cmd &
Запустить в фоне
Права и владение
8chmod 755 file
Задать rwx владельцу, rx остальным
chmod +x script.sh
Сделать файл исполняемым
chmod -R 644 dir
Рекурсивная смена прав
chown user:group file
Сменить владельца и группу
umask 022
Маска прав по умолчанию
sudo cmd
Запустить команду от root
stat file
Показать метаданные файла
ls -l file
Просмотреть биты прав
Процессы и система
9ps aux
Список запущенных процессов
top / htop
Монитор процессов в реальном времени
kill -9 PID
Принудительно завершить процесс
pkill -f name
Завершить процессы по имени
jobs / fg / bg
Управлять фоновыми задачами
df -h
Использование дискового пространства
du -sh dir
Размер каталога
free -h
Использование памяти
uname -a
Информация о системе и ядре
Переменные и подстановка
9NAME='value'
Задать переменную (без пробелов)
echo \"$NAME\"
Использовать переменную
export PATH=\"$PATH:/x\"
Экспортировать в дочерние процессы
$(command)
Подстановка команды
${VAR:-default}
По умолчанию, если не задано
$1 $2 $@
Позиционные аргументы скрипта
$?
Код выхода последней команды
read -p 'Name: ' x
Прочитать ввод пользователя
echo {1..5}
Раскрытие скобок
Скриптинг
9#!/usr/bin/env bash
Строка shebang
set -euo pipefail
Безопасный строгий режим
if [ -f file ]; then ...; fi
Условие по тесту файла
[ \"$a\" = \"$b\" ]
Сравнение строк
for f in *.txt; do ...; done
Цикл по файлам
while read line; do ...; done < file
Читать файл построчно
case \"$x\" in a) ...;; esac
Многовариантное ветвление
function greet() { echo hi; }
Определить функцию
trap cleanup EXIT
Запустить обработчик при выходе
Нет записей, соответствующих «:q».
Нужна помощь?
Возникла проблема с этим инструментом? Сообщите нам.