Лабораторная работа №7 Инсталляция Linux icon

Лабораторная работа №7 Инсталляция Linux



НазваниеЛабораторная работа №7 Инсталляция Linux
страница5/5
Дата конвертации01.09.2012
Размер1.03 Mb.
ТипЛабораторная работа
1   2   3   4   5


3.

Вариант

Описание действия

1,4,6,9

Удаляет файлы с наибольшей длиной


2,5,7,0

Удаляет файлы с наименьшей длиной

1,3,6,8

Удаляет пустые файлы

2,4,7,9

Удаляет пустые каталоги

3,5,8,0

Удаляет файлы содержащие хоть одну цифру в названии


191

Все действия скриптов должны заканчиваться записью
результатов в выходящий файл.


3. Контроль выполнения работы


Отчет должен содержать:

- распечатки скриптов с начальными данными и конечными
результатами

- дискету с данными результатов

Студент должен уметь рассказать о достижении полученных
результатов, а также, при необходимости показать как он достиг
этого.


4. Контрольные вопросы


1. Команда test: назначение и использование? Приведите
примеры.

2. Какие условия проверки файлов используются в shell?
Приведите примеры.

3. Какие условия проверки строк используются в shell?
Приведите примеры.

4. Какие условия проверки целых чисел используются в shell?
Приведите примеры.

5. Какие сложные условия проверки используются в shell?
Приведите примеры.

6. Условный оператор: назначение, структура использования?

7. Конструкции использования условного оператора?

8. Примеры использования условий в зависимости от кодов
завершения?

9. Оператор вызова: назначение, структура использования?

10. Конструкции использования оператора вызова?

192

11. Оператор цикла с перечислением: назначение, структура
использования?

12. Конструкции использования оператора цикла с
перечислением?

13. Оператор цикла с истинным условием: назначение, структура
использования?

14. Конструкции использования оператора цикла с истинным
условием?

15. Условия прерывания оператора цикла с истинным условием?
Примеры.

16. Оператор цикла с ложным условием: назначение, структура
использования?

17. Конструкции использования оператора цикла с ложным
условием?

18. Пустой оператор: назначение, использование? Примеры.

19.
Функции в shell: назначения, структура, принцип
использования?

20. Обработка прерываний: назначение, виды сигналов,
примеры?

Список литературы



1. А.В. Фролов, Г.В. Фролов. Библиотека системного
программиста. Том 11. М.: Диалог-МИФИ, 1994

2. А.В. Фролов, Г.В. Фролов. Библиотека системного
программиста. Том 12. М. .-Диалог-МИФИ, 1994

3. А.В. Фролов, Г.В. Фролов. Библиотека системного
программиста. Том 13. М.:Диалог-МИФИ, 1994

4. А.В. Фролов, Г.В. Фролов. Библиотека системного
программиста. Том 14. М.:Диалог-МИФИ, 1994

5. А.В. Фролов, Г.В. Фролов. Библиотека системного
программиста. Том 17. М. .-Диалог-МИФИ, 1995

6. В.В. Подбельский. Язык СИ++. М.: Финансы и статистика,
2000

7. Страуструп Б. Язык программирования Си++. Часть 1.
Второе издание: Пер. с англ.-Киев: ДиаСофт, 1993

193

8. Страуструп Б. Язык программирования Си++. Часть 2.
Второе издание: Пер. с англ.-Киев: ДиаСофт, 1993

9. П. Фолькердинг, К.Рейчард, Э. Фостер-Джонсон. Установка и
конфигурирование Linux. Изд. Питер. Санкт-Петербург,
2000.

10. К. Финогенов, В. Черных. MS-DOS 6.0. М, ABF 1993.

11. М.Уэлш. Инсталляция Linux и первые шаги. Linux Installation
and Getting Started Copyright (с) 1992-1994 Matt Welsh 205
Gray Street NE, Wilson NC, 27893 USA mdw@sunsiteMnc.edu
Copyright (c), 1996, TOO "Терем".

12. Программирование на SHELL. Учебное пособие. А.
Соловьев. 1999, Изд. Citforum.

Оглавление



ВВЕДЕНИЕ………………………………………...3

ЛАБОРАТОРНАЯ РАБОТА № 1…………………4

