Сборник рефератов

Учебное пособие: Оперциаонные системы ASP Linux и Windows

ps  -flu   lev

PID    PPID    TTY   PRI   TIME             CMD

927      1          tty5              0:04                sh

1001  927        tty5              0:02                ps

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

ps  -f|grep  <имя_пользователя>.

Команда top

Команда ps позволяет сделать как бы "моментальный снимок" процессов, запущенных в системе. В отличие от ps команда top отображает состояние процессов и их активность "в реальном режиме времени". На рисунке 2.2.1. изображено окно терминала, в котором запущена программа top.

Рис. 2.2.1. Вывод команды top

В верхней части окна отображается астрономическое время, время, прошедшее с момента запуска системы, число пользователей в системе, число запущенных процессов и число процессов, находящихся в разных состояниях, данные об использовании ЦПУ, памяти и свопа. А далее идет таблица, характеризующая отдельные процессы. Число строк, отображаемых в этой таблице, определяется размером окна: сколько строк помещается, столько и выводится. Графы таблицы обозначены так же, как поля вывода команды ps. Содержимое окна обновляется каждые 5 секунд.

Приоритеты, значение nice и команда renice

Приоритет для каждого процесса устанавливается в тот момент, когда процесс порождается. Приоритет процесса определяется так называемым "значением nice", которое лежит в пределах от +20 (наименьший приоритет, процесс выполняется только тогда, когда ничто другое не занимает процессор), до -20 (наивысший приоритет).

Значение nice устанавливается для каждого процесса в момент порождения этого процесса и при обычном запуске команд или программ принимается равным приоритету родительского процесса. Но существует специальная команда nice, которая позволяет изменять значение nice при запуске программы. Формат использования этой программы:

nice [- adnice] command [args]

где adnice  значение (от –20 до +19), добавляемое к значению nice процесса-родителя. Полученная сумма и будет значением nice для запускаемого процесса. Отрицательные значения может устанавливать только суперпользователь. Если опция — adnice не задана, то по умолчанию для процесса-потомка устанавливается значение nice, увеличенное на 10 по сравнению со значением nice родительского процесса. Очевидно, что если вы не суперпользователь, то применять эту команду имеет смысл только тогда, когда вы хотите запустить некий процесс с низким значением приоритета.

Другая команда, renice, служит для изменения значения nice для уже выполняющихся процессов. Ее формат таков:

renice priority [[-p] PID] [[-g] grp] [[-u] user]

Например, команда

renice -1 987 –u daemon –p 32

увеличивает на 1 приоритет процессов с PID 987 и 32, а также всех процессов пользователя daemon.

Суперпользователь может изменить приоритет любого процесса в системе. Другие пользователи могут изменять значение приоритета только для тех процессов, для которых данный пользователь является владельцем. При этом обычный пользователь может только уменьшить значение приоритета (увеличить значение nice), но не может увеличить приоритет, даже для возврата значения nice к значению, устанавливаемому по умолчанию. Поэтому процессы с низким приоритетом не могут породить "высокоприоритетных детей".

Сигналы и команда kill

Сигналы — это средство, с помощью которого процессам можно передать сообщения о некоторых событиях в системе.

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

kill –l

Сигналы принято обозначать номерами или символическими именами. Все имена начинаются на SIG, но эту приставку иногда опускают: например, сигнал с номером 1 обозначают или как SIGHUP, или просто как HUP.

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

Можно заставить процесс игнорировать или блокировать некоторые сигналы. Игнорируемый сигнал просто отбрасывается процессом и не оказывает на него никакого влияния. Блокированный сигнал ставится в очередь на выдачу, но ядро не требует от процесса никаких действий до разблокирования сигнала. После разблокирования сигнала программа его обработки вызывается только один раз, даже если в течение периода блокировки данный сигнал поступал несколько раз.

В табл. 2.2.1. приведены некоторые из часто встречающихся сигналов.

Таблица 2.2.1. Сигналы

Имя

Описание

Можно перехватывать

Можно блокировать

Комбинация клавиш

