2. 1 Working with text data
2 Search and process files with find
3 Package management system
Образовательный центр Парка высоких технологий 1
3. Текст в Unix
В Unix (и Linux) в виде обычного текста или plain text
представлены:
1
в каталоге $HOME
2
в каталоге /etc
3
справедливо для syslog и совместимых систем
Образовательный центр Парка высоких технологий 1
4. Текст в Unix
В Unix (и Linux) в виде обычного текста или plain text
представлены:
• конфигурационные файлы, как локальные1 , так и
общесистемные2
1
в каталоге $HOME
2
в каталоге /etc
3
справедливо для syslog и совместимых систем
Образовательный центр Парка высоких технологий 1
5. Текст в Unix
В Unix (и Linux) в виде обычного текста или plain text
представлены:
• конфигурационные файлы, как локальные1 , так и
общесистемные2
• системные логи3
• исходные тексты программ, включая скрипты на Shell
• основной формат ввода и (или) вывода данных для
множества программ и утилит
1
в каталоге $HOME
2
в каталоге /etc
3
справедливо для syslog и совместимых систем
Образовательный центр Парка высоких технологий 1
6. Текстовый фильтр
Определение:
Текстовый фильтр - программа, обрабатывающая и
преобразующая текст.
Пример: man | tac | rev
• Фильтр, запущенный без параметров - читает
стандартный ввод.
• Параметры фильтра - интерпретируются как имена
файлов
• Ключи фильтра - управляют режимами работы
Образовательный центр Парка высоких технологий 2
7. Текстовый фильтр
Определение:
Текстовый фильтр - программа, обрабатывающая и
преобразующая текст.
Пример: man | tac | rev
• Фильтр, запущенный без параметров - читает
стандартный ввод.
• Параметры фильтра - интерпретируются как имена
файлов
• Ключи фильтра - управляют режимами работы
Фильтр почти всегда используется совместно с
перенаправлением ввода-вывода Shell (особенно ʼ|ʼ, pipes).
cmd1 | cmd2
Образовательный центр Парка высоких технологий 2
8. Разбираем пример использования фильтров.
Cчитаем участников тренинга используя текстовые
фильтры.
1 cat / tmp / chat # посмотретьсодержимое
2 cat / tmp / chat | grep AM # строкисовременем AM
3 cat / tmp / chat | grep −e AM −e PM #
строкисовременем AM и PM
4 grep −e AM −e PM / tmp / chat | so r t # сортируем
5 grep −e AM −e PM / tmp / chat | so r t | cut −f 1 ,2
−d ʼ ʼ # оставитьимяфамилия
6 grep −e AM −e PM / tmp / chat | so r t | cut −f 1 ,2
−d ʼ ʼ | uniq # удалитьдубликаты
7 grep −e AM −e PM / tmp / chat | so r t | cut −f 1 ,2
−d ʼ ʼ | uniq | wc −l # считаемстроки
Образовательный центр Парка высоких технологий 3
9. Простые текстовые фильтры
Соглашения о параметрах: ʼ-ʼ как имя файла обозначает
стандартный ввод.
• cat и tac - вывести файл целиком
• head и tail - вывести начало и конец файла
• sort и uniq - сортировка и убрать повторы в
отсортированном
• paste - объединить файлы построчно
• wc - счётчик строк, слов и байт в тексте
• grep - поиск по образцу
Образовательный центр Парка высоких технологий 4
10. Метасимволы
grep, sed, awk
• . – любой символ за исключением пустой строки
• * – любоe количество символов, которые стоят перед *
• ^ – начало строки
• $ – конец строки
• [...] – любой символ из заключенных в скобки
Образовательный центр Парка высоких технологий 5
12. sed
Сценарии
[ addr [ , addr ] ] cmd [ args ]
Команды
• d – удалить строку
who | sed -e '10 d'
who | sed -e '2,4 d'
who | sed -e '/pts/ d'
• s – замена по регулярному выражению
who | sed -e "s/USER/user/g"
Образовательный центр Парка высоких технологий 7
13. awk
1 cat / etc / passwd | awk −F : ʼ { p r i n t $3 , $4 } ʼ
Образовательный центр Парка высоких технологий 8
14. 1 Working with text data
2 Search and process files with find
3 Package management system
Образовательный центр Парка высоких технологий 9
15. Файловая система. Данные и метаданные.
Упражнение. Выполнить команды.
Расскажите что получили.
cat /etc/passwd
stat /etc/passwd
Образовательный центр Парка высоких технологий 9
16. Файловая система. Данные и метаданные.
Упражнение. Выполнить команды.
Расскажите что получили.
cat /etc/passwd
stat /etc/passwd
Матаданные - информация о файле.
• Размер файла
• Владелец и права доступа
• Время доступа, изменения
Образовательный центр Парка высоких технологий 9
17. Поиск файлов командой find
find ищет файлы в заданной директории и производит над ним
заданную операцию.
Часто используемые параметры поиска
• -name, -iname – имя файлового объекта, включая
метасимволы
• -type – тип файлового объекта
• -size – размер [cwbkMG]
• -perm – права доступа
• -user – владелец
• ... – другие опции man find
Образовательный центр Парка высоких технологий 10
18. Файлы найдены
Действия над результом поиска
• -print – вывод на stdout (по умолчанию)
• -printf – форматированный вывод
• -exec – выполнить команду
• -ls – замена -exec ls -l {} ;
• -delete – удалить файл
Образовательный центр Парка высоких технологий 11
19. Примеры использования команды find
В текущей директории найти все файлы *.o и вывести на экран
find . -name '*.o' -print
find -name '*.o'
Поск по типу и владельцу файла.
find -type d -user altlinux
Составная команда, множество условий
find /root ( -name '*.pyc' -o -name '*.py' )
-type f -user root -size +300k -size -1024k
-exec ls -l {} ;
Дополнительно: позволяет преодолеть лимит на кол-во
аргументов в командной строке. “Arguments too long.”
Образовательный центр Парка высоких технологий 12
20. 1 Working with text data
2 Search and process files with find
3 Package management system
Образовательный центр Парка высоких технологий 13
21. Software installation
How to install software to computer? Please describe process step
by step.
Образовательный центр Парка высоких технологий 13
22. Software installation
How to install software to computer? Please describe process step
by step.
1 Find application
Образовательный центр Парка высоких технологий 13
23. Software installation
How to install software to computer? Please describe process step
by step.
1 Find application
2 Download installation package or source code
Образовательный центр Парка высоких технологий 13
24. Software installation
How to install software to computer? Please describe process step
by step.
1 Find application
2 Download installation package or source code
3 Run installer or complie
Package management system automates this process.
Образовательный центр Парка высоких технологий 13
25. Задачи системы управления пакетами.
• избежать Dependency hell
• Общие задачи пакетного менеджера:
• Проверка целостности пакетов
• Проверка зависимостей пакетов
• Поддержание списка установленных пакетов
• Автоматическое удаление пакетов
• Предоставление доступа к репозиторию пакетов
• Разрешение зависимостей
Образовательный центр Парка высоких технологий 14
26. Репозиторий
Репозиторий пакетов
Место, где хранятся и поддерживаются пакеты, а также
сопутствующая мета-информация, предназначенное для
использования пакетным менеджером.
Пример: Fedora Core
• Packages/*.rpm
• RPM-GPG-KEY-*
• repodata
• множество сжатых и несжатых XML файлов для YUM
Описание репозтория для YUM на локальной системе хранится
по пути /etc/yum.repos.d/*.repo
Образовательный центр Парка высоких технологий 15
27. RPM: структура пакета
• Метаданные
• Имя
• Версия/Релиз
• Группа
• Описание
• Зависимости
• ...
• Архив с файлами
• cpio
• Скрипты
• Pre Install
• Post Install
• Pre Uninstall
• Post Uninstall
• Triggers
Образовательный центр Парка высоких технологий 16
28. Два уровня пакетных менеджеров
Level RedHat-based Debian-based
Low rpm dpkg
High yum, dnf apt, aptitude
Низкоуровневые используются для установки, удаления,
получения информации о пакете.
Высокоуровневые предоставляют дополнительные функции
такие как поиск по репозиторию, копирование пакета из
репозитория, разрешение зависимостей, обновление системы.
Образовательный центр Парка высоких технологий 17
29. Команды пакетных менеджеров
Установка пакета
Debian apt-get install pkgname
CentOS yum install pkgname
Обновление пакета
Debian apt-get install pkgname
CentOS yum update pkgname
Удаление пакета
Debian apt-get remove pkgname
CentOS yum remove pkgname
Поиск. По имени пакета
Debian apt-cache search pkgname
CentOS yum list pkgname
Поиск. По строке.
Debian aptitude search '~dtmux'
CentOS yum whatprovides tmux
Образовательный центр Парка высоких технологий 18