Помощь в написании студенческих работ
Антистрессовый сервис

Работа с текстовыми редакторами, процессами и файловыми системами

Лабораторная работаПомощь в написанииУзнать стоимостьмоей работы

Встроенная команда интерпретатора 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

Показать весь текст
Заполнить форму текущей работой