1 HUP Hangup. Отбой Да Да
2 INT Interrupt. В случае выполнения простых команд вызывает прекращение выполнения, в интерактивных программах — прекращение активного процесса Да Да <Ctrl>+<C> или <Del>
3 QUIT Как правило, сильнее сигнала Interru Да Да <Ctrl>+<\>
4 ILL Illegal Instruction. Центральный процессор столкнулся с незнакомой командой (в большинстве случаев это означает, что допущена программная ошибка). Сигнал отправляется программе, в которой возникла проблема Да Да
8 FPE Floating Point Exception. Вычислительная ошибка, например, деление на ноль Да Да
9 KILL Всегда прекращает выполнение процесса Нет Нет
11 SEGV Segmentation Violation. Доступ к недозволенной области памяти Да Да
13 PIPE Была предпринята попытка передачи данных с помощью конвейера или очереди FIFO, однако не существует процесса, способного принять эти данные Да Да
15 TERM Software Termination. Требование закончить процесс (программное завершение) Да Да
17 CHLD Изменение статуса порожденного процесса Да Да
18 CONT Продолжение выполнения приостановленного процесса Да Да
20 TSTR Сигнал останова, генерируемый клавиатурой. Переводит процесс в фоновый Да Да <Ctrl>+<Z>

Как видно из таблицы 2.2.1, некоторые сигналы можно сгенерировать с помощью определенных комбинаций клавиш. Но такие комбинации существуют не для всех сигналов. Зато имеется команда kill, которая позволяет послать заданному процессу любой сигнал.

Для посылки сигнала процессу (или группе процессов) можно воспользоваться командой kill в следующем формате:

kill [-сигн] PID [PID..]

где сигн — это номер сигнала, причем если указание сигнала опущено, то посылается сигнал 15 (TERM — программное завершение процесса). Чаще всего используется сигнал 9 (KILL), с помощью которого суперпользователь может завершить любой процесс. Но сигнал этот очень "грубый", если можно так выразиться, поэтому его использование может привести к нарушению порядка в системе. Поэтому в большинстве случаев рекомендуется использовать сигналы TERM или QUIT, которые завершают процесс более "мягко".

Наиболее часто команду kill вынужден применять суперпользователь. Он должен использовать ее для уничтожения процессов-зомби, зависших процессов (они показываются в листинге команды ps как <exiting>), процессов, которые занимают слишком много процессорного времени или слишком большой объем памяти и т. д. Особый случай — процессы, запущенные злоумышленником.

Перевод процесса в фоновый режим

Если вы запускаете какой-то процесс путем запуска программы из командной строки, то обычно процесс запускается, как говорят, "на переднем плане". Это значит, что процесс "привязывается" к терминалу, с которого он запущен, воспринимая ввод с этого терминала и осуществляя на него вывод. Но можно запустить процесс в фоновом режиме, когда он не связан с терминалом. Для запуска процесса в фоновом режиме в конце командной строки запуска программы добавляют символ & (амперсанд).

Например, в фоновом режиме запускается процесс cc prog.c:

$ cc prog.c &

2388

$

Shell выводит номер этого процесса (PID) и разрешает  ввод следующей команды.

Фоновые процессы обладают некоторыми недостатками:

-                      не допускают ввода с клавиатуры;

-                      обспечивают  вывод  на  экран, но при этом нарушают целостность вывода диалогового процесса.

Общепринятый прием исключения влияния фонового вывода на интерактивную работу:

ком_строка>имя_файла.out &

-                      ком_строка планирует задание для фонового режима

-                      перенаправляет вывод вместо экрана в указанный файл головного каталога пользователя.

Пример: Запуск программы, осуществляющей поиск файлов по шаблону «ааа*», в фоновом режиме,  результаты поиска перенаправляются в файл grep.out:

$grep ааа* > grep.out &

194

$ps

PID            TTY           TIME             CMD

194           tty5              0:02                grep

 200           tty5              0:01                ps

В оболочке bash имеются две встроенные команды, которые служат для перевода процессов на передний план или возврата их в фоновый режим. Но прежде, чем рассказывать об этих командах, надо рассказать о команде jobs. Она всегда вызывается без аргументов и показывает задания, запущенные из текущего экземпляра shell. В начале каждой строки вывода этой команды указывается порядковый номер задания в виде числа в квадратных скобках. После номера указывается состояние процесса: stopped (остановлен), running (выполняется) или suspended (приостановлен). В конце строки указывается команда, которая исполняется данным процессом. Один из номеров выполняющихся заданий помечен знаком +, а еще один — знаком -. Процесс, помеченный знаком +, будет по умолчанию считаться аргументом команд fg или bg, если они вызываются без параметров. Процесс, помеченный знаком -, получит знак +, если только завершится по какой-либо причине процесс, который был помечен знаком +.