ЛАБОРАТОРНАЯ РАБОТА № 2............................18

ЛАБОРАТОРНАЯ РАБОТА № 3-4.........................36

ЛАБОРАТОРНАЯ РАБОТА № 5........................... 66

ЛАБОРАТОРНАЯ РАБОТА № 6............................80

Лаб. работа 7. Инсталяция LINAX.......…………………..101

Лаб. работа 8. SHELL и команды.Часть 1………………130

Лаб. работа 9. SHELL и команды.Часть 2………………143

Лаб. работа 10. Программирование на SHELL.Часть 1….159

Лаб. работа 10. Программирование на SHELL.Часть 2….173

СПИСОК ЛИТЕРАТУРЫ .......................................192

оглавление ....……..................................................


193

Лабораторная работа №13

Полноэкранный редактор vi

Введение:

1 Режимы работы редактора

Ввод текста

Командный режим

Режим командной строки

2 Ввод текста

3 Команды

Перемещение курсора

Редактирование

4 Командная строка

5 Блоки, буферы, окна редактирования. Повторители

Повторители

Буферы vi

Многооконное редактирование


--------------------------------------------------------------------------------

Полноэкранный редактор vi

Редактор vi - универсальный полноэкранный текстовый редактор в среде UNIX. Универсальность означает, что, во-первых, этот редактор есть во всех UNIX-подобных ОС и, во-вторых, этот редактор работает с практически любым видом терминала (ANSI, VT100, VT220, VT320, DEC, и т. д.).(База данных, содержащая описание известных системе терминалов находится в файле /etc/termcap.) Эта универсальность обернулась несколько непривычным (для пользователей DOS) пользовательским интерфейсом: для управления редактором используются лишь ``обычные'' кнопки клавиатуры (алфавитно-цифровые символы и знаки препинания).

Имеющиеся на многих типах терминалов функциональные клавиши практически не используются. Если клавиатура терминала имеет стрелочные клавиши, то они используются, но, как будет видно ниже, в ограниченном контексте.


1 Режимы работы редактора

Ввод текста

В этом режиме все, что набирается на клавиатуре отображается на экране терминала и запоминается в буфере редактора.

Нет возможности осуществлять операции редактирования текста, за исключением стирания последнего набранного символа (с помощью комбинации клавиш < Control-H> ).


Командный режим

В этом режиме символы клавиатуры выполняют специальные функции (перемещение курсора, стирание частей текста, и т. д.), то есть функции редактирования.

Набираемые команды НЕ ОТОБРАЖАЮТСЯ НА ЭКРАНЕ!


Режим командной строки

Режим командной строки позволяет производить более глобальные операции с текстом: записывать отредактированный текст в файл, считывать новый файл, выходить из vi, производить настройку редактора, поиск по шаблону, а также осуществлять некоторые функции редактирования.

Команды отображаются в нижней части экрана (в ``командной'' строке редактора).


2 Ввод текста

< Return> - создает пустую строку и переводит курсор в ее начало.


< Control-H> - уничтожает последний введенный символ (это действие не отображается на экране до выхода в командный режим).


< Control-[> или клавиша < Esc> - переводят редактор в командный режим.


В режиме ввода текста стрелочная клавиатура НЕ РАБОТАЕТ!


3 Команды

i - переход в режим набора методом вставки перед текущим символом


a - переход в режим набора методом вставки за текущим символом


R - переход в режим набора текста методом набивки.


Перемещение курсора


h,j,k,l - на один символ (одну строку), как показано стрелками


^ или 0 - в начало текущей строки


$ - в конец текущей строки


w - на слово вправо


b - на слово влево


} - на параграф вперед (параграф - это блок текста, отделенный пустой строкой)


