Главная » Просмотр файлов » А.В. Столяров, И.Г. Головин, И.А. Волкова - Операционная система Unix

А.В. Столяров, И.Г. Головин, И.А. Волкова - Операционная система Unix (1115132), страница 4

Файл №1115132 А.В. Столяров, И.Г. Головин, И.А. Волкова - Операционная система Unix (А.В. Столяров, И.Г. Головин, И.А. Волкова - Операционная система Unix) 4 страницаА.В. Столяров, И.Г. Головин, И.А. Волкова - Операционная система Unix (1115132) страница 42019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

+ означает добавление новых прав, - – снятие старыхправ, = – установку указанных прав и снятие всех остальных. Послезнака буквы r, w, x означают, как можно догадаться, права на чтение, запись и исполнение, буква s – установку/снятие Set-битов (имеетсмысл для владельца и группы), t обозначает Sticky Bit. Буква X (заглавная) означает установку/снятие бита исполнения только для каталогов, а также для тех файлов, на которые хотя бы у кого-нибудь естьправа исполнения.Если команду chmod использовать с ключом -R, она проведёт сменуправ доступа ко всем файлам во всех поддиректориях заданной директории.Например, команда chmod a+x myscript сделает файл myscript исполняемым; команда chmod go-rwx * снимет со всех файлов в текущемкаталоге все права, кроме прав владельца.

Очень полезной может оказаться командаchmod -R u+rwX,go=rX ~на случай, если вы случайно испортите права доступа в своей домашнейдиректории; эта команда, скорее всего, приведёт всё в удовлетворительное состояние.2.5Перенаправления ввода-вывода в интерпретаторе Bourne ShellКак известно, практически все программы в ОС Unix следуют соглашению, по которому поток ввода-вывода с дескриптором 0 объявляется потоком стандартного ввода, поток с дескриптором 1 — потокомстандартного вывода и поток с дескриптором 2 — потоком для выводасообщений об ошибках.Осуществляя обмен данными через стандартные потоки, большинство программ не делает предположений о том, с чем на самом делесвязан тот или иной поток. Это позволяет использовать одни и те же17запустить программу cmd1, направив её вывод в файл file1.

Если файл существует,он будет перезаписан с нуля, если не существует – будет создан.>> file1запустить программу cmd1, дописав её вывод в конец файла file1. Если файла несуществует, он будет создан.< file2запустить программу cmd2, подав ей содержимое файла file2 в качестве стандартного ввода. Если файла не существует, произойдёт ошибка.> file1 < file2 запустить программу cmd3, перенаправивкак ввод, так и вывод.| cmd2запустить одновременно программы cmd1 иcmd2, подав данные со стандартного вывода первой на стандартный ввод второй.2> errfileнаправить поток сообщений об ошибках вфайл errfile.2>&1 | cmd6объединить потоки стандартного вывода ивывода ошибок программы cmd5 и направить всё на стандартный ввод программеcmd6cmd1 > file1cmd1cmd2cmd3cmd1cmd4cmd5Таблица 5: Примеры перенаправлений ввода-выводапрограммы как для работы с терминалом, так и для чтения из файлаи/или записи в файл.Командные интерпретаторы, в том числе классический Bourne Shell,предоставляют возможности для управления вводом-выводом запускаемых программ.

Для этого используются символы <, >, >>, >& и | (см.таблицу 5).Обычно в ОС Unix присутствует программа less, позволяющая постранично просматривать содержимое файлов, пользуясь клавишами"Стрелка вверх", "Стрелка вниз", PgUp, PgDn и др. для прокрутки.Эта же программа позволяет постранично просматривать текст, поданный ей на стандартный ввод. Использование программы less полезно вслучае, если информация, выдаваемая какой-либо из запускаемых вамипрограмм, не умещается на экран.