Команды fg и bg  служат для перевода процессов на передний план или возврата их в фоновый режим. В качестве аргумента обеим этим командам передаются номера тех заданий, которые присутствуют в выводе команды jobs. Если аргументы отсутствуют, то подразумевается задание, помеченное знаком +. Команда fg переводит указанный в аргументе процесс на передний план, а команда bg — переводит процесс в фоновый режим. Одной командой bg можно перевести в фоновый режим сразу несколько процессов, а вот возвращать их на передний план необходимо по одному.

Практическая работа №4(1)  Команды управления процессами. Создание фоновых процессов

Цель работы:

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

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

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

Изучаются команды:

ps                  - запрос информации о процессах текущего терминала;

top                получение информации о "состоянии процессов в режиме реального времени;

&                   - запуск фонового процесса;

jobs               - запрос листинга списка заданий;

bg                  - перевод оперативного в фоновый режим;

fg                   перевод фонового процесса в оперативный.

1)   Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.

2)   Выведите на экран Терминала справку по следующим командам: ps, top, jobs, bg, fg. Назначение и формат команд приведите в отчете.

3)   Выведите на экран листинг характеристик (в длинном и коротком форматах) процессов, инициализированных с Вашего терминала. Проанализируйте и объясните содержание каждого поля сообщения

4)   Запустите утилиту получения информации о процессах в режиме реального времени. Проанализируйте и объясните содержание каждого поля сообщения

5)   Запустите простейшую процедуру в фоновом режиме с бесконечным циклом выполнения, предусматривающую, например процесс, выводящий на экран бесконечный поток символов «y»:

уes &

6)   Выведите на экран листинг характеристик (в длинном и коротком форматах) процессов, инициализированных с Вашего терминала. Объясните изменения в листинге характеристик процессов. Объясните содержание PID и PPID. Какой процесс является родительским для запущенной процедуры.

7)   Выйдите из системы и войдите заново. Проанализируйте листинг процессов. Объясните изменения в системе.

8)   Запустите процесс уes в оперативном режиме с перенаправлением вывода в устройство  /dev/null («черная дыра»).

9)   Переведите процесс в оперативный режим и проанализируйте сообщение на экране.

10)      Приостановите выполнение процесса и переведите его в фоновый режим. Проанализируйте сообщение на экране.

11)      Завершите работу всех запущенных вами процессов, переведя их на передний план и нажав клавиши Ctrl+C.

12)      Завершите работу с Терминалом.

Практическая работа №4(2)  Управление приоритетами процессов. Завершение работы процессов

Цель работы:

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

2.         Научиться осуществлять управление существующими в системе процессами, изменяя их приоритеты и посылая им сигналы управления.

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

Изучаются команды:

nice                - понижение приоритета процесса;

kill                 - посылка сигнала процессу.

1)   Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.

2)   Выведите на экран Терминала справку по следующим командам: nice, kill. Назначение и формат команд приведите в отчете.

3)   Запустите процесс уes в оперативном режиме с перенаправлением вывода в устройство  /dev/null («черная дыра»).

4)   Приостановите выполнение процесса, используя команду kill.

5)   Переведите процесс в фоновый режим. Проанализируйте сообщение на экране.

6)   Убейте процесс, послав командой kill сигнал завершения процесса.

7)   Запустите процесс поиска директорий в корневом каталоге в фоновом режиме (выводимые данные перенаправьте в файл или «черную дыру»).

8)   Выведите на экран листинг характеристик (в длинном формате) процессов, инициализированных с Вашего терминала. Каково значение приоритета запущенного процесса? Какой процесс является родительским для запущенной процедуры.

9)   Понизьте значение приоритета процедуры поиска. На что и как повлияет эта операция при управлением вычислительным процессом системы? Как отразятся её результаты в описателях процессов?

10)      Убейте все созданные ранее процессы и завершите работу с Терминалом.

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

1.   Объясните понятия процесса и ресурса. Какое их значение в организации вычислительного процесса в ОС UNIX?

2.   Какая информация содержится в описателях процессов? Как просмотреть их содержание в процессе работы с системой?

3.   Какими способами можно организовать выполнение программ в фоновом режиме?