{ - на параграф назад


[[ - в начало текста


]] - в конец текста


Кнопки стрелочной клавиатуры также позволяют перемещаться по тексту.


Редактирование

dd - стирание текущей строки

dдвижение курсора - стирание от текущего положения курсора до нового, задаваемого символом перемещения курсора(Нажатие кнопок стрелочной клавиатуры НЕ ЯВЛЯЕТСЯ движением курсора и не может использоваться в комбинированных командах.)


J - слияние текущей строки со следующей


u - отмена последней команды


. - повтор последней команды


: - переход в режим командной строки


4 Командная строка

:q или :q! - выход из редактора без сохранения изменений


:x - выход из редактора с записью, если файл был модифицирован


:w или w filename или w! filename - запись файла и возвращение в командный режим


:e filename или :e! filename - загрузка файла filename


:r filename - добавить содержимое указанного файла к редактируемому сразу за текущей строкой


:set nu - включить нумерацию строк


:set nonu - отключить нумерацию строк


:!command - выполнить команду UNIX не покидая редактора


:/word - выполнить поиск слова word в тексте


:/ - повторить поиск слова word далее по тексту


5 Блоки, буферы, окна редактирования. Повторители


Повторители

Командам и движениям курсора можно давать повторители (числа), например

2w - передвинуть курсор на два слова вперед


10l - передвинуть курсор на десять символов вправо


d10l - стереть десять символов справа от курсора


2d10l - стереть двадцать символов справа от курсора


5J - слить пять последующих строк в одну


4. - повторить последнюю введенную команду четыре раза


Буферы vi

Редактор имеет три типа буферов: буфер стирания (0-9), неименованный буфер и именованные буферы (a-z).

В буферы стирания автоматически заносятся стираемые элементы. В буфере 0 хранится последний стертый элемент, в буфере 1 - предпоследний и т. д.


Занести в буфер:


yy - занести текущую строку в неименованный буфер


yдвижение курсора - занести указанный движением курсора блок текста в неименованный буфер.


"ayy - занести текущую строку в именованный буфер a


"Ayy - добавить текущую строку к содержимому именованного буфера a


"by10j - занести последующие 10 строк в именованный буфер b


Вставить из буфера:


p - вставить в текущую позицию содержимое неименованного буфера


"ap - вставить в текущую позицию содержимое именованного буфера a


"1p - вставить в текущую позицию содержимое буфера стирания 1


Многооконное редактирование

Редактировать сразу несколько файлов можно либо пользуясь командной редактора :e filename, либо указав все необходимые файлы в командной строке при вызове редактора (например: vi file1 file2 file3). В последнем случае вы двигаетесь по списку файлов с помощью команд:

:n - переходим к следующему файлу в списке

:rew - возвращаемся к редактированию первого файла в списке

Именованные буферы сохраняют свое содержимое при переходе к редактированию другого файла.


Простая команда - это последовательность слов, разделенная пробелами. Первое слово является именем команды, которая будет выполняться, а остальные будут переданы ей как аргументы. Имя команды передается ей как аргумент номер 0 (т.е. имя команды 3. Управляющие конструкции

является значением $0). Значение, возвращаемое простой командой - это ее статус завершения, если она завершилась нормально, или (восьмеричное) 200+статус, если она завершилась аварийно.


Список - это последовательность одного или нескольких конвейеров, разделенных символами ;, &, && или || и быть может заканчивающаяся символом ; или &. Из четырех указанных операций ; и & имеют равные приоритеты, меньшие, чем у && и ||. Приоритеты последних также равны между собой. Символ ; означает, что конвейеры будут выполняться последовательно, а & - параллельно. Операция && (||) означает, что список, следующий за ней будет выполняться лишь в том случае, если код завершения предыдущего конвейера нулевой (ненулевой).


Команда - это либо простая команда, либо одна из управляющих конструкций. Кодом завершения команды является код завершения ее последней простой команды.


3.1. Цикл ДЛЯ


for <переменная> [ in <набор> ]


do


<список>


done


Если часть in <набор> опущена, то это означает in "$@" ( то есть in $1 $2 ... $n). Пример. Вывести на экран все фортранные файлы текущей библиотеки:


for f in *.for


do


cat $f


done


3.2. Оператор выбора


case $<переменная> in


<шаблон> | <шаблон>... ) <список> ;;


. . .


esac


Оператор выбора выполняет <список>, соответствующий первому <шаблону>, которому удовлетворяет <переменная>. Форма шаблона та же, что и используемая для генерации имен файлов. Часть | шаблон... может отсутствовать.


Пример. Определить флаги и откомпилировать все указанные файлы.


# инициализировать флаг


flag=


# повторять для каждого аргумента


for a


do


case $a in


# об(r)единить флаги, разделив их пробелами


