Какие основные команды Linux должен знать разработчик для работы с сервером?

Ответ

Для эффективной работы с серверами, контейнерами (Docker) и CI/CD-пайплайнами разработчику необходимо уверенно владеть базовым набором команд Linux. Вот структурированный список по категориям.

1. Навигация и работа с файлами

Команда Описание Практический пример
pwd Показать текущую рабочую директорию. pwd/home/user/project
ls Список файлов и папок. ls -la — показать все файлы (включая скрытые) с деталями.
cd Сменить директорию. cd /var/log — перейти в папку логов. cd ~ — вернуться в домашнюю директорию.
mkdir / rmdir Создать / удалить директорию. mkdir -p backup/2024 — создать вложенные папки.
cp Копировать файлы/папки. cp source.txt dest.txt — копировать файл. cp -r dir1/ dir2/ — копировать рекурсивно.
mv Переместить или переименовать. mv oldname.txt newname.txt — переименовать. mv file.txt /tmp/ — переместить.
rm Удалить файлы/папки. rm file.txt — удалить файл. rm -rf directory/ОСТОРОЖНО! Рекурсивное принудительное удаление папки.
find Поиск файлов. find . -name "*.log" -type f — найти все файлы .log в текущей директории и поддиректориях.

2. Просмотр и обработка содержимого файлов

Команда Описание Практический пример
cat Вывести содержимое файла целиком. cat config.yaml
less / more Просмотреть файл постранично. less large_log.txt — листать Space, выйти q.
head / tail Вывести начало/конец файла. tail -n 50 app.log — последние 50 строк. tail -f app.logмониторить файл в реальном времени (логи).
grep Поиск текста по шаблону. grep -r "ERROR" /var/log/ — рекурсивный поиск "ERROR" в логах. grep -v "debug" file.txt — вывести строки, НЕ содержащие "debug".
awk Мощный обработчик текста. awk '{print $1}' access.log — вывести первый столбец (например, IP).
sed Потоковый редактор для замены текста. sed 's/foo/bar/g' file.txt — заменить все "foo" на "bar" в файле.

3. Права доступа и владельцы

Команда Описание Практический пример
chmod Изменить права доступа (read, write, execute). chmod +x script.sh — сделать файл исполняемым. chmod 755 script.sh — права: владелец (rwx), группа и другие (rx).
chown Изменить владельца и группу файла. sudo chown www-data:www-data /var/www/ — отдать владение веб-серверу.

4. Управление процессами

Команда Описание Практический пример
ps Показать запущенные процессы. ps aux | grep nginx — найти все процессы nginx с деталями.
top / htop Интерактивный монитор процессов (как "Диспетчер задач"). htop — более удобная версия top.
kill Завершить процесс по ID (PID). kill 12345 — отправить сигнал TERM (завершить). kill -9 12345 — принудительное завершение (SIGKILL).
pkill Завершить процесс по имени. pkill -f "python app.py"
bg / fg Перевести процесс в фоновый режим / вернуть на передний план. Запустить процесс, нажать Ctrl+Z, затем bg.
nohup Запустить процесс, который не завершится при закрытии терминала. nohup python server.py && запускает в фоне.

5. Сеть и удалённый доступ

Команда Описание Практический пример
ssh Подключиться к удалённому серверу. ssh user@192.168.1.100 -p 2222
scp Безопасное копирование файлов между хостами. scp file.txt user@host:/remote/path/ — скопировать на удалённый хост.
ping Проверить доступность хоста в сети. ping -c 4 google.com — отправить 4 пакета.
curl Отправка HTTP-запросов из командной строки. curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com
wget Скачать файл из интернета. wget https://example.com/file.tar.gz
netstat / ss Показать сетевые соединения, порты. ss -tulpn — показать все слушающие порты и процессы.

6. Системная информация и архивация

