Текстовый редактор ee. FreeBSD: варианты выбора

Текстовый редактор ee. FreeBSD: варианты выбора

09.04.2019

Cовсем начинающим
пользователям FreeBSD
посвящается

Редактор ee (Easy Editor) представляет собой штатное средство для работы с текстами во FreeBSD. Он входит в состав базовой системы (Distributions) и, собственно, является там чуть не единственным представителем этого семейства. Не считая, конечно, классического vi , который, однако, а) функционально ограничен (сравнительно с современным Vim) и б) поначалу не особенно легок в использовании. Так что на первом этапе освоения FreeBSD ee вполне может быть естественным выбором. Особенно если учесть, что, при всех своих ограничениях, о которых я скажу позднее, он, подобно большинству штатных средств FreeBSD, не так уж прост и незатейлив, как кажется на первый взгляд. Это делает его более чем пригодным для правки конфигурационных файлов как на начальном этапе настройки FreeBSD, так и в дальнейшем, например, при всякого рода аварийных ситуациях. А что ещё требуется от текстового редактора "легкой весовой категории"?

Поскольку ee представляет собой неотъемлемый компонент базовой системы, исполняемый его файл имеет своим местопребыванием каталог /usr/bin/ , всегда входящий в состав переменной path любого пользователя. Так что запускается этот редактор просто — одноименной командой

% ee filename

где filename (необязательный аргумент) — имя файла, подлежащего редактированию. После этого открываются два окна редактора. В нижнем - редактируемый текст (если файла с указанным именем не существует, или ee запущен без аргумента — окно это остается пустым), в верхнем - краткая, но практически исчерпывающая справка по использованию программы (рис. 1).

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

Предусмотрен и запуск ee с опциями командной строки, такими, как:

  • -e — отключение преобразования символов табуляции в пробелы;
  • -i — отключение информационного окна со справкой;
  • -h — отключение подсветки рамок вокруг информационного окна; кроме мифического повышения производительности на некоторых терминалах, это придаёт редактору более строгий вид;
  • +# — перемещение курсора к строке с указанным номером # при открытии файла, что полезно при редактировании конфигов.

Навигация по тексту осуществляется или обычным способом — клавишами управления курсора, PageUp , PageDown , Home , End и т.д., либо — специфичными для ee управляющими (или командными) комбинациями клавиши Control с какой-либо из литерных. Так, комбинация Control +f (от forward ) перемещает курсор на один символ вправо (т.е. вперед), Control +b (от backward ) — на один символ влево (т.е. назад), и так далее. Причем возможности управляющих комбинаций шире — например, они позволяют перейти к следующему слову (Control +z ), перейти в начало (Control +t ) или конец (Control +u ) экрана.

Аналогично и редактирование текста можно выполнять двояким образом: посредством клавиш редактирования (Backspace , Delete ) или такими же управляющими комбинациями. Причем последний способ, как и в случае навигации, — более эффективен, позволяя удалить не только отдельный символ (Control +d ), но и целиком слово (Control +w ) или строку (Control +k ).

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

Главное меню редактора вызывается нажатием клавиши Escape . Пункты его — следующие:

  • a) выйти из редактора;
  • b) подсказка;
  • c) операции с файлами;
  • d) обновить экран;
  • e) параметры;
  • f) поиск;
  • g) разное.

Каждый из указанных пунктов вызывает панель соответствующих подменю. Выбор требуемого пункта осуществляется клавишами управления курсором (Down и Up) или нажатием соответствующей литерной клавиши (например,a — для выхода из редактора). Последнее, впрочем, работает только при латинской раскладке клавиатуры. Выход из меню осуществляется повторным нажатием клавиши Escape (рис. 2). Та же клавиша в любом из подменю возвращает в окно редактирования текста.


Рис. 2. Главное меню редактора ee ; рамки вокруг меню и информационного окна отключены.

При выходе из редактора (пункт a ) выводится панель запроса на сохранение изменений в файле (рис. 3), буде таковые производились:

  • a) сохранить и выйти;
  • b) не сохранять.


Рис. 3. Подменю выхода

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


Рис. 4. Подменю подсказки

Подменю файловых операций (рис. 5) содержит следующие пункты:

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


Рис. 5. Подменю файловых операций

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

Пункт е) параметры вызывает панель просмотра текущих настроек редактора с возможностью их изменения (рис. 6):

  • a) табуляция пробелами НЕТ
  • b) поиск с учётом регистра НЕТ
  • c) авто-перевод строки НЕТ
  • d) авто-формат абзаца НЕТ
  • e) 8-битные символы ДА
  • f) окно подсказки ДА
  • g) клавиши как в Emacs ДА
  • h) ширина текста 79
  • i) 16-битные символы НЕТ
  • j) сохранить установки


Рис. 6. Подменю параметров

Выбрав соответствующий пункт подменю, можно изменить текущие значения параметров с НЕТ (OFF) на ДА (ON) и наоборот, или (для ширины текста) задать численное значение, после чего сохранить новые установки — в текущем каталоге или домашнем каталоге пользователя именем.init.ee code>.

В подменю поиска — два пункта (рис. 7): что искать и повторить поиск, смысл которых ясен.


Рис. 7. Подменю поиска

И наконец, в подменю о разном — три пункта (рис. 8):

  • форматирование абзаца,
  • вызов оболочки для прямого ввода команд, не выходя из редактора, и
  • вызов проверки орфографии, которая выполняется внешней программой типа ispell или aspell.


