Главная » Просмотр файлов » ОС Лаб.работа №7(Командные процессоры ОС Unix. Работа с файлами)

ОС Лаб.работа №7(Командные процессоры ОС Unix. Работа с файлами) (1069348), страница 2

Файл №1069348 ОС Лаб.работа №7(Командные процессоры ОС Unix. Работа с файлами) (Лабораторные работы) 2 страницаОС Лаб.работа №7(Командные процессоры ОС Unix. Работа с файлами) (1069348) страница 22017-12-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Работа сфайлами)6Командный процессор bash, в отличие от других, использует более сложный алгоритм выполнения стартовых и login-файлов. Если он запущен как loginshell, то выполняет /etc/profile, если такой файл есть. Затем делается попыткавыполнить ~/. Bash/profile. Если такого файла нет, bash пытается выполнитьфайл ~/.bash_login, а если нет и такого файла, то выполняется ~/.

profile. Еслиbash запушен не как login shell, то при старте он выполняет только файл~/. bashrc. Если же bash был запущен как sh (т.е. sh является символьной ссылкойна bash), то при старте он ведет себя так же, как и sh.2.1.3 История командВсе командные процессоры запоминают введенные пользователем команды (их список называется историей команд).

Во время сеанса работы командный процессор хранит историю команд в памяти, а по окончании работы записывает их в файл на диск. Файл истории команд хранится в домашнем каталогепользователя. В sh, csh, tcsh он называется ~/.history, в bash — ~/. bash_history, вksh — ~/.shhistory, а в бесплатной версии Korn Shell (public domain Korn shell —pdksh) его по умолчанию нет вообще.Многие командные процессоры позволяют повторить вызов ранее введенной команды по ее номеру или начальным буквам.Существование файла истории команд может привести к уязвимости вашейсистемы. Имейте в виду, что по умолчанию он может быть доступен для чтения нетолько тому, кто вводил команды, но и другим пользователям.

В этом случае следует избегать ввода каких бы то ни было паролей в командной строке.Файл истории команд ограничен по размеру. По умолчанию bash хранит500 команд, tcsh — 1000, csh — 100, sh — в зависимости от версии. Часто sh- несоздает файл .history вовсе и дает доступ только к командам, которые были введены в течение текущего сеанса работы с ним. Можно изменить число хранимыхкоманд, указав иное значение переменной, в которой оно хранится.Таблица 4. Файлы истории командshellshcshПеременнаяHISTSIZEhistoryЗначение по умолчаниюне определено100Операционные системы Лаб.работа №7(Командные процессоры ОС Unix. Работа сфайлами)kshHISTSIZEbashHISTFILESIZE2.1.4 Псевдонимы команд7128500Псевдонимы - это сокращения для часто используемых длинных командили их последовательностей.Создание псевдонима:alias <псевдоним> <команда>Команда может быть последовательностью команд с ключами и аргументами, тогда ее следует заключить в апострофы:alias ll 'Is -l'Такая команда приведет к тому, что каждый раз при вводе ll командныйпроцессор будет фактически выполнять командуls -lСинтаксис определения псевдонимов в разных командных процессорах разный.

Псевдонимы обычно определяются в стартовых файлах.Так же, как и переменные среды окружения, псевдонимы могут экспортироваться, т. е. передаваться «по наследству» запускаемым из данного сеансаработы другим командным процессорам. Для этого используются ключи команды alias. Команда alias является встроенной командой командного процессора.Отмена назначенного псевдонима выполняется командойunalias <псевдоним>2.1.5 Переменные среды окруженияКаждый процессор имеет свою среду окружения - специальную область,в которой хранятся имена переменных и их значения.Для использования значения переменной в командном процессоре применяется конструкция$имя_переменнойНапример, команда echo $TERM выведет на экран значение переменной TERM.Операционные системы Лаб.работа №7(Командные процессоры ОС Unix.

Работа сфайлами)8Пользователь может определить свои собственные переменные. Новаяпеременная появляется, как только даётся команда присвоить значение несуществующей переменной.Переменная не имеет типа, так как считается, что все переменныеимеют тип «строка». При этом, если попытаться выполнить арифметическуюоперацию с переменными, имеющими значение неких чисел, то такая строкабудет преобразована в число, число использовано в операции и результат преобразован обратно в строку.Присвоение переменной значения во всех командных процессорах,кроме csh выполняется командой:VAR=<value>В сsh- команда иная:set VAR=<value>илиsetenv VAR <value>Переменные со специальными названиями типа DISPLAY, TERMINFOи т.

п. используют программы, которые проверяют свою среду окружения наналичие таких переменных и их значений. Поведение таких программ можетизменяться в зависимости от значения переменных.Переменные могут экспортироваться, т. е. передаваться от процессовродителей процессам-потомкам. Для экспорта переменной надо дать командуexport <имя_переменной.Если надо удалить переменную среды окружения, можно присвоить ейпустое значение (это не равнозначно удалению, но иногда этого достаточно),а можно удалить ее вовсе командой unset.В tsch есть возможность создавать переменные только для чтения, безправа изменения значений: для этого служит командаset -г <имя=значение>.Операционные системы Лаб.работа №7(Командные процессоры ОС Unix.

Работа сфайлами)9Кроме этого, в tcsh можно присвоить переменной значение в видесписка слов, к которым потом можно обращаться по номеру слова, начиная с1:set var=(hello world)echo {$var[1]}helloecho {$var[2]}worldДля вывода на экран списка всех переменных с их значениями надо датькоманду set без параметров.2.1.6 Предопределенные переменныеПредопределенные переменные содержатся в среде окружения командного процессора независимо от установок, которые может сделать пользователь в стартовых скриптах. Имена предопределенных переменных средыокружения во всех командных процессорах, кроме csh (и, в некоторых случаях, tcsh) пишутся символами верхнего регистра: PATH.

