Ответ
В повседневной работе с Node.js на Linux я активно использую следующие команды для навигации, управления процессами, поиска и анализа логов:
Навигация и управление файлами:
pwd— показать текущую рабочую директорию.ls -la— детальный список файлов и папок (включая скрытые).cd <path>— перейти в указанную директорию.mkdir <dirname>— создать папку.rm -rf <dirname>— рекурсивно удалить папку и всё её содержимое (используется с осторожностью).cp -r <source> <dest>— рекурсивно скопировать директорию.mv <source> <dest>— переместить или переименовать.
Просмотр и поиск:
cat <file>илиless <file>— просмотреть содержимое файла.tail -f <logfile>— следить за логами в реальном времени (очень полезно дляpm2 logsили логов приложения).grep -r "error" .— рекурсивно найти строку "error" во всех файлах текущей директории.find . -name "*.js" -type f— найти все JavaScript-файлы.
Управление процессами:
ps aux | grep node— найти все запущенные Node.js-процессы.kill -9 <PID>— принудительно завершить процесс по его ID (последнее средство).lsof -i :3000— узнать, какой процесс использует порт 3000.netstat -tulpn— показать список открытых портов и связанных процессов.
Системный мониторинг и права:
df -h— проверить свободное место на дисках.topилиhtop— мониторинг ресурсов (CPU, память) в реальном времени.chmod +x <script>— сделать файл исполняемым.npm run <script>— запуск npm-скриптов изpackage.json.
Работа с сетью и SSH:
ssh user@server— подключиться к удалённому серверу для деплоя.scp <file> user@server:/path— скопировать файл на сервер.curl http://localhost:3000/health— проверить доступность эндпоинта API.
Пример типичной операции — поиск ошибки в логах приложения:
# Перейти в директорию с логами и отслеживать последние ошибки
cd /var/log/my-node-app
grep -i "error" app.log | tail -20 Ответ 18+ 🔞
А, ну это ж классика, ёпта! Каждый день одно и то же — сидишь, втыкаешь в терминал, как будто на дворе 2002-й год, а не 21 век. Но без этого нихуя не работает, так что придётся запоминать, как свои пять пальцев.
Смотри, вот тебе мой ежедневный набор, чтобы не охуеть от происходящего на сервере.
Чтобы не заблудиться как последний распиздяй:
pwd— чтобы понять, где ты, блядь, находишься, а то иногда сам от себя охуеваешь.ls -la— посмотреть, что тут вообще валяется, включая всякую скрытую хрень. Без этого — ноль информации.cd <path>— переберись туда, куда надо. Базовая хуйня, но без неё — никуда.mkdir <dirname>— создать папку. Иногда нужно.rm -rf <dirname>— ВНИМАНИЕ, ЕБАНЫЙ В РОТ! Это команда-убийца. Рекурсивно стирает всё к хуям собачьим. Доверия к ней — ноль ебать. Тройная проверка, прежде чем жать Enter, а то накроешься медным тазом.cp -r <source> <dest>— скопировать папку целиком, со всем её внутренним богатством.mv <source> <dest>— переместить или, что чаще, переименовать файл, который назван как попало.
Чтобы найти иголку в стоге сена (она же — ошибка в логах):
cat <file>илиless <file>— глянуть, что внутри файла.less— поумнее, можно листать.tail -f <logfile>— вот это, сука, маст-хэв! Сидишь и смотришь, как летят логи в реальном времени. Прямо чувствуешь себя небожителем. Особенно когдаpm2 logsкрутишь.grep -r "error" .— рекурсивно прошерстить все файлы и найти везде слово "error". Спасает жизнь, когда непонятно, где оно спряталось.find . -name "*.js" -type f— найти все js-файлы. Типа, "эй, где вы, суки, все попрятались?".
Чтобы приструнить сбесившийся процесс:
ps aux | grep node— найти все Node.js процессы. Часто после этого хочется сказать "ни хуя себе", сколько их там.kill -9 <PID>— наш "убей его наповал". Принудительное завершение, когда процесс не понимает по-хорошему. Крайняя мера, ядрёна вошь.lsof -i :3000— узнать, какой пидарас шерстяной занял порт 3000. Очень помогает, когда приложение не стартует.netstat -tulpn— показать все открытые порты и кто на них сидит. Общая картина, так сказать.
Чтобы понять, на что сервер тратит твои деньги:
df -h— проверить, не забилось ли всё дисковое пространство хуями. Внезапные проблемы часто из-за этого.topилиhtop— смотреть, как процессоры пыхтят, а память исчезает. Прямо волнение ебать, когда какой-то скрипт жрёт 120% CPU.chmod +x <script>— сделать файл исполняемым. Без этого он просто текст, а не программа.npm run <script>— запустить скрипт изpackage.json. Основа основ.
Чтобы не лазить на сервер вручную, как лох:
ssh user@server— магический портал на продакшн. Подключаешься и молишься, чтобы всё было живо.scp <file> user@server:/path— перекинуть файл на сервак. Медленно, но верно.curl http://localhost:3000/health— тыкнуть палкой в приложение, проверить, дышит ли оно. Если отвечает — уже хорошо.
А вот реальный пример, как я обычно ищу причину, почему всё накрылось:
# Перейти в директорию с логами и отслеживать последние ошибки
cd /var/log/my-node-app
grep -i "error" app.log | tail -20
Суть в чём: залез в логи, выцепил оттуда все ошибки за последнее время и смотришь, что за пиздопроебибна там творится. Чаще всего ответ на поверхности, просто надо уметь смотреть.