Kio kio ifs когда отключили
Перейти к содержимому

Kio kio ifs когда отключили

  • автор:

Kia Sorento пропуски под нагрузкой

Есть авто Кия Соренто 2003г 3,5л америкошка у которой происходят пропуски зажигания в шестом цилиндре в диапазоне скоростей от 80км/ч и выше независимо от оборотов двигателя и режима езды (разгон/поддержание скорости) просто моргает чек затем зажигается на постоянку, при этом чувствуется потеря мощности, но если отпустить педаль газа и снова нажать чек гаснет и авто снова нормально себя ведёт. ошибки всегда одинаковые P0300 и P0306. осциллографа нету и не будет, проверено и заменено всё начиная от воздушного фильтра и заканчивая поршневой группой. предпологаемый мной вариант решения проблемы — заказать прошивку е2+отключение регистрации мисфайров за платно но меня не пускают на форум по количеству сообщений. буду рад любой помощи и откликам, но желательно варианты померить компрессию/заменить свечи/катушки/форсунки не предлагать. отвечу на любые вопросы по исходным данным

neon-hero

ту 134 Местный житель
Регистрация: 08.03.2011 Сообщений: 54 Адрес: Волгоград
#2 ту 134, 02.09.2019 17:58
Ошибки по пропускам . Надо осциллограф
Найдите у кого есть

ту 134

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#3 neon-hero, 02.09.2019 18:00
Сообщение от ту 134: ^
Ошибки по пропускам . Надо осциллограф
Найдите у кого есть
Нажмите, чтобы раскрыть.

зачем? спросите интересующий вас параметр для дальнейшей диагностики я вам постараюсь предоставить. дело в том что эту машину даже осциллографом мучали. я четвёртый кто ей занимается и только я смог устранить ей все недочёты кроме пропуска в шестом

neon-hero

ту 134 Местный житель
Регистрация: 08.03.2011 Сообщений: 54 Адрес: Волгоград
#4 ту 134, 02.09.2019 18:10
Интересующий параметр осцилка катушки .
Есть сомнения ? Разрядник

ту 134

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#5 neon-hero, 02.09.2019 18:16
Сообщение от ту 134: ^
Интересующий параметр осцилка катушки .
Есть сомнения ? Разрядник
Нажмите, чтобы раскрыть.

первое — катушка пробивает 18мм по взодуху
второе — катушка проверена и работает с разным временем накопления и частотой разряда, пробивает почти 15мм
третье — после всего что написано выше катушка заменена на новую

З.Ы. на скоростях 80+кмч слегка неудобновато осцилку катушки снимать

Последний раз редактировалось neon-hero; 02.09.2019 в 18:26 .

neon-hero

Yaroha Вечная память
Автомобильная диагностика

Регистрация: 21.02.2006 Сообщений: 3,647 Адрес: Тамбов г.Уварово
#6 Yaroha, 02.09.2019 19:03

Надо бы еще посмотреть «баланс мощности цилиндров», «баланс производительности форсунок», противодавление системы выпуска и т.д.

Сообщение от neon-hero: ^
осциллографа нету и не будет
Нажмите, чтобы раскрыть.
Без мотор-тестера, в таких случаях практически невозможно установить неисправность.

Yaroha

ту 134 Местный житель
Регистрация: 08.03.2011 Сообщений: 54 Адрес: Волгоград
#7 ту 134, 02.09.2019 19:04

Почему не удобно ? Раз такая неисправность дикая.
Проверить есть ли управление , при каких условиях пропадает

ту 134

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#8 neon-hero, 02.09.2019 19:19

господа, я же уже написал что всё проверено и исправлено! дополнительно могу сказать что при вывешивании на подъёмнике эту неисправность поймать невозможно — только на трассе!

neon-hero

Диагностика и ремонт автомобилей

Регистрация: 21.03.2013 Сообщений: 1,787 Адрес: Ярославль
#9 кан, 02.09.2019 19:22
Сообщение от neon-hero: ^
на скоростях 80+кмч слегка неудобновато осцилку катушки снимать
Нажмите, чтобы раскрыть.
Вполне нормально,ноут на сиденье пассажира ,провода под капот и поехали.

кан

Yaroha Вечная память
Автомобильная диагностика

Регистрация: 21.02.2006 Сообщений: 3,647 Адрес: Тамбов г.Уварово
#10 Yaroha, 02.09.2019 19:25
Сообщение от neon-hero: ^
господа, я же уже написал что всё проверено и исправлено!
Нажмите, чтобы раскрыть.
Сообщение от neon-hero: ^

дополнительно могу сказать что при вывешивании на подъёмнике эту неисправность поймать невозможно — только на трассе!

Нажмите, чтобы раскрыть.

Могли бы и не вывешивать на подъемнике, нет фактора нагрузки на двигатель, просто по воздуху пожужжали колесиками.

Yaroha

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#11 neon-hero, 02.09.2019 19:33

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

Последний раз редактировалось neon-hero; 02.09.2019 в 19:34 .

neon-hero

диагностика

Регистрация: 07.04.2011 Сообщений: 7,526 Адрес: Нижний Новгород
#12 abricos33, 02.09.2019 19:55
Сообщение от neon-hero: ^
чую я без осиллограмм тут версий годных не будет.
Нажмите, чтобы раскрыть.

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

abricos33

Регистрация: 11.02.2014 Сообщений: 1,743 Адрес: Марс
#13 Петр 2015, 02.09.2019 20:16

neon-hero, До ремонта ДВС, что нибудь было с 6 цилиндром? Пропуски отключите, можно разорвать глушитель.

Петр 2015

диагностика

Регистрация: 22.05.2007 Сообщений: 3,190 Адрес: Павлоград
#14 wdwd, 02.09.2019 20:21
Сообщение от neon-hero: ^
тут версий годных не будет
Нажмите, чтобы раскрыть.
Сообщение от neon-hero: ^
что всё проверено и исправлено!
Нажмите, чтобы раскрыть.

Пробой искрового зазора 15-18мм, уж, больно скромно для ИКЗ.
Не совсем понятно зачем новую катушку (добавление неизвестных), логичней подозреваемую поменять с катушкой иного цилиндра местами.

wdwd

Регистрация: 11.02.2014 Сообщений: 1,743 Адрес: Марс
#15 Петр 2015, 02.09.2019 20:33
Распредвал надо было проверить.

Петр 2015

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#16 neon-hero, 02.09.2019 20:33
Сообщение от abricos33: ^

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

Нажмите, чтобы раскрыть.

воу воу воу! я же указал что 3,5л, что катушки, что пропуски зажигания. это ведь явные признаки недизеля

neon-hero

диагностика

Регистрация: 07.04.2011 Сообщений: 7,526 Адрес: Нижний Новгород
#17 abricos33, 02.09.2019 20:35

Петр 2015, Пётр, в данном случае, распредвал можно использовать, только как ударное устройство..по хребтине или по рукам печатающему.

abricos33

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#18 neon-hero, 02.09.2019 20:37
Сообщение от Петр 2015: ^

neon-hero, До ремонта ДВС, что нибудь было с 6 цилиндром? Пропуски отключите, можно разорвать глушитель.

Нажмите, чтобы раскрыть.

началась эпопея с замены маслосъёмных клопачков при которой было выявлено что на 6м поршне отколот кусочек юбки (без повреждения стенок цилиндра), после чего мотор перебрали но так и не смогли отстроить — жрал бенз вёдрами, не ехал, дымил итд. причину я нашёл — перепутали ряды форсунок в проводке при сборке и + заменили коннекторы на кашкаевские с тонким сечением провода (и это я тоже решил собрав жгут с нуля), глушители целые, каты выбиты, на вторых лямках стоят обманки с микрокатами

neon-hero

Авторемонт

Регистрация: 10.07.2009 Сообщений: 8,547 Адрес: Краснодар
#19 тихорчанин, 02.09.2019 20:38
Сообщение от wdwd: ^
Пробой искрового зазора 15-18мм, уж, больно скромно для ИКЗ.
Не совсем понятно зачем новую катушку
Нажмите, чтобы раскрыть.

Если очень большой зазор, есть большая вероятность выхода из строя ИКЗ и прибора, которым генерируют эту искру.

тихорчанин

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#20 neon-hero, 02.09.2019 20:39
Сообщение от wdwd: ^

Пробой искрового зазора 15-18мм, уж, больно скромно для ИКЗ.
Не совсем понятно зачем новую катушку (добавление неизвестных), логичней подозреваемую поменять с катушкой иного цилиндра местами.

Нажмите, чтобы раскрыть.

эти манипуляции производились и мной и до меня и не только с катушками но и со свечами и с форсунками и с лямбдами и со всем что стоит парно, а катушку поменяли потому что некто (не помню кто) предложил эту идею и в моё отсутствие её реализовали

neon-hero

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#21 neon-hero, 02.09.2019 20:41
Сообщение от Петр 2015: ^
Распредвал надо было проверить.
Нажмите, чтобы раскрыть.

проверено — все 4 распредвала в норме ну кроме углов кулачков — это я к сожалению проверить не могу да и валы чугунные вряд ли их свернёт незаметно

neon-hero

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#22 neon-hero, 02.09.2019 20:42
Сообщение от abricos33: ^

Петр 2015, Пётр, в данном случае, распредвал можно использовать, только как ударное устройство..по хребтине или по рукам печатающему.

Нажмите, чтобы раскрыть.

это как такой вывод напросился?

neon-hero

Регистрация: 11.02.2014 Сообщений: 1,743 Адрес: Марс
#23 Петр 2015, 02.09.2019 20:44
Сообщение от neon-hero: ^

началась эпопея с замены маслосъёмных клопачков при которой было выявлено что на 6м поршне отколот кусочек юбки (без повреждения стенок цилиндра), после чего мотор перебрали но так и не смогли отстроить — жрал бенз вёдрами, не ехал, дымил итд. причину я нашёл — перепутали ряды форсунок в проводке при сборке и + заменили коннекторы на кашкаевские с тонким сечением провода (и это я тоже решил собрав жгут с нуля), глушители целые, каты выбиты, на вторых лямках стоят обманки с микрокатами

Нажмите, чтобы раскрыть.
Может был удар по клапану, а он по кулачку распредвала и итог поврежден распредвал.

Петр 2015

диагностика

Регистрация: 07.04.2011 Сообщений: 7,526 Адрес: Нижний Новгород
#24 abricos33, 02.09.2019 20:44
Сообщение от neon-hero: ^
на вторых лямках стоят обманки с микрокатами
Нажмите, чтобы раскрыть.
потдрудитесь пояснить, что это такое? канешь к 6 цилиндру это не относится, но. «лямки» микрокаты»

abricos33

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#25 neon-hero, 02.09.2019 20:45
Сообщение от Петр 2015: ^
Может был удар по клапану, а он по кулачку распредвала и итог поврежден распредвал.
Нажмите, чтобы раскрыть.

никакого сталинграда этот движок не испытывал, отколотая юбка так и осталась загадкой ибо не найдено никаких сопутствующих повреждений

neon-hero

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#26 neon-hero, 02.09.2019 20:46
Сообщение от abricos33: ^
потдрудитесь пояснить, что это такое? канешь к 6 цилиндру это не относится, но. «лямки» микрокаты»
Нажмите, чтобы раскрыть.

окей — верхние датчики кислорода и вставки из маленьких катализаторов перед нижними датчиками, если вам так будет приятнее читать

neon-hero

диагностика

Регистрация: 07.04.2011 Сообщений: 7,526 Адрес: Нижний Новгород
#27 abricos33, 02.09.2019 20:48

Ну так что, господин, Неон, осцилка Высоковольтной части
будет? раз вы всё и вся меняли..а результата нету.

abricos33

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#28 neon-hero, 02.09.2019 20:48
Сообщение от abricos33: ^
Ну так что, господин, Неон, осцилка ЗЗ будет? раз вы всё и вся меняли..а результата нету.
Нажмите, чтобы раскрыть.

если/когда куплю осциллограф то будет

neon-hero

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#29 neon-hero, 02.09.2019 20:49
Сообщение от abricos33: ^

Ну так что, господин, Неон, осцилка Высоковольтной части
будет? раз вы всё и вся меняли..а результата нету.

Нажмите, чтобы раскрыть.

и да, попрошу без язвительных высказываний — я лично менял только то что требовало замены, в 90% случаев всё менялось не мной

neon-hero

диагностика

Регистрация: 07.04.2011 Сообщений: 7,526 Адрес: Нижний Новгород
#30 abricos33, 02.09.2019 20:50

Здрасти. под нагрузкой разве нельзя проверить свечку на катухе?
с отломленным электродом, «протроя нет при тапке в пол?

abricos33

Регистрация: 11.02.2014 Сообщений: 1,743 Адрес: Марс
#31 Петр 2015, 02.09.2019 20:51
Сообщение от neon-hero: ^

никакого сталинграда этот движок не испытывал, отколотая юбка так и осталась загадкой ибо не найдено никаких сопутствующих повреждений

Нажмите, чтобы раскрыть.

У меня на Мерседесе клиент был, тоже мотористы в начале не заметили повреждение РВ, при второй разборке только обнаружили. .

Петр 2015

Регистрация: 26.06.2014 Сообщений: 10,679 Адрес: Ярославль
#32 vento702, 02.09.2019 20:52
Я так понимаю, тема открыта для поиска прошивки с отключенной фиксацией пропусков ?

vento702

диагностика

Регистрация: 07.04.2011 Сообщений: 7,526 Адрес: Нижний Новгород
#33 abricos33, 02.09.2019 20:54
Сообщение от vento702: ^
Я так понимаю, тема открыта для поиска прошивки с отключенной фиксацией пропусков ?
Нажмите, чтобы раскрыть.
Серег, ага, я тоже так понял..»отключите» мисфайрремонтить не удалось

abricos33

диагностика

Регистрация: 07.04.2011 Сообщений: 7,526 Адрес: Нижний Новгород
#34 abricos33, 02.09.2019 20:55
И что то тмнет подсказует что это хозя авто.

abricos33

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#35 neon-hero, 02.09.2019 20:55
Сообщение от abricos33: ^

Здрасти. под нагрузкой разве нельзя проверить свечку на катухе?
с отломленным электродом, «протроя нет при тапке в пол?

Нажмите, чтобы раскрыть.

а в этом есть смысл если мы проверяем катушку, а не свечку? плохая катушка на обыкновенной свечке в камере под давлением будет плохо себя вести, к примеру, при нагреве, если её гонять задающим генератором

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

Последний раз редактировалось neon-hero; 02.09.2019 в 21:10 .

neon-hero

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#36 neon-hero, 02.09.2019 20:56
Сообщение от abricos33: ^
И что то тмнет подсказует что это хозя авто.
Нажмите, чтобы раскрыть.

не дай бог, ты что такое говоришь. я такое ведро бы не взял 180 коней на 3,5л и 2+ тонны веса

neon-hero

диагностика

Регистрация: 07.04.2011 Сообщений: 7,526 Адрес: Нижний Новгород
#37 abricos33, 02.09.2019 20:57
А хде прошивка то? мисфайр то отключить?

