Комментарии (1)
🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Часто используемые команды Linux в разработке на Go
Как Go-разработчик с опытом, я активно использую Linux (чаще Ubuntu или Alpine в контейнерах) и регулярно применяю определенный набор команд для системного администрирования, отладки, мониторинга и работы с кодом. Вот основные категории и команды:
1. Работа с файлами и каталогами
ls -la— просмотр подробного списка файлов, включая скрытые. Ключ-l(long format) и-a(all) незаменимы.cd,pwd— навигация по директориям и определение текущего пути.cp -r,mv,rm -rf— копирование (рекурсивно), перемещение и удаление (рекурсивно и принудительно). Сrmвсегда осторожен!find . -name "*.go" -type f— поиск Go-файлов в текущей директории и поддиректориях. Часто комбинирую сgrep.chmodиchown— управление правами доступа и владельцем файлов (актуально для скриптов развертывания).
2. Просмотр и обработка содержимого файлов
cat,less,tail -f—catдля быстрого просмотра,lessдля постраничного, аtail -fнезаменим для мониторинга логов в реальном времени (например, логов приложения илиdocker logs).tail -f /var/log/myapp/app.loggrep -r "func main" .— рекурсивный поиск текста в файлах. С ключами-i(игнорировать регистр),-n(показать номер строки) и-C 3(контекст в 3 строки) — мой основной инструмент для анализа кода.grep -rn "interface{}" ./pkg/ --include="*.go"head,wc -l— просмотр первых строк файла и подсчет строк.wc -lполезен, чтобы быстро оценить объем логов или кода.
3. Мониторинг системы и процессов
ps aux | grep myapp— поиск процессов по имени. Часто используется для проверки, запущено ли Go-приложение.ps aux | grep -E "(myapp|go run)"htop/top— интерактивный мониторинг ресурсов (CPU, память).htopпредпочтительнее из-за удобства.df -hиdu -sh .— проверка свободного места на диске и размера текущей директории. Ключ-h(human-readable) делает вывод удобочитаемым.netstat -tulpnилиss -tulpn— просмотр открытых сетевых портов и связанных с ними процессов. Критично важно для отладки сетевых Go-приложений (HTTP/gRPC серверов).sudo netstat -tulpn | grep :8080lsof -i :8080— альтернатива: показывает, какой процесс использует порт 8080.
4. Управление пакетами и сетевая диагностика
apt-get update/install(Debian/Ubuntu) илиapk add(Alpine) — установка системных пакетов, необходимых для сборки Go-проектов (например,gcc,git,ca-certificates).apt-get update && apt-get install -y git ca-certificatescurl,wget— HTTP-запросы для тестирования API, скачивания файлов.curlс ключами-v,-H,-X— часть ежедневной работы.curl -X GET http://localhost:8080/health -vpingиnslookup/dig— базовая сетевая диагностика и проверка разрешения DNS-имен.
5. Работа с Go-проектами и системами контроля версий
go build,go run,go test— собственно, команды самого Go. Использую их через оболочку, но в скриптах (CI/CD) они также присутствуют.go build -o ./bin/app ./cmd/app go test -v -race ./...git— вся основная цепочка:clone,pull,status,diff,add,commit,push. Особенно частоgit log --oneline --graphдля визуализации истории.make— часто Go-проекты используютMakefileдля стандартизации команд сборки, тестирования, линтинга. Моя типичная команда:make build && make test
6. Прочее (но очень важное)
man <команда>— справочное руководство. Всегда под рукой, чтобы уточнить ключи.history | grep docker— поиск по истории введенных команд.tar -xzf archive.tar.gz— работа с архивами.alias— создание псевдонимов для часто используемых длинных команд (например,alias ll='ls -la').|(pipe) и>/>>— перенаправление ввода-вывода. Комбинация команд через пайплайн — основа эффективной работы в shell.
Пример рабочего сценария
Допустим, мне нужно найти, какой процесс занял порт 9090, остановить его и перезапустить Go-сервис:
# 1. Ищем процесс, использующий порт 9090
sudo lsof -i :9090
# 2. Если PID известен (например, 12345), завершаем его
kill -9 12345
# 3. Переходим в директорию проекта, собираем и запускаем
cd ~/projects/myapp
go build -o ./app ./cmd
./app -port=9090 &
# 4. Проверяем логи в реальном времени
tail -f ./logs/app.log
Этот набор позволяет мне эффективно разрабатывать, отлаживать и развертывать Go-приложения в Linux-окружении. Многие команды интегрированы в скрипты автоматизации (CI/CD, Dockerfile), но ручное владение ими критически важно для оперативного решения проблем.