-[ocSO]) flag=$flag' ' $a ;;


-*) echo 'unknown flag $a' ;;


# компилировать каждый исходный файл и сбросить флаги


*.c) cc $flag $a; flag= ;;


*.s) as $flag $a; flag= ;;


*.f) f77 $flag $a; flag= ;;


# неверный аргумент


*) echo 'unexpected argument $a' ;;


esac


done


3.3. Условный оператор.


if <список1>


then


<список2>


[ elif <список3>


then


<список4> ]


. . .


[ else


<список5> ]


fi


Выполняется <список1> и, если код его завершения 0, то выполняется <список2>, иначе - <список3> и, если и его код завершения 0, то выполняется <список4>. Если же это не так, то выполняется <список5>. Части elif и else могут отсутствовать.


3.4. Цикл ПОКА


while <список1>


do


<список2>


done


До тех пор, пока код завершения последней команды <списка1> есть 0, выполняются команды <списка2>. При замене служебного слова while на until условие выхода из цикла меняется на противоположное.


В качестве одной из команд <списка1> может быть команда true (false). По этой команде не выполняется никаких действий, а код завершения устанавливается 0 (-1). Эти команды применяются для организации бесконечных циклов. Выход из такого цикла можно осуществить лишь по команде break (см. Специальные команды).


3.5. Функции


<имя> () {


<список>;


}


Определяется функция с именем <имя>. Тело функции - <список>, заключенный между { и }.


3.6. Зарезервированные слова

Следующие слова являются зарезервированными:


if then else elif fi


case in esac { }


for while until do done


3.7. Специальные команды

Как правило, для выполнения каждой команды shell порождает отдельный процесс. Специальные команды отличаются тем, что они встроены в shell и выполняются в рамках текущего процесса.


: Пустая команда. Возвращает нулевой код завершения.

. file Shell читает и выполняет команды из файла file, затем завершается; при поиске file используется список поиска $PATH.

break [n] Выход из внутреннего for или while цикла; если указано n, то выход из n внутренних циклов.

continue [n] Перейти к следующей итерации внутреннего for или while цикла; если указано n, то переход к следующей итерации n-ого цикла.

cd [ <аргумент> ] Сменить текущую директорию на директорию <аргумент>. По умолчанию используется значение HOME.

echo [ <арг> ... ] Выводит свои аргументы в стандартный вывод, разделяя их пробелами.

eval [ <арг> ... ] Аргументы читаются, как если бы они поступали из стандартного ввода и рассматриваются как команды, которые тут же и выполняются.

exec [ <арг> ... ] Аргументы рассматриваются как команды shell'а и тут же выполняются, но при этом не создается нового процесса. В качестве аргументов могут быть указаны направления ввода-вывода и, если нет никаких других аргументов, то будет изменено лишь направление ввода-вывода текущей программы.

exit [ n ] Завершение выполнения shell'а с кодом завершения n. Если n опущено, то кодом завершения будет код завершения последней выполненной команды (конец файла также приводит к завершению выполнения).

export [ <переменная> ... ] Данные переменные отмечаются для автоматического экспорта в окружение (см. Окружение) выполняемых команд. Если аргументы не указаны, то выводится список всех экспортируемых переменных. Имена функций не могут экспортироваться.

hash [ -r ] [ <команда> ... ] Для каждой из указанных команд определяется и запоминается путь поиска. Опция -r удаляет все запомненные данные. Если не указан ни один аргумент, то выводится информация о запомненных командах: hits - количество обращений shell'а к данной команде; cost - объем работы для обнаружения команды в списке поиска; command - полное имя команды. В некоторых ситуациях происходит перевычисление запомненных данных, что отмечается значком * в поле hits.

pwd Выводит имя текущей директории.

read [ <переменная> ... ] Читается из стандартного ввода одна строка; первое ее слово присваивается первой переменной, второе - второй и т.д., причем все оставшиеся слова присваиваются последней переменной.

readonly [ <переменная> ... ] Запрещается изменение значений указанных переменных. Если аргумент не указан , то выводится информация обо всех переменных типа readonly.

return [ n ] Выход из функции с кодом завершения n. Если n опущено, то кодом завершения будет код завершения последней выполненной команды.