Рис. 8. Подменю о разном

Как видно из сказанного, меню ee просто и понятно. Однако работать через него иногда бывает скучновать — по каким-то, не вполне ясным мне, причинам, вывод панели меню и его подменю происходит с задержкой, не зависящей ни от режима (в чистой консоли или в эмуляторе терминала Иксов), ни от мощности машины. Однако прибегать к меню совсем не обязательно, ибо все те же действия можно выполнить прямыми командами.

Переход в командный режим осуществляется комбинацией клавиш Control +C , после чего у нижнем левом углу окна редактирования появляется приглашение собственной командной строки редактора:

Команд в ee немного, и они мнемонически понятны, так что запомнить их легко:

  • help — вывод подробной подсказки;
  • read — вставка указанного файла в позицию курсора файла текущего;
  • write — запись текущего файла под произвольным именем;
  • exit — выход из редактора с записью выполненных изменений;
  • quit — выход из редактора без записи изменений;
  • line — вывод номера текущей строки и количества символов в ней;
  • expand — преобразование табуляции в пробелы;
  • noexpand — не преобразование:) табуляции в пробелы;
  • file — распечатать файл;
  • char — вывод числового значения ASCII-кода текущего символа;
  • case — поиск, чувствительный к регистру символов;
  • nocase — поиск, не чувствительный к регистру;
  • !cmd — выполнение команды шелла внутри редактора; вывод команды можно через "мышиный" буфер перетащить в окно редактирования текста;
  • 0-9 и далее — переход на строку с указанным номером.

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

Возможности настройки ee ограничены, но они имеются. Типовой настроечный файл этого редактора — /usr/share/misc/init.ee . По умолчанию он включает в себя следующие строки:

Emacs noexpand nomargins

Его можно скопировать в свой домашний каталог:

% cp /usr/share/misc/init.ee ~/.init.ee

где и подвергнуть всяким издевательствам. А можно поступить иначе — через меню установить необходимые настройки, как было сказано выше, и записать их в виде всё того же файла ~/.init.ee . У меня он имеет такой вид:

NOCASE NOEXPAND NOINFO NOMARGINS NOAUTOFORMAT PRINTCOMMAND lpr RIGHTMARGIN 80 NOHIGHLIGHT EIGHTBIT NOEMACS 16BIT

Можно видеть, что у моём конфиге отлючён режим поддержки клавиатурных последовательностей Emacs"а (параметр NOEMACS). Однако по умолчанию он имеется (параметр emacs "образцового" конфига). Так что любители этого редактора могут пользоваться ими и в ee .

Надо заметить, что вывод подсказок и сообщений на русском языке в ee происходит только при правильной локализации. К сожалению, он не поддерживает локаль UTF8. И если таковая используется в качестве Иксовой локали, работа с кириллицей в этом редакторе, запущенном в окне эмулятора терминала, становится невозможной: не смотря на присутствие среди параметров поддержки шестнадцати бит, которую можно видеть на рис. 6, кириллические символы в Unicode нормально не вводятся и не отображаются. А сообщения ee и его меню в этом случае будут английскими (благо, что не кракозябровыми), хотя в консоли при какой-либо русской восьмибитной кодировке, KOI8-R, скажем, они останутся вполне русскими. Нет в нём также и какой-либо подсветки синтаксиса, а также возможности создавать пользовательские макросы.

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

И напоследок — несколько слов об использовании ee при системных аварийно-восстановительных работах, обычно выполняемых в однопользовательском режиме. Как уже говорилось, его исполняемый файл находится в каталоге /usr, который обычно образует самостоятельную файловую систему, лежащую на отдельном разделе. А в однопользовательском режиме, как известно, монтируется только корневая файловая система (и то в режиме read only). Так что, дабы использовать ee для аварийного редактирования общесистемных конфигов, надо не только перемонтировать корневой каталог в режиме чтения/записи, но и не забыть подмонтировать к нему каталог /usr — элементарная операция, о которой начинающие пользователи иногда забывают. Да и запускать редактор следует с указанием полного пути:

# /usr/bin/ee

Почему я об этом говорю так подробно? Да потому, что в однопользовательском режиме у ee не так уж много альтернатив. Вариант vi из каталога /rescue , содержащего статически слинкованные исполняемые файлы важнейших "аварийных" утилит, в некоторых версиях FreeBSD (в частности, той, в которой пишутся эти строки - 7.11-BETA), просто не работает, ссылаясь на отсутствие доступа к библиотеке свойств терминала. Так что остаётся только строчный (неинтерактивный) редактор /rescue/ed , использование которого без должного навыка затруднительно (не будем забывать, что и man-страницы в однопользовательском режиме могут быть недоступны), да и не всегда эффективно. И это — ещё один стимул для заблаговременного привыкания к редактору ee .

Заметки — о несравненных достоинствах FreeBSD как настольной платформы, — следовало бы подкрепить практическими примерами. А поскольку практика эта основывается на примере себя, любимого, сделаю маленький биографический экскурс — как я, не будучи ни сисадмином, ни developer"ом (и не имея ни малейшего желания становиться ни тем, ни другим), использую FreeBSD в своей обыденной жизни. Но перед этим следует слегка определиться с вопросом,Из чего сделана FreeBSD

