В мире бэкенд-разработки понимание Linux — это не просто преимущество, а необходимость. Если вы хотите уверенно управлять серверами, разбираться в процессах, анализировать логи и отлаживать сетевые соединения, знание базовых команд Linux станет вашим надежным инструментом. В этой статье мы разберем ключевые команды, которые позволят вам выглядеть профессионалом в глазах коллег и сэкономят вам десятки часов работы.


1. Основные команды работы с файловой системой

ls – отображение содержимого директории

ls      # Показать файлы в текущей директории
ls -la  # Показать скрытые файлы и подробную информацию
ls -lh  # Читаемый размер файлов
ls -lt  # Сортировка по времени изменения
ls -R   # Рекурсивный просмотр вложенных директорий
ls /etc # Просмотр содержимого системной директории /etc
ls -lS  # Сортировка по размеру файлов
ls -la
ls -la

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             # Создать цепочку директорий и отобразить процесс
mkdir -pv
mkdir -pv

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"
grep 'error' /var/log/syslog
grep 'error' /var/log/syslog

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              # Удалить начальные пробелы и табуляции
sed -n
sed -n

3. Управление процессами

ps aux – список процессов

ps aux | grep node   # Найти процессы, связанные с Node.js
ps -ef               # Альтернативный вывод списка процессов
ps aux --sort=-%mem  # Сортировка по потреблению памяти

top и htop – мониторинг процессов

top           # Стандартный мониторинг
htop          # Улучшенный вариант с цветной графикой (если установлен)
htop -u user  # Показать процессы только определенного пользователя
htop
htop

kill – завершение процессов

kill -9 1234          # Принудительное завершение процесса с PID 1234
killall python        # Завершить все процессы python
pkill -f 'script.py'  # Завершить процесс по имени файла

4. Сетевые команды

netstat и ss – просмотр сетевых подключений

netstat -tulnp  # Список всех прослушиваемых портов
ss -tulnp       # Современная альтернатива netstat
ss -s           # Краткая статистика сетевых подключений
netstat -tulnp
netstat -tulnp

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  # Догрузить файл, если прервалось скачивание
curl -I
curl -I

5. tmux - работа с терминалом как профи

tmux позволяет работать в нескольких сессиях в одном терминале.

tmux new -s my_session     # Создать новую сессию
tmux ls                    # Просмотреть список сессий
tmux attach -t my_session  # Подключиться к сессии
ctrl+b d                   # Отключиться от сессии, оставив её работающей

Заключение

Освоение этих команд сделает вас уверенным пользователем Linux и позволит работать с серверами, логами и процессами без страха. Практикуйтесь, автоматизируйте рутинные задачи и помните: настоящий профессионал знает, какие инструменты использовать в нужный момент.

Если хотите стать ещё лучше – добавьте cron, rsync и systemctl в свой арсенал. Но это уже тема для следующей статьи ?.

Какие команды помогли вам в реальной работе? Делитесь в комментариях!

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


  1. wov1a
    19.01.2025 12:59

    Очень интересно. Хороший старт и доступным языком с примерами. Ждем продолжение по систем дизайну. Когда шардирование?


    1. chlorine Автор
      19.01.2025 12:59

      В скором времени. Какие аспекты хотели бы услышать?


      1. j_larkin
        19.01.2025 12:59

        С таким уровнем технического погружения, как в данной статье, не нужно писать продолжение. Это хабр, а не лайфхакер, какой-нибудь.


  1. Johan_Palych
    19.01.2025 12:59

    Самая первая команда - printenv
    "...Программа printenv позволяет отобразить список текущих переменных окружения и их значения..."
    https://wiki.archlinux.org/title/Environment_variables
    https://wiki.archlinux.org/title/Environment_variables_(Русский)


  1. tkutru
    19.01.2025 12:59

    Это же база... а детали, типа флагов, можно через man посмотреть


  1. Alexandro_Live
    19.01.2025 12:59

    А при чем тут devops?


    1. kossmak
      19.01.2025 12:59

      Оно видит и показывает консоль - значит девопс


  1. amkartashov
    19.01.2025 12:59

    devops-бэкэндер?