4.   Какие особенности выполнения программ в фоновом режиме? Как избежать вывода фоновых сообщений на экран и прерывания выполнения фоновых программ при прекращении сеанса работы с системой?

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

6.   Как можно прервать выполнение активных процессов? Какая информация для этого необходима и откуда она извлекается?

Тема 2.3. Права доступа к файлам и каталогам

 

2.3.1. Команды управления правами доступа

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

Права процессов пользователей при доступе к файлу  кодируются  в   атрибутах  защиты  файла. Атрибуты сопровождают каждый файл, хранятся в описателях файлов, на которые в каталоге имеются ссылки,  и  доступны  для анализа и изменения посредством специальных команд ОС UNIX. Атрибуты  защиты  файла определяют права доступа трем видам процессов: процессам пользов ателя - владельца  файла  (u - user), процессам группы владельца файла (g - group) и процессам остальных пользователей (o - other), не попавших ни  в  одну  из двух предыдущих категорий. Код атрибутов прав доступа пользователей трех перечисленных категорий для каждого файла  отображается  в полном листинге каталога символьным кодом в виде комбинации следующих символов:

r - разрешение на чтение или на выполнение файла, для каталога - просмотр содержимого каталога (список всех файлов);

w - разрешение модификации или удаления файла, для каталога - включение или удаление файлов;

x - разрешение выполнения файла (совместно с - r), для каталога - поиск по  каталогу конкретных отдельных файлов или сделать каталог текущим.

Например, полный  листинг  каталога   /udd/user1/lev  может иметь следующий вид:

-rwxr-xr-x   1 lev      user1        171 Mar  4 14:20 fil1.c

drwxr-xr-x   2 lev      user1         32 Mar  4 14:51 hh

Здесь файл fil1.c, владельцем которого является  пользователь со входным именем lev, является обычным, содержит исходный текст программы на языке Си длиной 171 байт, доступен владельцу для чтения, записи и выполнения,   членам группы и прочим пользователям - только для чтения и выполнения. Директория hh защищена для включения новых и удаления существующих файлов.

Для изменения значений  кодов защиты только указанных в команде файлов служит команда:

chmod  <коды защиты> <список_файлов>

Коды защиты (r, w, x) могут быть  заданы  только  владельцем файла в символьном или числовом виде. Атрибуты задаются для владельца (u), его группы (g) и остальных  пользователей (o) или для всех категорий пользователей одновременно (a).

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

=     - присвоить значения кодов доступа (замена существующих);

+     - добавить значения кодов доступа;

-     - отобрать права доступа.

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

 rw-rw-rw-           - для файла;

 rwxrwxrwx         - для каталога.

Например, необходимо сделать некоторый файл shproc1 выполняемым,  если он был создан как обычный. Для этого можно использовать следующую команду:

$ chmod u+x shproc1

$ shproc1

< Выполнение программы из файла shproc1 >

$

Эти действия необходимы и при формировании и выполнении shell-процедуры.

chmod a+x f1      - в данном случае  файл f1 становится  доступным  для исполнения всем пользователям;

chmod a=rwx f2  - предоставляются все права всем категориям пользователей.

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

Например:

Символьное представление:   rwx r-x r--

Двоичное представление:     111 101 100

Восьмеричное представление:  7   5   4

Поэтому следующая команда:

chmod 0754 f3

- эквивалентна команде:

chmod u=rwx,g=rx,o=r f3

В результате выполнения команд в любой из приведенных форм коды доступа файла f3 приобретут следующий вид:

ls -l f3

”””””””””””””””””””””””””””””

-rwxr-xr--  .......................  f3

”””””””””””””””””””””””””””””

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

С целью защиты файла от удаления надо отобрать право (w) как у файла, так и у каталога, в котором находится файл.

Стандартные значения кодов прав  доступа устанавливает администратор системы. Однако пользователь в rsh  может изменить временно (до конца сеанса работы) значение кода для всех своих новых файлов с помощью команды:

$umask [-r]  <режим-доступа>

Собственно маска - это двоичный код, с этим кодом и двоичным кодом установленным ране выполняются некоторые логические операции - в результате операции вычисляются новые коды защиты. В ksh - возможно символьное представление кодов защиты в umask, а собственно числовое значение маски просчитывается системой автоматически и используется для вычисления результирующих заданных в команде кодов доступа; ключ   -S   -выводит на экран текущие символьные значения кодов; без ключа  - команда выводит числовое значение маски.

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