Например, командаls -lR | less18позволит вам просмотреть список всех файлов, находящихся в текущейдиректории и всех её поддиректориях.Учтите, что компилятор gcc выдаёт все сообщения об ошибках и предупреждения в стандартный поток ошибок. Поэтому, чтобы просмотреть постранично сообщения, выдаваемые в ходе компиляции, следуетдать, например, такую команду:gcc -Wall -g myprog.c -o myprog 2>&1 | less2.6ПроцессыСписок процессов, выполняющихся в настоящий момент, можно получить командой ps:$ psPID TTY2199 pts/52241 pts/5TIME CMD00:00:00 bash00:00:00 psКак видно, команда по умолчанию выдаёт только список процессов,запущенных в данном конкретном сеансе работы.К сожалению, опции команды ps очень сильно отличаются в зависимости от версии (в частности, для FreeBSD и Linux).

За подробнойинформацией следует обращаться к документации по данной конкретной ОС; здесь мы ограничимся замечанием, что команда ps ax выдастсписок всех существующих процессов, а команда ps axu дополнительновыдаст информацию о владельцах процессов5 .В некоторых случаях может оказаться полезной программа top, работающая интерактивно. Она выдаёт на экран список наиболее активных процессов, обновляя его один раз в секунду. Чтобы выйти из программы top, необходимо ввести букву q.Снять процесс можно с помощью сигнала.

Обычно применяют сначала сигнал SIGTERM (15), а если после этого процесс не завершился –сигнал SIGKILL (9). Сигнал SIGTERM может быть перехвачен программой, например, с целью корректного завершения; сигнал SIGKILL уничтожает процесс безусловным образом, не оставляя возможности произведения каких-либо действий по подготовке к корректному завершению.5 Это верно для ОС Linux и FreeBSD. В других ОС, например в SunOS/Solaris,опции команды ps имеют совершенно иной смысл19Для передачи сигнала процессу используется команда kill.

Поумолчанию передаётся сигнал SIGTERM, т.е., например, командаkill 2763 приведёт к тому, что процесс 2763 получит сигнал SIGTERM.Задать другой сигнал можно либо по номеру, либо по названию (TERM,KILL и т.п.). Следующие две команды эквивалентны; обе передают процессу 2763 сигнал SIGKILL:kill -9 2763kill -KILL 27632.7Выполнение в фоновом режимеНекоторые программы выполняются ощутимое время, при этом нетребуя взаимодействия с пользователем через стандартные потоки ввода/вывода. Во время выполнения таких программ удобно иметь возможность продолжать давать команды командному интерпретатору,чтобы не тратить время.Допустим, нам потребовался список всех файлов в файловой системе.

Такой список можно получить с помощью команды ls -lR /.Естественно было бы перенаправить её вывод в файл, чтобы позднееиметь возможность его анализа. Заметим, что такая команда будет выполняться несколько минут и ждать её окончания нам бы не хотелось,поскольку эти несколько минут мы могли бы, например, использоватьдля набора текста в редакторе. Чтобы запустить команду в фоновомрежиме, к ней следует в конце приписать символ &, например:$ ls -lR / >list.txt 2>/dev/null &[1] 2437Здесь мы перенаправили поток вывода сообщений об ошибках в устройство /dev/null6 , чтобы сообщения о невозможности чтения некоторыхкаталогов не мешали нашей дальнейшей работе.В ответ на нашу команду система сообщает, что задание запущенов фоновом режиме в качестве фоновой задачи №1, причем номер запущенного процесса – 2437.

Текущий список выполняемых фоновых задачможно узнать командой jobs:$ jobs[1]+ Runningls -lR / >list.txt 2>/dev/null &6 Устройство /dev/null предназначено для поглощения потоков данных, которыенам не нужны; в него можно записывать что угодно, данные при этом попростуисчезают20По окончании выполнения задачи командный интерпретатор нам обэтом сообщит. В случае успешного завершения сообщение будет выглядеть так:[1]+Donels -lR / >list.txt 2>/dev/null &В случае, если программа завершилась с кодом, отличным от нуля, сообщение будет иметь другой вид:[1]+Exit 1ls -lR / >list.txt 2>/dev/null &Наконец, если фоновый процесс снять сигналом, сообщение будет примерно таким (для сигнала SIGTERM):[1]+Terminatedls -lR / >list.txt 2>/dev/null &При отправлении сигналов процессам, являющимся фоновыми задачами данного конкретного экземпляра командного интерпретатора,можно ссылаться на номера процессов по номерам фоновых задач,добавляя к номеру символ %.

