← Назад к вопросам
Какие знаешь команды в Linux?
1.0 Junior🔥 231 комментариев
#Docker, Kubernetes и DevOps
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Знание Linux команд для Java разработчика
Как Java разработчик с 10+ лет опыта, я активно использую Linux как для локальной разработки, так и для развёртывания приложений на production серверах. Linux командная строка — неотъемлемый инструмент современного разработчика.
1. Навигация и управление файлами
# Навигация по файловой системе
pwd # Текущая директория
cd /path/to/dir # Переход в директорию
cd .. # На уровень выше
cd ~ # В домашнюю директорию
cd - # Переход на предыдущую директорию
# Просмотр содержимого
ls # Список файлов
ls -la # С деталями и скрытыми файлами
ls -lh # С размерами в понятном формате
tree # Дерево структуры директории
# Создание и удаление
mkdir mydir # Создать директорию
mkdir -p a/b/c # Создать цепь директорий
rm file.txt # Удалить файл
rm -rf directory # Удалить директорию рекурсивно
cp source.txt dest.txt # Копировать файл
cp -r source dest # Копировать директорию
mv old.txt new.txt # Переименовать/переместить
touch file.txt # Создать пустой файл
# Просмотр содержимого файлов
cat file.txt # Вывести содержимое
less file.txt # Постраничный просмотр (q для выхода)
head -n 10 file.txt # Первые 10 строк
tail -n 10 file.txt # Последние 10 строк
tail -f app.log # Следить за логом в реальном времени
grep "pattern" file # Поиск в файле
find . -name "*.txt" # Найти файлы по маске
2. Работа с процессами и системой
# Информация о процессах
ps aux # Список всех процессов
ps aux | grep java # Найти Java процессы
top # Интерактивный монитор процессов
htop # Улучшенный top (установить нужно)
kill -9 1234 # Убить процесс по PID
kill -TERM 1234 # Корректное завершение
pgrep java # Найти PID по имени процесса
# Информация о системе
uname -a # Информация об ОС
uptime # Время работы системы
free -h # Информация о памяти
df -h # Использование диска
du -sh * # Размер директорий
whoami # Текущий пользователь
sudo command # Выполнить с правами администратора
3. Работа с текстом и поиск
# Поиск и фильтрация
grep "pattern" file.txt # Найти строки с pattern
grep -i "pattern" file.txt # Case-insensitive поиск
grep -r "pattern" . # Рекурсивный поиск
grep -n "pattern" file.txt # Показать номера строк
grep -c "pattern" file.txt # Количество совпадений
# Обработка текста
sed 's/old/new/g' file.txt # Замена всех вхождений
awk '{print $1}' file.txt # Работа со столбцами
cut -d':' -f1 /etc/passwd # Выделить колонку
sort file.txt # Сортировка
uniq file.txt # Убрать дубликаты
wc -l file.txt # Количество строк
# Конвейеры (pipes)
cat file.txt | grep "error" | wc -l # Цепочка операций
ls -la | head -5 # Первые 5 строк
4. Права доступа и владельцы
# Просмотр и изменение прав
ls -l # Показать права доступа
chmod 755 script.sh # Изменить права (rwxr-xr-x)
chmod +x script.sh # Добавить права на выполнение
chown user:group file # Изменить владельца
chown -R user:group dir # Рекурсивно
# Права: r(4)ead, w(2)rite, x(1)execute
# chmod 755 = rwxr-xr-x (владелец: полные, остальные: чтение+выполнение)
# chmod 644 = rw-r--r-- (владелец: чтение+запись, остальные: чтение)
5. Управление пакетами и установка
# Ubuntu/Debian
sudo apt update # Обновить список пакетов
sudo apt upgrade # Обновить пакеты
sudo apt install package_name # Установить пакет
sudo apt remove package_name # Удалить пакет
sudo apt search java # Поиск пакета
# CentOS/RedHat
sudo yum install package_name
sudo yum remove package_name
sudo yum update
# Примеры для Java разработчика
sudo apt install default-jdk # Java JDK
sudo apt install maven # Apache Maven
sudo apt install git # Git
sudo apt install curl wget # Утилиты для скачивания
6. Работа с Java и Maven
# Java команды
java -version # Версия Java
java -cp "jar1.jar:jar2.jar" com.example.Main # Запуск с classpath
java -Xmx1024m -jar app.jar # JVM параметры (макс память)
jps # Список Java процессов
jstat -gc -h5 pid 1000 # Статистика GC
jcmd # Команды для JVM
# Maven
mvn clean # Очистить build directory
mvn compile # Компилировать
mvn test # Запустить тесты
mvn package # Создать JAR/WAR
mvn install # Установить в локальный репозиторий
mvn clean package # Очистить и собрать
mvn -X # Debug информация
# Gradle
./gradlew clean # Очистить
./gradlew build # Собрать проект
./gradlew test # Тесты
7. Сетевые команды
# Диагностика сети
ping google.com # Проверка соединения
nslookup google.com # Разрешение DNS
curl https://api.example.com # HTTP запрос
curl -X POST -d '{}' https://api.example.com # POST запрос
wget file.zip # Скачать файл
# Информация о сети
ifconfig # Конфигурация интерфейсов
ip addr show # IP адреса (современный)
netstat -tuln # Слушающие порты
ss -tuln # Сокеты (современный)
lsof -i :8080 # Процесс на порту
netstat -ano | grep 8080 # Процесс на порту (Windows style)
# SSH
ssh user@host # Подключение
ssh -i keyfile user@host # С приватным ключом
scp file user@host:/path # Копировать файл на сервер
sftp user@host # Интерактивный FTP
8. Переменные окружения и конфигурация
# Просмотр и установка переменных
echo $HOME # Домашняя директория
echo $PATH # Поиск программ
export JAVA_HOME=/usr/lib/jvm/java-11 # Установить переменную
env # Все переменные окружения
# В ~/.bashrc или ~/.bash_profile
export JAVA_HOME=/usr/lib/jvm/java-11
export MAVEN_HOME=/usr/share/maven
export PATH=$PATH:$MAVEN_HOME/bin
# Применить изменения
source ~/.bashrc
9. Логирование и вывод
# Перенаправление
command > output.txt # Перенаправить в файл (перезапись)
command >> output.txt # Добавить в файл
command 2>&1 > output.txt # stderr и stdout в файл
command 2>/dev/null # Скрыть ошибки
# Логирование приложений
tail -f app.log # Следить за логом
tail -f app.log | grep ERROR # Фильтровать ошибки
grep "2024-03" app.log | wc -l # Логи за март
cat app.log | grep -i exception | head -20 # Исключения
10. Docker и контейнеризация
# Docker команды (важны для Java разработчика)
docker ps # Список контейнеров
docker ps -a # Все контейнеры (включая остановленные)
docker images # Список образов
docker pull ubuntu # Скачать образ
docker run -it ubuntu # Запустить контейнер
docker run -d -p 8080:8080 myapp # Фоновый запуск с портом
docker exec -it container_id bash # Войти в контейнер
docker logs container_id # Логи контейнера
docker stop container_id # Остановить
docker rm container_id # Удалить контейнер
# Docker Compose
docker-compose up # Запустить сервисы
docker-compose down # Остановить сервисы
docker-compose logs # Логи
11. Git команды (Linux окружение)
# Основные операции
git clone https://repo.git # Клонировать репозиторий
git status # Статус
git add file.txt # Добавить файл
git commit -m "message" # Коммит
git push # Отправить на сервер
git pull # Получить изменения
# Ветки
git branch # Список веток
git checkout -b feature # Создать новую ветку
git checkout main # Переключиться на ветку
git merge feature # Слить ветку
# История
git log # История коммитов
git diff # Различия
git reset --hard commit_id # Откат
12. Автоматизация и скрипты
#!/bin/bash
# Простой скрипт для запуска Java приложения
JAVA_HOME=/usr/lib/jvm/java-11
APP_JAR=/home/user/app.jar
LOG_FILE=/var/log/app.log
cd /home/user
$JAVA_HOME/bin/java -Xmx512m -jar $APP_JAR > $LOG_FILE 2>&1 &
echo $! > app.pid
Практические примеры для Java разработчика
# Поиск Java процессов и их параметры
ps aux | grep java
# Проверка занятого порта
lsof -i :8080
kill -9 pid
# Компиляция и запуск
javac -d bin src/Main.java
java -cp bin com.example.Main
# Сборка и запуск с Maven
mvn clean package
java -jar target/app-1.0.jar
# Просмотр логов
tail -100f /var/log/tomcat/catalina.out | grep ERROR
# Резервная копия
cp -r /home/user/project /backup/project-$(date +%Y%m%d)
# Поиск TODO в коде
grep -r "TODO" src/
Best Practices
- Изучайте man страницы —
man commandдля справки - Используйте grep и find — для поиска и фильтрации
- Пайпы и перенаправления — для комбинирования команд
- Скрипты bash — для автоматизации
- SSH и scp — для работы на удалённых серверах
- Docker — для контейнеризации приложений
- Логирование — tail -f для мониторинга
- Права доступа — понимание chmod и chown
Знание Linux командной строки критично для Java разработчика, особенно при работе с серверами, deploy и отладке production проблем.