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

Какие знаешь команды в 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

  1. Изучайте man страницыman command для справки
  2. Используйте grep и find — для поиска и фильтрации
  3. Пайпы и перенаправления — для комбинирования команд
  4. Скрипты bash — для автоматизации
  5. SSH и scp — для работы на удалённых серверах
  6. Docker — для контейнеризации приложений
  7. Логирование — tail -f для мониторинга
  8. Права доступа — понимание chmod и chown

Знание Linux командной строки критично для Java разработчика, особенно при работе с серверами, deploy и отладке production проблем.