Понять, из чего сделана FreeBSD, проще всего в сравнении ее с Linux"ом. В отношении последнего существует две противоположные точки зрения. Первая, высказываемая Ричардом Столлменом, гласит, что Linux — это ядро системы, а все прочее, объединяемое в дистрибутивы его, суть отдельные пакеты проекта GNU (по преимуществу). Вторая точка зрения неявно подразумевается многочисленными составителями дистрибутивов. Согласно ей, Linux — это все, что майнтайнер дистрибутива в оный включил (вплоть до оконной системы X, интегрированных сред типа GNOME и KDE, и прочего, обнаруживаемого на 5-10-дисковых наборах).

В свое время я исследовал этот вопрос в серии заметок на и пришел к выводу, что, подобно Шарикову, не согласен ни с тем, ни с другим мнением. Ибо Linux — системная целостность, образованная ядром и исторически сложившимся комплексом поддержки, обеспечивающим старт машины и инициализацию системы, работу с устройствами и файловыми системами, а также средства для наращивания ее функциональности (по простому — компилятор и системные библиотеки). Все это вместе можно объединить в понятие Base Linux — в противоположность всему тому множеству открытого и свободного софта, который может функционировать (в том числе и) под Linux.

Во FreeBSD противопоставление базиса системы и пользовательских приложений проводится еще более последовательно. Первый объединяется в понятие Distributions, приложения же охватываются термином Ports, то есть программы, портированные (в том числе и) на FreeBSD.

В Distributions, то есть собственно систему FreeBSD par exellence, включаются

  • ядро системы;
  • комплекс низкоуровневых утилит поддержки;
  • набор аналогов классических Unix-утилит для работы с файлами и текстами;
  • системные библиотеки BSD libc и r_libc;
  • базовые средства разработки (компилятор Си);
  • базовые средства безопасности (включая OpenSSH и OpenSSL).

Компоненты Distributions в подавляющем своем большинстве — оригинальные разработки проекта FreeBSD и его исторических предшественников. Говоря о классических утилитах Unix, я не случайно употребил термин «аналоги» — это, как правило, функционально расширенное их воспроизведение (достаточно посмотреть на утилиту more, которая по своим функциям гораздо более походит на Linux"овый less, нежели на свою тезку из систем-потомков System V). Самобытность компонентов Distributions подчеркивается лицензией, под которой они распространяются, и которая носит имя BSD-лицензии. В отличие от широко известной лицензии GPL, она не возбраняет распространение основанных на ней разработок без исходных текстов (здесь не место обсуждать вопрос о том, какая из этих лицензий более соответствует идеалам свободы и демократии).

Справедливости ради нужно заметить, что в состав FreeBSD Distributions исторически входит некоторое количество компонентов, заимствованных из разработок проекта GNU и, соответственно, подпадающих под лицензию GPL (наиболее показательный пример — компилятор gcc: это тот же самый компилятор, который входит в состав любого дистрибутива Linux). Однако существует устойчивая тенденция по замене GNU-программ оригинальными разработками FreeBSD (правда, именно до gcc, похоже, дело дойдет не скоро).

Еще одна отличительная особенность компонентов FreeBSD Distributions — система их документации. Все они сопровождаются полным описанием в классическом для POSIX-систем формате man-страниц. В программах GNU в последнее время можно заметить тенденцию подмены manual pages на документацию в формате info (ИМХО, самая GNU"тая из всех GNU-разработок). Однако даже GNU-программы, включенные в Distributions, содержат подробнейшие man-страницы — для примера сравните man (1) gcc из современных версий FreeBSD с оригинальным GNU man-pages для этого же пакета.

Компоненты Distributions при инсталляции системы разворачиваются из бинарных тарбаллов. Однако предусмотрен механизм их автоматической тотальной пересборки с учетом пользовательских настроек — make world. Ну и, разумеется, перекомпиляция ядра системы (в текущих версиях — операция make buildkernel) — неотъемлемый атрибут индивидуального конфигурирования FreeBSD.

Порты FreeBSD — концепция, воздействие которой на мир Open Sources трудно переоценить, и потому заслуживает особого рассмотрения. В текущем же контексте достаточно сказать, что это — система автоматического получения исходников (по Сети, с мастер-сайтов разработчиков), отслеживания их зависимостей, адаптации (то есть наложения FreeBSD-специфичных патчей), сборки (компиляции и линковки с разделяемыми библиотеками) и установки (то есть инкорпорации в файловую систему FreeBSD) практически любых программ, свободно распространяемых и доступных в исходных текстах. Она предусматривает также генерацию бинарных пакетов, пригодных для автономного (с учетом зависимостей) распространения — именно в таком виде портированные программы входят в состав полного дистрибутива FreeBSD.

Важно подчеркнуть, что если сама по себе система портов — неотъемлемая часть FreeBSD Distributions, то порт любой программы из ее состава не содержит ни исходных текстов, ни исполнимых модулей: исходники любой портированной программы — абсолютно те же самые, на которых основаны пакеты любого Linux-дистрибутива, а бинарники генерируются автоматически из системы портов. И потому во FreeBSD в принципе доступно все то же многообразие открытых и свободных программ, что и в Linux.

Обособленность портированных программ от FreeBSD Distributions подчеркивается отличием лицензионных соглашений: все портированные программы распространяются под теми лицензиями, которые определены для них авторами (GPL — для программ из проекта GNU и соплеменных, лицензия X-консорциума — для оконной системы X, и так далее).Distributions — обзор возможностей

Сам по себе FreeBSD Distributions — весьма мощный программный комплекс, пригодный для решения многих пользовательских задач. Разумеется, в его составе — низкоуровневые системные утилиты, утилиты для управления файловыми системами, процессами, получения информации и т.д.

Однако в Distributions можно найти множество пользовательских утилит — средства работы с файлами, включая столь универсальное, как find, весьма сложные программы обработки текстов — от экранного редактора ee и строчных редакторов ed и sed до awk, средства поиска текстовых фрагментов — grep, а также инструменты форматирования текстов (семейство groff). Имеется ftp-клиент, почтовая система sendmail, базовые средства работы с сетями (в том числе и для модемного соединения).

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

Тем не менее, для комфортной работы (не говоря уже о развлечениях) средств Distributions явно недостаточно. И тут на помощь приходит система портов FreeBSD — в виде ли средства получения и сборки исходников, или как метод генерации бинарных пакетов.

Установка программ из системы портов или в виде прекомпилированных пакетов во FreeBSD чрезвычайно проста — настолько, что прямо-таки провоцирует пользователя устанавливать и устанавливать программы. А поскольку она еще включает и развитые средства для «чистого» удаления всего того, что оказалось ненужным, развлечения эти проходят практически безболезненно. И потому очень важно сразу же определиться с набором жизненно важных приложений. Обзор их, исходя из собственного опыта, и будет темой дальнейшего рассмотрения.

Сразу оговорюсь — все сказанное ниже лишь мое субъективное мнение, заслуживающее подзаголовка типа «Мои любимые программы». Я не навязываю своего выбора, но в каждом конкретном случае постараюсь обосновать, почему его сделал. Возможно, это поможет вам сделать выбор собственный.Shells

Командная оболочка (она же — командный интерпретатор, по простому shell) — первая программа, с которой пользователь сталкивается в любой POSIX-совместимой системе. Правда, именно во FreeBSD эта первая программа способна обескуражить даже многоопытного линуксоида: вместо принятого в большинстве дистрибутивов Linux мощного и интерактивно удобного bash ему предлагается /bin/sh, чьи интерактивные возможности навевают воспоминания о первозданном shell"е товарища Борна. Правда, для суперпользователя есть дополнительная привилегия — по умолчанию ему назначается нечто под именем /bin/csh, понимающее, по крайней мере, автодополнение путей и помнящее историю команд.

Надо сказать, что ни та, ни другая из умолчальных оболочек не является копией своих престарелых тезок (и shell Борна, и изначальный берклианский csh не принадлежат к числу свободно распространяемых программ). Оболочка /bin/csh — это просто тот же командный интерпретатор tcsh в облегченном виде. Ну а /bin/sh — это искусственная конструкция, призванная реализовать мифический POSIX shell со всеми заложенными стандартом возможностями (точнее, их отсутствием).

Использование интерактивно очень слабого /bin/sh в качестве системной оболочки (напомню, что принятый в этом качестве в Linux bash неизмеримо мощнее) имеет целью не только соответствие стандартам: это очень маленькая и компактная оболочка, которая не поглощает ресурсов при запуске ее в качестве интерпретатора сценариев (а все системные сценарии FreeBSD — это скрипты /bin/sh). Ведь при shell-скриптинге интерактивные возможности оболочки несущественны, отступая перед требованиями совместимости и быстродействия.

В качестве же пользовательской (то есть login shell) никто не возбраняет применять любую другую оболочку, с более мощными интерактивными возможностями. Благо в портах FreeBSD можно обнаружить и милый сердцу линуксоида bash, и полномерный tcsh, и pdksh — свободный клон оболочки Корна (именно она послужила прототипом POSIX shell, а не исходный shell Борна, как часто полагают). Есть и много весьма экзотических оболочек, перечислять которые я не буду.

Однако среди этого списка, а увидеть его можно командой $ ls /usr/ports/shells

особое внимание привлекает (надеюсь) одна оболочка — zsh. Именно она, вне зависимости от используемой операционной системы, бессменно стоит у меня в качестве login shell на протяжении уже нескольких лет. В чем ее преимущества?

Во-первых, принадлежа к семейству Bourne Shell совместимых, она не менее пригодна для shell-скриптинга, чем bash. Во-вторых, по своим интерактивным возможностям zsh не имеет себе равных. Возможности настройки автодополнений самых разных видов просто необъятны. Например, набрав в командной строке что-нибудь вроде $ cd /u/sr/sy

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

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

К слову сказать, не уйдут обиженными и те, кто в качестве пользовательской оболочки предпочитают файловые менеджеры командирского стиля. Из числа сыновей и внуков командира Нортона во FreeBSD обнаруживается не только традиционный Midnight Commander (правда, тут его реализация оставляет желать лучшего, существенно уступая Linux"овой), но и весьма своеобразный Deco (Demos Commander — детище отцов Российского Интернета). При внешнем сходстве с прототипом он — не столько файловый менеджер, сколько визуализатор действий в командной строке.Оконные менеджеры и интегрированные среды

Роль, отведенная в консоли командным оболочкам, в графическом режиме (то есть в оконной системе X) призваны играть оконные менеджеры или (для тех, которые с претензиями) интегрированные графические среды.

Здесь трудно дать однозначные рекомендации — выбор среды обитания графического режима дело не просто субъективное, я бы сказал, даже интимное. Впрочем, для поклонников истинной интегрированности он однозначен: KDE. GNOME в этом отношении до нее далеко не дотягивает (да простят меня его поклонники), а XFce — функционально много беднее (хотя и она может быть интересна интеграторам с аскетическими склонностями).

Впрочем, и с GNOME не все так однозначно. Дело в том, что эта среда базируется на библиотеке Gtk, лежащей в основе многих других (напрямую с GNOME не связанных) приложений. Из которых минимум одно будет абсолютно необходимо — знаменитый Gimp (о котором будет говориться в разделе про графику). Так что если нет желания (возможности) плодить всякого рода библиотеки — почему бы не остановиться и на GNOME...

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

Примером последних выступает WindowMaker, очень элегантный внешне и за годы своего существования обросший многочисленными дополнительными модулями.

Впрочем, и простые исходно оконные менеджеры из семейства Blackbox"а можно, затратив некоторые усилия, превратить в интегрированные среды индивидуального (можно сказать — штучного) разбора. И здесь пальма первенства — за Fluxbox благодаря его удобной системе закладок и возможности группировать приложения. Во всяком случае, именно это — мой любимый оконный менеджер...Текстовые редакторы

Текстовый редактор — один из главных орудий труда пользователя POSIX-совместимых систем. Не случайно в этой среде культивируется трепетное, даже сакральное к ним отношение. А дискуссии на тему vim vs. emacs по накалу страстей приближаются к разговорам футбольных болельщиков.

Однако я к участию в священных войнах призывать не буду. И Vim, и Emacs — мощные орудия для работы с текстами, далеко переросшие (особенно последний) рамки просто редакторов. И именно потому — избыточные для большинства пользователей-непрограммистов.

А потому в качестве консольного редактора, взамен штатного для FreeBSD Distributions редактора ee, рискну предложить скромного трудягу — joe. Он легок в килобайтах, легок в освоении, легок в настройке. А благодаря простому до прозрачности макроязыку и возможности протоколирования действий еще и легко расширяется функционально — до пределов, ограниченных только задачами и фантазией пользователя. По крайней мере, превращение его, скажем, в специализированный редактор html-кода осуществляется легким движением руки и в считанные минуты. И в итоге joe в равной мере подходит как для правки пары строк в конфигурационном файле, так и для сочинения весьма объемных манускриптов (проверено лично — все мои книги и 90% статей написаны в нем).

Работа в консоли замечательно удобна и полезна для здоровья, однако может показаться несовременной (да и лишние гигагерцы с гигабайтами надо ведь куда-то девать). И потому может возникнуть желание работать с текстами в графическом режиме. Что ж, выбор редакторов для оконной системы X — еще более обширен, чем для консоли.

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

И тут должен высказать свое мнение: если дискуссии о первенстве среди консольных редакторов будут продолжаться ad finem seculorum, то в отношении редакторов графического режима споры неуместны. Ибо пальма первенства в этом клане, безусловно, за Nedit. Расписывать его достоинства можно было бы долго. Достаточно сказать, что при внешне непритязательном интерфейсе (что само по себе есть плюс — простор творческой мысли не стеснен иконками, рюшками и менюшками) он использует возможности истинно X"ового графического режима на все 100%. В частности, в нем существует несколько способов выделения текста мышью, задействующее все три потенциальные ее кнопки. А если прибавить сюда развитой макроязык с возможностью протоколирования действий и возможность интеграции любых shell-сценариев — мое утверждение о превосходстве Nedit"а не покажется через чур смелым.Офис

Хотя текстовый редактор неизмеримо превосходит любой ворд-процессор при создании текстов, претендующих на оригинальность содержания, время от времени приходится заниматься и их оформлением. Для этого во FreeBSD можно отыскать множество исконно Unix"овых текстовых процессоров (то есть, если следовать оригинальной терминологии, — неинтерактивных систем разметки и форматирования текстов), начиная с groff и заканчивая TeX"ом. Если последний покажется через чур сложным — доступна и графическая надстройка над них, Lyx, в которой за результат можно не беспокоится даже при отсутствии всяких представлений о полиграфии: шедевра верстального искусства, может, и не получится, но и от откровенно отвратительного макета он спасет. Есть и малоизвестный гомолог TeX"а — lout, более легкий в освоении и использовании, но вполне достаточный для тех, кому не нужны трехэтажные конструкции из интегралов по траектории.

Не возбранно, однако, и использование традиционных (для Windows/Mac/иже с ними) ворд-процессоров WISIWIG-типа. Здесь первым следует помянуть OpenOffice: его версия под Linux, собранная с поддержкой всей кириллической специфики (например, в сборке Altlinux) вполне справно функционирует под FreeBSD в т.н. режиме совместимости. Ничуть не менее быстро (вернее, не более медленно), чем в родной операционке. Да и собственный FreeBSD-порт этого монстра конторской интеграции давно доступен.

Если, однако, быстродействия OpenOffice покажется недостаточно, то имеются и альтернативы. Например, KOffice — последние его версии приобрели устойчивость, позволяющую заниматься редактированием и форматированием без боязни через полчаса потерять все результаты работы. Ну и средства Gnome Office — ворд-процессор Abiword и электронная таблица Gnumeric, — при своей относительной простоте и компактности вполне справляются с большинством конторских задач.Средства интернет

С чем особенно хорошо в мире Open Sources (и, соответственно, во FreeBSD тоже) — так это со средствами навигации по интернету. Начать тут следует с двух браузеров текстового режима — lynx и links. Воспроизвести красоты web-дизайна они, разумеется, не способны. Зато — эффективно избавляют от дизайнерских уродств. А заодно весьма способствуют экономии трафика, делая ненужными всякого рода баннеро-резки, отключение графики и тому подобные дела. Links к тому же вполне может воспроизводить таблицы и фреймы, имеет удобное меню, легкую систему настройки и отлично разбирается в кодировках кириллицы.

Браузеров же графического режима — труднообозримое количество. Здесь и Mozilla со всеми ее plug-in"ами (в том числе для просмотра Macromedia Flash, графики в формате DjVu, прокручивания RealAudio и RealVideo), и построенный на том же движке, но более быстрый galeon, и предельно облегченный, а потому просто стремительный dillo. Я, однако, в качестве браузера в X"ах использую konqueror из KDE — он вполне заслуживает причисления к лику лучших программ всех времен и народов. Будучи настроен должным образом, он совмещает в одном лице и браузер, и файловый менеджер, и универсальный визуализатор любых операций в командной строке — последнее благодаря полноценному окну эмулятора терминала.

На почтовых программах и ftp-клиентах задерживаться не буду: прошу поверить на слово, их вдоволь, и для консоли, и для графического режима. Правда, традиционная во FreeBSD схема настройки почты — с собственным почтовым сервером Sendmail, — в домашних условиях может напоминать срельбу из пушки по воробьям. Однако никто не мешает настроить для доставки/отправки почты легкие почтовые клиенты типа mutt или pine. А в графическом режиме доступны и почтовый клиент из Mozilla, и штатный почтовый клиент из KDE — KMail. В первую же очередь — замечательно быстрый Sylpheed, при простоте использования обеспечивающий функциональность, сравнимую со знаменитым The Bat.Графика

Средства работы с графикой традиционно считались слабым местом открытых и свободных Unix-подобных систем. Однако в области растровой графики подвижки на лицо: не случайно растровый графический редактор Gimp признан одним из самых удачных проектов в мире Open Sources. И, к слову сказать, портирован и под Windows, где недостатка программ такого рода никогда не наблюдалось. Не буду вдаваться в дискуссию — лучше он Photoshop"а или нет: для профессиональной подготовки web-графики и любительских манипуляций со всей прочей графикой его хватает за глаза. А высокая полиграфия... что же, это — отнюдь не целевая ниша FreeBSD, для того Mac"и придуманы.

Уникальная особенность FreeBSD — возможность делать скриншоты текстовой консоли. Для этой цели в ней есть программа scr2png, преобразующая экранные дампы (создаваемые средствами обычного консольного драйвера — syscons) в истинные графические изображения. Правда, только в png-формате, но много ли систем могут похвастаться и этим?

С векторной графикой несколько хуже: традиционные векторные редакторы типа sketch или tgif могут вызвать только скептическую улыбку у пользователя последних версий Corel Draw, Illustrator, Freehand. Однако и здесь не все безнадежно: рисовальный модуль из пакета OpenOffice вполне пригоден для того же любительского живописания (а также — для вполне профессиональной технической графики). Плюс к тому он обладает уникальной особенностью — возможностью создания (причем очень легкого) истинно трехмерной (основанной на OpenGL) графики.Мультимедиа

В аудиосфере FreeBSD если и не впереди планеты всей, то весьма к тому близка: количество cd- и mpeg-проигрывателей можно сопоставить только с суммарным числом текстовых редакторов и браузеров. Лично я пользуюсь для этих целей консольной программой, простой, как три пальца, и соответственно этому именуемой — mpg123. Есть, однако, и более сложные плееры, в том числе и для графического режима. Тут достаточно упомянуть Xmms, обладающий всеми функциями известного winamp"а.

Столь же хорошо обстоит дело с cd-грабберами и mpeg-аудиокодеками. Процедуру о-граббления легко выполнить с помощью cdparamoia, а перегнать на-граббленное в mpeg — универсальной lame или более простым bladeenc. Не забыты и средства конвертации в истинно свободный аудиоформат — ogg, для чего служит пакет vorbis-tools.

В области видеовоспроизведения можно назвать три программы: Noatun из KDE, xine, основанный на Gtk и, пожалуй, наиболее универсальный из всех — Mplayer. К любой из них легко подключаются кодеки для воспроизведения всевозможных видеоформатов, включая DivX. Говорят, и для просмотра DVD их можно использовать, но — не пробовал за неактуальностью...

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

Annelise Anderson

Поздравляем с установкой FreeBSD! Теперь настало время прочитать этот документ. Это введение для людей, которые только начинают работать с FreeBSD и Un*x, поэтому оно начинается с самых основ. Я подразумеваю, что Вы используете FreeBSD версии 2.0.5 или более позднюю, Ваша система имеет одного пользователя (Вас), и Вы неплохо разбираетесь с DOS/Windows или OS/2.

1. Вход в систему и выход из нее.

Войдите в систему (когда Вы видите приглашение login:) как пользователь, созданный Вами в процессе инсталяции, или как root . (Во время инсталяции FreeBSD будет создан бюджет для пользователя root; root может делать в системе все что угодно, включая удаление жизненно важных файлов, так что будьте осторожны.) После входа Вы увидите приглашение, начинающееся с символов % или #, в зависимости от того под каким пользователем Вы вошли. Символ % характерен для обычного пользователя, а символ # - для пользователя с правами root.

Для выхода из системы (к новому приглашению login:) просто введите

Естественно, после каждой команды нужно нажимать enter , и помните, что Unix чувстителен к регистру символов -- exit, но не EXIT.

Чтобы выгрузить систему введите

    # /sbin/shutdown -h now

Для перезагрузки компьютера введите

    # /sbin/shutdown -r now

    # /sbin/reboot

Вы также можете перезагрузить компьютер, нажав клавиши Ctrl-Alt-Delete , и немного подождав пока система корректно завершит свою работу. Это аналогично команде /sbin/reboot и намного, намного лучше, чем нажатие кнопки Reset. Вы ведь не хотите переустанавливать FreeBSD, не так ли?

2. Добавление пользователя с правами суперпользователя (root).

Если Вы не создали других пользователей в процессе инсталяции и, таким образом, входите в систему как root, Вы возможно захотите создать нового пользователя. Это можно сделать командой

    # adduser

Если Вы используете эту команду в первый раз, Вас спросят о некоторых значениях по умолчанию, чтобы затем их сохранить. Например, Вы можете сделать csh оболочкой (shell) по умолчанию вместо sh. В противном случае, просто нажимайте каждый раз enter , чтобы согласиться с каждым значением по умолчанию. Эти значения сохраняются в файле /etc/adduser.conf, который может быть затем отредактрирован любым текстовым редактором.

Предположим Вы создали пользователя jack с полным именем Jack Benimble . Для безопасности ему следует дать пароль. Когда Вас спросят хотите ли Вы включить пользователя jack в другие групппы, введите whell .

    Login group is ``jack"". Invite jack into other groups: wheel

Это позволит входить в систему как пользователь jack и затем использовать команду su, чтобы стать root"ом.

Вы можете прервать выполнение команды adduser в любое время, нажав клавиши Ctrl-c . Рекомендуем Вам создать еще одного пользователя на случай, если вы вдруг почему-то не сможете войти в систему под именем jack.

После этого выйдите из системы и снова войдите в нее как пользователь jack. Вообще, по возможности старайтесь работать в системе как обычный пользователь, чтобы случайно что-нибудь не испортить.

Если Вы уже создали пользователя и хотите, чтобы он мог использовать команду su, зайдите в систему как root и исправьте файл /etc/group, добавив слово "jack" в первую строчку (группу wheel). Но сначала попрактикуйтесь в использовании текстового редактора vi, или используйте редактор попроще, например ее.

Для удаления пользователя используйте команду rmuser .

3. Начало работы

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

Вот несколько команд с описанием, что они делают:

Сообщает Вам, кто Вы!

Показывает в какой текущей директории Вы находитесь.

Выдает список файлов в текущей директории.

Выдает список файлов в текущей директории со значком "*" - после исполняемых файлов, "/" - после директорий и "@" - после символических ссылок.

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

Выдает список всех файлов, включая скрытые файлы (файлы с точкой в начале имени) файла.

Меняет директорию. cd .. переходит вверх на один уровень (обратите внимание на пробел после слова cd), cd ~ переходит в домашнюю директорию пользователя, например, /usr/home/jack. Попробуйте ввести cd /cdrom , а затем ls , чтобы выяснить установлен ли у Вас CD-ROM и работает ли он.

view filename

Позволит Вам просмотреть файл с именем filename без возможности изменить его. Попробуйте ввести view /etc/fstab (для выхода наберите:q).

cat filename

Отображает файл с именем filename на экране. Если файл слишком большой и не умещается на экране, нажмите ScrollLock и, используя клавишу "стрелка вверх", двигайтесь назад. Вы также можете использовать ScrollLock для просмотра man pages. Попробуте просмотреть файлы "с точкой" в своей домашней директории.

Обратите внимание на псевдонимы (aliases) в файле.cshrc для некоторых из команд ls (они очень удобны). Вы можете создать другие псевдонимы, отредактировав.cshrc. Чтобы сделать эти псевдонимы доступными всем пользователям, отредактируйте файл /etc/csh.cshrc.

4. Получение справки и информации.

Имеются несколько команд помощи. После каждой команды вместо слова " text " нужно ввести какое-то слово -- обычно это команда или имя файла.

Выдаст Вам все, что содержит строку text в базе данных whatis .

Выдаст соответствующий man page для слова text . Man pages - это главный источник информации в Un*x системах. Например, man ls расскажет Вам обо всех возможностях использования команды ls . Управляющие комбинации клавиш: enter - для продвижения по тексту, Ctrl-b - для возврата, Ctrl-f - для продвижения вперед, q или Ctrl-c - для выхода.

Сообщит, в какой директории находится команда text , если эта директория прописана в пользовательском пути (path).

Все пути, где найдена строка text.

Сообщит Вам, что делает команда text . Комбинация whatis * расскажет Вам обо всех двоичных файлах в текущей директории.

Найдет файл с именем text , сообщив его полный путь.

Возможно вы захотите попробовать использовать команду whatis на некоторых полезных командах, таких как cat, more, grep, mv, find, tar, chmod, chown, date, and script. Команда more позволит Вам читать файл постранично, например, more filename или cat filename|more . Символ * работает как групповой символ, например, ls w* выдаст список всех файлов в текущей директории, начинающихся с буквы w.

Некотрые из этих команд работают не очень хорошо? И locate и whatis зависят от базы данных, которая еженедельно перестраивается. Если Вы не собираетесь оставлять работающую машину до конца недели, попробуйте время от времени выполнять команды для ежедневного, еженедельного и ежемесячного сопровождения. Запустите их как пользователь root и дайте каждой из них закончить, прежде чем запускать другую.

    # /etc/daily
    # /etc/weekly
    # /etc/monthly

Если Вы устали ждать, нажмите Alt-F2 и Вы получите новую виртуальную консоль. В конце концов, это же многопользовательская и многозадачная система. Однако, эти команды могут выдавать сообщения на экран во время своего выполнения; команда clear очистит экран. После их выполнения, Вы можете просмотреть сообщения в /var/mail/root и /var/log/messages. В основном, выполнение таких команд является частью администрирования системы -- и как единственный пользователь Unix системы, Вы - свой собственный системный администратор. Вообще, все что должно делаться с правами root"а может считаться системным администрированием.

5. Редактирование текста.

Для настройки Вашей системы, Вам придется редактировать текстовые файлы. Большинство из них находится в директории /etc, и изменять их может только root. Вы можете использовать удобный редактор ее, но в конечном счете vi стоит того, чтобы его изучить. Есть отличное руководство по редактору vi в /usr/src/contrib/nvi/docs/tutorial, если Вы конечно его установили; однако его можно получить и по ftp с ftp.cdrom.com в директории FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial.

Перед тем, как редактировать файл, сделайте его копию. Предположим, что Вам надо отредактировать файл /etc/rc.conf. Перейдите командой cd /etc в дирекорию /etc и наберите

    # cp rc.conf rc.conf.orig

Теперь у Вас есть копия файла rc.conf, и Вы сможете позднее скопировать rc.conf.orig в rc.conf, чтобы восстановить оригинал. Но лучше все-таки переместить (переименовать) файл и затем скопировать обратно:

    # mv rc.conf rc.conf.orig
    # cp rc.conf.orig rc.conf

потому что команда mv сохраняет первоначальную дату и владельца файла. Теперь можно редактировать rc.conf. Если Вы теперь хотите вернуть оригинал, наберите mv rc.conf rc.conf.myedit (подразумевается, что Вы хотите сохранить Вашу исправленную версию) и затем введите

    # mv rc.conf.orig rc.conf

Для редактирования файла наберите

    # vi filename

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

удаляет букву, на которой находится курсор.

удаляет всю строку

вставляет текст в место курсора

вставляет текст после курсора

Если Вы введете i или a, Вы можете редактировать файл. Esc переключает обратно в командный режим, где Вы можете ввести

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

записать и выйти

выйти без записи

найти слово " text "; / Enter (клавиша Enter) для поиска следующего слова " text "

перейти в конец файла

перейти на строку n файла, где n - номер строки

перерисовать экран

двигаться вперед и назад по экрану.

Потренируйтесь немного в работе с vi в своей домашней директории, создав какой-нибудь новый файл. И не удивляйтесь, если Вы получите несколько сюрпризов от vi, потому что это действительно сложный редактор, и когда-нибудь Вы введете неосторожно команду, которая сделает совсем не то, что вы от нее ожидаете. (Хотя некоторым людям на самом деле нравится vi - он гораздо мощнее DOS"овского EDIT).

Теперь Вы можете зайти в систему как root, воспользоваться vi для редактирования /etc/group, и добавить пользователя в группу wheel, чтобы он имел права root"a. Просто добавьте запятую и имя пользователя в конец первой строчки файла, нажмите Esc для перехода в командный режим, и введите: wq для записи и выхода. Изменения вступят в силу немедленно. Имейте в виду, что пробел после запятой не нужен.

6. Печать файлов из DOS.

На этом этапе у Вас наверняка принтер под FreeBSD не работает, поэтому здесь описан способ создания файла из man page, копирования его на дискету, и затем печати его из DOS"а. Предположим, Вы хотите повнимательнее почитать о изменении прав на файлы (это дейстивительно очень важно). Для этого Вы можете использовать команду man chmod. Команда

    # man chmod | col -b > chmod.txt

удалит все лишние коды форматирования и запишет man page в файл chmod.txt. Теперь вставьте отформатированную дискету под DOS"ом в дисковод, станьте root"ом (используя su), и наберите команду

    # /sbin/mount -t msdos /dev/fd0 /mnt

для монтирования дисковода в точку /mnt.
Теперь (Вам больше не нужно быть root"ом) зайдите в директорию, где Вы создали файл chmod.txt и скопируйте его на дискету

    % cp chmod.txt /mnt

Теперь Вы можете размонтировать дисковод

    # /sbin/umount /mnt

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

7. Другие полезные команды.

показывает свободное дисковое пространство и смонтированные системы

показывает запущенные процессы. ps ax - в более узкой форме

rm filename

удаляет файл с именем filename

rm -R dir

удаляет директорию с именем dir и все поддиректории

выдает список всех файлов в текущей директории и во всех поддиректориях; я использовал вариант ls -AFR > where.txt , чтобы получить список всех файлов в директории / и отдельно в директории /usr, прежде чем нашел лучший способ для поиска файлов.

меняет пароль пользователя

man page по файловой системе Unix

Используйте команду find для поиска файлов в директории /usr и любой его поддиректории:

    % find /usr -name "filename"

Можете использовать символ * в слове "fileneme". Если Вы скажете искать в директории / вместо /usr, поиск будет производиться во всех смонтированных файловых системах, включая CD-ROM и раздел DOS.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows