← Назад к вопросам

Какие знаешь консольные команды?

1.8 Middle🔥 121 комментариев
#Базы данных и SQL

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Консольные команды для Java Developer

Как опытный Java Developer, я работаю с командной строкой каждый день. Вот основные команды, которые нужно знать.

1. Запуск Java приложений

// Компиляция Java файла
javac HelloWorld.java
// Результат: HelloWorld.class

// Запуск скомпилированного класса
java HelloWorld

// С параметрами
java -Xmx1024m -Xms512m MyApplication

// С системными свойствами
java -Dapp.config=prod -Dserver.port=8080 Application

// Запуск JAR файла
java -jar application.jar
java -jar application.jar --server.port=9090

// С опциями JVM
java -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -jar app.jar

2. Maven команды

// Очистить проект
mvn clean

// Скомпилировать
mvn compile

// Запустить тесты
mvn test

// Собрать JAR
mvn package

// Полный цикл
mvn clean package

// С пропуском тестов
mvn clean package -DskipTests

// Установить зависимость в локальный репозиторий
mvn install

// Развернуть в удалённый репозиторий
mvn deploy

// Показать зависимости
mvn dependency:tree

// Запустить main класс
mvn exec:java -Dexec.mainClass="com.example.Main"

// С профилем
mvn clean package -P production

// Без кэша
mvn clean package -U

// В offline режиме
mvn clean package -o

// С повышенной логацией
mvn -X clean test

3. Gradle команды

// Собрать проект
./gradlew build

// Без тестов
./gradlew build -x test

// Запустить тесты
./gradlew test

// Специфический тест
./gradlew test --tests com.example.UserServiceTest

// Запустить main
./gradlew run

// С аргументами
./gradlew run --args='arg1 arg2'

// Очистить
./gradlew clean

// Показать зависимости
./gradlew dependencies

// Jar task
./gradlew jar

// Boot jar (Spring Boot)
./gradlew bootJar

// Запустить Boot приложение
./gradlew bootRun

4. Docker команды

// Собрать образ
docker build -t myapp:1.0 .

// Запустить контейнер
docker run -d -p 8080:8080 --name myapp myapp:1.0

// Интерактивный режим
docker run -it myapp:1.0 /bin/bash

// С переменными окружения
docker run -e DB_HOST=localhost -e DB_PORT=5432 myapp:1.0

// С подключением папки
docker run -v /host/path:/container/path myapp:1.0

// Список контейнеров
docker ps

// Все контейнеры включая остановленные
docker ps -a

// Остановить контейнер
docker stop container_id

// Удалить контейнер
docker rm container_id

// Логи контейнера
docker logs container_id

// Потоковые логи
docker logs -f container_id

// Войти в контейнер
docker exec -it container_id /bin/bash

// Посмотреть историю образа
docker history myapp:1.0

// Удалить образ
docker rmi myapp:1.0

// Push в registry
docker push myregistry/myapp:1.0

5. Docker Compose команды

// Запустить сервисы
docker compose up

// В фоне
docker compose up -d

// Пересобрать образы
docker compose up --build

// Остановить
docker compose down

// Очистить volumes
docker compose down -v

// Логи
docker compose logs

// Конкретного сервиса
docker compose logs app

// Потоковые логи
docker compose logs -f app

// Статус
docker compose ps

// Выполнить команду в сервисе
docker compose exec app /bin/bash

6. Git команды

// Клонировать репозиторий
git clone https://github.com/user/repo.git

// Статус
git status

// Добавить файлы
git add .
git add src/main/java/Main.java

// Коммит
git commit -m "Add feature"

// История
git log
git log --oneline

// Ветки
git branch
git branch new-feature

// Переключиться на ветку
git checkout new-feature
git switch new-feature # более новый синтаксис

// Создать и переключиться
git checkout -b new-feature
git switch -c new-feature

// Merge
git merge feature-branch

// Rebase
git rebase main

// Push
git push origin main
git push -u origin new-feature # с tracking

// Pull
git pull origin main

// Fetch
git fetch origin

// Diff
git diff
git diff main..feature

// Stash
git stash
git stash pop

7. Kubernetes команды

// Подключиться к кластеру
kubectl config use-context production

// Информация о кластере
kubectl cluster-info

// Узлы
kubectl get nodes

// Поды
kubectl get pods
kubectl get pods -n production

// Подробно
kubectl get pods -o wide

// Yaml
kubectl get pods -o yaml

// Описание пода
kubectl describe pod pod-name

// Логи пода
kubectl logs pod-name
kubectl logs -f pod-name # потоком