Так, команда kill %2 отправит сигналSIGTERM второй фоновой задаче. Символ % без указания номера обозначает последнюю из фоновых задач.Если задача уже запущена не в фоновом режиме и нам не хочется ждать её завершения, мы можем сделать обычную задачу фоновой.Для этого следует нажать Ctrl-Z, в результате чего выполнение текущей задачи будет приостановлено. Затем с помощью команды bg7 приостановленную задачу можно снова поставить на выполнение, но уже вфоновом режиме.Также возможно сделать текущей (т.е. такой, окончания которойожидает командный интерпретатор) любую из фоновых и приостановленных задач.

Это делается с помощью команды fg8 .2.8Электронная документацияДистрибутивы ОС Unix обычно содержат большое количество документации, доступ к которой можно получить непосредственно в процессе работы. Большая часть такой документации оформлена в видефайлов, отображаемых с помощью традиционной команды man, либо спомощью более современной программы info.7 От8 Отанглийского background – фонанглийского foreground212.8.1Команда manКоманда man служит для поиска и отображения установленной всистеме справочной информации. Справочник охватывает команды ОСUnix, системные вызовы, библиотечные функции языка C (и другихустановленных в системе языков), форматы файлов, некоторые общиепонятия и т.д.К примеру, если вы хотите узнать все опции команды ls, следуетдать команду$ man lsа если вы, допустим, забыли, в каком порядке идут аргументы системного вызова waitpid(), вам поможет$ man waitpidПрограмма man найдет соответствующий документ в системном справочнике и запустит программу его отображения.

Появившийся наэкране документ можно листать с помощью клавиш «стрелка вверх»и «стрелка вниз», можно использовать клавишу «пробел», чтобы пропустить сразу страницу текста. Выход из просмотра справочного документа осуществляется клавишей q (от слова quit).Если нужный вам справочный документ имеет большой объем, а вамнеобходимо найти в нем определенное место, может оказаться удобнымпоиск подстроки.

Это делается вводом символа /, после которого следует набрать строку для поиска и нажать Enter. Повторный поиск той жестроки осуществляется вводом / и нажатием Enter (то есть саму строку можно опустить). Чтобы выполнить поиск в обратном направлении,можно воспользоваться символом ? вместо /.В некоторых случаях системный справочник может содержать болееодного документа с данным именем. Так, в системе существует командаwrite и системный вызов write. Команда write вам вряд ли понадобится, так что, если вы набрали man write, скорее всего, вы имели ввиду системный вызов; к сожалению, система этого не знает и выдаствам совсем не тот документ, который вам нужен.Эту проблему можно решить указанием номера секции системногосправочника.

Так, в нашем примере команда$ man 2 writeвыдаст именно документ, посвященный системному вызову write, поскольку секция №2 содержит справочные документы по системным вызовам. Перечислим другие секции системного справочника:22• 1 – пользовательские команды ОС Unix (такие команды, как ls,rm, mv и т.п. описываются в этой секции)• 2 – системные вызовы ядра ОС Unix• 3 – библиотечные функции языка C (к этой секции можно обратиться, например, за информацией о функции sprintf)• 4 – описания файлов устройств• 5 – описания форматов системных конфигурационных файлов• 6 – игровые программы• 7 – общие понятия (например, man 7 ip выдаст полезную информацию о программированием с использованием TCP/IP)• 8 – команды системного администрирования ОС Unix (например,в этой секции вы найдете описание команды mount, предназначенной для монтирования файловых систем).Система может содержать и другие секции, причем не обязательно обозначающиеся цифрой; так, при установке в системе интерпретатораязыка Tcl его справочные страницы обычно оформляются в отдельнуюсекцию, которая может называться “n”, “3n” и т.п.2.8.2Команда infoЕсли команда man служит для отображения отдельных документов,то команда info позволяет осуществлять просмотр целых наборов страниц, связанных между собой гиперссылками; иначе говоря, документыв формате info представляют собой гипертекст, а сама команда – браузер (просмотрщик) гипертекста, работающий в текстовом режиме.Система info часто содержит более подробную информацию о томже предмете, чем man.

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

Список файлов книги

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