USER, TERM,PS1,PS2.В именах переменных среды окружения используются буквы латинского алфавита. Принято пользовательские, добавленные по ходу работы переменные в скриптах называть именами из символов нижнего регистра длятого, чтобы отличать переменные, введенные разработчиком системы, от тех,что вводит пользователь или требует прикладная программа.В любых командных процессорах обязательно заранее определены переменные, перечисленные в таблице 5.С другой стороны, многие другие переменные определяются не во всехкомандных процессорах. Посмотреть список всех переменных среды окружения обычно можно по командеsetЛюбой скрипт может быть вызван с аргументами, которые в скриптеназываются позиционными параметрами.

К аргументам с первого по девятыйОперационные системы Лаб.работа №7(Командные процессоры ОС Unix. Работа сфайлами)10следует обращаться как к $1. .$9. Значение SO — это имя самого скрипта, покоторому его вызвали. Один и тот же скрипт может быть вызван с разнымиименами, например, если с ним установлены символические связи (symboliclinks).Таблица 5. Предопределённые переменные среды окруженияПеременнаяНОМЕSHELLPS1PS2TERMUSER илиСмыслДомашний каталог пользователяТекущий shellВид приглашения shell'aВид приглашения «продолжение команды»Тип терминала пользователяИмя пользователяLOGNAMEPATHСписок каталогов, где надо искать программы, когда пользователь запускает программу, указывая только ее имя, ноне путь. Каталоги разделяются двоеточиямиКоманда shift n (п — положительное или отрицательное смещение) позволяет двигать «окошко» $1.

.$9 по всему массиву аргументов скрипта впереди назад, если аргументов больше девяти. Shift без параметров эквивалентенshift 1. В csh «окно» умеет сдвигаться только на одну позицию вперед.Кроме вышеописанных переменных обычно определены переменные,перечисленные в таблице 6.Таблица 6.Переменная$*__СмыслНомер процесса текущего shell'aВсе позиционные параметрыПоследняя вызванная команда1,2,...9Один позиционный параметр?Число позиционных параметровОперационные системы Лаб.работа №7(Командные процессоры ОС Unix.

Работа сфайлами)112.1.7 Подстановка имен файлов, ШаблоныПри запуске программ из командной строки часто требуется передатьим в качестве аргументов одно или несколько имен файлов. Часто эти именаудобно задать шаблономнапример,/var/log/messages. ?, что означает «все файлы из каталога /var/log, именакоторых начинаются на messages., а завершаются любым символом». Любой командный процессор умеет подставлять в командную строку имена файлов, соответствующие шаблону:ls -l /var/log/messages.?Символ «?» трактуется командным процессором как шаблон, которомусоответствует один любой символ.Командный процессор распознает и интерпретирует следующие символы в шаблонах (такие символы называются метасимволами, metasymbolsили wildcards).Таблица 7.

Значения метасимволовМетасимвол*?[…]СмыслЛюбая подстрока, в том числе пустаяОдин любой символОдин любой символ из списка (например, [avgf])или диапазона (например, [a-z])Порядок подстановки имен файлов по шаблону таков: вначале командный процессор находит все файлы, имена которых соответствуют шаблону, а затем подставляет имена всех этих файлов через пробел в строку в то место, где былнаписан шаблон.Например,если в текущем каталоге есть файлы money.с, money.bak, money.obj ,то командаls -l mon.* будет раскрыта вIs -1 money.с money.bak money.objОперационные системы Лаб.работа №7(Командные процессоры ОС Unix.

Работа сфайлами)122.1.8 Подстановка результата выполненияИногда возникает необходимость отыскать в системе файлы по некоторому признаку и со всеми этими файлами выполнить одинаковое действие:например, во всех файлах *.HTML заменить подстроку Siemens на Nixdorf.Если это требуется сделать только для файлов, лежащих в одном каталоге, то задача решается достаточно просто.Приведен пример скрипта для Bourne Shell, но аналогичный скрипт легконаписать и для других командных процессоров:for i in *.htmldosed 's/Siemens/Nixdorf/g' <$i >tmpmv tmp $idoneПеременная i последовательно принимает значения из списка, т. е.

накаждой итерации цикла она имеет разное значение; список будет содержатьимена всех файлов текущего каталога, соответствующих шаблону *.html.Команда sed обеспечивает замену всех вхождений Siemens на Nixdorf, причем во входной поток sed перенаправляется содержимое очередного файла, в зависимости от значения переменной i. Результат направляется в файл tmp. а команда mv обеспечивает переименование файла tmp в нужное имя для замены старого файла из списка *.HTML новым.Что делать, если такую процедуру надо проделать со всеми файлами*.НТМL всего дерева каталогов, начиная с текущего каталога?В UNIX есть уникальная возможность, которая реализована в любом командном процессоре: можно «вложить» одну команду в другую так, чтобы вначале выполнилась первая, а затем результат ее выполнения был подставлен в командную строку для вызова второй команды.Итак, мы хотим найти все файлы *.HTML в поддереве файловой системыначиная с текущего каталога.Используем find для поиска:Операционные системы Лаб.работа №7(Командные процессоры ОС Unix.

Характеристики

Тип файла
PDF-файл
Размер
677,27 Kb
Тип материала
Высшее учебное заведение

Список файлов лабораторной работы

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6274
Авторов
на СтудИзбе
316
Средний доход
с одного платного файла
Обучение Подробнее