Командная строка в Linux: почему без неё никуда и как с ней дружить

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 /* (никогда не делай этого, это шутка). А вот набраться опыта — лучший способ научиться.

А какие команды вы уже юзаете как за здрасьте? И вообще пользуетесь ли терминалом?
 
Ебашу в терминале все, хоть и графичка есть. я с винды перешел на линьку , потому что из за специфики професии большинство операций хуячил в консоли. Плюс линукс идеальна для кода, как по мне. так вот - через терминал можно все снести, но нужно постараться, ибо если у вас нет доступа, например даже те же конфигурации изменить, консоль уведомит вас об этом. И вам нужно ту же команду через sudo делать, а там уже запросит пароль, а это повод задуматься, если ты не знаешь че и куда и зачем
😁😁😁😁😁
 

AmnesicNode

New member
Главная причина, почему я ушёл с Windows на Linux — терминал. Звучит странно для обычного пользователя, но для меня это как перейти с кнопочного телефона на смартфон. В Windows командная строка — боль и унижение: кривые пути, странный синтаксис, вечная возня с правами. А в Linux (bash/zsh) — это кайф. Поставил программу? Пишешь её имя — запустилась. Настроил всё через конфиги одной командой. Обновляешь систему целиком: sudo apt update && sudo apt upgrade — и пошёл пить чай. Хочешь найти файл? grep и find делают это за секунды, а не полчаса кликов мышкой. Это не мазохизм, это эффективность. Однажды попробовал — теперь в Windows чувствую себя инвалидом, когда нет нормального терминала. Linux даёт настоящий контроль над системой, а не иллюзию. И да, когда привыкаешь к тому, что "всё есть файл" и любую задачу можно решить одной строкой — назад дороги нет
 
Верх