Если вы только начинаете свой путь в мире Linux, терминал может показаться пугающим местом. Но представьте, что это ваш главный инструмент — мощный, точный и невероятно эффективный. Давайте разберем основные команды Linux, которые станут фундаментом вашей работы с операционной системой.
Это руководство построено по принципу «от простого к сложному»: мы начнем с навигации по файловой системе и закончим управлением процессами и пользователями.
Основы навигации в файловой системе
Первое, что нужно освоить — как перемещаться между каталогами и просматривать их содержимое. Эти команды станут вашими ежедневными спутниками.
pwd — где я нахожусь?
Команда pwd (print working directory) показывает текущую рабочую директорию. Это аналог того, как вы смотрите на адресную строку в файловом менеджере.
pwd
# Вывод: /home/username/documents
ls — что здесь находится?
Команда ls (list) выводит содержимое каталога. Но ее настоящая сила — в дополнительных флагах:
ls -l— подробный список с правами, владельцем и размеромls -a— показать все файлы, включая скрытые (начинаются с точки)ls -lh— человекочитаемый размер файлов (KB, MB вместо байтов)ls -la— комбинация: все файлы в подробном формате
ls -la
# Вывод:
# drwxr-xr-x 5 user user 4096 Dec 10 10:30 .
# drwxr-xr-x 18 user user 4096 Dec 9 14:15 ..
# -rw-r--r-- 1 user user 220 Dec 10 09:45 .bashrc
# drwxr-xr-x 2 user user 4096 Dec 10 10:30 documents
cd — переход между каталогами
Команда cd (change directory) меняет текущую директорию. Запомните несколько полезных сокращений:
cd /home/user/documents # Абсолютный путь
cd documents # Относительный путь
cd .. # На уровень выше
cd ~ # В домашний каталог
cd - # В предыдущую директорию
Работа с файлами и каталогами
Теперь, когда вы умеете перемещаться, давайте научимся создавать, копировать, перемещать и удалять файлы.
Создание файлов и каталогов
mkdir project # Создать каталог 'project'
mkdir -p dir1/dir2 # Создать вложенные каталоги
touch file.txt # Создать пустой файл
touch file1.txt file2.txt file3.txt # Создать несколько файлов
Копирование и перемещение
Команды cp (copy) и mv (move) имеют схожий синтаксис:
# Копирование
cp file.txt file_backup.txt # Копировать файл
cp -r dir1 dir2 # Рекурсивное копирование каталога
cp *.txt backup/ # Копировать все txt файлы
# Перемещение/переименование
mv file.txt documents/ # Переместить файл
mv oldname.txt newname.txt # Переименовать файл
mv *.png images/ # Переместить все PNG файлы
Удаление файлов и каталогов
rm удаляет файлы безвозвратно (не попадают в корзину). Будьте осторожны, особенно с флагом -r.
rm file.txt # Удалить файл
rm -i file.txt # Удалить с подтверждением
rm -r directory/ # Рекурсивно удалить каталог
rm -rf directory/ # Принудительное удаление без подтверждения
# Безопасная альтернатива — перемещение в корзину (если установлена)
trash file.txt # Используйте trash-cli вместо rm
Просмотр и редактирование файлов
Работа с содержимым файлов — одна из самых частых задач. Рассмотрим несколько подходов.
cat, less, head, tail — просмотр файлов
| Команда | Назначение | Пример |
|---|---|---|
cat |
Вывести весь файл | cat config.txt |
less |
Постраничный просмотр | less large_file.log |
head |
Первые N строк | head -20 file.txt |
tail |
Последние N строк | tail -f app.log |
# Полезные комбинации
cat file1.txt file2.txt > combined.txt # Объединить файлы
tail -f /var/log/syslog # Следить за логом в реальном времени
grep "error" app.log | head -5 # Первые 5 ошибок из лога
nano и vim — текстовые редакторы
Для новичков я рекомендую начать с nano — он простой и интуитивный. vim мощнее, но имеет крутую кривую обучения.
nano file.txt # Открыть файл в nano
# В nano: Ctrl+O сохранить, Ctrl+X выйти
vim file.txt # Открыть файл в vim
# В vim: i - режим вставки, Esc - нормальный режим, :wq - сохранить и выйти
Поиск файлов и текста
Умение быстро находить нужную информацию — ключевой навык системного администратора.
find — поиск файлов
# Базовые примеры
find . -name "*.txt" # Найти txt файлы в текущей директории
find /home -type f -name "config.*" # Найти файлы config.* в /home
find . -type d -name "node_modules" # Найти каталоги node_modules
find . -size +100M # Найти файлы больше 100MB
find . -mtime -7 # Файлы, измененные за последние 7 дней
# Комбинированные условия
find . -name "*.log" -size +10M -mtime +30 # Большие старые логи
grep — поиск текста в файлах
grep — один из самых полезных инструментов для анализа текста.
grep "error" app.log # Найти строки с "error"
grep -i "warning" system.log # Без учета регистра
grep -r "TODO" /home/user/project/ # Рекурсивный поиск
grep -v "success" results.txt # Исключить строки с "success"
grep -A 2 -B 2 "exception" trace.log # Показать 2 строки до и после
grep -E "error|warning|critical" log.txt # Регулярное выражение (или)
Управление процессами
Linux — многозадачная система. Давайте научимся управлять запущенными программами.
ps и top — мониторинг процессов
ps aux # Все процессы системы
ps aux | grep nginx # Найти процессы nginx
ps -ef --forest # Дерево процессов
top # Интерактивный монитор процессов
htop # Более продвинутая версия (установить отдельно)
Управление процессами: запуск, остановка, фон
# Запуск и управление
python script.py & # Запустить в фоне
jobs # Показать фоновые задачи
fg %1 # Вернуть задачу 1 на передний план
# Сигналы процессам
kill 1234 # Отправить SIGTERM (корректное завершение)
kill -9 1234 # SIGKILL (принудительное завершение)
killall nginx # Завершить все процессы nginx
pkill -f "python script" # Завершить по имени процесса
Работа с правами доступа
Система прав Linux может сбивать с толку, но она фундаментальна для безопасности.
chmod — изменение прав
Права представлены тремя группами: владелец (u), группа (g), остальные (o). Цифровая нотация:
- 4 = чтение (r)
- 2 = запись (w)
- 1 = выполнение (x)
- 0 = нет прав
# Символьная нотация
chmod u+x script.sh # Дать владельцу право на выполнение
chmod g-w file.txt # Забрать право записи у группы
chmod o=r config.conf # Остальным только чтение
chmod a+r file.txt # Всем пользователям дать чтение (a = all)
# Цифровая нотация (чаще используется)
chmod 755 script.sh # rwxr-xr-x (владелец: все, остальные: чтение+выполнение)
chmod 644 config.txt # rw-r--r-- (владелец: чтение+запись, остальные: чтение)
chmod 700 private.key # rwx------ (только владелец)
chown — изменение владельца
chown user file.txt # Изменить владельца
chown user:group file.txt # Изменить владельца и группу
chown -R user:group directory/ # Рекурсивно для каталога
# Часто нужно sudo
sudo chown www-data:www-data /var/www/ # Для веб-сервера
Сетевые команды
Базовые команды для диагностики сетевых проблем.
ip addr show # Показать сетевые интерфейсы и IP
ip route show # Таблица маршрутизации
ping google.com # Проверить доступность хоста
ping -c 4 8.8.8.8 # Отправить 4 пакета
traceroute google.com # Трассировка маршрута
netstat -tulpn # Показать открытые порты и процессы
ss -tulpn # Современная альтернатива netstat
curl https://api.example.com # HTTP-запрос
wget https://example.com/file.zip # Скачать файл
Полезные комбинации и советы
Настоящая сила Linux — в комбинировании простых команд через конвейеры (pipes).
# Поиск больших файлов и сортировка
find . -type f -size +100M | xargs ls -lh | sort -k5 -hr
# Подсчет строк кода в проекте
find . -name "*.py" -o -name "*.js" -o -name "*.html" | xargs wc -l
# Мониторинг логов в реальном времени с фильтрацией
tail -f /var/log/nginx/access.log | grep "404"
# Архивирование и сжатие
tar -czf archive.tar.gz directory/ # Создать архив
tar -xzf archive.tar.gz # Распаковать
# Проверка использования диска
df -h # Свободное место на дисках
du -sh * # Размер каталогов
# История команд с поиском
history | grep "ssh" # Найти команды ssh в истории
!! # Повторить последнюю команду
!ssh # Выполнить последнюю команду, начинающуюся с ssh
~/.bash_aliases для своих сокращений. Например:alias ll='ls -la'alias update='sudo apt update && sudo apt upgrade'alias ports='netstat -tulpn'
Часто задаваемые вопросы (FAQ)
Как отменить команду в терминале?
Нажмите Ctrl+C чтобы прервать выполняющуюся команду. Для очистки текущей строки — Ctrl+U.
Что делать, если я случайно удалил важный файл?
Если файл был удален недавно, проверьте, не открыт ли он еще в каком-то процессе: lsof | grep deleted. Для восстановления можно попробовать инструменты типа extundelete, но лучше сразу настроить регулярное резервное копирование.
Как узнать, что делает конкретная команда?
Используйте man команда (руководство) или команда --help для краткой справки. Например: man ls или ls --help.
Почему некоторые команды требуют sudo?
sudo дает временные права суперпользователя (root). Это нужно для операций, затрагивающих системные файлы, настройки или других пользователей. Будьте осторожны с sudo — вы можете повредить систему.
Как скопировать вывод команды в файл?
Используйте перенаправление:
команда > файл.txt — перезаписать файл
команда >> файл.txt — добавить в конец файла
Например: ls -la > listing.txt
Что такое конвейер (pipe) | и как он работает?
Конвейер передает вывод одной команды на вход другой. Например: ps aux | grep python берет список всех процессов и передает его grep, который фильтрует только строки с «python».
Заключение
Вы освоили основные команды Linux для начинающих. Помните: практика — ключ к мастерству. Не пытайтесь запомнить все сразу. Начните с базовых команд для навигации (ls, cd, pwd), затем добавьте работу с файлами, и постепенно расширяйте свой арсенал.
Самый эффективный способ обучения — решать реальные задачи. Создайте тестовый каталог, поэкспериментируйте с командами, сделайте ошибки (в безопасной среде) и учитесь на них. Linux терминал — это не враг, а мощный союзник в вашей работе.
Дальнейшие шаги: изучите bash-скриптинг, настройку cron-заданий, управление пакетами (apt/yum/dnf) и мониторинг системы. Удачи в освоении Linux!