abricos33

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#38 neon-hero, 02.09.2019 20:57
Сообщение от vento702: ^
Я так понимаю, тема открыта для поиска прошивки с отключенной фиксацией пропусков ?
Нажмите, чтобы раскрыть.

если тут откликнется человек готовый это сделать незабесплатно я готов даже предоставить дамп ктага от этой машины

neon-hero

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#39 neon-hero, 02.09.2019 20:58
Сообщение от Петр 2015: ^

У меня на Мерседесе клиент был, тоже мотористы в начале не заметили повреждение РВ, при второй разборке только обнаружили. .

Нажмите, чтобы раскрыть.

я всё самостоятельно проверял, тем более я ранее был мотористом

neon-hero

Регистрация: 11.02.2014 Сообщений: 1,743 Адрес: Марс
#40 Петр 2015, 02.09.2019 21:00
Сообщение от neon-hero: ^
я всё самостоятельно проверял, тем более я ранее был мотористом
Нажмите, чтобы раскрыть.
Я вам верю,у меня больше нет мыслей. Желаю удачи.

Петр 2015

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#41 neon-hero, 02.09.2019 21:08

кстати буду признателен если мне кто расскажет каким образом определяется именно шестой цилиндр учитывая что задающий диск кв и рв не зубчатые а со шторками при этом дпрв на весь мотор один и дд на вес мотор тоже один, есть конечно датчик IFS (ignition failure sensor) но при его исключении из системы зажигания валится тахометр а пропуски продолжают определяться

neon-hero

диагностика

Регистрация: 07.04.2011 Сообщений: 7,526 Адрес: Нижний Новгород
#42 abricos33, 02.09.2019 21:09
Сообщение от neon-hero: ^
я готов даже предоставить дамп ктага от этой машины
Нажмите, чтобы раскрыть.
Мы не готовы..чините авту..

abricos33

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#43 neon-hero, 02.09.2019 21:15
Сообщение от abricos33: ^
Мы не готовы..чините авту..
Нажмите, чтобы раскрыть.

вот так вот — говоришь вот вам деньги возьмите, а они отказываются

neon-hero

диагностика

Регистрация: 07.04.2011 Сообщений: 7,526 Адрес: Нижний Новгород
#44 abricos33, 02.09.2019 21:24

neon-hero, Пластилином замазывать крыши. как то не кошерно..я вам даю совет..найти все же в чем проблема..а не замазывать неисправность в маске.

abricos33

neon-hero Местный житель
Регистрация: 02.09.2019 Сообщений: 44 Адрес: Москва
#45 neon-hero, 02.09.2019 21:29
Сообщение от abricos33: ^

neon-hero, Пластилином замазывать крыши. как то не кошерно..я вам даю совет..найти все же в чем проблема..а не замазывать неисправность в маске.

Нажмите, чтобы раскрыть.

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

Добавлено через 1 минуту

прошивка будет явно стоить дешевле чем постолограф (а на меньшее я не согласен) — либо хорошо, либо никак!

Добавлено через 4 минуты

тут ещё есть такой немаловажный момент — при езде эти пропуски вообще никак не ощущаются вплоть до отключения цилиндра при зажигании чека, даже при его моргании машина едет шо дурная, поэтому я крайне заинтересован в причине такого поведения и его устранении, я грубо говоря взялся за эту машину только потому что за полгода НИКТО не смог ничего с ней сделать

Операционные системы: лабораторные работы

Обложка книги Операционные системы: лабораторные работы

Данное учебное пособие рекомендуется для проведения лабораторных работ по курсу «Операционные системы» для направлений 02.03.02 «Фундаментальная информатика и информационные технологии», 02.03.01 «Математика и компьютерные науки», 38.03.05 «Бизнес-информатика», 01.03.02 «Прикладная математика и информатика», 09.03.03 «Прикладная информатика».

Издательство:

Российский университет дружбы народов

5209076261

9785209076261

PDF, 1.40 MB

QmfFhmjQW5BvvL3REq2f5KKE44SwvUTJNCc9rLvWWhCKK2

IPFS CID blake2b:

bafykbzaceaj2m6ytskth5ffepnrdvaw4xp4vc3wiecqazzeqpd2j7pfyhvozq

russian, 2016

Начните свое путешествие в мир знаний! Ознакомьтесь с Предпросмотром и откройте другие возможности

Ключевые слова

Связанные Подборки

Chess: East and West, Past and Present

PDF, 15.03 MB

Houses of Ill Repute: The Archaeology of Brothels, Houses, and Taverns in the Greek World

PDF, 24.19 MB

english, 2016

