Программист – Работа в командной строке linux (страница 4)
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 в фоне