set [ --aefkntuvx [ <арг> ... ] ] Команда устанавливает следующие режимы:

-a отметить переменные, которые были изменены или созданы, как переменные окружения (см. Окружение)

-e если код завершения команды ненулевой, то немедленно завершить выполнение shell'а

-f запретить генерацию имен файлов

-k все переменные с именем помещаются в окружение команды, а не только те, что предшествуют имени команды (см. Окружение)

-n читать команды, но не выполнять их

-t завершение shell'а после ввода и выполнения одной команды

-u при подстановке рассматривать неустановленные переменные как ошибки

-v вывести вводимые строки сразу после их ввода

-x вывести команды и их аргументы перед их выполнением

-- не изменяет флаги, полезен для присваивания позиционным переменным новых значений.

При указании + вместо - каждый из флагов устанавливает противоположный режим. Набор текущих флагов есть значение переменной $-. <арг> - это значения, которые будут присвоены позиционным переменным $1, $2 и т.д. Если все аргументы опущены, выводятся значения всех переменных.

shift [ n ] Позиционные переменные, начиная с $(n+1), переименовываются в $1 и т.д. По умолчанию n=1.

test вычисляет условные выражения (см. Дополнительные сведения. Test )

trap [ <арг> ] [ n ] ... Команда <арг> будет выполнена, когда shell получит сигнал n (см. Сигналы). (Надо заметить, что <арг> проверяется при установке прерывания и при получении сигнала). Команды выполняются по порядку номеров сигналов. Любая попытка установить сигнал, игнорируемый данным процессом, не обрабатывается. Попытка прерывания по сигналу 11 (segmentation violation) приводит к ошибке. Если <арг> опущен, то все прерывания устанавливаются в их начальные значения. Если <арг> есть пустая строка, то этот сигнал игнорируется shell'ом и вызываемыми им программами. Если n=0, то <арг> выполняется при выходе из shell'а. Trap без аргументов выводит список команд, связанных с каждым сигналом.

type [ <имя> ... ] Для каждого имени показывает, как оно будет интерпретироваться при использовании в качестве имени команды: как внутренняя команда shell'а, как имя файла или же такого файла нет вообще.

ulimit [ -f ] [ n ] Устанавливает размер файла в n блоков; -f - устанавливает размер файла, который может быть записан процессом-потомком (читать можно любые файлы). Без аргументов - выводит текущий размер.

umask [ nnn ] Пользовательская маска создания файлов изменяется на nnn. Если nnn опущено, то выводится текущее значение маски. Пример: после команды umask 755 будут создаваться файлы, которые владелец сможет читать, писать и выполнять, а все остальные - только читать и выполнять.

unset [ <имя> ... ] Для каждого имени удаляет соответствующую переменную или функцию. Переменные PATH, PS1, PS2 и IFS не могут быть удалены.

wait [ n ] Ждет завершения указанного процесса и выводит код его завершения. Если n не указано, то ожидается завершения всех активных процессов-потомков и возвращается код завершения 0.


5.2. Функции в shell

Функция позволяет подготовить список команд shell для последующего выполнения.

Описание функции имеет вид:


имя()


{


список команд


}


после чего обращение к функции происходит по имени. При выполнении функции не создается нового процесса. Она выполняется в среде соответствующего процесса. Аргументы функции становятся ее позиционными параметрами; имя функции - ее нулевой параметр. Прервать выполнение функции можно оператором "return [n]", где (необязательное) "n" - код возврата.

Пример. Вызов на выполнение файла "fun"


echo $$


fn() # описание функции


{


echo xx=$xx


echo $#


echo $0: $$ $1 $2


xx=yy ; echo xx=$xx


return 5


}


xx=xx ; echo xx=$xx


fn a b # вызов функции "fn" с параметрами


echo $?


echo xx=$xx


содержащего описание и вызов функции "fn", выдаст на экран:


749


xx=xx


xx=xx


2


fun: 749 a b


xx=yy


5


xx=yy


5.9. Обработка прерываний ("trap")

Бывает необходимо защитить выполнение программы от прерывания.

Наиболее часто приходится встречаться со следующими прерываниями, соответствующими сигналам:

0

выход из интерпретатора,

1

отбой (отключение удаленного абонента),

2

прерывание от ,

