реклама
Бургер менюБургер меню

Программист – Работа в командной строке linux (страница 4)

18

find . -size +1M # Файлы больше 1 МБ в текущей директории

3.4. Фильтрация и обработка текста

1. sort — сортировка строк.

sort data.txt

sort -r data.txt # Обратная сортировка

sort -n numbers.txt # Сортировка по числовому значению

2. uniq — удаление дубликатов (работает с отсортированными данными).

sort log.txt | uniq # Удалить повторяющиеся строки

3. wc (word count) — подсчёт строк, слов, байт.

wc -l script.sh # Количество строк

wc -w document.txt # Количество слов

wc -c data.bin # Количество байт

4. cut — извлечение колонок или символов.

cut -d':' -f1 /etc/passwd # Извлечь первое поле (разделитель — двоеточие)

cut -c1-10 file.txt # Извлечь первые 10 символов каждой строки

5. awk — обработка структурированных данных.

awk '{print $1}' /etc/passwd # Вывести первое поле каждой строки

awk -F':' '$3 > 1000' /etc/passwd # Найти пользователей с UID > 1000

3.5. Практические упражнения

1. Создайте файл test.log и заполните его 20 строками произвольного текста.

2. Выведите первые 5 строк файла командой head.

3. Выведите последние 3 строки файла командой tail.

4. Найдите все строки с словом «test» в файле с помощью grep.

5. Отсортируйте строки файла test.log по алфавиту и сохраните результат в sorted.log.

6. Подсчитайте количество строк в sorted.log командой wc.

7. Откройте файл sorted.log в редакторе nano, добавьте заголовок и сохраните изменения.

8. Найдите все файлы с расширением .log в каталоге /var/log командой find.

9. Выведите содержимое /etc/passwd, отобразив только имена пользователей (первое поле) с помощью cut.

10. Просмотрите большой лог‑файл (например, /var/log/syslog) с помощью less, найдите в нём строку с ошибкой (слово «error»).

Заключение

Вы освоили ключевые инструменты для работы с текстовыми файлами в Linux: * просмотр содержимого (cat, less, head, tail); * редактирование (nano, vim); * поиск информации (grep, find); * фильтрацию и обработку текста (sort, uniq, wc, cut, awk).

Эти навыки позволят вам эффективно анализировать логи, настраивать конфигурационные файлы и автоматизировать обработку данных.

В следующей главе мы рассмотрим работу с процессами и заданиями в Linux — управление запущенными программами, мониторинг ресурсов и планирование задач.

Глава 4. Управление процессами и заданиями в Linux

Введение

Процессы — основа многозадачности в Linux. Каждый раз, когда вы запускаете программу или выполняете команду, создаётся процесс. Умение управлять процессами критически важно для системного администрирования и эффективной работы с системой.

В этой главе вы: * узнаете, что такое процессы и какие они бывают; * освоите инструменты мониторинга процессов; * научитесь управлять приоритетами процессов; * познакомитесь с механизмами управления заданиями в оболочке; * изучите способы завершения процессов; * выполните практические задания для закрепления навыков.

4.1. Что такое процесс

Процесс — запущенный экземпляр программы, которому ядро Linux выделяет ресурсы (память, процессорное время и т. д.).

Каждый процесс имеет: * PID (Process ID) — уникальный идентификатор; * PPID (Parent PID) — идентификатор родительского процесса; * состояние (выполняется, спит, остановлен, зомби); * приоритет; * используемые ресурсы (CPU, память, файлы).

Типы процессов: * Интерактивные — работают на переднем плане, взаимодействуют с пользователем. * Фоновые (демоны) — работают без прямого взаимодействия с пользователем (например, веб‑сервер apache2).

4.2. Мониторинг процессов

1. ps (process status) — моментальный снимок процессов.

Основные опции: * ps aux — все процессы всех пользователей; * ps -ef — полный формат с PPID; * ps -u username — процессы конкретного пользователя; * ps -p PID — информация о конкретном процессе.

Пример:

ps aux | head -5

2. top — мониторинг в реальном времени.

Запуск:

top

Управление в top: * q — выход; * k — завершение процесса (запросит PID); * r — изменение приоритета (nice); * P — сортировка по CPU; * M — сортировка по памяти.

3. htop — улучшенная версия top с цветовым выделением и удобным интерфейсом.

Установка (если не установлен):

sudo apt install htop # Debian/Ubuntu

sudo yum install htop # CentOS/RHEL

Запуск:

htop

4.3. Управление заданиями (Job Control)

Задание — процесс или группа процессов, управляемых текущей оболочкой.

Основные команды:

1. jobs — показать задания текущей сессии:

jobs

2. fg (foreground) — перевести задание на передний план:

fg %1 # Перевести задание №1 на передний план

3. bg (background) — запустить приостановленное задание в фоне:

bg %2 # Запустить задание №2 в фоне