Технологический семинар: Работа в shell
DESCRIPTION
* Зачем нужен Shell и что такое Bash? * Манипулирование файлами и каталогами * Процессы и переменные среды * Потоки ввода вывода * Создание конвееров * Распараллеливание процессовTRANSCRIPT
![Page 1: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/1.jpg)
Лекция 2. Работа с Shell
www.compscicenter.ru 1
Толстиков Никита [email protected]
СS центр
26.02.2014
![Page 2: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/2.jpg)
www.compscicenter.ru 2 26.02.2014
![Page 3: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/3.jpg)
Командный интерпретатор
www.compscicenter.ru 3 26.02.2014
Командный интерпретатор — это интерфейс взаимодействия между пользователем и операционной системой. Пользователь управляет системой при помощи текстовых команд. Базовые операции определены в стандарте POSIX. Приглашение командной строки: user@server ~$ _ Пример: user@server ~$ whoami user
![Page 4: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/4.jpg)
Shell
www.compscicenter.ru 4 26.02.2014
• sh -‐ Bourne shell • bash -‐ Bourne Again Shell • csh or C shell -‐ shell c СИ подобным синтаксисом • tcsh or TENEX C Shell – расширение csh
Определить установленные: ~$ cat /etc/shells
![Page 5: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/5.jpg)
Пользователи и группы
www.compscicenter.ru 5 26.02.2014
Список пользователей ~$ cat /etc/passwd Список групп: ~$ cat /etc/group UID – идентификатор пользователя. Суперпользователь root UID = 0. GID – идентификатор группы. Системная группа root GID = 0. Добавить пользователя в группу ~$ gpasswd –a user games Сменить пользователя ~$ su vasya Действие от суперпользователя ~$ sudo mkdir /test
![Page 6: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/6.jpg)
Файловая система
www.compscicenter.ru 6 26.02.2014
• Виртуальная файловая система (VFS) — уровень абстракции поверх конкретной реализации файловой системы для обеспечения единообразного доступа ко всем файлам.
• В VFS имеется единое дерево каталогов, а устройства встраиваются (монтируются) в папки.
• Любое устройство в VFS представляется файлом. • Linux работает с большинством из существующих файловых систем. В качестве
основных можно использовать ext2, ext3, ext4, ReiserFS, XFS, JFS.
![Page 7: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/7.jpg)
Структура каталогов
www.compscicenter.ru 7 26.02.2014
• / -‐ корневой каталог • /bin — базовые программы. • /boot — содержит образы ядра и файлы загрузчика. • /etc — конфигурационные файлы. • /dev — файлы устройств. • /home — домашние папки пользователей. • /lib, /lib* — библиотеки и модули ядра. • /mnt, /media — для монтирования устройств. • /opt — для дополнительного ПО. • /proc — информация о процессах. • /root — домашняя папка суперпользователя. • /sbin — программы для суперпользователя.
![Page 8: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/8.jpg)
Структура каталогов
www.compscicenter.ru 8 26.02.2014
• /tmp — для временных файлов. • /sys — информация о ядре. • /usr — файлы программ. • /usr/bin — исполняемые файлы программ. • /usr/share — общие данные всех программ. • /usr/src — код ядра. • /var — меняющиеся данные различных сервисов (база данных, Subversion, …),
логи
![Page 9: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/9.jpg)
Файлы
www.compscicenter.ru 9 26.02.2014
Типы файлов: • Обычные файлы (данные на диске), • Каталоги • Специальные файлы (к примеру, файлы устройств). У одного файла может быть несколько имён (жесткие ссылки). Количество ссылок указывается во втором столбце вывода ~$ ls -‐n Файл существует до тех пор, пока на него есть хотя бы одна ссылка. “Удаление файла” — это удаление одной ссылки. Имена файлов, начинающиеся с . считаются скрытыми.
![Page 10: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/10.jpg)
Файлы устройств
www.compscicenter.ru 10 26.02.2014
Почти любое устройство представлено файлом в VFS (см. каталог /dev). Примеры: • /dev/sda — жесткий диск. • /dev/sdb3 — третий раздел второго жесткого диска. • /dev/cpu — файлы соответствующие процессорам. Файлы потоков ввода/вывода: /dev/stdin, /dev/stdout, /dev/stderr. Существуют специальные фиктивные файлы устройств: /dev/null, /dev/random, /dev/zero, . . . . Работа с устройствами может проходить как обычная работа с файлами.
![Page 11: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/11.jpg)
Каталоги
www.compscicenter.ru 11 26.02.2014
Каталог — это специальный тип файла, содержащий имена файлов. В каждом каталоге есть два специальных файла:
• . — текущий каталог и
• .. — родительский.
У пользователя есть домашний каталог ~. Пути бывают абсолютными (/usr/bin/python) и относительными (downloads/pdfs/, ../../man/). У каталога не может быть жестких ссылок. Зато могут быть мягкие (символические): $ ln -‐s /usr/src/linux-‐3.2.0 /usr/src/linux
![Page 12: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/12.jpg)
Монтирование устройств
www.compscicenter.ru 12 26.02.2014
Монтирование — это подключение файловой в VFS. • Подключение устройства в папку:
$ mount /dev/sda1 /mnt/win8 • Подключение сетевого диска:
$ mount -‐t smbfs //server/folder /mnt/winshare • Подключение .iso образа:
$ mount -‐o loop disk1.iso /mnt/disk • Подключение одного каталога в другой:
$ mount –bind / /mnt/root
![Page 13: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/13.jpg)
Права доступа
www.compscicenter.ru 13 26.02.2014
Каждый файл (не имя файла) имеет владельца (uid) и группу (gid). Изменять можно командами chown и chgrp. У каждого файла есть права доступа: █■⏟𝑟𝑤𝑥 @𝑢𝑠𝑒𝑟 █■⏟𝑟𝑤𝑥 @𝑔𝑟𝑜𝑢𝑝 █■⏟𝑟𝑤𝑥 @𝑜𝑡ℎ𝑒𝑟 , r — чтение, w — запись, x — исполнение. Пример: rwxr-‐xr-‐x. Права также можно обозначить трехзначным числом по следующему правилу: r = 4, w = 2, x = 1. Примеры: 755, 644, 600. Изменяются командой chmod. $ chmod 644 file.txt
![Page 14: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/14.jpg)
Права доступа(каталог)
www.compscicenter.ru 14 26.02.2014
Что означают права доступа для каталогов? • r — узнать список файлов. • w — изменить список файлов. • x — обратиться к содержимому каталога. Пример: $ mkdir test $ touch test/file.txt $ chmod 333 test $ ls test
$ rm test/file.txt ls: невозможно открыть каталог test
![Page 15: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/15.jpg)
Права доступа(каталог)
www.compscicenter.ru 15 26.02.2014
Что означают права доступа для каталогов? • r — узнать список файлов. • w — изменить список файлов. • x — обратиться к содержимому каталога. Пример: $ mkdir test $ touch test/file.txt $ chmod 333 test $ ls test
$ rm test/file.txt ls: невозможно открыть каталог test
![Page 16: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/16.jpg)
Процессы
www.compscicenter.ru 16 26.02.2014
Каждый процессор имеет свой уникальный номер PID Создание процесса: • Новый процесс является копией родительского процесса – fork • Программа запускается функцией – exec • Процесс запуска процессов – fork-‐and-‐exec Все процессы запускаются от самого первого процесса init Команды работы с процессами: • Запуск • Запуск в фоновом режиме • Приостановить процесс • Прервать
![Page 17: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/17.jpg)
Работа с процессами
www.compscicenter.ru 17 26.02.2014
Команды работы с процессами: • Запуск ~$ chrome • Запуск в фоновом режиме ~$ chrome& [1] 4593 • Список процессов в фоновом режиме ~$ jobs • Приостановить процесс: Ctrl-‐Z • Прервать: Ctrl-‐C • Возобновить фоновый процесс ~$ bg • Поместить фоновое задание на передний план ~$ fg • Завершить процесс ~$ kill
![Page 18: Технологический семинар: Работа в Shell](https://reader033.vdocuments.pub/reader033/viewer/2022052523/555e173ed8b42a9e188b5633/html5/thumbnails/18.jpg)
Спасибо за внимание
www.compscicenter.ru 18 26.02.2014