chown  нов_владелец  имя_файла – владелец передает права владения данным файлом другому пользователю или группе.

chgrp  нов_группа  имя_файла - передача прав другой группе (сменить группу).

Практическая работа №5(1) Управление правами доступа к файлам

Цель работы:

1.         Изучить принципы защиты файлов от несанкционированного доступа

2.         Изучить влияние задаваемых прав доступа к файлу на выполнение различных команд по обработке этих файлов .

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

Изучаются команды:

chmod           - изменить права доступа к указанному файлу.

1)   Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.

2)   Выведите на экран Терминала справку по следующим командам: chmod. Назначение и формат команд приведите в отчете.

3)   Создайте в Вашем HOME-каталоге один текстовый файл, например с именем f1. Выведите на экран полный листинг каталога.

4)   Проанализируйте и умейте объяснить какие права доступа к f1 имеет владелец файла, его группа и остальные пользователи.

5)   Выведите на экран содержимое файла f1. Объясните почему операция выполнилась успешно.

6)   Запретите права на чтение f1 владельцу и группе. Попытайтесь вывести на экран текст файла. Объясните почему операция не выполняется.

7)   Удалите права на запись в файл. Попытайтесь добавить к файлу текст и удалить его. Объясните результат.

8)   Завершите работу с Терминалом

Практическая работа №5(2)  Управление правами доступа к каталогам

Цель работы:

1.         Изучить принципы защиты каталогов от несанкционированного доступа

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

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

Изучаются команды:

chmod           - изменить права доступа к указанному каталогу.

1)   Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.

2)   Выведите на экран Терминала справку по следующим командам: chmod. Назначение и формат команд приведите в отчете.

3)   Проанализируйте права доступа к Вашему личному каталогу. Есть ли ограничения на работу с файлами в этом каталоге?

4)   Удалите право на модификацию каталога. Выполните операцию удаления файла f1, созданного в ходе выполнения работы 5(1). Объясните результат.

5)   Создайте подкаталог. Разместите в нем текстовый файл. Проанализируйте права доступа к подкаталогу и объясните возможности по использованию подкаталога.

6)   Удалите право владельца на «выполнение» подкаталога.

7)   Попытайтесь сделать подкаталог текущим. Объясните результат.

8)   Просмотрите содержимое подкаталога. Объясните результат.

9)   Попытайтесь вывести длинный листинг подкаталога только для одного из файлов (поиск файла по подкаталогу). Объясните результат.

10)      Попытайтесь вывести на экран содержимое файла. Объясните результат.

11)      Верните право для подкаталога на «выполнение», удалите право на «чтение» и сохраните право на «модификацию».

12)      Выполните п.п. 7, 8, 9, 10. Проанализируйте и объясните результаты

13)      Верните право для подкаталога на «выполнение», удалите право на «чтение» и сохраните право на «модификацию»

14)      Выполните п.п. 7, 8, 9, 10. Проанализируйте и объясните результаты

15)      Завершите работу с Терминалом

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

1.   Как кодируются в атрибутах файла и каталога права доступа?

2.   Кто может пользоваться и изменять права доступа к файлам?

3.   Какие команды для изменения символьных кодов прав доступа Вы знаете? Перечислите и расскажите о назначении каждой из команд.

4.   В чем разница в применении команд chmod и umask?

5.   Какие команды обработки файлов разрешают (или запрещают) права на чтение, модификацию и исполнение?

6.   Какие команды обработки каталогов разрешают (или запрещают) эти же права?

7.   Что означает право на выполнение, применительно к каталогу?

8.   Какими правами надо обладать, чтобы удалить файл или каталог?

9.   Какие команды для защиты файлов Вы знаете?

Тема 2.4. Редактирование файлов средствами редактора vi

 

2.4.1. Текстовый редактор vi

Во всех версиях ОС UNIX имеется встроенный текстовый редактор vi экранного типа. Он может применяться практически на любом терминале, начиная с телетайпа. Редактор является универсальным средством, доступным в среде любой UNIX-подобной ОС.

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

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

Начало работы с редактором:

$vi имя_файла   [*]   вызов редактора и файла

Если файл не существует, то создается новый пустой

Редактируемый файл переписывается в буфер. Далее все изменения в редактируемом файле соответственно осуществляются в буфере в КОМАНДНОМ РЕЖИМЕ - нажатые клавиши интерпретируются как команды редактирования текста. В командный режим редактор переводится автоматически сразу же после входа в программу vi.