9

уничтожение (не перехватывается),

15

окончание выполнения.

Для защиты от прерываний существует команда "trap", имеющая формат:


trap 'список команд' сигналы


Если в системе возникнут прерывания, чьи сигналы перечислены через пробел в "сигналы", то будет выполнен "список команд", после чего (если в списке команд не была выполнена команда "exit") управление вернется в точку прерывания и продолжится выполнение командного файла.

Например, если перед прекращением по прерываниям выполнения какого то командного файла необходимо удалить файлы в "/tmp", то это может быть выполнено командой "trap":


tarp 'rm /tmp/* ; exit 1' 1 2 15


которая предшествует прочим командам файла. Здесь, после удаления файлов будет осуществлен выход "exit" из командного файла.

Команда "trap" позволяет и просто игнорировать прерывания, если "список команд" пустой. Так например, если команда "cmd" выполняется очень долго, а пользователь решил отключиться от системы, то для продолжения выполнения этой команды можно написать, запустив команду в фоновом режиме:


( trap '' 1; cmd )&


Порядок выполнения работы:

  1. проверить режим ввода текста в VI, vв файлах б созданных м 1 л.р. осуществить операции редактирования текста

  2. в командном режиме в файле удалить все символы кратные трем

  3. в режиме командной строки настроить редактор, записать отредактированный заранее текст в режиме ввода текста, в файл

  4. в режиме ввода текста, сгенерировать скрипт который бы выводил на экран только отредактированные слова

  5. Написать функцию, которая бы осуществляла слияние 2 и 3 строки файла

  6. Удалить первые символы сразу из 3-х файлов

  7. написать скриптб затем оформив его функцией, которая бы стирала 5 символов справа от курсора

  8. Все стертые элементы автомавтически заносить в буфер стирания

  9. занести результаты в поименованный и неименнованый буферы

  10. написать программу обработки прерывания по CTRL D которая бы прерывала программу с выводом на экран сообщения: “программа приостановлена”

  11. Оформить программу прерывания функцией

  12. Написать программу обработки прерывания, если размер редактируемого файла превышает 100к
1   2   3   4   5



Похожие:

Лабораторная работа №7 Инсталляция Linux iconДокументы
1. /OOP/Лабораторная работа ь00-Введение.doc
2. /OOP/Лабораторная...

Лабораторная работа №7 Инсталляция Linux iconЛабораторная работа: создание мини-презентации «Памятники Кремля»
Лабораторная работа проводится в компьютерном классе, с подключением к сети Internet
Лабораторная работа №7 Инсталляция Linux iconДокументы
1. /Lab1/Лабораторная работа 1.doc
2. /Lab2/Лабораторная...

Лабораторная работа №7 Инсталляция Linux iconИ я забуду Покажи мне и я запомню, Дай мне действовать самому и я научусь. Китайская мудрость Тема: Лабораторная работа
Тема: «Лабораторная работа «Измерение работы и мощности тока в электрической лампочке»
Лабораторная работа №7 Инсталляция Linux iconДокументы
1. /Nash/lab1/Лабораторная работа ь1.doc
2. /Nash/lab10/Лабораторная...

Лабораторная работа №7 Инсталляция Linux iconЛабораторная работа №2 «Система безопасности Windows xp»
Лабораторная работа №2 «Система безопасности Windows xp» Цель работы: Изучить систему безопасности Windows xp
Лабораторная работа №7 Инсталляция Linux iconЛабораторная работа «Работа в Windows c помощью основного меню. Использование технологии ole»
Запишите размер папки, выраженный в Мб (мегабайтах) в текстовый редактор блокнот
Лабораторная работа №7 Инсталляция Linux iconЛабораторная работа «Работа с текстовыми фрагментами без помощи мыши»
Скопируйте последнее слово получившегося текста и вставьте его в начало текста один раз
Лабораторная работа №7 Инсталляция Linux iconДокументы
1. /Базовые задачи на обработку массива.doc
2. /ЗадачиНаЛиниВетвление.doc
Лабораторная работа №7 Инсталляция Linux iconДокументы
1. /laba/Лабораторная работа ь1.doc
2. /laba/Лабораторная...

Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©podelise.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы

Разработка сайта — Веб студия Адаманов