BinaryPhantom
New member
Вступление: графика vs текст
Когда я только начинал возиться с Linux, меня дико бесила командная строка. Ну правда — зачем мне какой-то чёрный экран, если есть кнопочки, папочки и мышка? Windows меня с детства приучила, что всё должно быть визуально и понятно.Но со временем я понял, в чём прикол.
Графический интерфейс — он как игрушечный руль в детской машинке. Крутить весело, понятно, но настоящая мощь начинается, когда лезешь под капот. А под капотом у Linux — командная строка. Её ещё называют терминалом, консолью или шеллом (от shell — оболочка). Суть одна: ты печатаешь команды, система их выполняет.
Основная разница вот в чём. В графическом интерфейсе ты делаешь то, что предусмотрел разработчик — нажимаешь кнопку, открываешь окно, перетаскиваешь иконку. В командной строке ты можешь делать вообще всё, что системе вообще возможно сделать. Просто потому, что нет промежуточного слоя визуальных ограничений.
И ещё важный момент. В Linux есть куча графических оболочек — GNOME, KDE, XFCE, и все они выглядят и работают по-разному. Привыкнуть к одной, а потом сесть за другой — дискомфорт. А командная строка везде одинаковая. Выучил один раз — пользуешься везде.
Поэтому рано или поздно любой, кто серьёзно работает с Linux, начинает осваивать терминал. Не потому что круто, а потому что без него некоторые вещи просто не сделать.
Первые шаги: база, без которой никуда
Перед тем как лезть в команды, запомни две штуки.Клавиша Tab — твой лучший друг. Начинаешь печатать команду или путь к папке, жмёшь Tab — система сама дополняет или показывает варианты. Экономит кучу времени и спасает от опечаток.
Клавиши стрелка вверх и стрелка вниз проматывают историю того, что ты уже вводил. Понадобилось повторить длинную команду — просто нажимай вверх, пока не найдёшь.
И главное правило: если не знаешь, что делает команда, сначала прочитай мануал. Как его открыть — сейчас расскажу.
man — встроенная документация
Самый первый навык — уметь читать справку.Печатаешь man man и получаешь инструкцию по самой программе man. Работает для любой команды: man ls, man cp, man apt.
Там будет написано, что команда делает, какие у неё параметры, примеры использования. По-английски, да. Но гугл-переводчик ещё никто не отменял.
apt — установка и обновление всего
В дистрибутивах на основе Debian (это Ubuntu, Linux Mint, Kali и сотни других) программы ставятся через менеджер пакетов APT.Главные команды, которые нужно знать наизусть:
apt update — обновляет список доступных пакетов (делать перед установкой или обновлением).
apt upgrade — обновляет уже установленные программы до свежих версий.
apt search имя_пакета — ищет программу по названию или описанию.
apt install имя_пакета — ставит программу.
apt remove имя_пакета — удаляет программу, но оставляет её настройки (на случай, если потом захочешь вернуть).
apt purge имя_пакета — удаляет программу вместе со всеми её настройками подчистую.
Запомни последовательность: сначала update, потом upgrade или install. Без update система не знает, что в репозиториях появилось новое.
Работа с файлами и папками
Самый частый сценарий — куда-то перейти, что-то посмотреть, что-то скопировать.pwd — показывает, где ты сейчас находишься. Напечатал — получил путь вроде /home/username/Documents. Полезно, когда заблудился.
cd /путь/до/папки — перейти в указанную папку. cd .. (с двумя точками) — перейти на уровень выше. cd ~ или просто cd — перейти в домашнюю папку.
ls — показать содержимое папки. ls -l — показать подробно, с правами, владельцами, размерами. ls -a — показать даже скрытые файлы (которые начинаются с точки).
mkdir имя_папки — создать папку. mkdir -p путь/к/глубокой/папке — создать сразу всю цепочку папок, если промежуточных нет.
cp откуда куда — скопировать файл. Чтобы скопировать папку, добавляешь -r (рекурсивно): cp -r папка_источник папка_приёмник.
mv откуда куда — переместить или переименовать. По сути одно и то же: mv старое_имя новое_имя переименовывает.
cat имя_файла — вывалить содержимое файла в терминал. Для маленьких текстовых файлов самое то.
touch имя_файла — создать пустой файл. Ещё можно использовать, чтобы обновить дату последнего изменения файла.
rm имя_файла — удалить файл. rm -r имя_папки — удалить папку со всем содержимым. Осторожнее, команда не спрашивает подтверждения и не отправляет в корзину. Удалил — всё.
Для тех, кто скучает по визуальному интерфейсу, есть программа mc (Midnight Commander). Двупанельный файловый менеджер прямо в терминале. Ставится через apt install mc.
Права доступа: кто может что делать в Linux
В Linux у каждого файла есть владелец и группа. И три типа прав: чтение (r), запись (w), выполнение (x). Для трёх категорий: сам владелец, группа, все остальные.chown пользователь:группа файл — сменить владельца. Например, chorkol:users secret.txt. chown -R пользователь:группа папка — рекурсивно для всей папки.
chmod 744 файл — права цифрами. Цифра складывается из: 4 = чтение, 2 = запись, 1 = выполнение. 744 значит: для владельца всё (4+2+1=7), для группы только чтение (4), для остальных только чтение (4).
Разобраться с этими цифрами поначалу тяжело, но потом становится второй натурой.
Сеть: посмотреть, проверить, просканировать
ip addr — показать все сетевые интерфейсы, их IP-адреса и MAC-адреса. Заменяет древнюю команду ifconfig, которую уже не везде ставят по умолчанию.ip ro — показать таблицу маршрутизации. Куда отправляются пакеты.
arp-scan -l -I eth0 — просканировать локальную сеть, показать все живые устройства с их IP и MAC. Нужно ставить apt install arp-scan.
nmap 192.168.1.1 — крутая программа для сканирования портов. nmap 192.168.1.0/24 — просканирует всю подсеть.
ping ya.ru — отправить ICMP-пакеты. Проверить, жив ли хост и какая задержка. Нажать Ctrl+C, чтобы остановить.
mtr ya.ru — комбинация ping и traceroute. Показывает маршрут до хоста и потери на каждом промежуточном узле.
iftop -i eth0 — показывает активные соединения и трафик в реальном времени. Как диспетчер задач, только для сети. Ставить через apt install iftop.
Полезные команды на каждый день
htop — диспетчер задач в терминале. Показывает загрузку процессора, память, список процессов. Можно прямо из программы убить зависший процесс (клавиша F9). Намного удобнее стандартного top.qalc — калькулятор. Умеет всё: 2+2, sqrt(144), 100 USD in RUB. Ставится через apt install qalc.
nano файл — простейший текстовый редактор. Чтобы сохранить, жми Ctrl+O, чтобы выйти — Ctrl+X. Идеален для правки конфигурационных файлов.
sudo команда — выполнить команду от имени суперпользователя (root). Без sudo многие вещи настраивать не получится.
systemctl — управление фоновыми службами. systemctl start nginx запустить, systemctl stop nginx остановить, systemctl restart nginx перезапустить. systemctl enable nginx добавить в автозагрузку, systemctl disable nginx убрать. systemctl status nginx — посмотреть, живой ли.
lsblk — показать все диски и разделы. Полезно перед тем, как куда-то писать образ или монтировать флешку.
dd if=/путь/к/образу.img of=/dev/sdb bs=1M status=progress — побайтовое копирование. Чаще всего используется для записи образов на флешки. Осторожно: указать не тот диск of= — и можно снести себе операционную систему.
Магия перенаправления и фильтры
Самая крутая фишка командной строки — можно соединять команды вместе.Вертикальная палочка | называется pipe (труба). Она берёт вывод одной команды и передаёт его на вход другой.
ls /usr/bin | grep python — показать все файлы в папке /usr/bin, а потом оставить только те, в названии которых есть слово «python».
ls /usr/bin | grep python > python_scripts.txt — то же самое, но результат не на экран, а в файл python_scripts.txt. Стрелка > перенаправляет вывод.
ls /usr/bin/python* — это то же самое, но проще. Звёздочка заменяет любые символы. Вообще * и ? работают везде для подстановки имён.
Заключение от человека, который прошёл через это
Я не буду врать — поначалу командная строка пугает. Чёрный экран, мигающий курсор, и ты не понимаешь, что писать. Но это как учиться печатать на клавиатуре вслепую. Первые дни бесишься, потом втягиваешься, потом удивляешься, как раньше вообще без этого жил.Можно годами пользоваться Linux и почти не лезть в терминал. Установил Ubuntu, открываешь магазин программ, ставишь браузер — и норм. Но в какой-то момент захочется что-то добавить, что-то поправить, что-то автоматизировать. И тут окажется, что в интернете 99% советов для Linux даются в виде команд, а не скриншотов кнопочек.
Поэтому совет такой: не пытайся выучить всё сразу. Запомни ls, cd, apt install. Постепенно добавляй остальное. И не бойся ошибок. Сломать систему случайной командой довольно сложно, если ты не rm -rf /* (никогда не делай этого, это шутка). А вот набраться опыта — лучший способ научиться.
А какие команды вы уже юзаете как за здрасьте? И вообще пользуетесь ли терминалом?