По завершении редактирования надо выйти из редактора с сохранением файла:

<Esc>:wq! - отредактированная копия замещает исходный файл. Если же требуется отменить все редактирование, то:

<Esc>:q!

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

команды режима ввода текста (значения клавиш на экране не отображается):

a (append) - набор последующего текста в текущую строку после курсора

i (insert)       - вставка текста в текущую строку после курсора

o (open)        - вставить пустую строку после текущей

Замечание: если в качестве управляющей используется клавиша нижнего регистра – операция редактирования реализуется после курсора, если верхнего - перед курсором.

Операции ввода текста необходимо завершить командой

<Esc> - переводит редактор в режим редактирования последнего варианта текста. В командном режиме могут исполняться и другие группы команд.

Команды управления курсором в области текста  файла. Два способа - использование специальных клавиш-команд (см справочник) или использование общеизвестных управляющих клавиш клавиатуры.

Команды удаления текста

х         - удаление текущего символа

[#]dw - удаление # текущих слов

[#]dd  -удаление текущих строк

dG      - удаление всех строк от текущей до последней

d$       - удаление конца строки от текущей позиции

d^       - удаление начала строки до текущей позиции.

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

Команды отмены произведенных изменений в текущей строке:

u - отмена (undo) последнего изменения

U - отмена всех изменений.

Команды копирования указанного в команде объекта в буфер:

[#]yw  - копирование (yank) текущего слова

[#]yy   - копирование текущей строки

уG       - копирование строк от текущей до конца файла

yS        - копирование части строки от курсора до конца строки

y^         - копирование части строки от курсора до начала строки

Команды вставки буфера в текст:

P          - перед курсором

p          - после курсора

Команды изменения текста:

r<символ>   - заменяет (change) текущий символ на указанный

с<объек>     - заменяет указанный объект на текст, который вводится с клавиатуры - <Esc>

-   #cw  -изменение текущего слова

-   #cc   - всей текущей строки

-   cG    - всех строк файла от текущей до последней

-   cS     -части строки от курсора до конца строки

-   с^      - части строки от курсора до начала строки.

Команды поиска строки файла по фрагменту текста:

/<текст>     - начиная от текущей строки до конца файла с переходом

                     на его начало

?<текст>     - начиная от текущей строки до начала файла и по всему

n        - поиск следующей строки в файле, аналогичной найденной

N       - поиск предыдущего вхождения в файл заданной строки.

Редактор имеет возможности поиска строк по шаблонам (например по диапазону символов) и пр.

На экране содержимое редактируемого файла представляется как бы через некоторое окно со следующими полями (сверху - вниз):

-   область текста файла;

-   область пустых строк, которые надо ввести, если они понадобятся;

-   тильда (~) - область для ввода дополнительного текста файла, но пустых строк этой области в файле нет;

-   область сообщений редактора или область префиксных ex-команд -  операций редактора над группой строк файла или над целым файлом (команды вводятся на приглашение ":", отображаются на экране и исполняются по команде управляющей клавиши перевода строки).

Команды используются для многострочных операций с редактируемым файлом и настройки сеанса редактирования:

:w файл                  - запись текущего буфера в файл;

:m,nw  файл           - запись строк с m-ой по n-ую в файл;

:e!                            - отмена всех изменений в буфере с перезагрузкой в него файла с диска;

:e файл         - загрузка файла в буфер редактирования, файл замещает старое содержимое самого буфера;

:r файл    - добавление содержимого файла после текущего положения курсора;

:set опция     - значение опций определяет настройку редактора и пр.

Практическая работа №6(1) Изучение интерфейса редактора vi

Цель работы:

1.         Изучить основные возможности встроенного текстового редактора vi - наиболее распространенного средства для построения текстовых файлов, исходных текстов программ и shell-процедур.

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

1)   Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.

2)   Войдите в редактор с созданием нового  пустого файла с произвольным именем и расширением - .1.

3)   Изучите интерфейс редактора vi. Как перейти в командный режим редактора? В текстовый режим редактора? Какие операции с текстом позволяет выполнить редактор?

4)   Поместите в созданный файл текст, включающий не менее четырех строк с несколькими словами в каждой.

5)   Вставьте по одной пустой строке до и после одной из строк файла.

6)   Заполните пустые строки произвольным текстом.

7)   Вставьте еще по одной строке в середину текста файла без предварительного резервирования пустых строк.

8)   Перейдите в режим редактирования и выполните произвольное редактирование отдельных слов и строк файла с использованием всех команд из групп "Команды изменения текста" и "Команды отмены произведенных изменений в текущей строке".

9)   Выйдите из редактора с сохранением файла. Убедитесь в сохранении созданного файла.

Практическая работа №6(2)  Создание и редактирование текста с помощью редактора vi

Цель работы:

1.         Изучить основные возможности встроенного текстового редактора vi.

2.         Научиться редактировать текстовые файлы средствами редактора vi.

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

Изучаются команды:

-           сохранение файлов;

-           ввода текста;

-           удаления фрагментов текста;

-           копирования фрагментов текста в буферную область памяти;

-           вставки содержимого буфера в текст файла;

-           редактирования (изменения) текста;

-           поиска строк файлов по их фрагментам;

-           многострочных операций с файлом (префиксные команды)

1)   Зарегистрируйтесь в ОС Linux. Запустите на выполнение программу Терминал.

2)   Войдите опять в vi для редактирования созданного файла с использованием команд из групп "Команды копирования в буфер" и "Команды вставки буфера в текст".

3)   Поменяйте местами несколько слов в строках файла.

4)   Поменяйте местами несколько строк.

5)   Поменяйте местами последовательно начало строки с её концом и наоборот.

6)   Выполните операции поиска строк файла по заданным их фрагментам с различными направлениями поиска ( см. "Команды поиска строки файла по фрагменту её текста").

7)   Не выходя из vi, перепишите полученную в результате редактирования версию файла в файл с тем же именем, но с расширением .new.

8)   Добавьте первые 3 строки редактируемого файла к файлу  .1.

9)   Не выходя из vi, загрузите в буфер файл с расширением  .1.

10)      Последовательно удалите части строк и несколько строк с использованием команд из группы "Команды удаления текста".

11)      Выйдите из редактора без сохранения файла.

12)      Просмотрите и  проанализируйте содержимое редактируемых файлов в текущем каталоге.

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

1.   В чем особенности и преимущества встроенного редактора vi ОС UNIX?

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

3.   Какую структуру имеет экран при редактировании файла? Назначение полей экрана?

4.   Как в vi организовано редактирование открытого в нем файла?

5.   Как организована работа с клавишными командами редактора?

6.   Что такое "префиксные команды" и их назначение? Как организована работа с командами этого вида?

7.   Какие функции редактора Вы использовали при выполнении лабораторной работы?

Тема 2.5. Изучение сетевых команд shell

2.5.1. Сетевые команды Shell

Персональный компьютер на вашем рабочем месте может быть подключен к локальной сети. Более того, локальные сети становятся реальностью и в домашних условиях. Рассмотрим работу с одной из сетевых команд ОС Linux – утилитой netstat.

Утилита netstat выводит информацию о локальной сети и средствах TCP/IP. Именно к ней чаще всего обращаются администраторы, чтобы быстро отыскать причину неисправности в сети TCP/IP. Содержание и форма выходной информации зависят от операционной системы, но обычно выводятся следующие данные: список соединений, статистика сетевых интерфейсов, информация по буферам данных, содержание таблицы маршрутизации, статистика работы протокола. Характер выводимой информации можно выбирать с помощью опции командной строки.

Основные ключи утилиты:

при выведении параметров утилиты на экран используйте команду | more для постраничного вывода.

Ключ

Функция

  -r route   вывод таблицы маршрутизации 
 -i interfaces   вывод статистики сетевых интерфейсов 
 -s statistics   Фвывод статистики передачи данных (по протоколу SNMP) 
  -n numeric   имена портов в числовом виде 
 -N symbolic   имена портов в символическом виде 
 -l listening   вывод состояния портов, находящиеся в режиме ожидания 
 -a all   вывод состояния всех портов 
 Активные соединения через порты: 
 -st   TCP 
  -u   UDP 
 -W   RAW 
 -X   UNIX 

Список соединений.

Команда netstat обладает набором ключей для отображения портов, находящихся в активном и/или пассивном состоянии. Таким образом, можно получить список всех серверных приложений, работающих на данном компьютере.

Страницы: 1, 2, 3, 4


© 2010 СБОРНИК РЕФЕРАТОВ