РОССИЙСКИЙ УНИВЕРСИТЕТ ДРУЖБЫ НАРОДОВ Факультет физико-математических и естественных наук Операционные системы Лабораторные работы Учебное пособие Москва Российский университета дружбы народов 2016 УДК 004.051 (075.8) ББК 018.2*32.973 О 60 Утверждено РИС Учёного совета Российского университета дружбы народов Рецензенты: доцент, кандидат физико-математических наук, зав. сектором телекоммуникаций УИТОиСТС РУДН, Ловецкий К. П., доцент, кандидат физико-математических наук, с.н.с. ЛИТ ОИЯИ Стрельцова О. И. О-60 Авторский коллектив: Д. С. Кулябов, М. Н. Геворкян, А. В. Королькова, А. В. Демидова. Операционные системы: лабораторные работы : учебное пособие / Д. С. Кулябов, М. Н. Геворкян, А. В. Королькова, А. В. Демидова. — Москва : РУДН, 2016. — 117 с. : ил. Данное учебное пособие рекомендуется для проведения лабораторных работ по курсу «Операционные системы» для направлений 02.03.02 «Фундаментальная информатика и информационные технологии», 02.03.01 «Математика и компьютерные науки», 38.03.05 «Бизнес-информатика», 01.03.02 «Прикладная математика и информатика», 09.03.03 «Прикладная информатика». УДК 004.451(075.8) ББК 018.2*32.973 ISBN 978-5-209-07626-1 © Кулябов Д. С., Геворкян М. Н., Королькова А. В., Демидова А. В., 2016 © Российский университет дружбы народов, 2016 3 Оглавление Лабораторная работа № 1. Знакомство с операционной системой Linux . 1.1. Цель работы . . . . . . . . . . . . . . . . . . . 1.2. Многопользовательская модель разграничения доступа операционной системы . . . . . . . . . . . . . . . . . . . . . . . 1.3. Виртуальные консоли . . . . . . . . . . . . . . . . 1.4. Конфигурирование основных тулкитов (инструментария) операционной системы . . . . . . . . . . . . . . . . . . . . . 1.5. Последовательность выполнения работы . . . . . . . . . . 1.6. Содержание отчёта . . . . . . . . . . . . . . . . . 1.7. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 2. Основы интерфейса взаимодействия пользователя с системой Unix на уровне командной строки . . . . . . . 2.; 1. Цель работы . . . . . . . . . . . . . . . . . . . 2.2. Указания к работе . . . . . . . . . . . . . . . . . . 2.3. Последовательность выполнения работы . . . . . . . . . . 2.4. Содержание отчёта . . . . . . . . . . . . . . . . . 2.5. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 3. Анализ файловой системы Linux. Команды для работы с файлами и каталогами . . . . . . . . . . . . . 3.1. Цель работы . . . . . . . . . . . . . . . . . . . 3.2. Указания к работе . . . . . . . . . . . . . . . . . . 3.3. Последовательность выполнения работы . . . . . . . . . . 3.4. Содержание отчёта . . . . . . . . . . . . . . . . . 3.5. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 4. Поиск файлов. Перенаправление вводавывода. Просмотр запущенных процессов . . . . . . . . . . . 4.1. Цель работы . . . . . . . . . . . . . . . . . . . 4.2. Указания к работе . . . . . . . . . . . . . . . . . . 4.3. Последовательность выполнения работы . . . . . . . . . . 4.4. Содержание отчёта . . . . . . . . . . . . . . . . . 4.5. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 5. Командная оболочка Midnight Commander . 5.1. Цель работы . . . . . . . . . . . . . . . . . . . 5.2. Указания к работе . . . . . . . . . . . . . . . . . . 5.3. Последовательность выполнения работы . . . . . . . . . . 5.4. Содержание отчёта . . . . . . . . . . . . . . . . . 5.5. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 6. Текстовой редактор vi . . . . . . . . 6.1. Цель работы . . . . . . . . . . . . . . . . . . . 6.2. Указания к работе . . . . . . . . . . . . . . . . . . 6.3. Последовательность выполнения работы . . . . . . . . . . 6.4. Содержание отчёта . . . . . . . . . . . . . . . . . 6.5. Контрольные вопросы . . . . . . . . . . . . . . . . 6 6 6 7 8 10 11 11 12 12 12 17 17 18 19 19 19 24 25 25 26 26 26 29 29 29 30 30 30 38 39 39 40 40 40 43 44 44 4 Оглавление Лабораторная работа № 7. Текстовой редактор emacs . . . . . . . 7.1. Цель работы . . . . . . . . . . . . . . . . . . . 7.2. Указания к работе . . . . . . . . . . . . . . . . . . 7.3. Последовательность выполнения работы . . . . . . . . . . 7.4. Содержание отчёта . . . . . . . . . . . . . . . . . 7.5. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 8. Программирование в командном процессоре ОС UNIX. Командные файлы . . . . . . . . . . . . . . . 8.1. Цель работы . . . . . . . . . . . . . . . . . . . 8.2. Указания к лабораторной работе . . . . . . . . . . . . . 8.3. Последовательность выполнения работы . . . . . . . . . . 8.4. Содержание отчёта . . . . . . . . . . . . . . . . . 8.5. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 9. Программирование в командном процессоре ОС UNIX. Ветвления и циклы . . . . . . . . . . . . . . . 9.1. Цель работы . . . . . . . . . . . . . . . . . . . 9.2. Последовательность выполнения работы . . . . . . . . . . 9.3. Содержание отчёта . . . . . . . . . . . . . . . . . 9.4. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 10. Программирование в командном процессоре ОС UNIX. Расширенное программирование . . . . . . . . . 10.1. Цель работы . . . . . . . . . . . . . . . . . . . 10.2. Последовательность выполнения работы . . . . . . . . . . 10.3. Содержание отчёта . . . . . . . . . . . . . . . . . 10.4. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 11. Средства, применяемые при разработке программного обеспечения в ОС типа UNIX/Linux . . . . . . . . 11.1. Цель работы . . . . . . . . . . . . . . . . . . . 11.2. Указания к лабораторной работе . . . . . . . . . . . . . 11.3. Последовательность выполнения работы . . . . . . . . . . 11.4. Содержание отчёта . . . . . . . . . . . . . . . . . 11.5. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 12. Управление версиями . . . . . . . . 12.1. Цель работы . . . . . . . . . . . . . . . . . . . 12.2. Системы контроля версий. Общие понятия . . . . . . . . . 12.3. Указания к лабораторной работе . . . . . . . . . . . . . 12.4. Последовательность выполнения работы . . . . . . . . . . 12.5. Содержание отчёта . . . . . . . . . . . . . . . . . 12.6. Контрольные вопросы . . . . . . . . . . . . . . . . Лабораторная работа № 13. Именованные каналы . . . . . . . . 13.1. Цель работы . . . . . . . . . . . . . . . . . . . 13.2. Указания к работе . . . . . . . . . . . . . . . . . 13.3. Пример программы . . . . . . . . . . . . . . . . . 13.4. Последовательность выполнения работы . . . . . . . . . . 13.5. Содержание отчёта . . . . . . . . . . . . . . . . . 13.6. Контрольные вопросы . . . . . . . . . . . . . . . . 46 46 46 50 52 52 53 53 53 65 66 66 67 67 67 67 68 69 69 69 69 69 71 71 71 75 79 79 80 80 80 81 84 84 84 85 85 85 86 89 89 89 5 Кулябов Д. С. и др. Операционные системы Лабораторная работа № 14. Очереди сообщений 14.1. Цель работы . . . . . . . . . . . 14.2. Указания к работе . . . . . . . . . 14.3. Пример программы . . . . . . . . . 14.4. Последовательность выполнения работы . . 14.5. Содержание отчёта . . . . . . . . . 14.6. Контрольные вопросы . . . . . . . . Лабораторная работа № 15. Сокеты . . . . . 15.1. Цель работы . . . . . . . . . . . 15.2. Указания к работе . . . . . . . . . 15.3. Пример программы . . . . . . . . . 15.4. Последовательность выполнения работы . . 15.5. Содержание отчёта . . . . . . . . . 15.6. Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Учебно-методический комплекс Программа дисциплины . . . . . . . . . . . . . . Цели и задачи дисциплины . . . . . . . . . . . . . . Место дисциплины в структуре ООП . . . . . . . . . . Требования к результатам освоения дисциплины . . . . . . . Объем дисциплины и виды учебной работы . . . . . . . . Содержание дисциплины . . . . . . . . . . . . . . Лабораторный практикум . . . . . . . . . . . . . . Методические рекомендации по организации изучения дисциплины. Учебно-методическое и информационное обеспечение дисциплины . Календарный план . . . . . . . . . . . . . . . . Сведения об авторах . . . . . . . . . . . . . . . 90 90 90 92 95 95 96 97 97 97 101 106 106 106 107 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 109 109 109 110 110 112 112 115 116 117 6 Лабораторная работа № 1. Знакомство с операционной системой Linux 1.1. Цель работы Познакомиться с операционной системой Linux, получить практические навыки работы с консолью и некоторыми графическими менеджерами рабочих столов операционной системы. 1.2. Многопользовательская модель разграничения доступа операционной системы Linux — многопользовательская операционная система, т.е. несколько пользователей могут работать с ней одновременно с помощью терминалов. Определение 1. Компьютерный терминал — устройство ввода–вывода, основные функции которого заключаются в вводе и отображении данных. Определение 2. Текстовый терминал (терминал, текстовая консоль) — интерфейс компьютера для последовательной передачи данных. Загрузка системы завершается выводом на экран приглашения пользователя к регистрации «login:». После этого система запросит пароль (password), соответствующий введенному имени, выдав специальное приглашение — обычно «Password:». hostname login: username Password: Процедура регистрации в системе обязательна для Linux. Каждый пользователь операционный системы имеет определенные ограничения на возможные с его стороны действия: чтение, изменение, запуск файлов, а также на ресурсы: пространство на файловой системе, процессорное время для выполнение текущих задач (процессов). При этом действия одного пользователя не влияют на работу другого. Такая модель разграничения доступа к ресурсам операционной системы получила название многопользовательской. В многопользовательской модели пользователи делятся на пользователей с обычными правами и администраторов. Пользователь с обычными правами может производить действия с элементами операционной системы только в рамках выделенного ему пространства и ресурсов, не влияя на жизнеспособность самой операционной системы и работу других пользователей. Полномочия же пользователей с административными правами обычно не ограничены. Для каждого пользователя организуется домашний каталог, где хранятся его данные и настройки рабочей среды. Доступ других пользователей с обычными правами к этому каталогу ограничивается. Определение 3. Учётная запись пользователя (user account) — идентификатор пользователя, на основе которого ему назначаются права на действия в операционной системе. Учётная запись пользователя содержит: – входное имя пользователя (Login Name); – пароль (Password); – внутренний идентификатор пользователя (User ID); Кулябов Д. С. и др. Операционные системы – – – – 7 идентификатор группы (Group ID); анкетные данные пользователя (General Information); домашний каталог (Home Dir); указатель на программную оболочку (Shell). Определение 4. Входное имя пользователя (Login) — название учётной записи пользователя. Входному имени пользователя ставится в соответствие внутренний идентификатор пользователя в системе (User ID, UID) — положительное целое число в диапазоне от 0 до 65535, по которому в системе однозначно отслеживаются действия пользователя. Пользователю может быть назначена определенная группа для доступа к некоторым ресурсам, разграничения прав доступа к различным файлам и директориям. Каждая группа пользователей в операционной системе имеет свой идентификатор — Group ID (GID). Анкетные данные пользователя (General Information или GECOS) являются необязательным параметром учётной записи и могут содержать реальное имя пользователя (фамилию, имя), адрес, телефон. В домашнем каталоге пользователя хранятся данные (файлы) пользователя, настройки рабочего стола и других приложений. Содержимое домашнего каталога обычно не доступно другим пользователям с обычными правами и не влияет на работу и настройки рабочей среды других пользователей. Учётная запись пользователя с UID=0 называется root и присутствует в любой системе типа Linux. Пользователь root имеет права администратора и может выполнять любые действия в системе. Работать под учетной записью root следует только тогда, когда это действительно необходимо: при настройке и обновлении системы, восстановлении после сбоев. Учётные записи пользователей хранятся в файле /etc/passwd, который имеет следующую структуру: login:password:UID:GID:GECOS:home:shell Например, учётные записи пользователей root и ivan в файле /etc/passwd могут быть записаны следующим образом: root:x:0:0:root:/root:/bin/bash ivan:x:1000:100::/home/ivan:/bin/bash Замечание 1. Изначально поле пароля содержало хеш пароля и использовалось для аутентификации. Однако из соображений безопасности все пароли были перенесены в специальный файл /etc/shadow, недоступный для чтения обычным пользователям. Поэтому в файле /etc/passwd поле password имеет значение x. Замечание 2. Символ * в поле password некоторой учётной записи в файле /etc/passwd означает, что пользователь не сможет войти в систему. 1.3. Виртуальные консоли Определение 5. Виртуальные консоли — реализация концепции многотерминальной работы в рамках одного устройства. В операционных системах типа Linux доступно обычно 6 виртуальных консолей, работающих в текстовом режиме. Переключение между консолями осуществляется при помощи сочетания клавиши Alt с одной из функциональных клавиш 8 Лабораторная работа № 1. Знакомство с операционной системой Linux ( F1 – F6 ). Виртуальные консоли при обращении к ним из командной строки обозначаются ttyN, где N — номер виртуальной консоли. Для перехода из текстового режима в графический необходимо нажать комбинацию клавиш Ctrl + Alt + F7 . Для переключения из графического режима в одну из текстовых виртуальных консолей достаточно нажать комбинацию клавиш Ctrl + Alt + Fn , где n — номер необходимой виртуальной консоли. Процедура регистрации в графическом режиме аналогична регистрации в текстовом режиме. Если пользователь входит в систему несколько раз под одним и тем же именем (на разных виртуальных консолях), то ему будут доступны несколько разных сеансов работы, не связанных между собой. Для корректного завершения своей работы в системе пользователь должен выйти из системы. Чтобы завершить работу в виртуальной консоли, пользователю необходимо в соответствующей командной строке набрать команду logout или воспользоваться комбинацией клавиш Ctrl + D . При этом работа самой операционной системы не прекращается. Определение 6. Весь процесс взаимодействия пользователя с системой с момента регистрации до выхода называется сеансом работы. 1.4. Конфигурирование основных тулкитов (инструментария) операционной системы Определение 7. Toolkit (Tk, «набор инструментов», «инструментарий»)— кроссплатформенная библиотека базовых элементов графического интерфейса, распространяемая с открытыми исходными текстами. Используются следующие основные тулкиты: – GTK+ (сокращение от GIMP Toolkit) — кроссплатформенная библиотека элементов интерфейса; – Qt — кросс-платформенный инструментарий разработки программного обеспечения на языке программирования C++. GTK+ состоит из двух компонентов: – GTK — содержит набор элементов пользовательского интерфейса (таких, как кнопка, список, поле для ввода текста и т. п.) для различных задач; – GDK — отвечает за вывод информации на экран, может использовать для этого X Window System, Linux Framebuffer, WinAPI. На основе GTK+ построены рабочие окружения GNOME, LXDE и Xfce. Естественно, эти тулкиты могут использоваться и за пределами «родных» десктопных окружений. Qt используется в среде KDE (Kool Desktop Environment). 1.4.1. Выбор графической среды при логине На компьютерах с операционной системой типа Linux может быть установлено несколько графических сред. После загрузки компьютера появится менеджер дисплея (рис. 1.1). Кратко опишем некоторые из доступных графических сред. Кулябов Д. С. и др. Операционные системы 9 Рис. 1.1. Менеджер дисплеев. Красной стрелкой обозначен выпадающий список, позволяющий выбрать графическую среду для загрузки 1.4.2. Среда Xfce Рабочая среда Xfce легковесна, построена по модульному принципу и позволяет гибко настраивать рабочее пространство пользователя. Xfce основана на GTK+ версии 2 и использует менеджер окон Xfwm. Начиная с версии 4.6, настройки рабочей среды хранятся в реестре xfconf. Элементы Xfce: – файловый менеджер Thunar; – менеджер окон Xfwm; – панель задач xfce4-panel; – менеджер рабочего стола xfdesktop; – менеджер сеансов xfce4-session; – диспетчер настроек xfce4-settings; – система хранения настроек xfconf; – поиск приложений xfce4-appfinder; – эмулятор терминала xfce4-terminal; – менеджер питания xfce4-power-manager. 1.4.3. Среда GNOME Для хранения системных настроек среды GNOME, начиная с версии 3.0, используется фреймворк GSettings, основанный на формате файлов dconf. Для настройки рабочего пространства GNOME используется утилита gnome-control-center. Это своеобразный центр управления, позволяющий установить параметры среды, оформление, произвести настройки разных программ. Следует заметить, что установки оформления будут действовать только в рамках самой среды GNOME, и если вы желаете использовать GTK-приложения в рамках других сред, следует провести конфигурирование GTK отдельно. Некоторые элементы GNOME: – файловый менеджер Nautilus; – эмулятор терминала GNOME Terminal; – текстовый редактор gedit; 10 – – – – Лабораторная работа № 1. Знакомство с операционной системой Linux приложение для просмотра документации Yelp; стандартный веб-браузер Web (ранее — Epiphany); приложение для управления электронной почтой Evolution; комплект графических средств для администрирования GNOME System Tools. 1.4.4. Среда KDE Для конфигурирования данной среды следует использовать утилиту: systemsettings5 – – – – – – – Некоторые элементы KDE: базовые библиотеки KDELibs; компонент для просмотра HTML документов KHTML; компонент, обеспечивающий доступ к файлам KIO; оконный менеджер KWin; рабочий стол и основные приложения kdebase; инструменты графического администрирования kdeadmin; утилиты kdeutils. 1.5. Последовательность выполнения работы Замечание. Скриншоты можно сделать с помощью команды import screen.png. После ввода этой команды курсор мыши превратится в перекрестие, которым можно выделить желаемую область экрана для сохранения в файл screen.png. Не забывайте каждый раз изменять название файла при создании нескольких снимков экрана. 1. Ознакомиться с теоретическим материалом. 2. Загрузить компьютер. 3. Перейти на текстовую консоль. Сколько текстовых консолей доступно на вашем компьютере? 4. Перемещаться между текстовыми консолями. Какие комбинации клавиш необходимо при этом нажимать? 5. Зарегистрироваться в текстовой консоли операционной системы. Какой логин вы при этом использовали? Какие символы отображаются при вводе пароля? 6. Завершить консольный сеанс. Какую команду или комбинацию клавиш необходимо для этого использовать? 7. Переключиться на графический интерфейс. Какую комбинацию клавиш для этого необходимо нажать? 8. Ознакомиться с менеджером рабочих столов. Как называется менеджер, запускаемый по умолчанию? 9. Поочерёдно зарегистрироваться в разных графических менеджерах рабочих столов (GNOME, KDE, XFCE) и оконных менеджерах (Openbox). Продемонстрировать разницу между ними, сделав снимки экрана (скриншоты). Какие графические менеджеры установлены на вашем компьютере? 10. Изучить список установленных программ. Обратить внимание на предпочтительные программы для разных применений. Запустите поочерёдно браузер, текстовой редактор, текстовой процессор, эмулятор консоли. Укажите названия программ. Кулябов Д. С. и др. Операционные системы 11 1.6. Содержание отчёта 1. Титульный лист с указанием номера лабораторной работы и ФИО студента. 2. Формулировка цели работы. 3. Описание результатов выполнения задания: – скриншоты (снимки экрана), фиксирующие выполнение лабораторной работы; – листинги (исходный код) программ (если они есть); – результаты выполнения программ (текст или снимок экрана в зависимости от задания). 4. Выводы, согласованные с целью работы. 5. Ответы на контрольные вопросы. 1.7. Контрольные вопросы 1. Что такое компьютерный терминал? Есть ли, по вашему мнению, у него преимущества перед графическим интерфейсом? 2. Что такое входное имя пользователя? 3. В каком файле хранятся пароли пользователей? В каком виде они хранятся? 4. Где хранятся настройки пользовательских программ? 5. Какое входное имя у администратора ОС Unix? 6. Имеет ли администратор доступ к настройкам пользователей? 7. Каковы основные характеристики многопользовательской модели разграничения доступа? 8. Какую информацию кроме пароля и логина содержит учётная запись пользователя? 9. Что такое UID и GID? Расшифруйте эти аббревиатуры. 10. Что такое GECOS? 11. Что такое домашний каталог? Какие файлы хранятся в нем? 12. Как называется ваш домашний каталог? 13. Имеет ли администратор возможность изменить содержимое домашнего каталога пользователя? 14. Что хранится в файле /etc/passwd? 15. Как, просмотрев содержимое файла /etc/passwd, узнать, какие пользователи не смогут войти в систему? 16. Что такое виртуальные консоли? Как вы думаете, что означает слово «виртуальный» в данном контексте? 17. Зачем нужна программа getty? 18. Что такое сеанс работы? 19. Что такое тулкит? 20. Какие основные тулкиты существуют в системе Unix? 12 Лабораторная работа № 2. Основы интерфейса взаимодействия пользователя с системой Unix на уровне командной строки 2.1. Цель работы Приобретение практических навыков взаимодействия пользователя с системой посредством командной строки. 2.2. Указания к работе В операционной системе типа Linux взаимодействие пользователя с системой обычно осуществляется с помощью командной строки посредством построчного ввода команд. При этом обычно используется командные интерпретаторы языка shell: /bin/sh; /bin/csh; /bin/ksh. Формат команды. Командой в операционной системе называется записанный по специальным правилам текст (возможно с аргументами), представляющий собой указание на выполнение какой-либо функций (или действий) в операционной системе. Обычно первым словом идёт имя команды, остальной текст — аргументы или опции, конкретизирующие действие. Общий формат команд можно представить следующим образом:  Команда man. Команда man используется для просмотра (оперативная помощь) в диалоговом режиме руководства (manual) по основным командам операционной системы типа Linux. Формат команды: man Пример (вывод информации о команде man): man man Для управления просмотром результата выполнения команды man можно использовать следующие клавиши: – Space — перемещение по документу на одну страницу вперёд; – Enter — перемещение по документу на одну строку вперёд; – q — выход из режима просмотра описания. Команда cd. Команда cd используется для перемещения по файловой системе операционной системы типа Linux. Замечание 3. Файловая система ОС типа Linux — иерархическая система каталогов, подкаталогов и файлов, которые обычно организованы и сгруппированы по функциональному признаку. Самый верхний каталог в иерархии называется корневым и обозначается символом /. Корневой каталог содержит системные файлы и другие каталоги. Формат команды: cd [путь_к_каталогу] 13 Кулябов Д. С. и др. Операционные системы Для перехода в домашний каталог пользователя следует использовать команду cd без параметров или cd ~. Например, команда cd /afs/dk.sci.pfu.edu.ru/home позволяет перейти в каталог /afs/dk.sci.pfu.edu.ru/home (если такой суще- ствует), а для того, чтобы подняться выше на одну директорию, следует использовать: cd .. Подробнее об опциях команды cd смотри в справке с помощью команды man: man cd Команда pwd. Для определения абсолютного пути к текущему каталогу используется команда pwd (print working directory). Пример (абсолютное имя текущего каталога пользователя dharma): pwd результат: /afs/dk.sci.pfu.edu.ru/home/d/h/dharma Сокращения имён файлов. В работе с командами, в качестве аргументов которых выступает путь к какому-либо каталогу или файлу, можно использовать сокращённую запись пути. Символы сокращения приведены в табл. 2.1. Таблица 2.1 Символы сокращения имён файлов Символ ~ . .. Значение Домашний каталог Текущий каталог Родительский каталог Например, в команде cd для перемещения по файловой системе сокращённую запись пути можно использовать следующим образом (команды чередуются с выводом результата выполнения команды pwd): pwd /afs/dk.sci.pfu.edu.ru/home/d/h/dharma cd .. pwd /afs/dk.sci.pfu.edu.ru/home/d/h cd ../.. pwd /afs/dk.sci.pfu.edu.ru/home cd ~/work pwd 14 Лабораторная работа № 2. Основы интерфейса взаимодействия пользователя с … /afs/dk.sci.pfu.edu.ru/home/d/h/dharma/work Команда ls. Команда ls используется для просмотра содержимого каталога. Формат команды: ls [-опции] [путь] Пример: cd cd .. pwd /afs/dk.sci.pfu.edu.ru/home/d/h ls dharma Некоторые файлы в операционной системе скрыты от просмотра и обычно используются для настройки рабочей среды. Имена таких файлов начинаются с точки. Для того, чтобы отобразить имена скрытых файлов, необходимо использовать команду ls с опцией a: ls -a Можно также получить информацию о типах файлов (каталог, исполняемый файл, ссылка), для чего используется опция F. При использовании этой опции в поле имени выводится символ, который определяет тип файла (см. табл. 2.2) Таблица 2.2 Символ, который определяет тип файла Тип файла Каталог Исполняемый файл Ссылка Символ / * @ Чтобы вывести на экран подробную информацию о файлах и каталогах, необходимо использовать опцию l. При этом о каждом файле и каталоге будет выведена следующая информация: – тип файла, – право доступа, – число ссылок, – владелец, – размер, – дата последней ревизии, – имя файла или каталога. Пример: cd / ls Результат: bin opt boot proc dev etc home lib media root sbin sys tmp usr В этом же каталоге команда mnt var 15 Кулябов Д. С. и др. Операционные системы ls -alF даст примерно следующий результат: drwxr-xr-x 21 root root 4096 Jan. drwxr-xr-x 21 root root 4096 Jan. drwxr-xr-x 2 root root 4096 Jan. drwxr-xr-x 2 root root 4096 Apr. drwxr-xr-x 20 root root 14120 Feb. drwxr-xr-x 170 root root 12288 Feb. drwxr-xr-x 6 root root 4096 Aug. lrwxrwxrwx 1 root root 5 Jan. drwxr-xr-x 8 root root 4096 Jan. drwxr-xr-x 5 root root 4096 Jan. drwxr-xr-x 25 root root 4096 Jan. dr-xr-xr-x 163 root root 0 Feb. drwxr-xr-x 31 root root 4096 Feb. drwxr-xr-x 2 root root 12288 Jan. drwxr-xr-x 12 root root 0 Feb. drwxrwxrwt 12 root root 500 Feb. drwxr-xr-x 22 root root 4096 Jan. drwxr-xr-x 17 root root 4096 Jan. 17 17 18 14 17 17 5 12 30 17 16 17 15 18 17 17 18 14 09:00 ./ 09:00 ../ 15:57 bin/ 2008 boot/ 10:48 dev/ 09:19 etc/ 2009 home/ 22:01 lib -> lib64/ 21:41 media/ 2010 mnt/ 09:55 opt/ 13:17 proc/ 23:57 root/ 15:57 sbin/ 13:17 sys/ 16:35 tmp/ 09:26 usr/ 17:38 var/ Команда mkdir. Команда mkdir используется для создания каталогов. Формат команды: mkdir имя_каталога1 [имя_каталога2. ] Пример создания каталога в текущем каталоге: cd pwd /afs/dk.sci.pfu.edu.ru/home/d/h/dharma ls Desktop GNUstep public public_html tmp work mkdir abc ls abc Desktop GNUstep public public_html tmp work Замечание 4. Для того чтобы создать каталог в определённом месте файловой системы, должны быть правильно установлены права доступа. Можно создать также подкаталог в существующем подкаталоге: mkdir parentdir mkdir parentdir/dir При задании нескольких аргументов создаётся несколько каталогов: cd parentdir mkdir dir1 dir2 dir3 Можно использовать группировку: mkdir parentdir/ Если же требуется создать подкаталог в каталоге, отличном от текущего, то путь к нему требуется указать в явном виде: mkdir ../dir1/dir2 или 16 Лабораторная работа № 2. Основы интерфейса взаимодействия пользователя с … mkdir ~/dir1/dir2 Интересны следующие опции: --mode (или -m) — установка атрибутов доступа; --parents (или -p) — создание каталога вместе с родительскими по отношению к нему каталогами. Атрибуты задаются в численной или символьной нотации: mkdir --mode=777 dir или mkdir -m a+rwx dir Опция --parents (краткая форма -p) позволяет создавать иерархическую це- почку подкаталогов, создавая все промежуточные каталоги: mkdir -p ~/dir1/dir2/dir3 Команда rm. Команда rm используется для удаления файлов и/или каталогов. Формат команды: rm [-опции] [файл] Если требуется, чтобы выдавался запрос подтверждения на удаление файла, то необходимо использовать опцию i. Чтобы удалить каталог, содержащий файлы, нужно использовать опцию r. Без указания этой опции команда не будет выполняться. Пример: cd mkdir abs rm abc rm: abc is a directory rm -r abc Если каталог пуст, то можно воспользоваться командой rmdir. Если удаляемый каталог содержит файлы, то команда не будет выполнена — нужно использовать rm -r имя_каталога. Команда history. Для вывода на экран списка ранее выполненных команд используется команда history. Выводимые на экран команды в списке нумеруются. К любой команде из выведенного на экран списка можно обратиться по её номеру в списке, воспользовавшись конструкцией !. Пример: history 1 pwd 2 ls 3 ls -a 4 ls -l 5 cd / 6 history !5 cd / Можно модифицировать команду из выведенного на экран списка при помощи следующей конструкции: !:s// Пример: Кулябов Д. С. и др. Операционные системы 17 !3:s/a/F ls -F Замечание 5. Если в заданном контексте встречаются специальные символы (типа «.», «/», «*» и т.д.), надо перед ними поставить символ экранирования \ (обратный слэш). Использование символа «;». Если требуется выполнить последовательно несколько команд, записанный в одной строке, то для этого используется символ точка с запятой Пример: cd; ls 2.3. Последовательность выполнения работы 1. Определите полное имя вашего домашнего каталога. Далее относительно этого каталога будут выполняться последующие упражнения. 2. Выполните следующие действия: 2.1. Перейдите в каталог /tmp. 2.2. Выведите на экран содержимое каталога /tmp. Для этого используйте команду ls с различными опциями. Поясните разницу в выводимой на экран информации. 2.3. Определите, есть ли в каталоге /var/spool подкаталог с именем cron? 2.4. Перейдите в Ваш домашний каталог и выведите на экран его содержимое. Определите, кто является владельцем файлов и подкаталогов? 3. Выполните следующие действия: 3.1. В домашнем каталоге создайте новый каталог с именем newdir. 3.2. В каталоге ~/newdir создайте новый каталог с именем morefun. 3.3. В домашнем каталоге создайте одной командой три новых каталога с именами letters, memos, misk. Затем удалите эти каталоги одной командой. 3.4. Попробуйте удалить ранее созданный каталог ~/newdir командой rm. Проверьте, был ли каталог удалён. 3.5. Удалите каталог ~/newdir/morefun из домашнего каталога. Проверьте, был ли каталог удалён. 4. С помощью команды man определите, какую опцию команды ls нужно использовать для просмотра содержимое не только указанного каталога, но и подкаталогов, входящих в него. 5. С помощью команды man определите набор опций команды ls, позволяющий отсортировать по времени последнего изменения выводимый список содержимого каталога с развёрнутым описанием файлов. 6. Используйте команду man для просмотра описания следующих команд: cd, pwd, mkdir, rmdir, rm. Поясните основные опции этих команд. 7. Используя информацию, полученную при помощи команды history, выполните модификацию и исполнение нескольких команд из буфера команд. 2.4. Содержание отчёта 1. Титульный лист с указанием номера лабораторной работы и ФИО студента. 2. Формулировка цели работы. 3. Описание результатов выполнения задания: 18 Лабораторная работа № 2. Основы интерфейса взаимодействия пользователя с … – скриншоты (снимки экрана), фиксирующие выполнение лабораторной работы; – листинги (исходный код) программ (если они есть); – результаты выполнения программ (текст или снимок экрана в зависимости от задания). 4. Выводы, согласованные с целью работы. 5. Ответы на контрольные вопросы. 2.5. Контрольные вопросы 1. Что такое командная строка? 2. При помощи какой команды можно определить абсолютный путь текущего каталога? Приведите пример. 3. При помощи какой команды и каких опций можно определить только тип файлов и их имена в текущем каталоге? Приведите примеры. 4. Каким образом отобразить информацию о скрытых файлах? Приведите примеры. 5. При помощи каких команд можно удалить файл и каталог? Можно ли это сделать одной и той же командой? Приведите примеры. 6. Каким образом можно вывести информацию о последних выполненных пользователем командах? работы? 7. Как воспользоваться историей команд для их модифицированного выполнения? Приведите примеры. 8. Приведите примеры запуска нескольких команд в одной строке. 9. Дайте определение и приведите примера символов экранирования. 10. Охарактеризуйте вывод информации на экран после выполнения команды ls с опцией l. 11. Что такое относительный путь к файлу? Приведите примеры использования относительного и абсолютного пути при выполнении какой-либо команды. 12. Как получить информацию об интересующей вас команде? 13. Какая клавиша или комбинация клавиш служит для автоматического дополнения вводимых команд? 19 Лабораторная работа № 3. Анализ файловой системы Linux. Команды для работы с файлами и каталогами 3.1. Цель работы Ознакомление с файловой системой Linux, её структурой, именами и содержанием каталогов. Приобретение практических навыков по применению команд для работы с файлами и каталогами, по управлению процессами (и работами), по проверке использования диска и обслуживанию файловой системы. 3.2. Указания к работе 3.2.1. Команды для работы с файлами и каталогами Для создания текстового файла можно использовать команду touch. Формат команды: touch имя-файла Для просмотра файлов небольшого размера можно использовать команду cat. Формат команды: cat имя-файла Для просмотра файлов постранично удобнее использовать команду less. Формат команды: less имя-файла – – – – – Следующие клавиши используются для управления процессом просмотра: — переход к следующей странице, ENTER — сдвиг вперёд на одну строку, b — возврат на предыдущую страницу, h — обращение за подсказкой, q — выход из режима просмотра файла. Команда head выводит по умолчанию первые 10 строк файла. Формат команды: Space head [-n] имя-файла, где n — количество выводимых строк. Команда tail выводит умолчанию 10 последних строк файла. Формат команды: tail [-n] имя-файла, где n — количество выводимых строк. 3.2.2. Копирование файлов и каталогов Команда cp используется для копирования файлов и каталогов. Формат команды: cp [-опции] исходный_файл целевой_файл Примеры: 1. Копирование файла в текущем каталоге. Скопировать файл ~/abc1 в файл april и в файл may: 20 Лабораторная работа № 3. Анализ файловой системы Linux. Команды для работы … cd touch abc1 cp abc1 april cp abc1 may 2. Копирование нескольких файлов в каталог. Скопировать файлы april и may в каталог monthly: mkdir monthly cp april may monthly 3. Копирование файлов в произвольном каталоге. Скопировать файл monthly/may в файл с именем june: cp monthly/may monthly/june ls monthly Опция i в команде cp выведет на экран запрос подтверждения о перезаписи файла. Для рекурсивного копирования каталогов, содержащих файлы, используется команда cp с опцией r. Примеры: 1. Копирование каталогов в текущем каталоге. Скопировать каталог monthly в каталог monthly.00: mkdir monthly.00 cp -r monthly monthly.00 2. Копирование каталогов в произвольном каталоге. Скопировать каталог monthly.00 в каталог /tmp cp -r monthly.00 /tmp 3.2.3. Перемещение и переименование файлов и каталогов Команды mv и mvdir предназначены для перемещения и переименования файлов и каталогов. Формат команды mv: mv [-опции] старый_файл новый_файл Примеры: 1. Переименование файлов в текущем каталоге. Изменить название файла april на july в домашнем каталоге: cd mv april july 2. Перемещение файлов в другой каталог. Переместить файл july в каталог monthly.00: mv july monthly.00 ls monthly.00 Результат: april july june may Если необходим запрос подтверждения о перезаписи файла, то нужно использовать опцию i. 3. Переименование каталогов в текущем каталоге. Переименовать каталог monthly.00 в monthly.01 mv monthly.00 monthly.01 4. Перемещение каталога в другой каталог. Переместить каталог monthly.01в каталог reports: mkdir reports mv monthly.01 reports 21 Кулябов Д. С. и др. Операционные системы 5. Переименование каталога, не являющегося текущим. Переименовать каталог reports/monthly.01 в reports/monthly: mv reports/monthly.01 reports/monthly 3.2.4. Права доступа Каждый файл или каталог имеет права доступа (табл. 3.1). Таблица 3.1 Права доступа Право Чтение Обозначение r Файл Разрешены просмотр и копирование Запись w Выполнение x Разрешены изменение и переименование Разрешено выполнение файла (скриптов и/или программ) Каталог Разрешён просмотр списка входящих файлов Разрешены создание и удаление файлов Разрешён доступ в каталог и есть возможность сделать его текущим В сведениях о файле или каталоге указываются: – тип файла (символ (-) обозначает файл, а символ (d) — каталог); – права для владельца файла (r — разрешено чтение, w — разрешена запись, x — разрешено выполнение, - — право доступа отсутствует); – права для членов группы (r — разрешено чтение, w — разрешена запись, x — разрешено выполнение, - — право доступа отсутствует); – права для всех остальных (r — разрешено чтение, w — разрешена запись, x — разрешено выполнение, - — право доступа отсутствует). Примеры: 1. Для файла (крайнее левое поле имеет значение -) владелец файла имеет право на чтение и запись (rw-), группа, в которую входит владелец файла, может читать файл (r--), все остальные могут читать файл (r--): -rw-r--r-- 2. Только владелец файла имеет право на чтение, изменение и выполнение файла: -rwx------ 3. Владелец каталога (крайнее левое поле имеет значение d) имеет право на просмотр, изменение и доступа в каталог, члены группы могут входить и просматривать его, все остальные — только входить в каталог: drwxr-x--x 3.2.5. Изменение прав доступа Права доступа к файлу или каталогу можно изменить, воспользовавшись командой chmod. Сделать это может владелец файла (или каталога) или пользователь с правами администратора. Формат команды: 22 Лабораторная работа № 3. Анализ файловой системы Linux. Команды для работы … chmod режим имя_файла Режим (в формате команды) имеет следующие компоненты структуры и способ записи: = установить право - лишить права + дать право r чтение w запись x выполнение u (user) владелец файла g (group) группа, к которой принадлежит владелец файла o (others) все остальные В работе с правами доступа можно использовать их цифровую запись (восьмеричное значение) вместо символьной (табл. 3.2). Таблица 3.2 Формы записи прав доступа Двоичная Восьмеричная Символьная 111 110 101 100 011 010 001 000 7 6 5 4 3 2 1 0 rwx rwr-x r--wx -w--x --- Примеры: 1. Требуется создать файл ~/may с правом выполнения для владельца: cd touch ls -l chmod ls -l may may u+x may may 2. Требуется лишить владельца файла ~/may права на выполнение: chmod u-x may ls -l may 3. Требуется создать каталог monthly с запретом на чтение для членов группы и всех остальных пользователей: cd mkdir monthly chmod g-r, o-r monthly 4. Требуется создать файл ~/abc1 с правом записи для членов группы: cd touch abc1 chmod g+w abc1 Кулябов Д. С. и др. Операционные системы 23 3.2.6. Анализ файловой системы Файловая система в Linux состоит из фалов и каталогов. Каждому физическому носителю соответствует своя файловая система. Существует несколько типов файловых систем. Перечислим наиболее часто встречающиеся типы: – ext2fs (second extended filesystem); – ext2fs (third extended file system); – ext4 (fourth extended file system); – ReiserFS; – xfs; – fat (file allocation table); – ntfs (new technology file system). Для просмотра используемых в операционной системе файловых систем можно воспользоваться командой mount без параметров. В результате её применения можно получить примерно следующее: mount proc on /proc type proc (rw) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec) udev on /dev type tmpfs (rw,nosuid) devpts on /dev/pts type devpts (rw,nosuid,noexec) /dev/sda1 on /mnt/a type ext3 (rw,noatime) /dev/sdb2 on /mnt/docs type reiserfs (rw,noatime) shm on /dev/shm type tmpfs (rw,noexec,nosuid,nodev) usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev) nfsd on /proc/fs/nfs type nfsd (rw,noexec,nosuid,nodev) В данном случае указаны имена устройств, названия соответствующих им точек монтирования (путь), тип файловой системы и параметрами монтирования. В контексте команды mount устройство — специальный файл устройства, с помощью которого операционная система получает доступ к аппаратному устройству. Файлы устройств обычно располагаются в каталоге /dev, имеют сокращённые имена (например, sdaN, sdbN или hdaN, hdbN, где N — порядковый номер устройства, sd — устройства SCSI, hd — устройства MFM/IDE). Точка монтирования — каталог (путь к каталогу), к которому присоединяются файлы устройств. Другой способ определения смонтированных в операционной системе файловых систем — просмотр файла/etc/fstab. Сделать это можно например с помощью команды cat: cat /etc/fstab /dev/hda1 /dev/hda5 /dev/hda6 /dev/hdc none / /home swap /mnt/cdrom /mnt/floppy none none /proc /dev/pts ext2 defaults 1 1 ext2 defaults 1 2 swap defaults 0 0 auto umask=0,user,noauto,ro,exec,users 0 0 supermount dev=/dev/fd0,fs=ext2:vfat,--, sync,umask=0 0 0 proc defaults 0 0 devpts mode=0622 0 0 24 Лабораторная работа № 3. Анализ файловой системы Linux. Команды для работы … В каждой строке этого файла указано: имя устройство; точка монтирования; тип файловой системы; опции монтирования; специальные флаги для утилиты dump; порядок проверки целостности файловой системы с помощью утилиты fsck. Для определения объёма свободного пространства на файловой системе можно воспользоваться командой df, которая выведет на экран список всех файловых систем в соответствии с именами устройств, с указанием размера и точки монтирования. Например: – – – – – – df Filesystem /dev/hda3 1024-blocks Used Available Capacity Mounted on 297635 169499 112764 60% / С помощью команды fsck можно проверить (а в ряде случаев восстановить) целостность файловой системы: Формат команды: fsck имя_устройства Пример: fsck /dev/sda1 3.3. Последовательность выполнения работы 1. Выполните все примеры, приведённые в первой части описания лабораторной работы. 2. Выполните следующие действия, зафиксировав в отчёте по лабораторной работе используемые при этом команды и результаты их выполнения: 2.1. Скопируйте файл /usr/include/sys/io.h в домашний каталог и назовите его equipment. Если файла io.h нет, то используйте любой другой файл в каталоге /usr/include/sys/ вместо него. 2.2. В домашнем каталоге создайте директорию ~/ski.plases. 2.3. Переместите файл equipment в каталог ~/ski.plases. 2.4. Переименуйте файл ~/ski.plases/equipment в ~/ski.plases/equiplist. 2.5. Создайте в домашнем каталоге файл abc1 и скопируйте его в каталог ~/ski.plases, назовите его equiplist2. 2.6. Создайте каталог с именем equipment в каталоге ~/ski.plases. 2.7. Переместите файлы ~/ski.plases/equiplist и equiplist2 в каталог ~/ski.plases/equipment. 2.8. Создайте и переместите каталог ~/newdir в каталог ~/ski.plases и назовите его plans. 3. Определите опции команды chmod, необходимые для того, чтобы присвоить перечисленным ниже файлам выделенные права доступа, считая, что в начале таких прав нет: 3.1. drwxr--r-. australia 3.2. drwx--x--x . play 3.3. -r-xr--r-. my_os 3.4. -rw-rw-r-. feathers При необходимости создайте нужные файлы. 4. Проделайте приведённые ниже упражнения, записывая в отчёт по лабораторной работе используемые при этом команды: Кулябов Д. С. и др. Операционные системы 25 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. 4.7. Просмотрите содержимое файла /etc/password. Скопируйте файл ~/feathers в файл ~/file.old. Переместите файл ~/file.old в каталог ~/play. Скопируйте каталог ~/play в каталог ~/fun. Переместите каталог ~/fun в каталог ~/play и назовите его games. Лишите владельца файла ~/feathers права на чтение. Что произойдёт, если вы попытаетесь просмотреть файл ~/feathers командой cat? 4.8. Что произойдёт, если вы попытаетесь скопировать файл ~/feathers? 4.9. Дайте владельцу файла ~/feathers право на чтение. 4.10. Лишите владельца каталога ~/play права на выполнение. 4.11. Перейдите в каталог ~/play. Что произошло? 4.12. Дайте владельцу каталога ~/play право на выполнение. 5. Прочитайте man по командам mount, fsck, mkfs, kill и кратко их охарактеризуйте, приведя примеры. 3.4. Содержание отчёта 1. Титульный лист с указанием номера лабораторной работы и ФИО студента. 2. Формулировка цели работы. 3. Описание результатов выполнения задания: – скриншоты (снимки экрана), фиксирующие выполнение лабораторной работы; – листинги (исходный код) программ (если они есть); – результаты выполнения программ (текст или снимок экрана в зависимости от задания). 4. Выводы, согласованные с целью работы. 5. Ответы на контрольные вопросы. 3.5. Контрольные вопросы 1. Дайте характеристику каждой файловой системе, существующей на жёстком диске компьютера, на котором вы выполняли лабораторную работу. 2. Приведите общую структуру файловой системы и дайте характеристику каждой директории первого уровня этой структуры. 3. Какая операция должна быть выполнена, чтобы содержимое некоторой файловой системы было доступно операционной системе? 4. Назовите основные причины нарушения целостности файловой системы. Как устранить повреждения файловой системы? 5. Как создаётся файловая система? 6. Дайте характеристику командам для просмотра текстовых файлов. 7. Приведите основные возможности команды cp в Linux. 8. Приведите основные возможности команды mv в Linux. 9. Что такое права доступа? Как они могут быть изменены? При ответах на вопросы используйте дополнительные источники информации по теме. 26 Лабораторная работа № 4. Поиск файлов. Перенаправление ввода-вывода. Просмотр запущенных процессов 4.1. Цель работы Ознакомление с инструментами поиска файлов и фильтрации текстовых данных. Приобретение практических навыков: по управлению процессами (и заданиями), по проверке использования диска и обслуживанию файловых систем. 4.2. Указания к работе 4.2.1. Перенаправление ввода-вывода В системе по умолчанию открыто три специальных потока: – stdin — стандартный поток ввода (по умолчанию: клавиатура), файловый дескриптор 0; – stdout — стандартный поток вывода (по умолчанию: консоль), файловый дескриптор 1; – stderr — стандартный поток вывод сообщений об ошибках (по умолчанию: консоль), файловый дескриптор 2. Большинство используемых в консоли команд и программ записывают результаты своей работы в стандартный поток вывода stdout. Например, команда ls выводит в стандартный поток вывода (консоль) список файлов в текущей директории. Потоки вывода и ввода можно перенаправлять на другие файлы или устройства. Проще всего это делается с помощью символов >, >>, dir-tree.list 1>filename # Перенаправление вывода (stdout) в файл "filename". 1>>filename # Перенаправление вывода (stdout) в файл "filename", # файл открывается в режиме добавления. 2>filename # Перенаправление stderr в файл "filename". 2>>filename # Перенаправление stderr в файл "filename", # файл открывается в режиме добавления. &>filename # Перенаправление stdout и stderr в файл "filename". 4.2.2. Конвейер Конвейер (pipe) служит для объединения простых команд или утилит в цепочки, в которых результат работы предыдущей команды передаётся последующей. Синтаксис следующий: Кулябов Д. С. и др. Операционные системы 27 команда 1 | команда 2 # означает, что вывод команды 1 передастся на ввод команде 2 Конвейеры можно группировать в цепочки и выводить с помощью перенаправления в файл, например: ls -la |sort > sortilg_list вывод команды ls -la передаётся команде сортировки sort\verb, которая пишет результат в файл sorting_list\verb. Чаще всего скрипты на Bash используются в качестве автоматизации каких-то рутинных операций в консоли, отсюда иногда возникает необходимость в обработке stdout одной команды и передача на stdin другой команде, при этом результат выполнения команды должен обработан. 4.2.3. Поиск файла Команда find используется для поиска и отображения на экран имён файлов, соответствующих заданной строке символов. Формат команды: find путь [-опции] Путь определяет каталог, начиная с которого по всем подкаталогам будет вестись поиск. Примеры: 1. Вывести на экран имена файлов из вашего домашнего каталога и его подкаталогов, начинающихся на f: find ~ -name "f*" -print Здесь ~ — обозначение вашего домашнего каталога, -name — после этой опции указывается имя файла, который нужно найти, "f*" — строка символов, определяющая имя файла, -print — опция, задающая вывод результатов поиска на экран. 2. Вывести на экран имена файлов в каталоге /etc, начинающихся с символа p: find /etc -name "p*" -print 3. Найти в Вашем домашнем каталоге файлы, имена которых заканчиваются символом ~ и удалить их: find ~ -name "*~" -exec rm "<>" \; Здесь опция -exec rm "<>" \; задаёт применение команды rm ко всем файлам, имена которых соответствуют указанной после опции -name строке символов. Для просмотра опций команды find воспользуйтесь командой man. 4.2.4. Фильтрация текста Найти в текстовом файле указанную строку символов позволяет команда grep. Формат команды: grep строка имя_файла Кроме того, команда grep способна обрабатывать стандартный вывод других команд (любой текст). Для этого следует использовать конвейер, связав вывод команды с вводом grep. Примеры: 1. Показать строки во всех файлах в вашем домашнем каталоге с именами, начинающимися на f, в которых есть слово begin: grep begin f* 2. Найти в текущем каталоге все файлы, содержащих в имени «лаб»: ls -l | grep лаб 28 Лабораторная работа № 4. Поиск файлов. Перенаправление ввода-вывода. … 4.2.5. Проверка использования диска Команда df показывает размер каждого смонтированного раздела диска. Формат команды: df [-опции] [файловая_система] Пример: df -vi Команда du показывает число килобайт, используемое каждым файлом или каталогом. Формат команды: du [-опции] [имя_файла. ] Пример. du -a ~/ На afs можно посмотреть использованное пространство командой fs quota 4.2.6. Управление задачами Любую выполняющуюся в консоли команду или внешнюю программу можно запустить в фоновом режиме. Для этого следует в конце имени команды указать знак амперсанда &. Например: gedit & Будет запущен текстовой редактор gedit в фоновом режиме. Консоль при этом не будет заблокирована. Запущенные фоном программы называются задачами (jobs). Ими можно управлять с помощью команды jobs, которая выводит список запущенных в данный момент задач. Для завершения задачи необходимо выполнить команду kill %номер задачи 4.2.7. Управление процессами Любой команде, выполняемой в системе, присваивается идентификатор процесса (process ID). Получить информацию о процессе и управлять им, пользуясь идентификатором процесса, можно из любого окна командного интерпретатора. 4.2.8. Получение информации о процессах Команда ps используется для получения информации о процессах. Формат команды: ps [-опции] Для получения информации о процессах, управляемых вами и запущенных (работающих или остановленных) на вашем терминале, используйте опцию aux. Пример: ps aux Для запуска команды в фоновом режиме необходимо в конце командной строки указать знак & (амперсанд). Пример работы, требующей много машинного времени для выполнения, и которую целесообразно запустить в фоновом режиме: find /var/log -name "*.log" -print > l.log & Кулябов Д. С. и др. Операционные системы 29 4.3. Последовательность выполнения работы 1. Осуществите вход в систему, используя соответствующее имя пользователя. 2. Запишите в файл file.txt названия файлов, содержащихся в каталоге /etc. Допишите в этот же файл названия файлов, содержащихся в вашем домашнем каталоге. 3. Выведите имена всех файлов из file.txt, имеющих расширение .conf, после чего запишите их в новый текстовой файл conf.txt. 4. Определите, какие файлы в вашем домашнем каталоге имеют имена, начинавшиеся с символа c? Предложите несколько вариантов, как это сделать. 5. Выведите на экран (по странично) имена файлов из каталога /etc, начинающиеся с символа h. 6. Запустите в фоновом режиме процесс, который будет записывать в файл ~/logfile файлы, имена которых начинаются с log. 7. Удалите файл ~/logfile. 8. Запустите из консоли в фоновом режиме редактор gedit. 9. Определите идентификатор процесса gedit, используя команду ps, конвейер и фильтр grep. Как ещё можно определить идентификатор процесса? 10. Прочтите справку (man) команды kill, после чего используйте её для завершения процесса gedit. 11. Выполните команды df и du, предварительно получив более подробную информацию об этих командах, с помощью команды man. 12. Воспользовавшись справкой команды find, выведите имена всех директорий, имеющихся в вашем домашнем каталоге. 4.4. Содержание отчёта 1. Титульный лист с указанием номера лабораторной работы и ФИО студента. 2. Формулировка цели работы. 3. Описание результатов выполнения задания: – скриншоты (снимки экрана), фиксирующие выполнение лаб. раб.; – листинги (исходный код) программ (если они есть); – результаты выполнения программ. 4. Выводы, согласованные с целью работы. 5. Ответы на контрольные вопросы. 4.5. Контрольные вопросы 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Какие потоки ввода вывода вы знаете? Объясните разницу между операцией > и >>. Что такое конвейер? Что такое процесс? Чем это понятие отличается от программы? Что такое PID и GID? Что такое задачи и какая команда позволяет ими управлять? Найдите информацию об утилитах top и htop. Каковы их функции? Назовите и дайте характеристику команде поиска файлов. Приведите примеры использования этой команды. Можно ли по контексту (содержанию) найти файл? Если да, то как? Как определить объем свободной памяти на жёстком диске? Как определить объем вашего домашнего каталога? Как удалить зависший процесс? 30 Лабораторная работа № 5. Командная оболочка Midnight Commander 5.1. Цель работы Освоение основных возможностей командной оболочки Midnight Commander. Приобретение навыков практической работы по просмотру каталогов и файлов; манипуляций с ними. 5.2. Указания к работе 5.2.1. Общие сведения Командная оболочка — интерфейс взаимодействия пользователя с операционной системой и программным обеспечением посредством команд. Midnight Commander (или mc) — псевдографическая командная оболочка для UNIX/Linux систем. Для запуска mc необходимо в командной строке набрать mc и нажать Enter . Рабочее пространство mc имеет две панели, отображающие по умолчанию списки файлов двух каталогов (рис. 5.1). Рис. 5.1. Внешний вид экрана при работе с Midnight Commander Над панелями располагается меню, доступ к которому осуществляется с помощью клавиши F9 . Под панелями внизу расположены управляющие экранные кноп- 31 Кулябов Д. С. и др. Операционные системы ки, ассоциированные с функциональными клавишами F1 – F10 (табл. 5.1). Над ними располагается командная строка, предназначенная для ввода команд. Таблица 5.1 Функциональные клавиши mc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 Вызов контекстно-зависимой подсказки Вызов пользовательского меню с возможностью создания и/или дополнения дополнительных функций Просмотр содержимого файла, на который указывает подсветка в активной панели (без возможности редактирования) Вызов встроенного в mc редактора для изменения содержания файла, на который указывает подсветка в активной панели Копирование одного или нескольких файлов, отмеченных в первой (активной) панели, в каталог, отображаемый на второй панели Перенос одного или нескольких файлов, отмеченных в первой (активной) панели, в каталог, отображаемый на второй панели Создание подкаталога в каталоге, отображаемом в активной панели Удаление одного или нескольких файлов (каталогов), отмеченных в первой (активной) панели файлов Вызов меню mc Выход из mc 5.2.2. Режимы отображения панелей и управление ими Панель в mc отображает список файлов текущего каталога. Абсолютный путь к этому каталогу отображается в заголовке панели. У активной панели заголовок и одна из её строк подсвечиваются. Управление панелями осуществляется с помощью определённых комбинаций клавиш или пунктов меню mc. Панели можно поменять местами. Для этого и используется комбинация клавиш Ctrl-u или команда меню mc Переставить панели . Также можно временно убрать отображение панелей (отключить их) с помощью комбинации клавиш Ctrl-o или команды меню mc Отключить панели . Это может быть полезно, например, если необходимо увидеть вывод какой-то информации на экран после выполнения какой-либо команды shell. С помощью последовательного применения комбинации клавиш Ctrl-x d есть возможность сравнения каталогов, отображённых на двух панелях. Панели могут дополнительно быть переведены в один из двух режимов: Информация или Дерево . В режиме Информация (рис. 5.2) на панель выводятся сведения о файле и текущей файловой системе, расположенных на активной панели. В режиме Дерево (рис. 5.3) на одной из панелей выводится структура дерева каталогов. Управлять режимами отображения панелей можно через пункты меню mc Правая панель и Левая панель (рис. 5.4). 32 Лабораторная работа № 5. Командная оболочка Midnight Commander Рис. 5.2. Режим Информация Рис. 5.3. Режим отображения дерева каталогов Кулябов Д. С. и др. Операционные системы 33 Рис. 5.4. Меню Левая Панель 5.2.3. Меню панелей Перейти в строку меню панелей mc можно с помощью функциональной клавиши F9 . В строке меню имеются пять меню: Левая панель , Файл , Команда , Настройки и Правая панель . Подпункт меню Быстрый просмотр позволяет выполнить быстрый просмотр содержимого панели. Подпункт меню Информация позволяет посмотреть информацию о файле или каталоге (рис. 5.5). Рис. 5.5. Панель Информация 34 Лабораторная работа № 5. Командная оболочка Midnight Commander В меню каждой (левой или правой) панели можно выбрать Формат списка : – стандартный — выводит список файлов и каталогов с указанием размера и времени правки; – ускоренный — позволяет задать число столбцов, на которые разбивается панель при выводе списка имён файлов или каталогов без дополнительной информации; – расширенный — помимо названия файла или каталога выводит сведения о правах доступа, владельце, группе, размере, времени правки; – определённый пользователем — позволяет вывести те сведения о файле или каталоге, которые задаст сам пользователь. Подпункт меню Порядок сортировки позволяет задать критерии сортировки при выводе списка файлов и каталогов: без сортировки, по имени, расширенный, время правки, время доступа, время изменения атрибута, размер, узел. 5.2.3.1. Меню Файл В меню Файл содержит перечень команд, которые могут быть применены к одному или нескольким файлам или каталогам (рис. 5.6). Рис. 5.6. Меню Файл Команды меню Файл : – Просмотр ( F3 ) — позволяет посмотреть содержимое текущего (или выделенного) файла без возможности редактирования. – Просмотр вывода команды ( М + ! ) — функция запроса команды с параметрами (аргумент к текущему выбранному файлу). Кулябов Д. С. и др. Операционные системы 35 – Правка ( F4 ) — открывает текущий (или выделенный) файл для его редактирования. – Копирование ( F5 ) — осуществляет копирование одного или нескольких файлов или каталогов в указанное пользователем во всплывающем окне место. – Права доступа ( Ctrl-x c ) — позволяет указать (изменить) права доступа к одному или нескольким файлам или каталогам (рис. 5.7). Рис. 5.7. Права доступа на файлы и каталоги – Жёсткая ссылка ( Ctrl-x l ) — позволяет создать жёсткую ссылку к текущему (или выделенному) файлу1 . – Символическая ссылка ( Ctrl-x s ) — позволяет создать символическую ссылку к текущему (или выделенному) файлу2 . – Владелец/группа ( Ctrl-x o ) — позволяет задать (изменить) владельца и имя группы для одного или нескольких файлов или каталогов. – Права (расширенные) — позволяет изменить права доступа и владения для одного или нескольких файлов или каталогов. – Переименование ( F6 ) — позволяет переименовать (или переместить) один или несколько файлов или каталогов. – Создание каталога ( F7 ) — позволяет создать каталог. – Удалить ( F8 ) — позволяет удалить один или несколько файлов или каталогов. – Выход ( F10 ) — завершает работу mc. 1 Жёсткая ссылка проявляется как реальный файл. После её создания невозможно определить, где сам файл, а где ссылка на него. Если удалить один из этих файлов, то другой останется целым. 2 Символическая ссылка — ссылка (указатель) на имя файла-оригинала. 36 Лабораторная работа № 5. Командная оболочка Midnight Commander 5.2.3.2. Меню Команда В меню Команда содержатся более общие команды для работы с mc (рис. 5.8). Рис. 5.8. Меню Команда – – – – – – – – – – – Команды меню Команда : Дерево каталогов — отображает структуру каталогов системы. Поиск файла — выполняет поиск файлов по заданным параметрам. Переставить панели — меняет местами левую и правую панели. Сравнить каталоги ( Ctrl-x d ) — сравнивает содержимое двух каталогов. Размеры каталогов — отображает размер и время изменения каталога (по умолчанию в mc размер каталога корректно не отображается). История командной строки — выводит на экран список ранее выполненных в оболочке команд. Каталоги быстрого доступа ( Ctrl-\ ) — пр вызове выполняется быстрая смена текущего каталога на один из заданного списка. Восстановление файлов — позволяет восстановить файлы на файловых системах ext2 и ext3. Редактировать файл расширений — позволяет задать с помощью определённого синтаксиса действия при запуске файлов с определённым расширением (например, какое программного обеспечение запускать для открытия или редактирования файлов с расширением doc или docx). Редактировать файл меню — позволяет отредактировать контекстное меню пользователя, вызываемое по клавише F2 . Редактировать файл расцветки имён — позволяет подобрать оптимальную для пользователя расцветку имён файлов в зависимости от их типа. Кулябов Д. С. и др. Операционные системы 37 5.2.3.3. Меню Настройки Меню Настройки содержит ряд дополнительных опций по внешнему виду и функциональности mc (рис. 5.9). Рис. 5.9. Меню Настройки Меню Настройки содержит: – Конфигурация — позволяет скорректировать настройки работы с панелями. – Внешний вид и Настройки панелей — определяет элементы (строка меню, командная строка, подсказки и прочее), отображаемые при вызове mc, а также геометрию расположения панелей и цветовыделение. – Биты символов — задаёт формат обработки информации локальным терминалом. – Подтверждение — позволяет установить или убрать вывод окна с запросом подтверждения действий при операциях удаления и перезаписи файлов, а также при выходе из программы. – Распознание клавиш — диалоговое окно используется для тестирования функциональных клавиш, клавиш управления курсором и прочее. – Виртуальные ФС –– настройки виртуальной файловой системы: тайм-аут, пароль и прочее. 5.2.4. Редактор mc Встроенный в mc редактор вызывается с помощью функциональной клавиши . В нём удобно использовать различные комбинации клавиш при редактировании содержимого (как правило текстового) файла (табл. 5.2). F4 38 Лабораторная работа № 5. Командная оболочка Midnight Commander Таблица 5.2 Клавиши для редактирования файла Ctrl-y Ctrl-u Ins F7 -F7 F4 F3 F5 F6 F8 F2 F10 удалить строку отмена последней операции вставка/замена поиск (можно использовать регулярные выражения) повтор последней операции поиска замена первое нажатие — начало выделения, второе — окончание выделения копировать выделенный фрагмент переместить выделенный фрагмент удалить выделенный фрагмент записать изменения в файл выйти из редактора 5.3. Последовательность выполнения работы 5.3.1. Задание по mc 1. Изучите информацию о mc, вызвав в командной строке man mc. 2. Запустите из командной строки mc, изучите его структуру и меню. 3. Выполните несколько операций в mc, используя управляющие клавиши (операции с панелями; выделение/отмена выделения файлов, копирование/перемещение файлов, получение информации о размере и правах доступа на файлы и/или каталоги и т.п.) 4. Выполните основные команды меню левой (или правой) панели. Оцените степень подробности вывода информации о файлах. 5. Используя возможности подменю Файл , выполните: – просмотр содержимого текстового файла; – редактирование содержимого текстового файла (без сохранения результатов редактирования); – создание каталога; – копирование в файлов в созданный каталог. 6. С помощью соответствующих средств подменю Команда осуществите: – поиск в файловой системе файла с заданными условиями (например, файла с расширением .c или .cpp, содержащего строку main); – выбор и повторение одной из предыдущих команд; – переход в домашний каталог; – анализ файла меню и файла расширений. 7. Вызовите подменю Настройки . Освойте операции, определяющие структуру экрана mc (Full screen, Double Width, Show Hidden Files и т.д.)ю Кулябов Д. С. и др. Операционные системы 39 5.3.2. Задание по встроенному редактору mc 1. Создайте текстовой файл text.txt. 2. Откройте этот файл с помощью встроенного в mc редактора. 3. Вставьте в открытый файл небольшой фрагмент текста, скопированный из любого другого файла или Интернета. 4. Проделайте с текстом следующие манипуляции, используя горячие клавиши: 4.1. Удалите строку текста. 4.2. Выделите фрагмент текста и скопируйте его на новую строку. 4.3. Выделите фрагмент текста и перенесите его на новую строку. 4.4. Сохраните файл. 4.5. Отмените последнее действие. 4.6. Перейдите в конец файла (нажав комбинацию клавиш) и напишите некоторый текст. 4.7. Перейдите в начало файла (нажав комбинацию клавиш) и напишите некоторый текст. 4.8. Сохраните и закройте файл. 5. Откройте файл с исходным текстом на некотором языке программирования (например C или Java) 6. Используя меню редактора, включите подсветку синтаксиса, если она не включена, или выключите, если она включена. 5.4. Содержание отчёта 1. Титульный лист с указанием номера лабораторной работы и ФИО студента. 2. Формулировка цели работы. 3. Описание результатов выполнения задания: – скриншоты (снимки экрана), фиксирующие выполнение лабораторной работы; – листинги (исходный код) программ (если они есть); – результаты выполнения программ (текст или снимок экрана в зависимости от задания). 4. Выводы, согласованные с целью работы. 5. Ответы на контрольные вопросы. 5.5. Контрольные вопросы 1. Какие режимы работы есть в mc. Охарактеризуйте их. 2. Какие операции с файлами можно выполнить как с помощью команд shell, так и с помощью меню (комбинаций клавиш) mc? Приведите несколько примеров. 3. Опишите структура меню левой (или правой) панели mc, дайте характеристику командам. 4. Опишите структура меню Файл mc, дайте характеристику командам. 5. Опишите структура меню Команда mc, дайте характеристику командам. 6. Опишите структура меню Настройки mc, дайте характеристику командам. 7. Назовите и дайте характеристику встроенным командам mc. 8. Назовите и дайте характеристику командам встроенного редактора mc. 9. Дайте характеристику средствам mc, которые позволяют создавать меню, определяемые пользователем. 10. Дайте характеристику средствам mc, которые позволяют выполнять действия, определяемые пользователем, над текущим файлом. 40 Лабораторная работа № 6. Текстовой редактор vi 6.1. Цель работы Познакомиться с операционной системой Linux. Получить практические навыки работы с редактором vi, установленным по умолчанию практически во всех дистрибутивах. 6.2. Указания к работе В большинстве дистрибутивов Linux в качестве текстового редактора по умолчанию устанавливается интерактивный экранный редактор vi (Visual display editor). Редактор vi имеет три режима работы: – командный режим — предназначен для ввода команд редактирования и навигации по редактируемому файлу; – режим вставки — предназначен для ввода содержания редактируемого файла; – режим последней (или командной) строки — используется для записи изменений в файл и выхода из редактора. Для вызова редактора vi необходимо указать команду vi и имя редактируемого файла: vi При этом в случае отсутствия файла с указанным именем будет создан такой файл. Переход в командный режим осуществляется нажатием клавиши Esc . Для выхода из редактора vi необходимо перейти в режим последней строки: находясь в командном режиме, нажать Shift-; (по сути символ : — двоеточие), затем: – набрать символы wq, если перед выходом из редактора требуется записать изменения в файл; – набрать символ q (или q!), если требуется выйти из редактора без сохранения. Замечание. Следует помнить, что vi различает прописные и строчные буквы при наборе (восприятии) команд. 6.2.1. Основные группы команд редактора 6.2.1.1. Команды управления курсором Команды управления курсором приведены в табл. 6.1. Таблица 6.1 Команды управления курсором Курсор влево Курсор вправо Курсор вверх Space (клавиша Backspace) (клавиша «пробел») h l Курсор вниз Enter k j Кулябов Д. С. и др. Операционные системы 41 6.2.1.2. Команды позиционирования – 0 (ноль) — переход в начало строки; – $ — переход в конец строки; – G — переход в конец файла; – n G — переход на строку с номером n. 6.2.1.3. Команды перемещения по файлу – – – – — перейти на пол-экрана вперёд; — перейти на пол-экрана назад; Ctrl-f — перейти на страницу вперёд; Ctrl-b — перейти на страницу назад. Ctrl-d Ctrl-u 6.2.1.4. Команды перемещения по словам1 – W или w — перейти на слово вперёд; – n W или n w — перейти на n слов вперёд; – b или B — перейти на слово назад; – n b или n B — перейти на n слов назад. 6.2.2. Команды редактирования 6.2.2.1. Вставка текста – а – А – i – n i – I — вставить текст после курсора; — вставить текст в конец строки; — вставить текст перед курсором; — вставить текст n раз; — вставить текст в начало строки. 6.2.2.2. Вставка строки – – о О — вставить строку под курсором; — вставить строку над курсором. 6.2.2.3. Удаление текста – – – – x d d d — удалить один символ в буфер; w — удалить одно слово в буфер; $ — удалить в буфер текст от курсора до конца строки; 0 — удалить в буфер текст от начала строки до позиции курсора; 1 При использовании прописных W и B под разделителями понимаются только пробел, табуляция и возврат каретки. При использовании строчных w и b под разделителями понимаются также любые знаки пунктуации. 42 Лабораторная работа № 6. Текстовой редактор vi – d – n d d d — удалить в буфер одну строку; — удалить в буфер n строк. 6.2.2.4. Отмена и повтор произведённых изменений – – u . — отменить последнее изменение; — повторить последнее изменение. 6.2.2.5. Копирование текста в буфер – Y — скопировать строку в буфер; – n Y — скопировать n строк в буфер; – y w — скопировать слово в буфер. 6.2.2.6. Вставка текста из буфера – – p P — вставить текст из буфера после курсора; — вставить текст из буфера перед курсором. 6.2.2.7. Замена текста – c w — заменить слово; – n c w — заменить n слов; – c $ — заменить текст от курсора до конца строки; – r — заменить слово; – R — заменить текст. 6.2.2.8. Поиск текста / текст — произвести поиск вперёд по тексту указанной строки символов текст; – ? текст — произвести поиск назад по тексту указанной строки символов текст. – 6.2.3. Команды редактирования в режиме командной строки 6.2.3.1. Копирование и перемещение текста – – – – : : : : n,m d — удалить строки с n по m; i,j m k — переместить строки с i по j, начиная со строки k; i,j t k — копировать строки с i по j в строку k; i,j w имя-файла — записать строки с i по j в файл с именем имя-файла. Кулябов Д. С. и др. Операционные системы 43 6.2.3.2. Запись в файл и выход из редактора – – : w : w — записать изменённый текст в файл, не выходя из vi; имя-файла — записать изменённый текст в новый файл с именем имя- файла; – : w ! имя-файла — записать изменённый текст в файл с именем имя- файла; – – – – q — записать изменения в файл и выйти из vi; — выйти из редактора vi; : q ! — выйти из редактора без записи; : e ! — вернуться в командный режим, отменив все изменения, произведённые со времени последней записи. : w : q 6.2.4. Опции Опции редактора vi позволяют настроить рабочую среду. Для задания опций используется команда set (в режиме последней строки): – : set all — вывести полный список опций; – : set nu — вывести номера строк; – : set list — вывести невидимые символы; – : set ic — не учитывать при поиске, является ли символ прописным или строчным. Если вы хотите отказаться от использования опции, то в команде set перед именем опции надо поставить no. 6.3. Последовательность выполнения работы 1. Ознакомиться с теоретическим материалом. 2. Ознакомиться с редактором vi. 3. Выполнить упражнения, используя команды vi. 6.3.1. Задание 1. Создание нового файла с использованием vi 1. Создайте каталог с именем ~/work/os/lab06. 2. Перейдите во вновь созданный каталог. 3. Вызовите vi и создайте файл hello.sh vi hello.sh 4. Нажмите клавишу i и вводите следующий текст. #!/bin/bash HELL=Hello function hello < LOCAL HELLO=World echo $HELLO >echo $HELLO hello 5. Нажмите клавишу текста. Esc для перехода в командный режим после завершения ввода 44 Лабораторная работа № 6. Текстовой редактор vi 6. Нажмите : для перехода в режим последней строки и внизу вашего экрана появится приглашение в виде двоеточия. 7. Нажмите w (записать) и q (выйти), а затем нажмите клавишу Enter для сохранения вашего текста и завершения работы. 8. Сделайте файл исполняемым chmod +x hello.sh 6.3.2. Задание 2. Редактирование существующего файла 1. Вызовите vi на редактирование файла vi ~/work/os/lab06/hello.sh 2. Установите курсор в конец слова HELL второй строки. 3. Перейдите в режим вставки и замените на HELLO. Нажмите Esc для возврата в командный режим. 4. Установите курсор на четвертую строку и сотрите слово LOCAL. 5. Перейдите в режим вставки и наберите следующий текст: local, нажмите Esc для возврата в командный режим. 6. Установите курсор на последней строке файла. Вставьте после неё строку, содержащую следующий текст: echo $HELLO. 7. Нажмите Esc для перехода в командный режим. 8. Удалите последнюю строку. 9. Введите команду отмены изменений u для отмены последней команды. 10. Введите символ : для перехода в режим последней строки. Запишите произведённые изменения и выйдите из vi. 6.4. Содержание отчёта 1. Титульный лист с указанием номера лабораторной работы и ФИО студента. 2. Формулировка цели работы. 3. Описание результатов выполнения задания: – скриншоты (снимки экрана), фиксирующие выполнение лабораторной работы; – листинги (исходный код) программ (если они есть); – результаты выполнения программ (текст или снимок экрана в зависимости от задания). 4. Выводы, согласованные с целью работы. 5. Ответы на контрольные вопросы. 6.5. Контрольные вопросы 1. 2. 3. 4. 5. Дайте краткую характеристику режимам работы редактора vi. Как выйти из редактора, не сохраняя произведённые изменения? Назовите и дайте краткую характеристику командам позиционирования. Что для редактора vi является словом? Каким образом из любого места редактируемого файла перейти в начало (конец) файла? 6. Назовите и дайте краткую характеристику основным группам команд редактирования. 7. Необходимо заполнить строку символами $. Каковы ваши действия? Кулябов Д. С. и др. Операционные системы 45 8. Как отменить некорректное действие, связанное с процессом редактирования? 9. Назовите и дайте характеристику основным группам команд режима последней строки. 10. Как определить, не перемещая курсора, позицию, в которой заканчивается строка? 11. Выполните анализ опций редактора vi (сколько их, как узнать их назначение и т.д.). 12. Как определить режим работы редактора vi? 13. Постройте граф взаимосвязи режимов работы редактора vi. 46 Лабораторная работа № 7. Текстовой редактор emacs 7.1. Цель работы Познакомиться с операционной системой Linux. Получить практические навыки работы с редактором Emacs. 7.2. Указания к работе Emacs представляет собой мощный экранный редактор текста, написанный на языке высокого уровня Elisp. 7.2.1. Основные термины Emacs Определение 8. Буфер — объект, представляющий какой-либо текст. Буфер может содержать что угодно, например, результаты компиляции программы или встроенные подсказки. Практически всё взаимодействие с пользователем, в том числе интерактивное, происходит посредством буферов. Определение 9. Фрейм соответствует окну в обычном понимании этого слова. Каждый фрейм содержит область вывода и одно или несколько окон Emacs. Определение 10. Окно — прямоугольная область фрейма, отображающая один из буферов. Каждое окно имеет свою строку состояния, в которой выводится следующая информация: название буфера, его основной режим, изменялся ли текст буфера и как далеко вниз по буферу расположен курсор. Каждый буфер находится только в одном из возможных основных режимов. Существующие основные режимы включают режим Fundamental (наименее специализированный), режим Text, режим Lisp, режим С, режим Texinfo и другие. Под второстепенными режимами понимается список режимов, которые включены в данный момент в буфере выбранного окна. Определение 11. Область вывода — одна или несколько строк внизу фрейма, в которой Emacs выводит различные сообщения, а также запрашивает подтверждения и дополнительную информацию от пользователя. Определение 12. Минибуфер используется для ввода дополнительной информации и всегда отображается в области вывода. Определение 13. Точка вставки — место вставки (удаления) данных в буфере. 7.2.2. Основы работы в Emacs Для запуска Emacs необходимо в командной строке набрать emacs (или emacs & для работы в фоновом режиме относительно консоли). Для работы с Emacs можно использовать как элементы меню, так и различные сочетания клавиш. Например, для выхода из Emacs можно воспользоваться меню Кулябов Д. С. и др. Операционные системы 47 File и выбрать пункт Quit , а можно нажать последовательно Ctrl-x Ctrl-c (в обозначениях Emacs: C-x C-c). Многие рутинные операции в Emacs удобнее производить с помощью клавиатуры, а не графического меню. Наиболее часто в командах Emacs используются сочетания c клавишами Ctrl и Meta (в обозначениях Emacs: C- и M-; клавиша Shift в Emasc обозначается как S-). Так как на клавиатуре для IBM PC совместимых ПК клавиши Meta нет, то вместо неё можно использовать Alt или Esc . Для доступа к системе меню используйте клавишу F10 . Клавиши Ctrl , Meta и Shift принято называть префиксными. Например, запись M-x означает, что надо удерживая клавишу Meta (или Alt ), нажать на клавишу x. Для открытия файла следует использовать команду C-x C-f (надо, удерживая клавишу Ctrl , нажать на клавишу x , затем отпустить обе клавиши и снова, удерживая клавишу Ctrl , нажать на клавишу f ). По назначению префиксные сочетания клавиш различаются следующим образом: – C-x — префикс ввода основных команд редактора (например, открытия, закрытии, сохранения файла и т.д.); – C-c — префикс вызова функций, зависящих от используемого режима. Определение 14. Режим — пакет расширений, изменяющий поведение буфера Emacs при редактировании и просмотре текста (например, для редактирования исходного текста программ на языках С или Perl). В табл. 7.1 приведены основные комбинации клавиш, используемые для перемещения курсора в буфере Emacs (также работают и обычные навигационные клавиши, например, стрелки). Таблица 7.1 Основные комбинации клавиш для перемещения курсора в буфере Emacs Комбинация клавиш C-p C-n C-f C-b C-a C-e C-v M-v M-f M-b M- < M->C-g Действие переместиться вверх на одну строку переместиться вниз на одну строку переместиться вперёд на один символ переместиться назад на один символ переместиться в начало строки переместиться в конец строки переместиться вниз на одну страницу переместиться вверх на одну страницу переместиться вперёд на одно слово переместиться назад на одно слово переместиться в начало буфера переместиться в конец буфера закончить текущую операцию Далее в табл. 7.2–7.7 приведены наиболее часто используемые комбинации клавиш для выполнения действий в Emacs. 48 Лабораторная работа № 7. Текстовой редактор emacs Таблица 7.2 Основные комбинации клавиш для работы с текстом в Emacs Комбинация клавиш C-d M-d C-k M-k M-\ C-q M-q Действие Удалить символ перед текущим положением курсора Удалить следующее за текущим положением курсора слово Удалить текст от текущего положения курсора до конца строки Удалить текст от текущего положения курсора до конца предложения Удалить все пробелы и знаки табуляции вокруг текущего положения курсора Вставить символ, соответствующий нажатой клавише или сочетанию Выровнять текст в текущем параграфе буфера Таблица 7.3 Основные комбинации клавиш для работы с выделенной областью текста в Emacs Комбинация клавиш C-space C-w M-w C-y M-y M-\ Действие Начать выделение текста с текущего положения курсора Удалить выделенную область текста в список удалений Скопировать выделенную область текста в список удалений Вставить текст из списка удалений в текущую позицию курсора Последовательно вставить текст из списка удалений Выровнять строки выделенной области текста Таблица 7.4 Основные комбинации клавиш для поиска и замены в Emacs Комбинация клавиш C-s текст поиска C-r текст поиска M-% Действие Поиск текста в прямом направлении Поиск текста в обратном направлении Поиск текста и его замена с запросом (что на что заменить) 49 Кулябов Д. С. и др. Операционные системы Таблица 7.5 Основные комбинации клавиш для работы с файлами, буферами и окнами в Emacs Комбинация клавиш C-x C-f C-x C-s C-x C-b C-x b C-x i C-x 0 C-x 1 C-x 2 C-x o Действие Открыть файл Сохранить текст в буфер Отобразить список открытых буферов в новом окне Переключиться в другой буфер в текущем окне Вставить содержимое файла в буфер в текущую позицию курсора Закрыть текущее окно (при этом буфер не удаляется) Закрыть все окна кроме текущего Разделить окно по горизонтали Перейти в другое окно Таблица 7.6 Основные комбинации клавиш для работы со справкой в Emacs Комбинация клавиш C-h ? C-h C-h C-h C-h t f v k C-h a C-h F C-h i Действие Показать информацию по работе со справочной системой Вызвать интерактивный учебник Показать информацию по функции Показать информацию по переменной Показать информацию по действию комбинации клавиш Выполнить поисковый запрос в справке по строке или регулярному выражению Вызвать Emacs FAQ Показать документацию по Emacs (Info) Таблица 7.7 Прочие комбинации клавиш, используемые в Emacs Комбинация клавиш C-\ M-x command C-x u Действие Переключить язык Выполнить команду Emacs с именем command Отменить последнюю операцию 50 Лабораторная работа № 7. Текстовой редактор emacs 7.2.3. Регулярные выражения При работе с командами Emacs можно использовать регулярные выражения (табл. 7.8). Основные отличия от PCRE (Perl Compatible Regular Expressions — библиотека регулярных выражений в стиле Perl): – \s не задаёт пробел; – \t не задаёт табуляцию; – операция «или» и скобки группировки экранируются. Таблица 7.8 Регулярные выражения в Emacs Ctrl-q Ctrl-j Ctrl-q . * + ? *?, +?, ?? [ …] ^ $ \| \(…\) \b \B \w \W \1 новая строка табуляция любой знак кроме новой строки повторение предыдущего 0–n раз, жадное повторение предыдущего 1–n раз, жадное повторение предыдущего 0–1 раз, жадное аналогично предыдущим, ленивые набор символов, ^ в начале строки — «не эти символы» начало строки конец строки или группировка граница слова не граница слова буквенный символ небуквенный символ ссылка на первую группу 7.3. Последовательность выполнения работы 1. 2. 3. 4. Ознакомиться с теоретическим материалом. Ознакомиться с редактором emacs. Выполнить упражнения. Ответить на контрольные вопросы. 7.3.1. Основные команды emacs 1. Открыть emacs. 2. Создать файл lab07.sh с помощью комбинации 3. Наберите текст: #!/bin/bash HELL=Hello function hello < Ctrl-x Ctrl-f (C-x C-f). Кулябов Д. С. и др. Операционные системы 51 LOCAL HELLO=World echo $HELLO >echo $HELLO hello 4. Сохранить файл с помощью комбинации Ctrl-x Ctrl-s (C-x C-s). 5. Проделать с текстом стандартные процедуры редактирования, каждое действие должно осуществляться комбинацией клавиш. 5.1. Вырезать одной командой целую строку (С-k). 5.2. Вставить эту строку в конец файла (C-y). 5.3. Выделить область текста (C-space). 5.4. Скопировать область в буфер обмена (M-w). 5.5. Вставить область в конец файла. 5.6. Вновь выделить эту область и на этот раз вырезать её (C-w). 5.7. Отмените последнее действие (C-/). 6. Научитесь использовать команды по перемещению курсора. 6.1. Переместите курсор в начало строки (C-a). 6.2. Переместите курсор в конец строки (C-e). 6.3. Переместите курсор в начало буфера (M-<). 6.4. Переместите курсор в конец буфера (M->). 7. Управление буферами. 7.1. Вывести список активных буферов на экран (C-x C-b). 7.2. Переместитесь во вновь открытое окно (C-x) o со списком открытых буферов и переключитесь на другой буфер. 7.3. Закройте это окно (C-x 0). 7.4. Теперь вновь переключайтесь между буферами, но уже без вывода их списка на экран (C-x b). 8. Управление окнами. 8.1. Поделите фрейм на 4 части: разделите фрейм на два окна по вертикали (C-x 3), а затем каждое из этих окон на две части по горизонтали (C-x 2) (см. рис. 7.1). Рис. 7.1. Фрейм emacs, разделённый на 4 окна 8.2. В каждом из четырёх созданных окон откройте новый буфер (файл) и введите несколько строк текста. 52 Лабораторная работа № 7. Текстовой редактор emacs 9. Режим поиска 9.1. Переключитесь в режим поиска (C-s) и найдите несколько слов, присутствующих в тексте. 9.2. Переключайтесь между результатами поиска, нажимая C-s. 9.3. Выйдите из режима поиска, нажав C-g. 9.4. Перейдите в режим поиска и замены (M-%), введите текст, который следует найти и заменить, нажмите Enter , затем введите текст для замены. После того как будут подсвечены результаты поиска, нажмите ! для подтверждения замены. 9.5. Испробуйте другой режим поиска, нажав M-s o. Объясните, чем он отличается от обычного режима? 7.4. Содержание отчёта 1. Титульный лист с указанием номера лабораторной работы и ФИО студента. 2. Формулировка цели работы. 3. Описание результатов выполнения задания: – скриншоты (снимки экрана), фиксирующие выполнение лабораторной работы; – листинги (исходный код) программ (если они есть); – результаты выполнения программ (текст или снимок экрана в зависимости от задания). 4. Выводы, согласованные с целью работы. 5. Ответы на контрольные вопросы. 7.5. Контрольные вопросы 1. Кратко охарактеризуйте редактор emacs. 2. Какие особенности данного редактора могут сделать его сложным для освоения новичком? 3. Своими словами опишите, что такое буфер и окно в терминологии emacs’а. 4. Можно ли открыть больше 10 буферов в одном окне? 5. Какие буферы создаются по умолчанию при запуске emacs? 6. Какие клавиши вы нажмёте, чтобы ввести следующую комбинацию C-c | и C-c C-|? 7. Как поделить текущее окно на две части? 8. В каком файле хранятся настройки редактора emacs? 9. Какую функцию выполняет клавиша и можно ли её переназначить? 10. Какой редактор вам показался удобнее в работе vi или emacs? Поясните почему. 53 Лабораторная работа № 8. Программирование в командном процессоре ОС UNIX. Командные файлы 8.1. Цель работы Изучить основы программирования в оболочке ОС UNIX/Linux. Научиться писать небольшие командные файлы. 8.2. Указания к лабораторной работе 8.2.1. Командные процессоры (оболочки) Командный процессор (командная оболочка, интерпретатор команд shell) — это программа, позволяющая пользователю взаимодействовать с операционной системой компьютера. В операционных системах типа UNIX/Linux наиболее часто используются следующие реализации командных оболочек: – оболочка Борна (Bourne shell или sh) — стандартная командная оболочка UNIX/Linux, содержащая базовый, но при этом полный набор функций; – С-оболочка (или csh) — надстройка на оболочкой Борна, использующая Сподобный синтаксис команд с возможностью сохранения истории выполнения команд; – оболочка Корна (или ksh) — напоминает оболочку С, но операторы управления программой совместимы с операторами оболочки Борна; – BASH — сокращение от Bourne Again Shell (опять оболочка Борна), в основе своей совмещает свойства оболочек С и Корна (разработка компании Free Software Foundation). POSIX (Portable Operating System Interface for Computer Environments) — набор стандартов описания интерфейсов взаимодействия операционной системы и прикладных программ. Стандарты POSIX разработаны комитетом IEEE (Institute of Electrical and Electronics Engineers) для обеспечения совместимости различных UNIX/Linuxподобных операционных систем и переносимости прикладных программ на уровне исходного кода. POSIX-совместимые оболочки разработаны на базе оболочки Корна. Рассмотрим основные элементы программирования в оболочке bash. В других оболочках большинство команд будет совпадать с описанными ниже. 8.2.2. Переменные в языке программирования bash Командный процессор bash обеспечивает возможность использования переменных типа строка символов. Имена переменных могут быть выбраны пользователем. Пользователь имеет возможность присвоить переменной значение некоторой строки символов. Например, команда mark=/usr/andy/bin присваивает значение строки символов /usr/andy/bin переменной mark типа строка символов. Значение, присвоенное некоторой переменной, может быть впоследствии использовано. Для этого в соответствующем месте командной строки должно быть употреблено имя этой переменной, которому предшествует метасимвол $. Например, команда 54 Лабораторная работа № 8. Программирование в командном процессоре ОС UNIX. … mv afile $ переместит файл afile из текущего каталога в каталог с абсолютным полным именем /usr/andy/bin. Использование значения, присвоенного некоторой переменной, называется подстановкой. Для того чтобы имя переменной не сливалось с символами, которые могут следовать за ним в командной строке, при подстановке в общем случае используется следующая форма записи: $ Например, использование команд b=/tmp/andyls -l myfile > $lssudo apt-get install texlive-luatex приведёт к переназначению стандартного вывода команды ls с терминала на файл /tmp/andy-ls, а использование команды ls -l>$bls приведёт к подстановке в командную строку значения переменной bls. Если переменной bls не было пред- варительно присвоено никакого значения, то её значением будет символ пробела. Оболочка bash позволяет работать с массивами. Для создания массива используется команда set с флагом -A. За флагом следует имя переменной, а затем список значений, разделённых пробелами. Например, set -A states Delaware Michigan "New Jersey" Далее можно сделать добавление в массив, например, states[49]=Alaska. Индексация массивов начинается с нулевого элемента. 8.2.3. Использование арифметических вычислений. Операторы let и read Оболочка bash поддерживает встроенные арифметические функции. Команда let является показателем того, что последующие аргументы представляют собой выражение, подлежащее вычислению. Простейшее выражение — это единичный терм (term), обычно целочисленный. Целые числа можно записывать как последовательность цифр или в любом базовом формате типа radix\#number, где radix (основание системы счисления) — любое число не более 26. Для большинства команд используются следующие основания систем исчисления: 2 (двоичная), 8 (восьмеричная) и 16 (шестнадцатеричная). Простейшими математическими выражениями являются сложение (+), вычитание (-), умножение (*), целочисленное деление (/) и целочисленный остаток от деления (%). Команда let берет два операнда и присваивает их переменной. Положительным моментом команды let можно считать то, что для идентификации переменной ей не нужен знак доллара; вы можете писать команды типа let sum=x+7, и let будет искать переменную x и добавлять к ней 7. Команда let также расширяет другие выражения let, если они заключены в двойные круглые скобки. Таким способом вы можете создавать довольно сложные выражения. Команда let не ограничена простыми арифметическими выражениями. Табл. 8.1 показывает полный набор let-операций. Подобно С оболочка bash может присваивать переменной любое значение, а произвольное выражение само имеет значение, которое может использоваться. При этом «ноль» воспринимается как «ложь», а любое другое значение выражения — как «истина». Для облегчения программирования можно записывать условия оболочки bash в двойные скобки — (( )). 55 Кулябов Д. С. и др. Операционные системы Таблица 8.1 Арифметические операторы оболочки bash Оператор Синтаксис Результат ! != % %= !ехр ехр1 !=ехр2 ехр1%ехр2 var=%exp Если ехр равно 0, то возвращает 1; иначе 0 Если ехр1 не равно ехр2, то возвращает 1; иначе 0 Возвращает остаток от деления ехр1 на ехр2 Присваивает остаток от деления var на ехр переменной & && ехр1&ехр2 ехр1&&ехр2 &= * *= var &= ехр ехр1 * ехр2 var *= ехр + += ехр1 + ехр2 var += ехр -= -exp expl - exp2 var -= exp / /= exp / exp2 var /= exp < expl < exp2 >= >> >>= exp1 > exp2 exp1 >= exp2 exp >> exp2 var >>=exp ^ ^= | |= exp1 ^ var ^= exp1 | var |= || exp1 || exp2 ~ ~exp var Возвращает побитовое AND выражений ехр1 и ехр2 Если и ехр1 и ехр2 не равны нулю, то возвращает 1; иначе 0 Присваивает переменной var побитовое AND var и ехр Умножает ехр1 на ехр2 Умножает ехр на значение переменной var и присваивает результат переменной var Складывает ехр1 и ехр2 Складывает ехр со значением переменной var и результат присваивает переменной var Операция отрицания exp (унарный минус) Вычитает exp2 из exp1 Вычитает exp из значения переменной var и присваивает результат переменной var Делит exp1 на exp2 Делит значение переменной var на exp и присваивает результат переменной var Если exp1 меньше, чем exp2, то возвращает 1, иначе возвращает 0 Сдвигает exp1 влево на exp2 бит Побитовый сдвиг влево значения переменной var на exp Если exp1 меньше или равно exp2, то возвращает 1; иначе возвращает 0 Присваивает значение exp переменной var Если exp1 равно exp2, то возвращает 1; иначе возвращает 0 1, если exp1 больше, чем exp2; иначе 0 1, если exp1 больше или равно exp2; иначе 0 Сдвигает exp1 вправо на exp2 бит Побитовый сдвиг вправо значения переменной var на exp exp2 exp exp2 exp Исключающее OR выражений exp1 и exp2 Присваивает переменной var побитовое XOR var и exp Побитовое OR выражений exp1 и exp2 Присваивает переменной var результат операции XOR var и exp 1, если или exp1 или exp2 являются ненулевыми значениями; иначе 0 Побитовое дополнение до exp 56 Лабораторная работа № 8. Программирование в командном процессоре ОС UNIX. … Можно присваивать результаты условных выражений переменным, также как и использовать результаты арифметических вычислений в качестве условий. Хорошим примером сказанного является выполнение некоторого действия, одновременно декрементируя некоторое значение. например: $ $ > > > > let x=5 while (( x-=1 )) do something done Этот пример показывает выполнение некоторого действия с начальным значением 5, которое декрементирует до тех пор, пока оно не будет равно нулю. При каждой итерации выполняется функция something. Наиболее распространённым является сокращение, избавляющееся от слова let в программах оболочек. Если объявить переменные целыми значениями, то любое присвоение автоматически будет трактоваться как арифметическое действие. Если использовать typeset -i для объявления и присвоения переменной, то при последующем её применении она станет целой. Также можно использовать ключевое слово integer (псевдоним для typeset -i) и объявлять таким образом переменные целыми. Выражения типа х=y+z будет восприниматься в это случае как арифметические. Команда read позволяет читать значения переменных со стандартного ввода: echo "Please enter Month and Day of Birth ?" read mon day trash В переменные mon и day будут считаны соответствующие значения, введённые с клавиатуры, а переменная trash нужна для того, чтобы отобрать всю избыточно введённую информацию и игнорировать её. Изъять переменную из программы можно с помощью команды unset. Имена некоторых переменных имеют для командного процессора специальный смысл. Значением переменной PATH (т.е. $РАТН) является список каталогов, в которых командный процессор осуществляет поиск программы или команды, указанной в командной строке, в том случае, если указанное имя программы или команды не содержит ни одного символа /. Если имя команды содержит хотя бы один символ /, то последовательность поиска, предписываемая значением переменной PATH, нарушается. В этом случае в зависимости от того, является имя команды абсолютным или относительным, поиск начинается соответственно от корневого или текущего каталога. Если Вы сами явно не присвоите переменной PATH какое-либо значение, то стандартной (по умолчанию) последовательностью поиска файла является следующая: текущий каталог, каталог /bin, каталог /usr/bin. Именно в такой последовательности командный процессор ищет файлы, содержащие программы, которые обеспечивают выполнение таких, например, команд, как echo, ls и cat. В списке каталогов, являющемся значением переменной PATH, имена каталогов отделяются друг от друга с помощью символа двоеточия. В качестве примера приведём команду: PATH=~/bin:/usr/local/bin/:/bin:/usr/bin Переменные PS1 и PS2 предназначены для отображения промптера командного процессора. PS1 — это промптер командного процессора, по умолчанию его значение равно символу $ или #. Если какая-то интерактивная программа, запущенная командным процессором, требует ввода, то используется промптер PS2. Он по умолчанию имеет значение символа >. Другие стандартные переменные: Кулябов Д. С. и др. Операционные системы 57 – HOME — имя домашнего каталога пользователя. Если команда cd вводится без аргументов, то происходит переход в каталог, указанный в этой переменной. – IFS — последовательность символов, являющихся разделителями в командной строке, например, пробел, табуляция и перевод строки (new line). – MAIL — командный процессор каждый раз перед выводом на экран промптера проверяет содержимое файла, имя которого указано в этой переменной, и если содержимое этого файла изменилось с момента последнего ввода из него, то перед тем как вывести на терминал промптер, командный процессор выводит на терминал сообщение You have mail (у Вас есть почта). – TERM — тип используемого терминала. – LOGNAME — содержит регистрационное имя пользователя, которое устанавливается автоматически при входе в систему. В командном процессоре Си имеется ещё несколько стандартных переменных. Значение всех переменных можно просмотреть с помощью команды set. 8.2.4. Метасимволы и их экранирование При перечислении имён файлов текущего каталога можно использовать следующие символы: – * — соответствует произвольной, в том числе и пустой строке; – ? — соответствует любому одинарному символу; – [c1-c1] — соответствует любому символу, лексикографически находящемуся между символами c1 и с2. Например, – echo * — выведет имена всех файлов текущего каталога, что представляет собой простейший аналог команды ls; – ls *.c — выведет все файлы с последними двумя символами, совпадающими с .c. – echo prog.? — выведет все файлы, состоящие из пяти или шести символов, первыми пятью символами которых являются prog.. – [a-z]* — соответствует произвольному имени файла в текущем каталоге, начинающемуся с любой строчной буквы латинского алфавита. Такие символы, как ' < >* ? | \ " &, являются метасимволами и имеют для командного процессора специальный смысл. Снятие специального смысла с метасимвола называется экранированием метасимвола. Экранирование может быть осуществлено с помощью предшествующего метасимволу символа \, который, в свою очередь, является метасимволом. Для экранирования группы метасимволов нужно заключить её в одинарные кавычки. Строка, заключённая в двойные кавычки, экранирует все метасимволы, кроме $, ' , \, ". Например, – echo \* выведет на экран символ *, – echo ab’*\|*’cd выведет на экран строку ab*\|*cd. 8.2.5. Командные файлы и функции Последовательность команд может быть помещена в текстовый файл. Такой файл называется командным. Далее этот файл можно выполнить по команде: bash командный_файл [аргументы] Чтобы не вводить каждый раз последовательности символов bash, необходимо изменить код защиты этого командного файла, обеспечив доступ к этому файлу по выполнению. Это может быть сделано с помощью команды chmod +x имя_файла 58 Лабораторная работа № 8. Программирование в командном процессоре ОС UNIX. … Теперь можно вызывать свой командный файл на выполнение, просто вводя его имя с терминала так, как-будто он является выполняемой программой. Командный процессор распознает, что в Вашем файле на самом деле хранится не выполняемая программа, а программа, написанная на языке программирования оболочки, и осуществит её интерпретацию. Группу команд можно объединить в функцию. Для этого существует ключевое слово function, после которого следует имя функции и список команд, заключённых в фигурные скобки. Удалить функцию можно с помощью команды unset c флагом -f. Команда typeset имеет четыре опции для работы с функциями: – -f — перечисляет определённые на текущий момент функции; – -ft — при последующем вызове функции инициирует её трассировку; – -fx — экспортирует все перечисленные функции в любые дочерние программы оболочек; – -fu — обозначает указанные функции как автоматически загружаемые. Автоматически загружаемые функции хранятся в командных файлах, а при их вызове оболочка просматривает переменную FPATH, отыскивая файл с одноимёнными именами функций, загружает его и вызывает эти функции. 8.2.6. Передача параметров в командные файлы и специальные переменные При вызове командного файла на выполнение параметры ему могут быть переданы точно таким же образом, как и выполняемой программе. С точки зрения командного файла эти параметры являются позиционными. Символ $ является метасимволом командного процессора. Он используется, в частности, для ссылки на параметры, точнее, для получения их значений

Since 2009 Since 2009

Since 2009 [email protected] FAQ Блог Наш канал Z-Access

1 Перейдите по этой ссылке или найдите бота «@BotFather» в Telegram

2 Отправьте команду /newbot

3 Укажите имя для вашего бота

4 Укажите имя пользователя для бота

5 Скопируйте последнее сообщение от BotFather и вставьте его сюда

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *