Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Знакомство с операционной системой Linux



Знакомство с операционной системой Linux

Цель работы

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

Теоретическая часть

Система включает следующие основные компоненты.

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

Диспетчер процессов Init. Активизирует процессы, необходимые для нормальной работы системы и производит их начальную инициализацию. Обеспечивает завершение работы системы, организует сеансы работы пользователей, в том числе, для удаленных терминалов.

Интерпретатор команд Shell. Анализирует команды, вводимые с терминала либо из командного файла, и передает их для выполнения в ядро системы. Команды обычно имеют аргументы и параметры, которые обеспечивают модернизацию выполняемых действий. Shell является также языком программирования, на котором можно создавать командные файлы (shell-файлы). При входе в ОС пользователь получает копию интерпретатора shell в качестве родительского процесса. Далее, после ввода команды пользователем создается порожденный процесс, называемый процессом-потомком. Т.е. после запуска ОС каждый новый процесс функционирует только как процесс - потомок уже существующего процесса. В ОС Linux имеется возможность динамического порождения и управления процессами.

Shell - интерпретатор в соответствии с требованиями стандарта POSIX поддерживает графический экранный интерфейс, реализованный средствами языка программирования Tcl/Tk.

Обязательным в системе является интерпретатор Bash, полностью соответствующий стандарту POSIX. В качестве Shell может быть использована оболочка mc с интерфейсом, подобным Norton Commander.

Сетевой графический интерфейс X-сервер (X-Windows). Обеспечивает поддержку графических оболочек.

Графические оболочки KDE, Gnome. Отличительными свойствами KDE являются: минимальные требования к аппаратуре, высокая надежность, интернационализация. Базовые библиотеки KDE (qt, kde-libs) признаны одними из лучших продуктов по созданию графического интерфейса, обеспечивают простое написание программ с использованием передовых технологий. Gnome имеет развитые графические возможности, но более требователен к аппаратным средствам.

Сетевая поддержка NFS, SMB, TCP/IP. NFS - программный комплекс РС-NFS (Network File System) для выполнения сетевых функций. РС-NFS ориентирован для конкретной ОС персонального компьютера (PC) и включает драйверы для работы в сети и дополнительные утилиты. SMB - сетевая файловая система, совместимая с Windows NT. TCP/IP - протокол контроля передачи данных (Transfer Control Protocol/Internet Protocol). Сеть по протоколам TCP/IP является неотъемлемой частью ОС семейства UNIX. Поддерживаются любые сети, от локальных до Internet, с использованием только встроенных сетевых средств.

Инструментальные средства программирования. Основой средств программирования является компилятор GCC или его экспериментальные версии EGCS и PGCC для языков С и С++; модули поддержки других языков программирования (Obective C, Фортран, Паскаль, Modula-3, Ада, Java и др.); интегрированные среды и средства визуального проектирования: Kdevelop, Xwpe; средства адаптации привязки программ AUTOCONFIG, AUTOMAKE.

 

Регистрация пользователя в системе

Для входа пользователя с терминала в многопользовательскую операционную систему LINUX необходимо зарегистрироваться в качестве пользователя. Для этого нужно после сообщения

Login:

ввести системное имя пользователя, например, " student". Если имя задано верно, выводится запрос на ввод пароля:

Password:

Наберите пароль " student" и нажмите клавишу Enter.

Если имя или пароль указаны неверно, сообщение login повторяется. Значение пароля проверяется в системном файле password, где приводятся и другие сведения о пользователях. После правильного ответа появляется приветствие LINUX и приглашение:

student@linux: >

Вы получили доступ к ресурсам ОС LINUX.

 

Выход из системы

exit - окончание сеанса пользователя.

Выполнение простых команд

Формат команд в ОС LINUX следующий:

имя команды [аргументы] [параметры] [метасимволы]

Имя команды может содержать любое допустимое имя файла; аргументы - одна или несколько букв со знаком минус (-); параметры - передаваемые значения для обработки; метасимволы интерпретируются как специальные операции. В квадратных скобках указываются необязательные части команд.

Введите команду echo, которая выдает на экран свои аргументы:

Echo good morning

и нажмите клавишу Enter. На экране появится приветствие " good morning" – аргумент команды echo. Командный интерпретатор shell вызвал команду echo, реализованную в виде программы на языке СИ, и передал ей аргументы. После этого интерпретатор команд вывел знак-приглашение. Синтаксис команды echo:

echo [-n] [arg1] [arg2] [arg3]...

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

who [am i] - получение информации о работающих пользователях.

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

- идентификатор пользователя;

- идентификатор терминала;

- дата подключения;

- время подключения.

date - вывод на экран текущей даты и текущего времени.

cal [[месяц]год] - календарь; если календарь не помещается на одном экране, то используется команда cal год | more и клавишей пробела производится постраничный вывод информации.

man < название команды> - вызов электронного справочника об указанной команде. Выход из справочника - нажатие клавиши Q.

Команда man man сообщает информацию о том, как пользоваться справочником.

tty - сообщение имени специального файла стандартного вывода, соответствующего терминалу пользователя.

cat < имя файла> - вывод содержимого файла на экран. Команда cat > text.1 создает новый файл с именем text.1, который можно заполнить символьными строками, вводя их с клавиатуры. Нажатие клавиши Enter создает новую строку. Завершение ввода - нажатие Ctrl - d. Команда cat text.1 > text.2 пересылает содержимое файла text.1 в файл text.2. Слияние файлов осуществляется командой cat text.1 text.2 > text.3.

ls [-alrstu] [имя] - вывод содержимого каталога на экран. Если аргумент не указан, выдается содержимое текущего каталога.

Аргументы команды:

-a - выводит список всех файлов и каталогов, в том числе и скрытых;

-l - выводит список файлов в расширенном формате, показывая тип каждого элемента, полномочия, владельца, размер и дату последней модификации;

- r - выводит список в порядке, обратном заданному;

- s - выводит размеры каждого файла;

- t - перечисляет файлы и каталоги в соответствии с датой их последней модификации;

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

rm < имя файла> - удаление файла (файлов). Команда rm text.1 text.2 text.3 удаляет файлы text.1, text.2, text.3. Другие варианты этой команды - rm text.[123] или rm text.[1-3].

wc [имя файла] - вывод числа строк, слов и символов в файле.

clear - очистка экрана.

 

Группирование команд

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

& - процесс выполняется в фоновом режиме, не дожидаясь окончания предыдущих процессов;

? - шаблон, распространяется только на один символ;

* - шаблон, распространяется на все оставшиеся символы;

| - программный канал - стандартный вывод одного процесса является стандартным вводом другого;

> - переадресация вывода в файл;

< - переадресация ввода из файла;

; - если в списке команд команды отделяются друг от друга точкой с запятой, то они выполняются друг за другом;

& & - эта конструкция между командами означает, что последующая команда выполняется только при нормальном завершении предыдущей команды ( код возврата 0 );

|| - последующая команда выполняется только, если не выполнилась предыдущая команда ( код возврата 1 );

() - группирование команд в скобки;

{ } - группирование команд с объединенным выводом;

[] - указание диапазона или явное перечисление ( без запятых);

> > - добавление содержимого файла в конец другого файла.

 

Примеры.

who | wc - подсчет количества работающих пользователей командой (word count - счет слов);

cat text.1 > text.2 - содержимое файла text.1 пересылается в файл text.2;

mail student < file.txt - электронная почта передает файл file.txt всем пользователям, перечисленным в командной строке;

cat text.1, text.2 - просматриваются файлы text.1 и text.2;

cat text.1 > > text.2 - добавление файла text.1 в конец файла text.2;

cc primer.c & - трансляция СИ - программы в фоновом режиме. Имя выполняемой программы по умолчанию a.out.

cc -o primer.o primer.c - трансляция СИ-программы с образованием файла выполняемой программы с именем primer.o;

rm text.* - удаление всех файлов с именем text;

{cat text.1; cat text.2} | lpr - пpосмотp файлов text.1 и text.2 и вывод их на печать;

ps [al] [number] - команда для вывода информации о процессах:

-a - вывод информации обо всех активных процессах, запущенных с вашего терминала;

-l - полная информация о процессах;

number - номер процесса.

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

 

F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD

 

1 S 200 210 7 0 2 20 80 30 703a 03 0: 07 cc

1 R 12 419 7 11 5 20 56 20 03 0: 12 ps

 

F - флаг процесса (1 - в оперативной памяти, 2 - системный процесс, 4 - заблокирован в ОЗУ, 20 - находится под управлением другого процесса, 10 - подвергнут свопингу);

S - состояние процесса (O - выполняется процессором, S - задержан, R - готов к выполнению, I - создается);

UID - идентификатор пользователя;

PID - идентификатор процесса;

PPID - номер родительского процесса;

C - степень загруженности процессора;

PRI - приоритет процесса, вычисляется по значению переменной NICE и чем больше число, тем меньше его приоритет;

NI - значение переменной NICE для вычисления динамического приоритета, принимает величины от 0 до 39;

ADDR - адрес процесса в памяти;

SZ - объем ОЗУ, занимаемый процессом;

WCHAN - имя события, до которого процесс задержан, для активного процесса - пробел;

TTY - номер управляющего терминала для процесса;

TIME - время выполнения процесса;

CMD - команда, которая породила процесс.

nice [-приращение приоритета] команда[аргументы] - команда изменения приоритета. Каждое запущенное задание (процесс) имеет номер приоритета в диапазоне от 0 до 39, на основе которого ядро вычисляет фактический приоритет, используемый для планирования процесса. Значение 0 представляет наивысший приоритет, а 39 - самый низший. Увеличение номера приоритета приводит к понижению приоритета, присвоенного процессу. Команда nice -10 ls -l увеличивает номер приоритета, присвоенный процессу ls -l на 10.

renice 5 1836 - команда устанавливает значение номера приоритета процесса с идентификатором 1836 равным 5. Увеличить приоритет процесса может только администратор системы.

kill [-sig] < идентификатор процесса> - прекращение процесса до его программного завершения. sig - номер сигнала. Sig = -15 означает программное (нормальное) завершение процесса, номер сигнала = -9 - уничтожение процесса. По умолчанию sig= -9. Вывести себя из системы можно командой kill -9 0. Пользователь с низким приоритетом может прервать процессы, связанные только с его терминалом.

mc - вызов файлового менеджера (программы - оболочки) Midnight Commander, аналогичного Norton Commander.

sort [-dr] - сортировка входных файлов и вывод результата на экран.

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

1. Ознакомиться с теоретической частью к лабораторной работе.

2. Зарегистрироваться в системе LINUX.

3. Определить день недели, в который Вы родились.

4. Получить подробную информацию обо всех активных процессах.

5. Используя редактор VI (см. приложение), создать два текстовых файла (с расширением TXT) и командой САТ просмотреть их на экране.

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

7. Объединить текстовые файлы в единый файл и посмотреть его на экране.

8. Посмотреть приоритет своего процесса и уменьшить скорость его выполнение за счет повышения номера приоритета.

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

10. Показать преподавателю исходный текст программы на языке СИ, текстовый файл, файл с сохранением количества пользователей.

11. Продемонстрировать выполнение СИ - программы.

12. Удалить свои файлы и выйти из системы.

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

1. Перечислите основные функции и назначение многопользовательской многозадачной операционной системы LINUX и ее отличительные особенности от однопрограммной системы DOS.

2. Какое назначение имеет ядро системы и интерпретатор команд?

3. В чем заключается понятие " процесс" и какие операции можно выполнить над процессами?

4. Как задаются и выполняются простые и сложные команды?

5. Какие функции выполняет командный интерпретатор Shell?

 

 

Лабораторная работа № 2 (2 часа)

«Знакомство с редактором Vim»

Цель работы

Познакомиться с редактором Vim. Научиться им пользоваться.

Теоретическая часть

Что такое Vim?

Vim (Vi IMproved) — современный консольный текстовый редактор. Работает под большинством ОС, в основном Unix-подобных (Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X), но поддерживаются также и Windows и даже DOS. Редактор поддерживает плагины, благодаря которым его можно легко превратить в довольно удобную среду разработки. Vim распространяется под лицензией charityware, совместимой с GPL. Vim — изначально консольный редактор (но существует GVim — графическая версия vim). Vim значительно отличается от других текстовых редакторов своим интерфейсом. Более подробную информацию можно найти на vim.org.

Режимы работы Vim

Vim имеет несколько режимов работы. Самый главный и часто используемый — нормальный режим. В нем можно выполнять комманды, переходить в другие режимы и перемещаться по тексту. Из любого режима можно переключится в нормальный, нажав Esc. После запуска vim или gvim вы попадаете именно в нормальный режим.

Существует также режим вставки. Чтобы в него перейти, достаточно нажать i или Insert в нормальном режиме. В этом режиме Vim ведет себя как большинство текстовых редакторов, за исключением того, что в этом режиме невозможна копипаста.

Третий режим — визуальный режим. Для перехода в него нужно нажать v в нормальном режиме. В этом режиме осуществляется выделение и копирование текста (вставка осуществляется в нормальном режиме). Также возможно выделение прямоугольного блока текста. Для этого в нормальном режиме нужно нажать Ctrl+V.

Основные сущности Vim

Буфер — основная сущность Vim. В нем хранится текст, с ним осуществляются все действия, связанные с редактированием текста. Буфера бывают активные и неактивные. Активные буфера размещены в окнах, неактивные никак не взаимодействуют с пользователем и вся информация в них сохранена на диск. Некоторые буфера могут быть доступны только для чтения (например, буфера, созданные плагинами).

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

Вкладка — сущность, содержащая несколько окон. Вкладки Vim почти аналогичны вкладкам в остальных редакторах.

Основные комманды Vim

Закрытие окон, выход из Vim:

: q — закрывает текущее окно. Если буфер, который был открыт в этом окне, не открыт ни в одном другом окне, он удаляется. Если окно было последним, осуществляется выход из Vim;

: qa — закрывает все окна и осуществляет выход из Vim;

Открытие файлов:

: e имя_файла — открывает файл в текущем окне;

: tabe имя_файла — открывает файл в новой вкладке;

: sp имя_файла — разделяет текущее окно по горизонтали и открывает в одном из получившихся окон файл;

: vsp имя_файла — разделяет текущее окно по вертикали и открывает в одном из получившихся окон файл;

Сохранение файлов:

: w имя_файла — эквивалентно «Сохранить как…» в традиционных редакторах

: w — эквивалентно «Сохранить» в традиционных редакторах

: wq — эквивалентно: w: q

В мире UNIX самым заметным редактором, используемым профессиональными программистами, безусловно, является vi (VIsual editor) и его современный " потомок" - vim (Vi IMprooved - улучшенный). Он чаще других вызывается по умолчанию, его интерфейс чаще упоминается рядом с определениями " совместимый" и " подобный" и так далее. Утверждение о том, что этот редактор - лучший, нуждается в доказательстве. Некоторые доводы в пользу этого и приводятся ниже.

Прежде всего, условием необходимым, хотя и не достаточным, является функциональная полнота редактора: он должен уметь все, что только может потребоваться при работе с текстом. Термин " все" конкретизировать невозможно, но достаточно будет сказать, что vim имеет ограниченное только здравым смыслом количество буферов (фактически - открытых файлов) и окон (в данном случае название " окно" очень точно отражает суть происходящего: есть файл, а есть окно, через которое мы содержимое этого файла рассматриваем). Окно может занимать всю площадь экрана, а может - часть, причем любую, то есть экран может делиться как по горизонтали, так и по вертикали. Переключения - произвольны. Сказанное справедливо как для графического, так и для консольного режимов. Кроме стандартной для " взрослых" редакторов возможности создания макрокоманд (фиксированных последовательностей элементарных команд редактора), есть развитый язык программирования. Редактор имеет 5 режимов (modes):

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

" Нормальный": текст не модифицируется, клавиши позиционирования перемещают указатель, все остальные клавиши (или их последовательности) выполняют назначенные действия, опять-таки - вами или по умолчанию;

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

" Операторный": вводимые символы детализируют введенный непосредственно перед этим оператор. Благодаря вводу в этом режиме оператор удаления, например, удалит N символов, слов, строк или область выделенную в визуальном режиме;

" Командный": для ввода команд, а точнее тех из них, которые вы или авторы не сочли нужным связать с функциональными или обычными клавишами и их последовательностями;

По умолчанию < Esc> (иногда - два нажатия) возвращает в " нормальный" режим, < Ins> - переводит в режим " вставки", а из него - в режим " замены". Двоеточие в " нормальном" режиме даст перевод в " командный" режим. Символы операторов из, опять-таки, " нормального" режима переводят в " операторный". Символы < v> и < V> - в " визуальный". Поскольку действия редактора по нажатию любой из клавиш в любом режиме программируются, то, как вы, вероятно, уже догадались, у увлекшегося настройкой vim пользователя, этот редактор вполне может стать воистину неузнаваемым.

Здесь мы подходим ко второй сильной стороне vim - исключительной модифицируемости. Нужно ли это? Берусь утверждать: да. Меняются клавиатуры, хотя их типов, впрочем, и в каждый конкретный период - предостаточно, если говорить не только об IBM PC. Меняются устройства ввода, задачи, наконец. У vim как у достойного члена семейства наиболее типичных UNIX-приложений настройки хранятся в конфигурационном файле, каких, в свою очередь, может быть множество. По одному на тип решаемых задач, например. И название и местоположение конфигурационного файла традиционно для UNIX: .vimrc в " домашнем" каталоге пользователя. Пример (vimrc_example.vim) - в каталоге самого vim (для Linux обычно -/usr/share/vim/vimNN/, где NN - номер версии. Одним словом, если вы " создаете" свой редактор практически сами, то такое решение претендует на звание " решение навсегда": не в смысле неизменности, разумеется, а в смысле постоянной готовности соответствовать вашим новым требованиям.

Впервые познакомившемуся с возможностями конфигурации vim, трудно устоять перед соблазном " подогнать" его под " милый сердцу" прототип: для кого-то - MultiEdit, для кого-то - nedit, а для кого-то - и notepad. Это не сложно. Однако не стоит торопиться: vim имеет возможности, которых, вполне возможно, не было у " прототипа", а познакомившись с ними однажды, вы, быть может, уже не захотите от них отказываться. Перечислить все эти возможности вряд ли удастся уже хотя бы потому, что как всякая открытая система, vim развивается усилиями многих людей и быть в курсе всех разработок просто не реально. Попытаюсь перечислить наиболее известные возможности. Подразумеваются настройки " по умолчанию", ввод в " нормальном" режиме, кроме тех случаев, когда оговаривается иное. Двоеточие говорит о переходе в командный режим.

Разумеется, можно как угодно позиционироваться в файле:

[n]G - переход на строку n, 0G - BOF, $G - EOF

) | ( - следующее | предыдущее предложения

} | { - то же для параграфа

]] | [[ - то же для секции, функции

% - ответная скобка (matching)

`` - предыдущее местонахождение, с точностью до символа

'' - то же, с точностью до строки

более того, в последних версиях vim все перемещения по файлу в пределах сессии протоколируются, а < Ctrl-O> /< Ctrl-I> позволяют перемещаться по зафиксированным в этом протоколе позициям.

Весьма удобным является механизм меток, к которым всегда можно вернуться:

mx - пометить текущую позицию буквой " x" (буква, разумеется, любая)

`x - перейти к метке " x"

'x - перейти к строке с меткой " x"

Еще одна возможность, довольно редко встречающаяся у редакторов, - множество именованных буферов. В последних версиях MS Windows это называется многостраничным clipboard-ом. Буферы, как и метки, метятся одной буквой:

" x - именованный буфер с меткой " x". С таким буфером возможны все стандартные операции:
y - копировать (yank)
d - вырезать (cut)
p - вставить (paste). Причем вставлять можно как перед ( < [p> ), так и после ( < ]p> ) позиции под курсором. Если эта позиция - начало или конец строки, то разница довольно существенна.

буфер, именованный как " * совпадает с clipboard X-Window.

Разумеется, есть множество средств поиска/замены:

/text - искать " text" ниже

? text - то же, но выше, то есть в предшествующей курсору части текста

n - повторить поиск в том же направлении

N - то же, но в обратном направлении

* - найти слово такое же, как под курсором ниже по файлу

# - то же, но выше по файлу

: [address]s/text/replacement/[gci] - в адресном пространстве address заменить " text" на " replacement".
Опции: { global-confirm-insensitive case },
что означает: { все-с запросом подтверждения-игнорируя регистр }

: g/text/replacement/g - то же для всех совпадений в буфере.

Для тех, кто знает, что такое регулярные выражения, отметим, что они в операторах поиска/замены работают.

Не нужно пугаться " многословного" синтаксиса: вспомните о программируемых клавишах и вы поймете, что достаточно ввести нужную фразу в.vimrc лишь однажды.

Разумеется, есть полный список файловых операций. Перечислять все вряд ли имеет смысл: в них нет ничего " экзотического". Интереснее упомянуть " автозаполнение": набрав пару-тройку первых символов и не выходя из режима " вставки", нажмите < Ctrl-n> (или < Ctrl-p> ): vim начнет предлагать варианты продолжения слова из имеющихся в вашем файле. Для пишущих на С добавлю: и в include-файлах тоже. Еще один сюрприз: < [i> покажет в командной строке определение переменной, находящейся под курсором, а < [d> - определение макро, если символы под курсором являются переменной или макрокомандой, разумеется. И еще " фокус" - справка по поводу кода символа под курсором, причем сразу во всех системах исчисления кроме двоичной, разве что. Последовательное нажатие < ga> даст практически полную информацию по поводу символа под курсором.

Разумеется, можно отказаться от сделанных изменений (undo), введя просто < u>, а можно восстановить сразу всю редактируемую строку: < U>. Иногда бывает нужно отказаться от отмены изменений (undo the undo's). Можно и это: < Ctrl-R>

Можно изменить регистр символа под курсором нажатием < ~>. И, напоследок, часто весьма облегчающая жизнь точка <.> - повторить последнюю операцию.

Теперь понятно, почему не достаточно одного режима: все разнообразие функций трудно покрыть только функциональными клавишами, а использование клавиш обычных требует отказа на какое-то время от режима экранного редактирования. Среди множества установок, задаваемых командами ": set..." есть и задающая режим вставки как действующий по умолчанию, что делает vim похожим на большинство экранных редакторов. Попробуйте. И, скорее всего, вы убедитесь, что заданный по умолчанию разработчиками " нормальный" режим с точки зрения затрат времени экономичнее.

Похожая ситуация с предложенными разработчиками для использования по умолчанию клавишами. Для не знакомых с UNIX назначение клавиш для поиска, копирования, вставки кажется непривычным. Однако, если вместе с vim вы будете осваивать, например, Linux, то очень скоро обнаружите, что те же клавиши " работают" и при просмотре man-страниц, и в популярной screen, и даже для стандартного интерпретатора командной строки bash, оказывается, существует vi-подобный режим. Одним словом, в UNIX-среде освоение vim либо проходит легче, если вы не совсем " чайник", либо " пригодится" при дальнейшем знакомстве с системой.

Разумеется, vim имеет подсветку синтаксиса, причем для десятков языков программирования и конфигурационных файлов. Для версии 5.6 подкаталог syntax содержит 189 файлов общим объемом более мегабайта, что, в свою очередь, составляет почти пятую часть объема дистрибутива.

Разумеется, vim прекрасно документирован: без малого 2 мегабайта файлов в текстовом формате, снабженных системой перекрестных ссылок и поиска. Плюс небольшой скрипт, превращающий эти текстовые файлы в универсальные html.

Разумеется, vim портирован практически на все платформы. Включая все известные ОС от MicroSoft, не в упрек будь сказано софтверному гиганту.

И это еще не все. Полтора десятка утилит, разработанных специально для vim, дополняют и без того немалый список возможностей. Среди них средства для создания перекрестных ссылок с файлами других форматов, " рисование" псевдографикой, таблицы, дополняющие форматеры, конвертеры и тому подобное.

Ну, и, разумеется, vim бесплатен. Если быть точным, то за него не обязательно платить. Плата же, если таковая случится, переводится в фонд помощи детям Уганды. Не единичный в мире Open Source, но, тем не менее, весьма благородный жест разработчиков.

Нужно признать, что vim сложен или, по крайней мере, непривычен для пользователей не-UNIX систем. Именно им пригодились бы все возможности конфигурирования, но их изучение кажется в начале пути таким " изнурительным"... Не стоит отчаиваться. Кроме документации в составе дистрибутива vim, стоит познакомиться с сайтом www.vim.org. Там можно обнаружить ссылки на сайты энтузиастов vim, предлагающих свои конфигурационные файлы для разных операционных сред. Очень интересен сайт vim.online, где все желающие делятся своим опытом работы с vim. На август 2001-го на сайте - более 100 советов, среди которых нет бесполезных, а тем более неверных.

В заключение нужно сказать о недостатках. Не без этого.

Внутренняя сложность vim может сделать его довольно медлительным на " слабых" машинах. Заметное время уходит на поиск, медленно может перемещаться маркер в " визуальном" режиме. Заметить это можно, повторюсь, только на машинах типа Pentium-166, например, но - можно.

Vim экранный текстовый редактор. Большая часть экрана используется для отображения редактируемого файла. Последняя строка экрана используется для ввода команд и вывода различной информации. Редактор может находиться либо в режиме редактирования, либо в режиме ввода команд. Для того, чтобы совершать какие либо действия Вы должны находиться в нужном режиме.

После запуска редактор находится в командном режиме. Для перехода из режима редактирования в командный режим используется клавиша Esc.

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

Основные возможности в командном режиме

 

Перемещение по файлу:

h, left-arrow - переместить курсор влево на один символ

j, down-arrow - переместить курсор вниз на одну строку

k, up-arrow - переместить курсор вверх на одну строку

l, right-arrow - переместить курсор вправо на один символ

/text < cr> - найти строку text в файле и поместить курсор на ее первый символ. После этого можно использовать клавиши n и Shift-n для перемещения к следующему или предыдущему включению строки.

 

Переход в режим редактирования:

i - начать ввод текста перед курсором

a - начать ввод текста после курсора

o - вставить строку после текущей и начать ввод текста в ней

O - вставить строку перед текущей и начать ввод текста в ней

 

Копирование, вставка и удаление:

УУ У$ yw - скопировать строку, строку от позиции курсора до конца, слово.

dd d$ dw - удалить строку, строку от позиции курсора до конца, слово.

x - удалить символ

p - вставить содержимое буфера после курсора

P - вставить содержимое буфера перед курсором

u - Отменить последнюю операцию

 

Сохранение и чтение файлов, выход из редактора:

: w< cr> сохранить файл

: w filename < cr> - сохранить файл под указанным именем

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

: q< cr> выйти из редактора

: wq< cr> сохранить файл и выйти из редактора

: q! < cr> выйти без сохранения файла

 

Самостоятельная работа

При помощи редактора vim создайте следующие файлы:

Я живу в маленьком доме на дюнах. Все Рижское взморье в снегу. Он все время слетает с высоких сосен длинными прядями и рассыпается в пыль.

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

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

На окнах этой дачи еще с лета остались занавески. Они шевелятся от слабого ветра.

 

Море не замерзло. Снег лежит до самой кромки воды. На нем видны следы зайцев.

Когда на море подымается волна, то слышен не шум прибоя, а хрустенье льда и шорох

оседающего снега,

Балтика зимой пустынна и угрюма.

Латыши называют ее «Янтарным морем» («Дзинтара юра»). Может быть, не только потому, что Балтика выбрасывает много янтаря, но еще и потому, что ее вода чуть заметно отливает янтарной желтизной.

 

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

1. Внимательно изучите теоретические сведения параллельно заполняя соответствующую часть отчёта.

2. Войдите в систему и при помощи редактора vim создайте заданные файлы.

3. Сохраните созданные файлы, дав им свое имя и фамилию.

4. Представьте выполненную работу преподавателю.

5. Выполните завершение работы.

6. Оформите отчёт о проделанной работе.

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

1. Что такое Vim?

2. В каких режимах работает Vim?

3. Назовите основные сущности Vim.

4. В чём преимущества редактора Vim?

5. Перечислите недостатки Vim.

 

6. Рекомендуемые источники:

1. http: //www.vim.org.

2. http: //www.swaroopch.com/notes/Vim

3. http: //www.oualline.com/vim-cook.html

 

Лабораторная работа № 2.1 (2 часа)

Теоретическая часть

Vim: Небольшой справочник

Vim не совсем " простой текстовый редактор" , у него три режима работы и множество команд. Изучение команд и возможностей Vim занимает время, но потраченное на изучение время быстро окупается.

Основные команды Vim очень простые, но сочетание простых команд может быть довольно мощным инструментом.

Режимы

В Vim имеется три режима работы с текстом:

  1. Командный режим: все нажатия клавиш интерпретируются как команды
  2. Режим вставки: используется для ввода текста
  3. Визуальный режим: используется для выделения текста или блока текста, этот режим можно рассматривать как под режим командного режима

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

Для переключения из командного режима в режим редактирования нажмите одну из клавиш:

  • i — переключает в режима вставки перед текущей позицией курсора
  • a — переключает в режим вставки после текущей позиции курсора
  • I — перескакивает к первому не пробельному символу в текущей строке и переключает в режим вставки
  • A — перескакивает к последнему символу в текущей строке и переключает в режим вставки

Для переключения из командного режима в визуальный режим нажмите одну из клавиш:

  • v — переключает в визуальный режим (выделение символов)
  • V — переключает в визуальный режим (выделение строк)
  • Ctrl+v — переключает в блочный визуальный режим (выделение прямоугольных областей текста)

Все команды которые работают с диапазонами (например: замена, вставка, удаление, копирование или отступы) поддерживаются в визуальном режиме.

Перемещения

Простейшие команды перемещения:

  • h — курсор влево
  • l — курсор вправо
  • j — курсор вверх
  • k — курсор вниз

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

Есть множество команд доступных для перемещения в Vim, я приведу основные, если вам нужно что-то специфическое, смотрите в справочной системе Vim.

  • H — перемещения курсора вверх страницы
  • M — перемещение курсора в средину страницы
  • L — перемещение курсора в низ страницы

Прокрутка страницы:


Поделиться:



Последнее изменение этой страницы: 2017-04-12; Просмотров: 2060; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.18 с.)
Главная | Случайная страница | Обратная связь