Bezdepbonusu7Программирование: статьи и ответы

Терминал Linux

Основные команды Linux для начинающих с примерами

Редакция Bezdepbonusu78 мин чтения

Команды Linux для начинающих умещаются в пару десятков: навигация, файлы, поиск, права, процессы и сеть. Собрали их с примерами, объяснили права доступа и опасные места вроде rm -rf, а в конце дали шпаргалку, которую удобно держать под рукой.

Окно терминала Linux с основными командами для начинающих
Фото: Rprpr, CC BY 3.0, Wikimedia Commons
Содержание
  1. Терминал
  2. Навигация
  3. Файлы и папки
  4. Просмотр файлов
  5. Поиск и конвейеры
  6. Права доступа
  7. Процессы и система
  8. Шпаргалка
  9. Частые вопросы

С чего начать: терминал и устройство команды

Терминал - текстовый способ управлять компьютером. В нём вы пишете команды, а система их выполняет. Для разработчика это ежедневный инструмент: серверы почти всегда работают на Linux без графического интерфейса, Docker и Git удобнее всего использовать из консоли, а многие ошибки видно только в логах.

Где взять терминал:

  • Ubuntu и другие дистрибутивы - сочетание Ctrl+Alt+T или поиск "Терминал" в меню.
  • Windows 10/11 - подсистема WSL. В PowerShell от администратора выполните wsl --install, после перезагрузки появится Ubuntu. Все команды из статьи в ней работают.
  • macOS - приложение Terminal. Большинство команд совпадает, отличаются некоторые флаги.

Любая команда устроена одинаково: команда -опции аргументы. Например, в ls -l /etc команда ls, опция -l (подробный вывод), аргумент /etc (какую папку показать). Короткие опции можно склеивать: ls -la равно ls -l -a. Длинные пишутся через два дефиса: --help.

Горячие клавиши, которые экономят часы:

  • Tab - автодополнение имён команд и файлов, двойной Tab показывает варианты;
  • стрелка вверх - предыдущая команда, Ctrl+R - поиск по истории;
  • Ctrl+C - прервать выполнение, Ctrl+L - очистить экран;
  • Ctrl+Shift+C / Ctrl+Shift+V - копировать и вставить в большинстве терминалов Linux.

В Linux нет дисков C: и D:. Всё растёт из одного корня /. Важные папки: /home/имя - ваши файлы, /etc - настройки системы, /var/log - логи, /tmp - временные файлы, /usr/bin - программы.

pwd              # где я сейчас
ls               # что в текущей папке
ls -la           # подробно, включая скрытые файлы (начинаются с точки)
ls -lh /var/log  # размеры в понятном виде: K, M, G
cd projects      # перейти в папку projects
cd ..            # на уровень выше
cd ~             # в домашнюю папку (или просто cd)
cd -             # вернуться в предыдущую папку

Пути бывают абсолютные и относительные. Абсолютный начинается с / и работает откуда угодно: /home/anna/projects. Относительный считается от текущей папки: projects/site. Символ ~ заменяет путь к домашней папке, точка . - текущая папка, две точки .. - родительская.

Регистр букв важен: Projects и projects - две разные папки. Пробелы в именах приходится экранировать или брать путь в кавычки, поэтому в именах файлов лучше использовать дефис или подчёркивание.

Работа с файлами: mkdir, touch, cp, mv, rm

mkdir notes                 # создать папку
mkdir -p app/src/utils      # создать всю цепочку папок сразу
touch todo.txt              # создать пустой файл
cp todo.txt backup.txt      # копировать файл
cp -r app app_copy          # копировать папку целиком
mv backup.txt old/          # переместить в папку old
mv old.txt new.txt          # переименовать
rm new.txt                  # удалить файл
rm -r app_copy              # удалить папку с содержимым
rm -i *.log                 # удалять с подтверждением каждого файла

Звёздочка * - шаблон "любые символы": *.log означает все файлы с расширением .log. Перед удалением по шаблону проверьте, что под него попадает: ls *.log.

В Linux нет корзины для команды rm: удалённое из терминала не восстановить штатными средствами. Особенно опасна связка rm -rf с переменной или пробелом в пути: rm -rf / tmp вместо rm -rf /tmp попытается снести корень системы. Пока нет привычки, используйте rm -i и всегда перечитывайте путь перед Enter.

Просмотр и редактирование: cat, less, head, tail, nano

  • cat file.txt - вывести файл целиком. Удобно для коротких файлов.
  • less /var/log/syslog - постраничный просмотр. Пробел - страница вниз, /текст - поиск, q - выход.
  • head -n 20 file.txt - первые 20 строк.
  • tail -n 50 app.log - последние 50 строк.
  • tail -f app.log - следить за файлом в реальном времени. Незаменимо при отладке сервера, выход по Ctrl+C.
  • wc -l file.txt - посчитать строки.

Для правки файлов прямо в терминале новичку проще всего nano: nano config.txt, подсказки по клавишам внизу экрана, Ctrl+O сохраняет, Ctrl+X выходит. Редактор vim мощнее, но требует привычки. Если случайно в него попали, нажмите Esc, наберите :q! и Enter, чтобы выйти без сохранения. Vim иногда открывается сам, например при git commit без сообщения; как этого избежать, описано в шпаргалке по Git.

Поиск, конвейеры и перенаправление вывода

grep ищет строки по тексту, find ищет файлы по имени и свойствам:

grep "error" app.log            # строки со словом error
grep -i "error" app.log         # без учёта регистра
grep -rn "TODO" src/            # рекурсивно по папке, с номерами строк
find . -name "*.py"             # все Python-файлы от текущей папки
find /var/log -size +100M       # файлы больше 100 МБ
which python3                   # где лежит программа

Сила терминала в комбинации простых команд. Вертикальная черта | (pipe) передаёт вывод одной команды на вход другой:

ps aux | grep nginx                       # найти процессы nginx
cat access.log | grep " 404 " | wc -l     # сколько раз был код 404
history | tail -n 20                      # последние 20 команд

Перенаправление пишет вывод в файл: > перезаписывает, >> дописывает в конец. ls -la > list.txt сохранит список файлов, echo "done" >> log.txt добавит строку. Ошибки идут в отдельный поток, их перенаправляют через 2>: find / -name "*.conf" 2>/dev/null скроет сообщения "Permission denied". Для сложных шаблонов поиска пригодятся регулярные выражения: grep их понимает.

Права доступа: chmod, chown, sudo

Каждый файл в Linux имеет владельца, группу и набор прав. Посмотреть их можно через ls -l:

-rwxr-xr-- 1 anna dev 1240 Oct 24 10:15 deploy.sh

Первый символ - тип (- файл, d папка). Дальше три тройки: права владельца (rwx), группы (r-x) и всех остальных (r--). Буквы означают: r - чтение, w - запись, x - выполнение (для папки - право в неё войти).

Права часто задают числами: r = 4, w = 2, x = 1, сумма даёт цифру для каждой тройки.

ЧислоПраваКогда используют
755rwxr-xr-xСкрипты и папки: владелец всё, остальные читают и запускают
644rw-r--r--Обычные файлы: владелец правит, остальные читают
600rw-------Секреты: SSH-ключи, файлы с паролями
700rwx------Личные папки, например ~/.ssh
777rwxrwxrwxПочти никогда: всем можно всё, дыра в безопасности
chmod +x deploy.sh          # разрешить запуск
./deploy.sh                 # запустить скрипт из текущей папки
chmod 600 ~/.ssh/id_ed25519 # закрыть ключ от всех
sudo chown anna:dev file    # сменить владельца и группу
sudo apt update             # выполнить команду от имени администратора

sudo запускает команду с правами root и спрашивает ваш пароль. Если что-то не работает из-за прав, не лечите это через chmod 777 или sudo перед каждой командой. Разберитесь, кому принадлежит файл и кому нужен доступ.

Процессы, память, диск и сеть

Процессы и ресурсы

ps aux                  # все процессы
top                     # живой список, выход q (удобнее htop, если установлен)
kill 12345              # завершить процесс по PID
kill -9 12345           # убить принудительно, если обычный kill не помог
df -h                   # свободное место на дисках
du -sh *                # сколько весит каждая папка в текущей
free -h                 # оперативная память
uname -a                # версия ядра
cat /etc/os-release     # какой дистрибутив

Пакеты

В Ubuntu и Debian программы ставятся через apt: sudo apt update обновляет список пакетов, sudo apt upgrade обновляет установленное, sudo apt install htop ставит программу, sudo apt remove htop удаляет. В Fedora аналог - dnf, в Arch - pacman.

Сеть

ping -c 4 ya.ru                       # есть ли связь
curl -I https://example.com           # заголовки ответа сайта
wget https://example.com/file.zip     # скачать файл
ssh user@203.0.113.10                 # подключиться к серверу
scp report.pdf user@203.0.113.10:~/   # скопировать файл на сервер
ss -tlnp                              # какие порты слушают программы

Команда curl -I показывает код ответа сервера; что значат 200, 301 или 502, разобрано в статье о кодах ответов HTTP.

Шпаргалка: 20 команд Linux на каждый день

КомандаНазначение
pwdПоказать текущую папку
ls -laСписок файлов, включая скрытые
cd путьПерейти в папку
mkdir -p путьСоздать папки
touch файлСоздать пустой файл
cp -r откуда кудаКопировать
mv откуда кудаПереместить или переименовать
rm -r путьУдалить безвозвратно
cat / lessПрочитать файл
tail -f файлСледить за логом
nano файлОтредактировать файл
grep -rn текст путьНайти текст в файлах
find . -name шаблонНайти файлы
chmod / chownПрава и владелец
sudo командаВыполнить как администратор
ps aux / topПроцессы
kill PIDЗавершить процесс
df -h / du -shМесто на диске
sudo apt install пакетУстановить программу
ssh user@hostПодключиться к серверу

Если забыли синтаксис, есть три способа подсказки: man команда открывает полное руководство, команда --help выводит краткую справку, а утилита tldr (ставится отдельно) показывает несколько самых частых примеров. Освоив терминал, переходите к контейнерам по гайду Docker для начинающих. Остальные материалы по теме собраны в разделе Linux.

Частые вопросы

Как попробовать команды Linux на Windows?

Установите WSL: выполните wsl --install в PowerShell от имени администратора и перезагрузите компьютер. Появится Ubuntu с полноценным терминалом, где работают все команды из статьи.

Как выйти из vim?

Нажмите Esc, затем наберите :q! и Enter, чтобы выйти без сохранения, или :wq, чтобы сохранить и выйти.

Можно ли восстановить файл после rm?

Штатными средствами нет: rm не использует корзину. Иногда помогают утилиты восстановления, но надеяться на них не стоит. Делайте резервные копии и держите код в Git.

Чем sudo отличается от su?

sudo выполняет одну команду с правами администратора и спрашивает ваш пароль. su переключает вас на другого пользователя, по умолчанию root, до выхода из сессии. В Ubuntu по умолчанию используется sudo.

Что означает Permission denied?

У текущего пользователя нет прав на действие с файлом или папкой. Проверьте права через ls -l. Для скрипта обычно не хватает права на выполнение (chmod +x), для системных файлов нужен sudo.

Источники

  • GNU Coreutils manual, GNU Project, 2026
  • The Linux command line for beginners, Ubuntu (Canonical), 2026
  • Install WSL, Microsoft Learn, 2026

LinuxBashDevOps

Похожие материалы

Версии программ и команды проверены на дату публикации. Если что-то изменилось, сверяйтесь с официальной документацией. Нашли неточность? Напишите на admin@bezdepbonusu7.win.