Команда Описание Практический пример
df / du Свободное место на дисках / размер директорий. df -h — место в человеко-читаемом формате. du -sh /home/* — размер домашних директорий.
free Информация об использовании оперативной памяти. free -h
tar Архивирование и распаковка. tar -czvf archive.tar.gz folder/ — создать архив. tar -xzvf archive.tar.gz — распаковать.
uname Информация о системе. uname -a — вывести всю информацию (ядро, хостнейм и т.д.).

Совет: Используйте man <команда> (например, man grep) для получения полной справки по любой команде прямо в терминале.

Ответ 18+ 🔞

Да ты посмотри, какая, блядь, библия командная! Прямо как инструкция к жизни, только для терминала. Ну что ж, разберём этот овердохуищный список, чтобы не ходить потом, как пизда бородавчатая, по серверам.

Навигация и файлы — это наш фундамент, блядь.

Вот ты зашёл на сервер, а там темень, ёпта. pwd — это твой компас, сука. Он тебе орёт: «Ты где, мудила? В /home/user/project, вот где!». ls -la — это включить фонарик и посмотреть, кто тут в углах прячется, включая эти ваши скрытые файлы с точкой в начале, хитрожопые. cd — это шаг вперёд, шаг назад, cd ~ — это как домой приползти. А вот rm -rf directory/ — это, блядь, ядерная кнопка. Нажал — и всё, пиздец, накрылось медным тазом. Терпения ноль ебать, команда не спрашивает. Так что с ней — чих-пых тебя в сраку, будь осторожен.

Чтение файлов — тут начинается магия, а иногда и пиздец.

cat config.yaml — быстренько глянуть, что внутри. Но если файл на три тома «Войны и мира», то less тебя спасёт — листай спокойно, Space-ом вниз, q — нахуй свалил. А вот tail -f app.log — это, сука, must have! Сидишь, смотришь, как логи текут в реальном времени, как сериал. Ищешь ошибку? grep -r "ERROR" /var/log/ — это твой металлоискатель. Найдёт все упоминания, даже если они закопались глубоко. sed и awk — это уже для продвинутых шаманов, которые могут текст хуярить как бог. sed 's/foo/bar/g' — и все «foo» стали «bar», волшебство, блядь!

Права доступа — вот где начинается настоящая боль, ёпта.

Прилетает ошибка «Permission denied». Ну всё, пизда. chmod +x script.sh — даёшь файлу право на жизнь, на исполнение. А chmod 755 — это уже настройка доступа для всех: хозяин — царь и бог (rwx), а остальные — смотрят, но не трогают (rx). sudo chown www-data:www-data /var/www/ — это отдать ключи от квартиры, то есть директории, веб-серверу. Главное — не отдать кому попало, а то будет «во все дыры давалка».

Процессы — тут как в джунглях, блядь.

Что-то зависло? ps aux | grep nginx — ищешь этого гада по имени. Нашёл PID — и kill 12345 ему в ебало. Не помогает? kill -9 — это уже сигнал «иди нахуй» без возможности аппеляции. htop — это как диспетчер задач, только красивее и с мышкой, можно полазать, посмотреть, кто сколько жрёт памяти. А nohup python server.py & — это запустить демона, который будет жить, даже когда ты закрыл терминал. Удобно, сука!

Сеть — наши руки, глаза и уши.

ssh user@host — это телепорт на другую машину. scp — это курьер, который перенесёт файлы туда-сюда. ping — это крик в темноту: «Эй, гугл, ты живой?». curl — это, блядь, швейцарский нож. Хочешь тестнуть апишку? Без проблем, накручивай заголовки, JSONы, методы — всё, что душе угодно. ss -tulpn — это сканирование территории: какие порты слушают, кто на них сидит. Чтобы никакой пидарас шерстяной не проник.

Ну и разное полезное барахло.

Место на диске кончилось? df -h покажет, какой диск на боку лежит. du -sh * — найдёт папку-обжору, которая всё место сожрала. tar -czvf archive.tar.gz folder/ — это упаковать весь свой скарб в один чемодан. uname -a — визитка системы, всё расскажет о ядре и прочем.

И главный совет, который все игнорят, как сосалку: man <команда>. Это священная книга, справка от самих создателей. Не помнишь ключик? man grep — и читай, блядь! Всё расписано.

Короче, вот такой базовый набор, чтобы не быть беспомощным пиздёнышем на удалённой машине. Выучи — и жизнь станет проще, ёбана!