Midnight Commander является представителем самого популярного семейства визуальных оболочек/менеджеров файлов "a la Norton Commander" (в мире Dos/Windows это Norton Commander, Volkov Commander, Dos Navigator, Far, Windows Commander; под Unix до MC существовал Demos Commander (deco)). Это семейство характерно тем, что экран разбивается на три части -- две панели с файлами (левая и правая) и командная строка, позволяющая вводить команды операционной системы. У MC есть следующие возможности:
| ||
Для запуска Midnight Commander надо набрать "mc". По умолчанию он запускается "в цвете" на консоли, и в черно-белом варианте в окне xterm. Чтобы получить цвет в окне, надо воспользоваться ключом "-c" (color). Первое отличие от семейства Norton Commander'а обусловлено тем, что в Unix нет букв дисков -- поэтому нет команды "сменить диск" (Alt+F1/Alt+F2). Второе -- для многих действий (кроме F1-F10) используются другие сочетания клавиш -- это обусловлено тем, что, к примеру, у telnet нет возможности передавать сочетания типа Shift+Ctrl+PageUp. В основном используются сочетания "a la Emacs". В меню и справочной системе приведены сочетания клавиш для большинства операций. Там используются следующие обозначения:
В отличие от NC, для копирования в командную строку имени файла, на котором стоит курсор, используется не Ctrl+Enter, а "Esc Enter". Поскольку в MC мышь используется "обычным" образом, то исчезает возможность отметки/вставки текста при помощи мыши. Чтобы выделять и вставлять текст мышью, надо при нажатии кнопок держать нажатой клавишу Shift. | ||||||||||||
Поскольку MC очень похож на NC&Co., и все команды можно найти в меню, обратим внимание лишь на несколько особенностей MC. Быстрый переход по директориям В любой момент можно перейти в другую директорию, даже если в командной строке что-то набрано -- для этого служит комбинация "Esc c" (change dir) -- отдаленный аналог Alt+F1/F2. Кроме того, по комбинации "Ctrl+\" можно вызвать список "самых частоиспользуемых" директорий, куда можно занести такие директории как /tmp, /etc и т.д. -- по своему вкусу. Встроенный ftp-клиент В MC встроена поддержка FTP. Если выбрать в меню Left/Right пункт "FTP link...", и затем набрать имя компьютера, то MC покажет в панели список файлов с него. Другой способ -- перейти командой cd (или при помощи "Esc c" или Ctrl+\) в директорию со специальным именем вида "ftp://имя-компьютера". По умолчанию MC входит на ftp-сервер под именем anonymous, но можно указывать имя пользователя (и, кстати, директорию) точно так же, как в обычных URL, используемых в Internet. К примеру, ftp://ivanov@host.inp.nsk.su/tmp/означает "зайти на машину host.inp.nsk.su как пользователь ivanov и перейти в директорию /tmp/". Закрыть ftp-соединение можно, перейдя в любую локальную директорию, к примеру, в свою домашнюю.
Переименование групп файлов MC позволяет единообразно переименовывать группу файлов с похожими именами (которые подходят под некий шаблон) одной операцией. К примеру, при отметке нескольких файлов и нажатии F6 (Move) появляется окно следующего вида: Если мы отметили файлы с именами file01.tar.gz, file02.tar.gz и т.д. до file07.tar.gz, и хотим их переименовать в f1.tgz и т.д., то надо сделать следующее: При переименовании каждого файла MC подставит в новое имя (f*.tgz) вместо "*" то, что соответствовало "*" в исходном шаблоне (file0*.tar.gz).
MC и русский язык Если попробовать нажать F3 на файле с русским текстом, то вместо русских букв на экране будут точки. Аналогично, русские буквы вводиться не будут. Дело в том, что по умолчанию MC настроен на работу с файлами, содержащими только ASCII-символы (т.е. с кодами до 127), а русские буквы лежат выше. Чтобы включить поддержку русского, надо выбрать в меню Options пункт "Display bits...", после этого появится окно следующего вида: Надо включить "Full 8 bits output" и "Full 8 bits input". Просмотр экрана "под панелями" по Ctrl+O При работе на консоли и в окне xterm MC позволяет посмотреть то, что "скрыто" под панелями, при помощи Ctrl+O -- так же, как и в NC. Но то, как MC выполняет команды, вводимые в его командной строке с клавиатуры, сильно отличается, и поэтому иногда он начинает "глючить" -- вводятся лишние символы ^H, а иногда MC заявляет, что "Shell is already running a command". Чтобы избежать этих проблем, лучше Ctrl+O не пользоваться вовсе, а для того, чтобы видеть вывод команд, запускаемых из-под MC, можно в окне Options|Configuration... переключатель "Pause after run..." поставить в положение "alwaYs" -- после завершения каждой команды MC будет просить нажать любую клавишу. Если клавиши не работают... При использовании программы Telnet из Windows95/NT клавиши F5-F10 "не работают". Это происходит из-за того, что Telnet просто не передает их (другие подвиды telnet также иногда страдают подобным). Выход очень простой -- вместо Fn всегда можно нажать Esc, а затем соответствующую цифру: F1 -- Esc,1, F10 -- Esc,0. Кроме Fn бывают проблемы и с клавишами Ins, Home, End, PgUp, PgDn (с Del все еще хитрее). Хотя в MC и предусмотрено частичное решение проблемы -- Options|Learn Keys, реально проблема заключается в отсутствии в Unix четкого стандарта на эти клавиши и должна решаться по-другому. А практически во всех программах предусмотрены другие эквиваленты -- так, вместо Home во многих программах можно нажимать Ctrl+A, вместо End -- Ctrl+E. | ||||||||||||||||||||
Иногда при запуске MC (и не только) в окне xterm вместо рамок вокруг панелей и окошек ничего не рисуется, или изображаются какие-то странные символы. Это происходит из-за того, что в шрифте, используемом xterm, могут отсутствовать псевдографические символы (то же самое бывает и в Windows Telnet). В этой ситуации можно запустить MC с ключом "-a", чтобы он для рисования рамок использовал символы +, -, |. | ||
В этом разделе рассматриваются только текстовые редакторы для ASCII-файлов (таких, как исходные тексты программ, .txt-файлы и т.д.). В обзор попали только текстовые редакторы, работающие в текстовом режиме (пардон за тавтологию), т.е. в консоли или в окне xterm, а не в графике. Все рассматриваемые редакторы поддерживают основные операции редактирования: набор и правка текста, поиск и замена, работа с блоками (отметка, копирование, перемещение, удаление), загрузка/сохранение файлов.
| ||||||||
Vi был первым "настоящим" текстовым редактором под Unix. Его реализации есть во всех подвидах Unix. Сделан он был программистами исключительно для собственного использования, и для обычного пользователя весьма неудобен. Практически единственное, что надо о нем знать -- это как отличить его и как из него выходить, случайно оказавшись в нем (хотя для системных администраторов его знать все же желательно -- иногда, например, при "починке" системы, ничего кроме vi нет в принципе). При загрузке vi (в Linux используется его "улучшенная" версия vim -- Vi IMproved) экран выглядит приблизительно так, как на иллюстрации (символами "~" обозначаются строки за концом файла):
Не вдаваясь в подробности работы vi (режим просмотра, режим редактирования и т.д.): обычно для выхода из него достаточно набрать ":q" и нажать Enter. В том случае, если "с перепугу" или по неопытности загруженный файл был изменен, то выйти без сохранения всегда можно, набрав ":qa!" (":" -- вызов командного режима, "q" -- выход, "a" -- из всех окон сразу, "!" -- выход несмотря на наличие изменений). Если при нажатии ":" в нижней строке не появляется приглашение (тоже ":"), то надо сначала нажать три раза Esc.
| |||||||||||||||||||||
Joe очень похож по набору команд на редактор WordStar и среды фирмы Borland (Borland Pascal, Borland C++ и т.д.). Он активно использует комбинации клавиш Ctrl+K буква. Однако, в отличие от WordStar комбинации Ctrl+Q буква не применяются. Основные комбинации клавиш приведены в таблице, но нажав Ctrl-K H можно вызвать справку по клавишам (убирается она той же комбинацией Ctrl-K H).
Любую операцию можно прервать, нажав Ctrl+C. Joe поддерживает редактирование нескольких файлов одновременно -- каждый в своем "окне". Подробности можно узнать в справке. У joe есть одна "неприятная" особенность: символ "`" (обратный апостроф) используется как префикс для ввода специальных символов. Поэтому бывают проблемы при вставке текста из другого окна при помощи мыши -- к примеру, строка, содержащая "`b" приведет к вставке в текст символа с ASCII-кодом 2 (Ctrl+B). Чтобы вставить в текст сам "`", надо нажать его дважды.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Emacs -- это даже не столько редактор, сколько среда. Некоторые (в основном, программисты) используют его практически для всего -- включая чтение почты. Перечень всего, что умеет Emacs, мало кому известен. Практически все функции Emacs'а написаны на интерпретируемом языке Lisp, поэтому редактор работает сравнительно медленно. Хотя Emacs -- довольно неподходящий выбор для начинающих, у него есть одно несомненное достоинство -- как и vi, он есть практически в любом Unix. По умолчанию в графической среде X-Window Emacs запускается в графическом режиме в собственном окне, при этом многие действия можно выполнять мышью. Из консоли, а также если указать ключ "-nw", он запустится в текстовом режиме. По клавише F10 вызывается меню -- но не обычное, а "клавишное" -- для выбора пункта надо нажать какую-либо клавишу (все они отображаются на экране). У Emacs есть несколько особенностей, обычно ставящих в тупик непривычных к нему людей. Во-первых, в текстовом режиме клавиша Backspace -- это не удаление предыдущего символа, а синоним Ctrl+H -- префикс "команд помощи". Во-вторых, по умолчанию русские буквы не вводятся как буквы, а вызывают некие команды Emacs'а. В-третьих, если жать стрелку вниз за концом файла, то Emacs будет сам добавлять дополнительные строки. Многие команды состоят не из одной клавиши, а из нескольких -- первой обычно является Ctrl+X, Ctrl+C или Ctrl+H.
Получить список клавиш (весьма немаленький) можно, нажав "Ctrl+H b". Прервать практически любую команду можно, нажав Ctrl+G. | ||||||||||||||||||||||||||||||||||
Mcedit -- это редактор, который используется в MC. Соответственно, он похож на привычный всем редактор из Norton Commander'а. Mcedit понимает те же ключи "-c" и "-a", что и MC. Кроме того, поскольку это, собственно, и есть MC, он использует настройки MC, к примеру, "Display bits". Будучи запущен в цвете, mcedit умеет "расцвечивать" файлы .tex и .c (впрочем, по умолчанию цвета не самые приятные). Основные клавиши редактирования приведены в таблице, но можно также посмотреть подсказку, нажав F1. Кроме того, F9 вызывает меню, в котором есть еще множество команд. Mcedit можно переключить в режим "эмуляции" Emacs, переключив в окне F9->Options->General пункт "Key emulation" в "Emacs".
| ||||||||||||||||||||||||||||||||||||||||||||||
Кроме всего прочего, есть множество текстовых редакторов, работающих в графической оболочке X-Window -- обязательно есть xedit, а одним из самых удобных считается nedit. Их мы будем рассматривать позже, вместе с X-Window. | ||
Такие программы, как pkzip/pkunzip и arj, совмещают две разных функции: архивирование, т.е. помещение содержимого нескольких файлов в один (с сохранением информации о каждом файле), и упаковку, т.е. сжатие файла. В Unix эти функции по историческим причинам реализуются отдельными программами: для упаковки используются compress, gzip, bzip2, а для архивации -- tar.
У каждого архиватора и упаковщика есть свое стандартное расширение для имени файла, в таблице приведены большинство из них.
| ||||||||||||||||||||||||||||||||
compress упаковывает указанный ему файл и добавляет к имени расширение .Z. Пример (файл-пример termcap взят из директории /etc):
Для распаковки используется программа uncompress:
| ||||||||||
Gzip был создан как более мощная замена для compress. Используется он точно так же:
Gzip позволяет достигать больших степеней сжатия, чем compress, и поэтому почти вытеснил его. Поскольку большее сжатие занимает больше времени, есть возможность указать gzip'у, как паковать -- быстрее (и слабее) или лучше (и медленнее). Для этого служат ключи от "-1" (самое быстрое сжатие) до "-9" (наибольшее сжатие).
По умолчанию используется "-6". Для распаковки применяется программа gunzip. Gunzip умеет также распаковывать файлы .Z и .z. | ||||
Bzip2 был создан сравнительно недавно -- в 1996 году. Он использует при паковке алгоритм Burrows-Wheeler (вместо Lempel-Ziv, применяемого в compress/gzip/zip), что позволяет достигать еще больших степеней сжатия. Платой за это является несколько большее время упаковки. Используемые bzip2 ключи почти идентичны gzip'овым. Но bzip2 по умолчанию использует наилучшее сжатие ("-9").
| |||
| ||||||||
Первоначально tar был разработан для резервного копирования на ленту, отсюда и его название -- Tape ARchiver. Но, поскольку возможность помещать большое количество файлов внутрь одного чрезвычайно удобно (к примеру, для хранения и передачи групп файлов, например, дистрибутивов), то он получил более широкое распространение. Вообще-то в каждом Unix есть свой подвид tar, со слегка отличающимися опциями. Но основные опции (создать, развернуть, проверить архив) одинаковы во всех версиях. В Linux используется GNU-версия tar, которая доступна в большинстве других Unix (иногда под именем "gtar"). Если tar используется для работы с файлами-архивами (а не с лентой), то его вызов обычно выглядит так: tar <буква-команды>f <имя-архива.tar> [файлы...] В качестве команды обычно используется одна из следующих букв:
Например, чтобы создать архив /tmp/someconfs.tar содержащий файлы /etc/fstab и /etc/passwd:
Здесь сразу надо заметить две особенности:
Если указать "vv", то кроме имен будут показываться те же атрибуты, что и при "ls -l". Вообще у tar довольно нестандартный синтаксис команд: хотя все ключи и можно указывать обычным способом (т.е. через "-"), и даже длинные ключи (с "--"), но обычно первым параметром ему указывается сочетание из нескольких букв, первая из которых является командой, а остальные -- ключами. Так, "f" -- это тоже ключ, который говорит, что далее указано имя файла-архива (поэтому "f" надо указывать в конце списка).
Для просмотра архива используется команда "t" (ключ "v" указывает, что надо выдавать более полную информацию):
Для распаковки применяется команда "x":
Tar разворачивает дерево-содержимое архива в текущей директории. Чтобы распаковать архив в другую директорию, надо или перейти в нее (командой cd) или указать ключ "-C" (распаковываем в директорию /tmp):
Обычно .tar-файлы держат упакованными (чаще всего gzip'ом). Самое простое -- создать архив и затем упаковать его. Но можно указать в качестве имени архива "-" -- тогда результат будет отправлен на стандартный вывод, и затем передать его gzip'у, стандартный вывод которого перенаправить в файл:
При использовании GNU tar (например, в Linux) есть еще более простой способ: можно указать ключ "z", который означает "пропустить файл через gzip":
Этот же ключ можно указывать при распаковке и просмотре архива.
| |||||||||||||||||||||||||||||||||
zip/unzip Для манипуляций с .zip файлами практически в любом Unix есть программы zip и unzip, совместимые с pkzip/pkunzip версии 2.04. Поскольку ключи zip и unzip почти идентичны оным у pkzip/pkunzip, ма не будем здесь их подробно рассматривать. Получить краткую справку можно, запустив любую из этих программ без параметров. unarj Для распаковки .arj-файлов есть программа unarj, совместимая с версией 2.41. В отличие от "настоящего" arj, она не умеет создавать .arj-архивы, не оптимизирована по скорости и поддерживает лишь небольшое количество опций. Поддерживаются самые часто используемые опции arj -- просмотр и распаковка, но при распаковке нет возможности указать, какие файлы надо извлекать -- можно распаковать только весь архив. Краткую справку можно получить, набрав просто "unarj" без параметров:
Поскольку unarj -- просто демо, то к нему отсутствует man-страница. Единственная имеющаяся документация -- файл /usr/doc/unarj-2.41a/unarj.doc (это обычный текстовый файл). | |||
| ||