Базовые команды терминала
Навигация
Где я:
pwd
# /var/www/skills/api
Что в папке:
ls # обычный список
ls -l # подробно
ls -la # включая скрытые
ls -lh # размеры в КБ/МБ
ls -ltr # сортировка по времени
ls -la /var/log # конкретная папка
Разбор флагов:
-l— long (подробно)-a— all (включая скрытые.git,.env)-h— human (KB/MB вместо байтов)-t— time (по времени)-r— reverse
Перейти в папку:
cd /var/www/skills # абсолютный путь
cd api # в подпапку
cd .. # на уровень вверх
cd ../.. # на два вверх
cd ~ # в домашнюю папку
cd - # в предыдущую папку
cd # тоже в домашнюю
Просмотр файлов
Целиком:
cat file.txt
Постранично:
less file.txt
В less:
Space— следующая страницаb— предыдущая/text— поискn— следующий результат поискаq— выход
Первые/последние строки:
head file.txt # первые 10
head -n 50 file.txt # первые 50
tail file.txt # последние 10
tail -n 100 file.txt # последние 100
tail -f file.log # следить в реальном времени
tail -F file.log # как -f, но переоткрывает при ротации
tail -f — главный инструмент для логов.
Работа с файлами
Создать:
touch file.txt
mkdir folder
mkdir -p a/b/c
Скопировать:
cp file.txt copy.txt
cp file.txt /tmp/
cp -r folder1/ folder2/
Переместить/переименовать:
mv old.txt new.txt
mv file.txt /tmp/
mv folder1/ folder2/
Удалить:
rm file.txt
rm -r folder/
rm -rf folder/ # ⚠️ без подтверждения
rmdir empty-folder/ # только пустая
⚠️ Никогда rm -rf / — снесёт систему. И rm -rf ~ — снесёт домашнюю папку.
Символические ссылки
Создать:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Проверить:
ls -la /etc/nginx/sites-enabled/
# example.com -> /etc/nginx/sites-available/example.com
Удалить:
rm /etc/nginx/sites-enabled/example.com
⚠️ Не делай rm -r на симлинк — удалишь содержимое цели.
Права
Посмотреть:
ls -la
# -rw-r--r-- 1 roman roman 1234 ... file.txt
Изменить:
chmod 644 file.txt
chmod 755 script.sh
chmod +x script.sh
chown roman file.txt
chown -R www-data:www-data storage/
Поиск файлов
По имени:
find /var/www -name "*.php"
find /var/www -type d
find /var/www -type f -name "*.log"
find / -size +100M # файлы больше 100 МБ
find /var/log -mtime -7 # изменены за 7 дней
Поиск внутри файлов
grep:
grep "error" file.log
grep -r "TODO" /var/www/ # рекурсивно
grep -i "ERROR" file.log # без регистра
grep -v "error" file.log # исключить
grep -c "error" file.log # посчитать
grep -n "error" file.log # с номерами строк
grep -A 3 -B 3 "error" file.log # + 3 строки после и до
Пайпы с grep:
ps aux | grep nginx
tail -100 laravel.log | grep ERROR
Пайпы и редиректы
Пайп | — вывод одной команды в другую:
ls | wc -l # посчитать файлы
grep error log | sort | uniq -c # уникальные счётчики
tail -f log | grep ERROR # следить + фильтр
Редирект:
echo "text" > file.txt # перезаписать
echo "text" >> file.txt # добавить
command > file.txt 2>&1 # stderr + stdout в файл
command > /dev/null 2>&1 # выбросить вывод
Архивы
tar:
tar -czf archive.tar.gz folder/ # создать gzip
tar -xzf archive.tar.gz # распаковать
tar -tzf archive.tar.gz # посмотреть содержимое
tar -xzf file.tar.gz -C /tmp/ # распаковать в /tmp
Разбор флагов:
-c— create-x— extract-z— gzip-f— file-t— list-v— verbose
zip:
zip -r archive.zip folder/
unzip archive.zip
unzip -l archive.zip
Скачивание
wget:
wget https://example.com/file.zip
wget -O new-name.zip https://example.com/file.zip
wget -c https://example.com/big.iso # продолжить
curl:
curl -O https://example.com/file.zip
curl -o my.zip https://example.com/file.zip
curl -I https://example.com # только заголовки
curl -L https://example.com # следовать редиректам
curl -X POST -d '{}' https://api.example.com
Системная информация
Дистрибутив:
cat /etc/os-release
lsb_release -a
Ядро:
uname -r
Аппаратное:
lscpu
lsblk
lspci
free -h
df -h
Дата и время:
date
timedatectl
uptime
Полезные горячие клавиши
Tab— автодополнение↑/↓— история командCtrl + R— поиск в историиCtrl + C— прервать командуCtrl + D— выйти из сессииCtrl + L— очистить экранCtrl + A— в начало строкиCtrl + E— в конец строкиCtrl + W— удалить слово!!— последняя команда!$— последний аргумент
История команд
history
history | grep ssh
history 50 # последние 50
Очистить:
history -c
Алиасы
Создать:
alias ll='ls -lah'
alias ..='cd ..'
alias gs='git status'
Постоянно — в ~/.bashrc:
nano ~/.bashrc
Добавь в конец:
alias ll='ls -lah'
alias la='ls -A'
alias l='ls -CF'
alias ..='cd ..'
alias ...='cd ../..'
alias gs='git status'
alias gc='git commit'
alias gl='git log --oneline'
Применить:
source ~/.bashrc
Итог
Ты умеешь:
- Навигироваться по файловой системе
- Работать с файлами
- Искать файлы и содержимое
- Использовать пайпы и редиректы
- Работать с архивами
- Создавать алиасы
Дальше — редакторы nano и vim.