В мире бэкенд-разработки понимание Linux — это не просто преимущество, а необходимость. Если вы хотите уверенно управлять серверами, разбираться в процессах, анализировать логи и отлаживать сетевые соединения, знание базовых команд Linux станет вашим надежным инструментом. В этой статье мы разберем ключевые команды, которые позволят вам выглядеть профессионалом в глазах коллег и сэкономят вам десятки часов работы.
1. Основные команды работы с файловой системой
ls – отображение содержимого директории
ls # Показать файлы в текущей директории
ls -la # Показать скрытые файлы и подробную информацию
ls -lh # Читаемый размер файлов
ls -lt # Сортировка по времени изменения
ls -R # Рекурсивный просмотр вложенных директорий
ls /etc # Просмотр содержимого системной директории /etc
ls -lS # Сортировка по размеру файлов
cd – смена директории
cd /var/log # Переход в системные логи
cd ~/projects # Переход в папку с проектами
cd - # Вернуться в предыдущую директорию
cd .. # Подняться на уровень выше
cd / # Перейти в корневую директорию
cd $(pwd)/new_folder # Переход в новую папку с использованием pwd
pwd – показать текущую директорию
pwd # Абсолютный путь к текущему каталогу
realpath . # Альтернативный способ получения полного пути
mkdir – создание директории
mkdir new_folder # Создать папку
mkdir -p parent/child # Создать вложенную папку
mkdir -m 777 shared_folder # Создать папку с правами доступа 777
mkdir -pv a/b/c # Создать цепочку директорий и отобразить процесс
rm -rf – удаление файлов и директорий
rm file.txt # Удалить файл
rm -r directory # Удалить папку и все её файлы
rm -rf temp_files # Удалить папку без подтверждения
find . -type f -name '*.tmp' -delete # Удалить все временные файлы .tmp
⚠ Осторожно! Безвозвратное удаление. Ошибки не прощаются.
2. Работа с текстом
grep – поиск в файлах и потоках
grep 'error' /var/log/syslog # Найти все ошибки в логах
ps aux | grep nginx # Найти процессы nginx
grep -i 'warning' logs.txt # Игнорировать регистр при поиске
grep -v 'info' logs.txt # Исключить строки с "info"
grep -E 'error|fail' logs.txt # Найти строки с "error" или "fail"
awk – обработка строк и колонок
awk '{print $1, $3}' access.log # Вывести 1-й и 3-й столбец из access.log
awk '/error/ {print $0}' logfile.log # Вывести строки, содержащие "error"
awk '{sum+=$2} END {print sum}' data.txt # Суммирование второго столбца
sed – замена текста в файлах
sed -i 's/old-text/new-text/g' file.txt # Заменить "old-text" на "new-text"
sed -n '5,10p' file.txt # Вывести строки с 5 по 10
sed 's/^[ \t]*//g' file.txt # Удалить начальные пробелы и табуляции
3. Управление процессами
ps aux – список процессов
ps aux | grep node # Найти процессы, связанные с Node.js
ps -ef # Альтернативный вывод списка процессов
ps aux --sort=-%mem # Сортировка по потреблению памяти
top и htop – мониторинг процессов
top # Стандартный мониторинг
htop # Улучшенный вариант с цветной графикой (если установлен)
htop -u user # Показать процессы только определенного пользователя
kill – завершение процессов
kill -9 1234 # Принудительное завершение процесса с PID 1234
killall python # Завершить все процессы python
pkill -f 'script.py' # Завершить процесс по имени файла
4. Сетевые команды
netstat и ss – просмотр сетевых подключений
netstat -tulnp # Список всех прослушиваемых портов
ss -tulnp # Современная альтернатива netstat
ss -s # Краткая статистика сетевых подключений
curl и wget – загрузка данных из сети
curl -I https://example.com # Получить заголовки HTTP-ответа
curl -X POST -d "data=value" https://api.example.com # Отправка POST-запроса
wget -O page.html https://example.com # Сохранить страницу в файл
wget -c https://example.com/file.iso # Догрузить файл, если прервалось скачивание
5. tmux - работа с терминалом как профи
tmux
позволяет работать в нескольких сессиях в одном терминале.
tmux new -s my_session # Создать новую сессию
tmux ls # Просмотреть список сессий
tmux attach -t my_session # Подключиться к сессии
ctrl+b d # Отключиться от сессии, оставив её работающей
Заключение
Освоение этих команд сделает вас уверенным пользователем Linux и позволит работать с серверами, логами и процессами без страха. Практикуйтесь, автоматизируйте рутинные задачи и помните: настоящий профессионал знает, какие инструменты использовать в нужный момент.
Если хотите стать ещё лучше – добавьте cron
, rsync
и systemctl
в свой арсенал. Но это уже тема для следующей статьи ?.
Какие команды помогли вам в реальной работе? Делитесь в комментариях!
Комментарии (8)
Johan_Palych
19.01.2025 12:59Самая первая команда - printenv
"...Программа printenv позволяет отобразить список текущих переменных окружения и их значения..."
https://wiki.archlinux.org/title/Environment_variables
https://wiki.archlinux.org/title/Environment_variables_(Русский)
wov1a
Очень интересно. Хороший старт и доступным языком с примерами. Ждем продолжение по систем дизайну. Когда шардирование?
chlorine Автор
В скором времени. Какие аспекты хотели бы услышать?
j_larkin
С таким уровнем технического погружения, как в данной статье, не нужно писать продолжение. Это хабр, а не лайфхакер, какой-нибудь.