Работа с текстовыми редакторами, процессами и файловыми системами
Встроенная команда интерпретатора read имя считывает строку со стандартного ввода и записывает её в переменную имя. Команда возвращает код завершения ноль если строка была успешно считана и код отличный от нуля если произошла ошибка или встретился конец файла. Напишите сценарий, который считывает строки со стандартного ввода и выводит их на стандартный вывод. (Используйте цикл while). Сценарий… Читать ещё >
Работа с текстовыми редакторами, процессами и файловыми системами (реферат, курсовая, диплом, контрольная)
Министерство Образования и науки Российской Федерации
" Уральский федеральный университет"
Физико-технологический институт кафедра Вычислительной техники
" Операционные системы"
студент группы ФТ-110 802: Шипигусев А.А.
Екатеринбург
Лабораторная работа № 1. Изучение основных команд для работы с файлами Цель: Ознакомиться с:
основными функциями для работы с файлами.
Основами работы с командным интепретатором слово.
Ход работы:
1) Вход в систему под выданной пользовательской учетной записью.
rmpg3
2) Создание в домашнем каталоге файла отчета с именем lab1. txt при помощи команды touch:
rmpg3@rmpg3-Satellite-L40:~$ touch lab1. txt
3) Просмотр значений переменных окружения при помощи команды set:
rmpg3@rmpg3-Satellite-L40:~$ set
4) Вывод в файл lab1. txt значений переменных окружения PATH, LANG, HOME:
rmpg3@rmpg3-Satellite-L40:~$ echo PATH=$PATH>>lab1.txt
rmpg3@rmpg3-Satellite-L40:~$ echo LANG=$LANG>>lab1.txt
rmpg3@rmpg3-Satellite-L40:~$ echo HOME=$HOME>>lab1.txt
5) Просмотр полученного файла при помощи команды less:
rmpg3@rmpg3-Satellite-L40:~$ less lab1. txt
Выводит:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
LANG=ru_RU.UTF-8
HOME=/home/rmpg3
6) Последовательный переход в каталоги /bin, /usr, /etc, /usr/bin. В каждом каталоге выполняется команда ls с различными ключами (-a, -l, -F, -R). Если вывод команды ls
не умещается на экране, то можно воспользоваться командой less (напр. Lsl | less):
lsa (вывод всех файлов каталога)
lsl (информация о файле)
lsF (папки каталога)
lsR (выводит список файлов каталога и его подкаталогов)
Переход в каталог /bin:
rmpg3@rmpg3-Satellite-L40:/bin$
Выполнение команды ls с различными ключами:
rmpg3@rmpg3-Satellite-L40:/bin$ lsa :
rmpg3@rmpg3-Satellite-L40:/bin$ lsl :
rmpg3@rmpg3-Satellite-L40:/bin$ lsF :
rmpg3@rmpg3-Satellite-L40:/bin$ lsR :
Переход в каталог /usr:
rmpg3@rmpg3-Satellite-L40:/bin$ cd /usr
Выполнение команды ls с различными ключами:
rmpg3@rmpg3-Satellite-L40:/usr$ lsa :
rmpg3@rmpg3-Satellite-L40:/usr$ lsl :
rmpg3@rmpg3-Satellite-L40:/usr$ lsF :
rmpg3@rmpg3-Satellite-L40:/usr$ lsR :
ереход в каталог /etc :
rmpg3@rmpg3-Satellite-L40:/usr$ cd /etc
Выполнение команды ls с различными ключами:
rmpg3@rmpg3-Satellite-L40:/etc$ lsa :
rmpg3@rmpg3-Satellite-L40:/etc$ lsl :
rmpg3@rmpg3-Satellite-L40:/etc$ lsF :
rmpg3@rmpg3-Satellite-L40:/etc$ lsR :
Переход в каталог /usr/bin:
rmpg3@rmpg3-Satellite-L40:/etc$ cd /usr/bin
Выполнение команды ls с различными ключами:
rmpg3@rmpg3-Satellite-L40:/usr/bin$ lsa :
rmpg3@rmpg3-Satellite-L40:/usr/bin$ lsl :
rmpg3@rmpg3-Satellite-L40:/usr/bin$ lsF :
rmpg3@rmpg3-Satellite-L40:/usr/bin$ lsR :
7) Переход обратно в домашний каталог:
rmpg3@rmpg3-Satellite-L40:/usr/bin$ cd
8) Изучение команд uname и date :
rmpg3@rmpg3-Satellite-L40:~$ uname
Выводит: Linux
rmpg3@rmpg3-Satellite-L40:~$ date
Выводит:
Сб. мая 26 19:13:50 YEKT 2012
Дополнительная информация по этим командам:
rmpg3@rmpg3-Satellite-L40:~$ man uname
и
rmpg3@rmpg3-Satellite-L40:~$ man date
9) Сравнение команд date и LANG=C date :
rmpg3@rmpg3-Satellite-L40:~$ date
Выводит:
Сб. мая 26 19:13:50 YEKT 2012
rmpg3@rmpg3-Satellite-L40:~$ LANG=C date
Выводит:
Sat May 26 19:21:47 YEKT 2012
10) Добавление в конец отчета информации, выводимой командами unamea и date :
rmpg3@rmpg3-Satellite-L40:~$ unamea>>lab1.txt
rmpg3@rmpg3-Satellite-L40:~$ date>>lab1.txt
11) Создание в домашнем каталоге подкаталогов test1 и test2 :
rmpg3@rmpg3-Satellite-L40:~$ mkdir test1 test2
12) Копирование файла /home/labs/text.txt в каталог test2. Добавление в файл отчета вывода команды lsR
Копирование файла /home/labs/text.txt в каталог test2 :
rmpg3@rmpg3-Satellite-L40:~$ cp labs/text.txt test2
Добавление в файл отчета вывода команды lsR :
rmpg3@rmpg3-Satellite-L40:~$ lsR>>lab1.txt
13) Перемещение файла text. txt из каталога test2 в каталог test1
rmpg3@rmpg3-Satellite-L40:~$ mv test2/text.txt test1
Добавление в файл отчета вывода команды lsR :
rmpg3@rmpg3-Satellite-L40:~$ lsR>>lab1.txt
14) Изучение команды find. Добавление в файл отчета всех подкаталогов каталога
/usr/share содержащие в своем имени сочетание букв «ru» (используются параметрыtype иname):
rmpg3@rmpg3-Satellite-L40:~$ find /usr/sharetype dname ru >> lab1. txt
/usr/share/cups/doc-root/ru
/usr/share/cups/templates/ru
/usr/share/cups/locale/ru
/usr/share/man/ru
/usr/share/locale/ru
/usr/share/locale/l10n/ru
/usr/share/libreoffice/basis3.4/help/ru
/usr/share/locale-langpack/ru
/usr/share/doc/kde/HTML/ru
/usr/share/kde4/apps/klettres/ru
/usr/share/kde4/apps/kvtml/ru
/usr/share/kde4/apps/ktuberling/sounds/ru
/usr/share/kde4/apps/ksgmltools2/customization/ru
15) С помощью команды rmdir удаляем каталоги, созданные при выполнении пункта 11:
rmpg3@rmpg3-Satellite-L40:~$ rmrf test1 test2
16) Добавлем в конец файла две строки. Первая содержит текст: «Лабораторная работа № 1». Вторая — имя и фамилию студента, выполнившего работу.
rmpg3@rmpg3-Satellite-L40:~$ echo «Лабораторная работа № 1» >> lab1. txt
rmpg3@rmpg3-Satellite-L40:~$ echo «Шипигусева Александра» >> lab1. txt
Лабораторная работа № 2 Знакомство с редактором Vim.
Цель:
Познакомиться с основными возможностями и функциями терминала по работе с текстом. Познакомиться с текстовым редактором vi.
Одним из самых старых текстовых редакторов является редактор vi. Этот редактор обладает несколько своеобразным интерфейсом и, поначалу, работа с ним вызывает у неопытного пользователя серьёзные затруднения, но тем не менее этот редактор очень популярен и многие тысячи людей используют именно его для редактирования текстов. Практически в любой UNIX совместимой системе имеется какая-либо реализация vi. Наиболее удобной, на мой взгляд, является vim.
Для освоения редактора vim запустите команду vimtutor и выполните упражнения содержащиеся в открывшемся файле. Если Вам не очень понятен английский язык, воспользуйтесь приведенной ниже краткой справкой по vi.
1 Редактор vi
Vi экранный текстовый редактор. Большая часть экрана используется для отображения редактируемого файла. Последняя строка экрана используется для ввода команд и вывода различной информации. Редактор может находиться либо в режиме редактирования, либо в режиме ввода команд. Для того, чтобы совершать какие либо действия Вы должны находиться в нужном режиме. После запуска редактор находится в командном режиме. Для перехода из режима редактирования в командный режим используется клавиша Esc. Для того, чтобы начать редактирование файла используется команда vi имя_файла.
Основные возможности в командном режиме
* Перемещение по файлу:
h, left-arrow переместить курсор влево на один символ
j, down-arrow переместить курсор вниз на одну строку
k, up-arrow переместить курсор вверх на одну строку
l, right-arrow переместить курсор вправо на один символ
/text найти строку text в файле и поместить курсор на ее первый символ. После этого
можно использовать клавиши n и Shift-n для перемещения к следующему или
предыдущему включению строки.
* Переход в режим редактирования:
i начать ввод текста перед курсором
a начать ввод текста после курсора
o вставить строку после текущей и начать ввод текста в ней
O вставить строку перед текущей и начать ввод текста в ней
* Копирование, вставка и удаление:
yy y$ yw скопировать строку, строку от позиции курсора до конца, слово.
dd d$ dw удалить строку, строку от позиции курсора до конца, слово.
x удалить символ
p вставить содержимое буфера после курсора
P вставить содержимое буфера перед курсором
u отменить последнюю операцию
* Сохранение и чтение файлов, выход из редактора:
:wсохранить файл;
:w filename-сохранить файл под указанным именем;
:r filename-вставить содержимое указанного файла;
:qвыйти из редактора
:wq-сохранить файл и выйти из редактора;
:q!- выйти без сохранения файла.
Лабораторная работа № 3
Простейшие команды для работы с текстом Цель:
Познакомиться с основными возможностями и функциями терминала по работе с текстом. Познакомиться с текстовым редактором vi.
Ход выполнения работы:
{за файл text. txt был взят оччет по первой лабораторной работе}
Скопируйте в домашний каталог файл /home/labs/text.txt.
rmpg3@rmpg3-Satellite-L40:~$ cp labs/text.txt /home/rmpg3
Выведите первые 10 строк файла text.txt.
rmpg3@rmpg3-Satellite-L40:~$ headn 10 text. txt
Выведите последние 10 строк файла text.txt.
rmpg3@rmpg3-Satellite-L40:~$ tailn 10 text. txt
Отсортируйте строки файла, исключив повторяющиеся, и выведите в файл отчета (lab2.txt) строки с 205-й по 215-ю из полученного результата. (Выполнить одним конвейером, используя команды sort, head, tail).
rmpg3@rmpg3-Satellite-L40:~$ sortu text. txt | headn 215 | tailn 10 | sorto lab3. txt
Скопируйте в домашний каталог файл /home/labs/text1.txt.
rmpg3@rmpg3-Satellite-L40:~$ cp labs/text1.txt /home/rmpg3
Добавьте в файл отчета все строки файла text. txt которых нет в файле text1.txt. Используйте команду comm, не забудьте отсортировать файлы перед тем, как подавать их на вход команды comm.
rmpg3@rmpg3-Satellite-L40:~$ sorto text. txt text.txt
rmpg3@rmpg3-Satellite-L40:~$ sorto text1. txt text1.txt
rmpg3@rmpg3-Satellite-L40:~$ comm -1 text. txt text1.txt >> lab3. txt
Подсчитайте число слов в файле text. txt и добавьте его в файл отчета.
rmpg3@rmpg3-Satellite-L40:~$ wcw text. txt >> lab3. txt
Файл /etc/passwd содержит учетные записи пользователей. Каждая учетная запись содержится в отдельной строке и состоит из нескольких полей разделенных двоеточиями. Первое поле содержит имя пользователя, третье поле содержит его идентификатор. Выведите отсортированный список пользователей и их идентификаторов в файл отчета. (Воспользуйтесь командами cut и sort).
rmpg3@rmpg3-Satellite-L40:~$ cutf 1,3 -d: /etc/passwd | sort >> lab3. txt
Отредактируйте файл отчета при помощи редактора vi:
rmpg3@rmpg3-Satellite-L40:~$ vi lab3. txt
Добавьте в начало файла строки содержащие номер лабораторной работы и Ваше имя.
Устанавливаем курсор на начало первой строки, нажимаем O. Вводим название лабораторной и имя.
Скопируйте пять строк файла начиная с пятой и вставьте их в конце файла.
Переводим курсор на 5ую строку. Нажимаем y5. Перводим курсор в конец файла нажимаем p.
Удалите предпоследнюю строку.
Переводим курсор на предпоследнюю строку и нажимаем dd.
Сохраняем изменения и выходим, для этого набираем: wq .
Лабораторная работа № 4. Команды для управления процессами Цель: Ознакомиться с понятием процесса в среде UNIX. Изучить механизмы межпроцессорного взаимодействия и основные сведения о работе с процессами.
Использовать на практике основные команды для работы с процессами. Ознакомиться со средствами оболочки преднащначенными для работы с процессами.
Ход выполнения работы:
Освойте работу с командой ps. Попробуйте запускать ее с различными аргументами. Если вывод команды не помещается на экране, используйте команду less.
rmpg3@rmpg3-Satellite-L40:~$ psa (выводит информацию о процессах всех пользователей)
PID TTY TIME CMD
3043 pts/2 00:00:00 ps
rmpg3@rmpg3-Satellite-L40:~$ psx (выводит информацию о процессах на подключенных к терминалу)
…
1413? Ss 0:00 kdeinit4: kdeinit4 Running…
1414? S 0:00 kdeinit4: klauncher [kdeinit] —fd=9
1416? Sl 0:03 kdeinit4: kded4 [kdeinit]
1420? S 0:00 /usr/bin/kglobalaccel
1422? S 0:00 /usr/bin/kwalletd
1426? S 0:00 /usr/bin/kactivitymanagerd
1489? S 0:00 kwrapper4 ksmserver
1490? Sl 0:00 kdeinit4: ksmserver [kdeinit]
1510? Sl 0:41 kwinsession 101ce1a71c4161000133806721500000015160000_1 338 561 550_579762
1515? Sl 4:23 /usr/bin/knotify4
1517? Sl 1:03 /usr/bin/plasma-desktop
1522? S 0:00 ksysguardd
1526? S 0:00 /usr/bin/kuiserver
1530? Sl 0:00 /usr/bin/akonadi_cont
…
rmpg3@rmpg3-Satellite-L40:~$ psw (использовать строки длиной 132 символа)
PID TTY TIME CMD
4711 pts/2 00:00:00 bash
4869 pts/2 00:00:00 ps
rmpg3@rmpg3-Satellite-L40:~$ pse (выводит значения переменных окружения)
…
3743? 00:00:00 nginx
3744? 00:00:00 nginx
3745? 00:00:00 nginx
3776? 00:00:01 postgres. bin
3780? 00:00:03 postgres. bin
3785? 00:00:00 postgres. bin
3811? 00:00:00 postgres. bin
4381? 00:00:00 kio_http_cache_
4539? 00:00:07 dolphin
4610? 00:00:00 libreoffice
4611? 00:00:00 oosplash. bin
4627? 00:00:29 soffice. bin
4662? 00:00:15 gwenview
4708? 00:00:03 konsole
4711 pts/2 00:00:00 bash
4767? 00:00:00 kworker/0:0
4832? 00:00:04 ksnapshot
4859? 00:00:00 kworker/0:1
4888? 00:00:00 kworker/0:2
4890 pts/2 00:00:00 ps
…
Выведите в файл отчета1 (lab4.txt) следующую информацию о запущенных Вами процессах: pid, ppid, tty, ruid, command. Вывод должен быть отсортирован по номеру процесса.
rmpg3@rmpg3-Satellite-L40:~$ touch lab4. txt
rmpg3@rmpg3-Satellite-L40:~$ pso ppid, tty, ruid, command>>lab4.txt
В файл вывелось:
PPID TT RUID COMMAND
4708 pts/2 1000 /bin/bash
4711 pts/2 1000 pso ppid, tty, ruid, command
Выведите в файл отчета информацию о процессах запущенных пользователем root. Вывод должен быть отсортирован по номеру процесса.
rmpg3@rmpg3-Satellite-L40:~$ psU root >> lab4. txt
В файл вывелось:
PID TTY TIME CMD
1? 00:00:00 init
2? 00:00:00 kthreadd
3? 00:00:08 ksoftirqd/0
5? 00:00:00 kworker/u:0
6? 00:00:00 migration/0
7? 00:00:00 cpuset
8? 00:00:00 khelper
9? 00:00:00 netns
10? 00:00:00 sync_supers
11? 00:00:00 bdi-default
12? 00:00:00 kintegrityd
13? 00:00:00 kblockd
14? 00:00:00 ata_sff
15? 00:00:00 khubd
16? 00:00:00 md
19? 00:00:00 khungtaskd
20? 00:00:10 kswapd0
21? 00:00:00 ksmd
22? 00:00:00 khugepaged
23? 00:00:00 fsnotify_mark
24? 00:00:00 ecryptfs-kthrea
25? 00:00:00 crypto
33? 00:00:00 kthrotld
39? 00:00:00 scsi_eh0
40? 00:00:00 scsi_eh1
41? 00:00:00 kworker/u:4
220? 00:00:00 scsi_eh2
221? 00:00:00 scsi_eh3
222? 00:00:00 scsi_eh4
291? 00:00:00 jbd2/sda5−8
292? 00:00:00 ext4-dio-unwrit
343? 00:00:00 upstart-udev-br
355? 00:00:00 udevd
437? 00:00:00 led_workqueue
532? 00:00:00 udevd
533? 00:00:00 udevd
…
Ключиc, -v, -j, -u изменяют формат вывода команды. Попробуйте выполнить команду ps с каждым из этих ключей. Результат сохраните в файле отчета.
rmpg3@rmpg3-Satellite-L40:~$ psc>>lab4.txt
В файл вывелось:
файл тест редактор команда
PID CLS PRI TTY TIME CMD
4711 TS 19 pts/2 00:00:00 bash
5207 TS 19 pts/2 00:00:00 ps
rmpg3@rmpg3-Satellite-L40:~$ psv>>lab4.txt
В файл вывелось:
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
4711 pts/2 Ss 0:00 15 873 7466 3248 0.3 /bin/bash
5210 pts/2 R+ 0:00 0 82 5661 688 0.0 psv
rmpg3@rmpg3-Satellite-L40:~$ psj>>lab4.txt
В файл вывелось:
PID PGID SID TTY TIME CMD
4711 4711 4711 pts/2 00:00:00 bash
5211 5211 4711 pts/2 00:00:00 ps
rmpg3@rmpg3-Satellite-L40:~$ psu>>lab4.txt
В файл вывелось:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
rmpg3 4711 0.0 0.3 8340 3248 pts/2 Ss 14:09 0:00 /bin/bash
rmpg3 5213 0.0 0.1 5984 1104 pts/2 R+ 15:02 0:00 psu
5,6,7 для этих пунктов нет требующихся программ.
8. Создайте в домашнем каталоге именованный канал fifo. Выполните команду cat /home/labs/dao.txt >fifo Теперь с другого терминала выполните команду cat fifo
10:24:15rmpg3~$mkfifo fifo
10:24:27rmpg3~$cat /home/rmpg3/labs/dao.txt > fifo
Выполняем с другого терминала:
10:25:27rmpg3~$cat fifo
9. При помощи команд tty, w, uname, uptime выведите в файл отчета (lab3.txt) имя текущего терминала, информацию о пользователях, работающих в системе, название и версию операционной системы, время работы системы.
10:28:04rmpg3~$tty>>lab3.txt
10:28:18rmpg3~$w>>lab3.txt
10:28:26rmpg3~$uname>>lab3.txt
10:28:34rmpg3~$uptime>>lab3.txt
В файл вывелось:
/dev/pts/2
10:27:55 up 2 days, 27 min, 3 users, load average: 0,16, 0,46, 0,36
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
rmpg3 pts/0 :0 Sat10 2days 0.00s 26.91s kdeinit4: kded4 [kdeinit]
rmpg3 pts/2 :0 10:24 0.00s 0.31s 0.00s w
rmpg3 pts/3 :0 10:25 2:04 0.26s 0.26s /bin/bash
Linux
10:28:04 up 2 days, 27 min, 3 users, load average: 0.14, 0.44, 0.35
10. Установите обработчик сигнала SIGINT. Для этого выполните команду:
trap «echo иполучен сигнал SIGINT «INT
10:28:49rmpg3~$trap «echo получен сигнал SIGINT» INT
Пошлите несколько раз оболочке сигнал SIGINT. Для этого следует нажать клавиши CTRL-C при нажитии на ctrl-c выводит: получен сигнал SIGINT.
11. Добавьте в начало файла отчета строку с номером лабораторной работы и Вашим именем.
С помощью редактора vim добавляем номер лабораторной работы и мое имя в начало файла.
Лабораторная работа № 5. Настройка оболочки Цель: Ознакомиться с настройками оболочки UNIX. Ознакомиться с файлом. bashrc, который может использоваться для настройки рабочей среды в соответсвии с потребностями пользователя.
Ход работы:
1)Сравните вывод команд date и LANG=C date.
rmpg3@rmpg3-Satellite-L40:~$ date && LANG=C date
Сб. июня 2 21:28:11 YEKT 2012
Sat Jun 2 21:28:11 YEKT 2012
2) Измените приглашение командной строки так, чтобы в нем выводилось время, имя пользователя и текущий рабочий каталог. Заканчиваться приглашение должно символом доллара. Сохраните команду определяющую приглашение в файле. bashrc, чтобы приглашение восстанавливалось при каждом запуске оболочки.
rmpg3@rmpg3-Satellite-L40:~$ PS1="tuw$"
21:44:10rmpg3~$
21:44:26rmpg3~$echo PS1="tuw$" >>~/.bashrc
3)Просмотрите значения переменых PPID, PWD, OLDPWD, UID, RANDOM и HOSTNAME и сохраните их в файле отчёта (lab5.txt) в формате «имя_переменной=значение».
21:53:32rmpg3~$echo «PPID=$PPID» >>lab5.txt
21:53:52rmpg3~$echo «PWD=$PWD» >>lab5.txt
21:54:15rmpg3~$echo «OLDPWD=$OLDPWD» >>lab5.txt
21:54:58rmpg3~$echo «UID=$UID» >>lab5.txt
21:55:05rmpg3~$echo «RANDOM=$RANDOM» >>lab5.txt
21:55:34rmpg3~$echo «HOSTNAME=$HOSTNAME» >>lab5.txt
В файл вывелось:
PPID=4708
PWD=/home/rmpg3
OLDPWD=
UID=1000
RANDOM=16 021
HOSTNAME=rmpg3-Satellite-L40
4) Создайте псевдонимы:
10:32:38rmpg3~$alias ls='lG'
10:35:30rmpg3~$alias ll='ll'
10:35:55rmpg3~$alias la='la'
10:36:47rmpg3~$alias pa='ps ax'
10:37:03rmpg3~$alias x='startx'
10:37:17rmpg3~$nano ~/.bashrc {открываем файл bashrc и записываем туда псевдонимы}
5)Определите функцию lab, которая будет выводить строку «Лабораторная работа N», где N передаётся функции в качестве аргумента, а затем строку содержащую Ваши имя и фамилию. Сохраните определение функции в файле.bashrc. Добавьте результат работы функции в файл отчета.
10:44:37rmpg3~$lab () { echo «Лабораторная работа #$ 1»; echo «Шипигусев Александр» ;}
10:44:55rmpg3~$lab 5
Лабораторная работа #5
Шипигусев Александр
10:45:03rmpg3~$lab 5 >> lab5. txt
10:45:29rmpg3~$nano ~/.bashrc
Лабораторная работа № 6
Цель работы:
Изучить монтирование и демонтирование файловых систем. Получить дополнительную информацию о файловых системах. Смонтировать файловую систему.
Ходы выполнения работы:
1.
a) Просмотрите список смонтированных файловых систем.
rmpg3~$mountv
/dev/sda5 on / type ext4 (rw, errors=remount-ro, commit=0)
proc on /proc type proc (rw, noexec, nosuid, nodev)
sysfs on /sys type sysfs (rw, noexec, nosuid, nodev)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw, mode=0755)
devpts on /dev/pts type devpts (rw, noexec, nosuid, gid=5,mode=0620)
tmpfs on /run type tmpfs (rw, noexec, nosuid, size=10%, mode=0755)
none on /run/lock type tmpfs (rw, noexec, nosuid, nodev, size=5 242 880)
none on /run/shm type tmpfs (rw, nosuid, nodev)
/dev/sda8 on /boot type ext4 (rw, commit=0)
/dev/sda7 on /home type ext4 (rw, commit=0)
b)Создайте в домашнем каталоге каталог floppy.
11:20:08rmpg3~$mkdir floppy
c)Скопируйте в этот каталог файл /home/labs/text.txt.
18:59:25rmpg3~$cp labs/text.txt floppy
d) Просмотрите содержимое каталога floppy.
19:12:07rmpg3~$dir floppy
text.txt
e)Вставьте в дисковод отформатированную дискету. Подмонтируй-те дискету к каталогу floppy.
19:19:16rmpg3~$sudo mount /dev/sdb1 floppy
Выведите в файл отчета список смонтированных файловых систем.
19:19:40rmpg3~$mountv >> lab6. txt
в файл вывелось:
/dev/sda5 on / type ext4 (rw, errors=remount-ro, commit=0)
proc on /proc type proc (rw, noexec, nosuid, nodev)
sysfs on /sys type sysfs (rw, noexec, nosuid, nodev)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw, mode=0755)
devpts on /dev/pts type devpts (rw, noexec, nosuid, gid=5,mode=0620)
tmpfs on /run type tmpfs (rw, noexec, nosuid, size=10%, mode=0755)
none on /run/lock type tmpfs (rw, noexec, nosuid, nodev, size=5 242 880)
none on /run/shm type tmpfs (rw, nosuid, nodev)
/dev/sda8 on /boot type ext4 (rw, commit=0)
/dev/sda7 on /home type ext4 (rw, commit=0)
/dev/sdb1 on /media/4F06−2EDF type vfat (rw, nosuid, nodev, uid=1000,gid=1000,shortname=mixed, dmask=0077,utf8=1,showexec, uhelper=udisks)
/dev/sda1 on /media/C0F4377BF4377330 type fuseblk (rw, nosuid, nodev, allow_other, blksize=4096,default_permissions)
/dev/sdb1 on /home/rmpg3/floppy type vfat (rw)
2)Размонтируйте дискету. Просмотрите содержимое каталога floppy и список смонтированных файловых систем:
19:29:38rmpg3~$sudo umount /dev/sdb1
19:29:53rmpg3~$dir floppy
text.txt
19:30:33rmpg3~$mountv
/dev/sda5 on / type ext4 (rw, errors=remount-ro, commit=0)
proc on /proc type proc (rw, noexec, nosuid, nodev)
sysfs on /sys type sysfs (rw, noexec, nosuid, nodev)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw, mode=0755)
devpts on /dev/pts type devpts (rw, noexec, nosuid, gid=5,mode=0620)
tmpfs on /run type tmpfs (rw, noexec, nosuid, size=10%, mode=0755)
none on /run/lock type tmpfs (rw, noexec, nosuid, nodev, size=5 242 880)
none on /run/shm type tmpfs (rw, nosuid, nodev)
/dev/sda8 on /boot type ext4 (rw, commit=0)
/dev/sda7 on /home type ext4 (rw, commit=0)
/dev/sdb1 on /media/4F06−2EDF type vfat (rw, nosuid, nodev, uid=1000,gid=1000,shortname=mixed, dmask=0077,utf8=1,showexec, uhelper=udisks)
/dev/sda1 on /media/C0F4377BF4377330 type fuseblk (rw, nosuid, nodev, allow_other, blksize=4096,default_permissions)
3)Вставьте в дисковод дискету. Отформатируйте её на низком уровне и создайте на дискете файловую систему FAT. Скопируйте на дискету какой-нибудь файл.
19:39:39rmpg3~$sudo mkdosfsF 32 /dev/sdb1
19:39:45rmpg3~$cp lab1. txt /dev/sdb1
4): Выведите в файл отчета сведения о степени использования разделов жесткого диска. Выведите в файл отчета сведения о размере Вашего домашнего каталога. Размер должен быть указан в килобайтах или мегабайтах. Выведите, также, сведения о размере корневого каталога, при этом не выходите за пределы файловой системы, на которой находится корневой каталог:
19:51:08rmpg3~$df
Файловая система 1K-блоков Исп Доступно Исп% смонтирована на
/dev/sda5 9 612 516 5 507 228 3 616 996 61% /
udev 498 912 4 498 908 1% /dev
tmpfs 203 516 856 202 660 1% /run
none 5120 0 5120 0% /run/lock
none 508 784 2180 506 604 1% /run/shm
/dev/sda8 956 472 72 832 835 052 9% /boot
/dev/sda7 37 044 928 1 616 648 33 546 476 5% /home
/dev/sda1 262 236 992 142 295 344 119 941 648 55% /media/C0F4377BF4377330
19:57:27rmpg3~$dums /home/rmpg3 >> lab6. txt
в файл вывелось:
1402 /home/rmpg3
19:57:51rmpg3~$dukxs >> lab6. txt
в файл вывелось
Лабораторная работа № 7
Цель:
Ознакомиться со сценарием (текстовый файл, содержащий команды интерпретатора) и подробно изучить их написание.
Ход выполнения работы:
Создайте в домашнем каталоге подкаталог bin.
11:20:16rmpg3~$mkdir bin
Выведите на экран значение переменной PATH и убедитесь, что она содержит созданный Вами каталог bin.
11:35:04rmpg3~$echo PATH=$PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
При помощи редактора vim создайте файл bin/s1.sh:
12:08:19rmpg3~$sudo vim /home/rmpg3/binhome/s1.sh
for file; do
echo «$file «
headn 10 $file done
4. Измените права доступа к файлу. Для этого выполните команду chmod +x bin/s1.sh
Команда добавляет разрешение на выполнение файла.
12:10:16rmpg3~$sudo chmod +x binhome/s1.sh
5. Выполните сценарий следующим образом:
s1.sh /home/labs/text.txt /home/labs/dao.txt
13:16:38rmpg3~$cd binhome
13:17:50rmpg3~/binhome$sh s1. sh /home/rmpg3/labs/dao.txt /home/rmpg3/labs/text.txt
Выводит первые 10 строчек обоих файлов.
6. Сохраните результат в файле отчёта.
13:18:19rmpg3~/binhome$sh s1. sh /home/rmpg3/labs/dao.txt /home/rmpg3/labs/text.txt >> lab7. txt
Напишите сценарий, получающий в качестве первого аргумента имя каталога и выводящий список тех файлов из этого каталога, имена которых содержат последовательность символов определенную вторым аргументом. Сценарий споместите в подкаталоге bin домашнего каталога и назовите s2.sh.
Содержание s2. sh:
lsalh $ 1/ | grep $ 2
Напишите сценарий, который выводит пронумерованный список файлов с расширением txt в текущем каталоге, ожидает от пользователя ввода номера файла, выводит первые десять строк заданного файла и повторяет цикл. Сценарий сохраните под именем list. sh в каталоге bin.
Содержание list. sh:
select FILE in~/*.txt QUIT
do
if [ -e $FILE]
then
head $FILE
else
break
fi
done
Встроенная команда интерпретатора read имя считывает строку со стандартного ввода и записывает её в переменную имя. Команда возвращает код завершения ноль если строка была успешно считана и код отличный от нуля если произошла ошибка или встретился конец файла. Напишите сценарий, который считывает строки со стандартного ввода и выводит их на стандартный вывод. (Используйте цикл while). Сценарий сохраните под именем s3.sh.
Содержание s3. sh:
while true; do
read line
echo $line
done
Лабораторная работа № 8. Настройка сценариев Цель:
Подробно изучить написание сценариев, ознакомиться с использованием условных операторов.
Ход выполнения:
Проанализируйте файл /home/labs/back.sh
В подкаталоге bin создайте файл case. sh:
Выполните команду export UID
21:18:38rmpg3~$export UID
Запустите сценарий без аргументов и последовательно с аргументами status, start, status, start, stop, status, stop. Результат сохраните в файле отчета.
В подкаталоге bin создайте файл calc. sh:
22:35:57rmpg3~/binhome$sudo vim calc. sh
res=$ 1
shift
while [[ $# -ge 2 ]]; do
res=$(($res$ 1 $ 2))
shift 2 done echo $res
6. Запустите сценарий следующими командами:
calc.sh 1 + 2 * 3 + 3 / 4]
22:41:57rmpg3~/binhome$sh calc. sh 1+2*3+¾]
1+2
calc.sh 1 + 2 * 3
22:56:36rmpg3~/binhome$sh calc. sh 1 + 2 * 3
1+2
calc.sh 1 + 2*3
23:06:35rmpg3~/binhome$sh calc. sh 1 + 2*3
1+2*3
calc.sh 1+2
23:09:39rmpg3~/binhome$sh calc. sh 1+2
1+2
Объясните почему различается результат в случаях b) и c).
Различаются формулы, в случае b) стоит пробел между 2 и * и 3 .
Исправьте сценарий так, чтобы в случае d) он выдавал результат 3.
res=$ 1
shift
while [[ $# = -ge ]]; do
res$(($res$ 1 $ 2))
shift
done
if | $# -lt 2|: then
res=$(($res))
fi
echo $res
Напишите сценарий summ. sh выводящий сумму своих аргументов если первый аргумент +, произведение если первый аргумент и сообщение Usage: summ. sh +|* arguments … в противном случае. Например:
bash-2.04 $ summ + 4 8 3
bash-2.04 $ summ * 4 2 3
содержание summ. sh:
if [$ 1="+" ]
then
echo $[$ 2+$ 3+$ 4]
elif[$ 1="\*" ]
then
echo $[$ 2*$ 3*$ 4]
fi
Лабораторная работа № 9. Базовые регулярные выражения. Редактор sed.
Цель: Изучить информацию о базовых регулярных выражениях (BRE).
Ознакомиться с потоковым редактором sed, который считывает строки из текстового файла или стандартного ввода.
Ход работы:
Скопируйте в домашний каталог файл /home/labs/text.txt
23:55:12rmpg3~$cp /home/rmpg3/labs/text.txt /home/rmpg3
Выведите в файл отчета все строки файла text. txt содержащие слово «Благозвон». Добавьте к файлу отчета количество найденных строк.
00:05:21rmpg3~$grepe Благозвон text. txt>>lab9.txt
00:05:42rmpg3~$grepc -e Благозвон text. txt>>lab9.txt
в файл вывелось
green peace Благозвон Изображения Благозвон
./Документы: Благозвон снимок4. png Благозвон ВСЕМ Благозвон ПОЦОНЫ ПОЛУЧАЕТСЯ Благозвон Добавьте к файлу отчета все строки файла text. txt, которые начинаются с буквы «Б» (возможно после нескольких пробелов).
00:10:08rmpg3~$grepe Б text. txt>>lab9.txt
green peace Благозвон Изображения Благозвон
./Документы: Благозвон снимок4. png Благозвон ВСЕМ Благозвон ПОЦОНЫ ПОЛУЧАЕТСЯ Благозвон Добавьте к файлу отчета все непустые строки файла text. txt, не содержащие русскую букву «а» (в любом регистре).
00:15:21rmpg3~$grepive [а] text. txt>>lab9.txt
Добавьте в файл отчета имена файлов каталога /home/labs, которые содержат слово «include» .
00:18:49rmpg3~$find /home/rmpg3/labsname include* -type f>>lab9.txt
/home/rmpg3/labs/include2.txt
/home/rmpg3/labs/include1.txt
/home/rmpg3/labs/include3.txt
Используя редактор sed замените в файле text. txt все слова Снарк на СНАРК. Результат сохраните в файле snark.txt.
…
./labs:
text
./test1:
СНАРК СНАРК
./test2:
textСНАРКСНАРКСНАРКСНАРКСНАРКСНАРК
.СНАРК/Видео:
peaceСНАРК
./Документы: Благозвон
LABOR.doc
…
При помощи sed выведите из файла /etc/passwd идентификаторы пользователей и их имена, разделенные символом табуляции, в формате:
root
daemon
operator …
Вывод должен быть отсортирован по идентификатору пользователя. Результат добавьте к файлу отчета.
01:32:08rmpg3~$cat /etc/passwd | sed s/:x:/" «/ | sed s/:[0−9]*.*// | sed s/» [a-z]* «// | sortg >> lab9. txt
9. Напишите сценарий для sed, который будет менять местами каждые две строки файла. Возможно sed прийдется запускать с ключомn.
Создаю файл txt. txt
Shipigusev
Alexander
Laba #9
и пустой txt1. txt
01:57:11rmpg3~$sedn -f 1. sed txt.txt>txt1.txt
Shipigusev
Alexander
Laba #9
Напишите сценарий для редактора sed, который будет добавлять:
В начало файла строку «
«.В начало всех строк начинающихся словом «Приступ» строку «
", а в конец строку «
«.В конец всех остальных строк «
«.
К концу последней строки «
«Результат работы сценария сохраните в файле snark. html в каталоге public_html домашнего каталога (каталог потребуется создать). Сценарий сохраните под именем sed1 в домашнем каталоге.
Содержание 11. sed:
1i
/^Pristup/i
/^Pristup/a
$a
$!a
10:12:18rmpg3~$sedf 11. sed text9.txt > text9. html
Исходный файл text9. txt:
Nachalo fail
Pristup
Pristup
vse ok
ok ok
end
Полученный text9. html
Nachalo fail
Pristup
Pristup
vse ok ok ok end