// Войти в контейнер
kubectl exec -it pod-name -- /bin/bash

// Применить конфигурацию
kubectl apply -f deployment.yaml

// Удалить ресурс
kubectl delete pod pod-name
kubectl delete deployment my-app

// Port forward
kubectl port-forward pod-name 8080:8080

// Services
kubectl get svc
kubectl describe svc service-name

// Deployment
kubectl get deployments
kubectl describe deployment my-app
kubectl rollout status deployment/my-app
kubectl rollout undo deployment/my-app

8. Полезные утилиты

// curl - HTTP запросы
curl http://localhost:8080/api/users
curl -X POST -H "Content-Type: application/json" \
  -d '{"name":"John"}' http://localhost:8080/api/users

// jq - парсинг JSON
curl http://localhost:8080/api/users | jq '.[] | .name'

// wget - скачивание файлов
wget https://example.com/file.jar

// ps - процессы
ps aux
ps aux | grep java

// kill - завершить процесс
kill -9 pid

// top - мониторинг
top

// htop - улучшенный top
htop

// netstat - сетевые соединения
netstat -tlnp
netstat -an | grep 8080

// lsof - открытые файлы
lsof -i :8080 # какой процесс слушает порт

// find - поиск файлов
find . -name "*.java"
find . -name "*.jar" -type f

// grep - поиск в тексте
grep -r "className" src/
grep -rn "TODO" src/ # с номерами строк

// tail - последние строки
tail -f application.log # потоком
tail -100 file.log

// wc - подсчёт
wc -l src/main/java/Main.java # строк в файле
find . -name "*.java" | wc -l # всех Java файлов

9. SSH и удалённые команды

// Подключиться по SSH
ssh user@host.com
ssh -p 22 user@host.com

// С ключом
ssh -i /path/to/key user@host.com

// SCP - копировать файлы
scp file.jar user@host.com:/home/user/
scp -r user@host.com:/home/user/logs . # скачать

// Запустить команду на удалённом хосте
ssh user@host.com "java -jar app.jar"

// SSH туннель
ssh -L 3306:localhost:3306 user@host.com # port forward

10. JVM команды и утилиты

// jps - список Java процессов
jps
jps -l # с полными именами

// jstat - статистика GC
jstat -gc pid 1000 10 # каждую сек 10 раз
jstat -gcutil pid # процент памяти

// jmap - dump памяти
jmap -dump:live,format=b,file=dump.hprof pid

// jstack - dump потоков
jstack pid > threads.txt

// jcmd - команды JVM
jcmd pid GC.heap_dump dump.hprof
jcmd pid VM.uptime
jcmd pid Thread.print

// jvisualvm - графический мониторинг
jvisualvm # открыть графический инструмент

// javap - дизассемблер
javap -c MyClass.class # bytecode
javap -p MyClass.class # все члены класса

// jar - работа с JAR файлами
jar tf application.jar # список содержимого
jar xf application.jar # распаковать
jar cf app.jar . # создать JAR

Рекомендуемые скрипты для разработки

#!/bin/bash

# build-and-run.sh
mvn clean package -DskipTests && java -jar target/app.jar

# docker-build-run.sh
docker build -t myapp:latest . && docker run -p 8080:8080 myapp:latest

# deploy.sh
mvn clean package && kubectl apply -f deployment.yaml && kubectl rollout status deployment/myapp

# test-with-coverage.sh
mvn clean test jacoco:report && open target/site/jacoco/index.html

Горячие клавиши терминала

// Ctrl + C - прервать процесс
// Ctrl + Z - приостановить процесс
// Ctrl + D - выход
// Ctrl + L - очистить экран (clear)
// Ctrl + A - начало строки
// Ctrl + E - конец строки
// Ctrl + R - поиск в истории
// !! - последняя команда
// !n - команда номер n из истории
// !string - последняя команда начинающаяся с string
// Ctrl + K - удалить от курсора до конца
// Ctrl + U - удалить от начала до курсора

Профессиональные практики

# Всегда проверяй статус перед коммитом
git status && git diff

# Запусти тесты перед push
mvn clean test

# Используй meaningful commit messages
git commit -m "Fix: resolve NullPointerException in UserService"

# Для production deployments используй тэги
git tag v1.2.3
git push origin v1.2.3

# Документируй команды в README
# Development: mvn clean compile
# Testing: mvn test
# Build: mvn clean package

# Используй .gitignore
# /target/
# /build/
# /.idea/
# *.iml

Эти команды - основной toolkit для Java Developer. Умение быстро работать в консоли значительно повышает производительность разработки.