Команды в midnight commander ubuntu. Midnight Commander - консольный файловый менеджер для Linux

Если вы начинающий веб-мастер, то наверняка работаете с файлами на серверах либо по FTP, либо с помощью файлового менеджера через браузер, либо по SSH из командной строки. Все названные способы сопряжены с рядом неудобств. Из этой статьи вы узнаете о еще одном способе, лишенном многих недостатков.

Речь пойдет о программе Midnight Commander (сокращенно mc). Это мощный инструмент, часто доступный на unix-серверах. Тем, кто давно работает с файловыми менеджерами в семействе Windows, весьма похожими покажутся программы Total Commander или Far.

Чтобы запустить Midnight Commander, нужно соединиться с сервером по SSH с помощью программы Putty. Параметры соединения как правило те же, что используются для FTP. После авторизации введите команду mc и нажмите Enter. Если Midnight Commander установлен на сервере, то вы увидите вот такой экран.

Базовые операции над файлами

Экран разделен на две панели. В каждой с помощью стрелочек и Enter’а перемещаться по дереву папок. Мышь тоже поддерживается.

Со своими файлами вы можете производить стандартные операции: копирование (клавиша F5, в одной панели откройте папку с текущим файлом, в другой – папку, в которую хотите файл скопировать), перемещение (F6), переименование (тоже F6), удаление (F8), редактирование (F4), просмотр (F3). Подсказки по функциями внизу экрана.

Группы файлов можно выделять с помощью клавиш Insert и *.

Открыть в соседней панели ту же папку – Alt+i.

Как распаковать zip-архив

Ниже панелей есть командная строка. Введите в нее команду unzip имя_архива. Чтобы не перепечатывать имя архива в командную строку, выберите архив стрелками, потом нажмите Alt+Enter.

Для gzip-архивов используйте команду gunzip имя_архива.

Для файлов *.tar.gz используйте команду tar xvfz имя_файла.tar.gz.

Как создать новый текстовый файл

Нажмите Shift+F4.

Как узнать размеры всех каталогов

Нажмите Ctrl+Пробел.

Как временно свернуть Midnight Commander

Чтобы вернуться к полноэкранному режиму командной строки нажмите Ctrl+o. Нажав на эти кнопки еще раз, сможете вернуться к свернутому mc.

Эта возможность доступна только в случае, когда mc собран с subshell.

Как изменять разрешения файлов

Вы можете управлять владельцами файлов, группами, а так же правами на файл. К примеру, если требуется установить права 777 на директорию tmp, вам достаточно в верхнем меню выбрать File -> Chmod или Ctrl+x и потом c.

Если нужно изменить владельца файла или его группу (естественно при наличии таких полномочий в системе), вы можете использовать File -> Chown, или комбинацию Ctrl+x и после o.

Работа с другими удаленными серверами

Неплохо mc помогает взаимодействовать по протоколами передачи данных, таким как FTP/SSH/SMB.

Пример: вам понадобился файл расположенный на другом FTP-сервере. Вы можете, не выходя из mc, подключиться к необходимому FTP-серверу и скопировать к себе на сервер нужный файл.

Использование Shell и SMB не отличается от FTP – это дополнительные виды протоколов которые могут встречаться в сети, таким образом вы можете легко подключиться к Samba Share или даже выполнить ssh команду на удаленном сервере.

Настройки mc «под себя»

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

Другие настройки (настройки терминала, отображения тех или иных файлов при работе в менеджер) – Options -> Configuration.

Решение технических проблем

Отдельно стоит отметить раздел Display Bits и learn keys. В силу разных причин разности терминальной среды и клиентского ПО для использования mc могут возникать трудности, например, не все клавиши будут действовать или будут действовать не так как предполагается, первая закладка поможет отображать 8 bit символы, а вторая как раз таки поможет определить кнопки если они по какой-то причине сбились.

Для Linux серверов при работе из стандартного putty рекомендую использовать: "export LC_ALL=C" перед запуском mc, в этом случае проблем на Linux серверах не возникало, FreeBsd сервера ведут себя нормально с mc по умолчанию.

2) В некоторых типах терминала может быть полезен ключ "-d", отключает мышь, наблюдались случаи когда 1 движение мышки понималось MC как десятка два команд с клавиатуры. Но в целом не требуется, работает отлично и без него.

В стандартном случае запускается или без ключей или с ключем "-c" (включаем цвет).

У вас есть свои хитрости при работе с mc? Пожалуйста, напишите в комментариях.

Вопрос 1

Почему Esc так странно себя ведёт?

Midnight Commander использует клавишу Esc как префикс для эмуляции клавиш Alt и Meta (для клавиатур, не имеющих эти клавиши). Например, нажатие клавиши "Esc" и потом "a" эквивалентно нажатию Alt+a (Meta+a) и т. д. Поэтому, если необходима сама Escape, нужно нажать клавишу "Esc" два раза.

Можно отключить такое поведение, добавив в свой ~/.mc/ini (или в общесистемный /etc/mc/mc.ini):

Old_esc_mode = 1

В данном случае после первого нажатия клавиши "Esc" на протяжении 500 миллисекунд (полсекунды) будет ожидание нажатия другой клавиши (полсекунды клавиша Esc будет считаться как Meta). По истечении этого времени клавиша Esc отработает как двойное нажатие.

Чтобы уменьшить время ожидания другой клавиши, используйте переменную окружения "KEYBOARD_KEY_TIMEOUT_US". Значение переменной указывается в микросекундах. Например, чтобы MC отработал нажатие клавиши ESC с задержкой в 25 миллисекунд, пропишите в ~/.bashrc:

Export KEYBOARD_KEY_TIMEOUT_US=25000

Начиная с версии 4.7.3, эта настройка доступна через конфигурационный диалог "Параметры конфигурации" (меню "Настройки" -> "Конфигурация...").

Вопрос 2

Как запустить mc с интерфейсом на другом языке(кодировке) ?

Вводим в командной строке "LANG=en_EN.UTF-8 mc" (английский), "LANG=ru_RU.UTF-8 mc" (русский UTF-8), "LANG=ru_RU.KOI8-R mc" (русский KOI8-R), "LANG=it_IT.UTF-8 mc" (итальянский UTF-8) и тд.

Панели

Вопрос 1

Хочу, чтобы при нажатии Enter на архиве tar.lzma МС заходил в архив, запускал просмотр видео по Enter, открывал файл при нажатии по F3, F4 и прочее.

Большая часть функционала уже есть в /etc/mc/mc.ext (для FreeBSD /usr/local/etc/mc/mc.ext). Файл ~/.mc/bindings полностью перекрывает эти настройки. Достаточно их перенести в bindings или по аналогии дописать свои.

Вопрос 2

Как создать новый файл средствами mc?

Для создания нового файла, так же само как и в FAR, достаточно нажать Shift+F4. Если вместо этого вы видите на экране "26~", то можно сделать так - F9 -> настройки -> Распознавание клавиш... -> "Функциональная 14" назначить Shift+F4.

Вопрос 3

У меня формат списка укороченный, как увидеть внизу более читабельный(удобный) размер файла?

Заходим F9-> Левая(Правая) панель -> Формат списка -> [x] Строка мини-статуса в формате пользователя -> half type name | size:4 | perm

Редактор

Вопрос 1

При копировании текста из редактора в буфер обмена тест вставляется с точками и "<---->" .

Убрать подсветку пробелов и таба можно, нажав "alt-shift- -".

Вопрос 2

При копировании из буфера обмена в mcedit отформатированного кода тест вставляется лесенкой .

В редакторе нажать F9-Настройки-Общая... - Автоотступ "Вводом", убрать галку.

1.1. Установка программы Midnight Commander

Хотя для управления файловой системой и вообще для работы с файлами можно использовать такие команды ОС, как pwd, ls, cd, mv, mkdir, rmdir, cp, rm, cat, more и т.д., гораздо удобнее делать большую часть работы по обслуживанию файловой системы с помощью программы Midnight Commander , которая наглядно представляет все выполняемые действия, облегчая тем самым выполнение указанных операций.
Midnight Commander (для краткости будем обозначать ее mc ) - это программа, которая позволяет просмотреть структуру каталогов и выполнить основные операции по управлению файловой системой.
Если Вы имеете опыт работы с Norton Commander (nc ) в ДОС или с far в Windows, то Вы легко сможете работать и с mc , поскольку даже основные "горячие комбинации" клавиш у них совпадают. В этом случае для того, чтобы работать с Midnight Commander, Вам достаточно бегло просмотреть приводимый ниже материал. Для тех же, кто не знаком с nc или far (да есть ли такие?) рекомендую внимательно проработать этот раздел, потому что Midnight Commander существенно облегчает работу с ОС.

Программа Midnight Commander не устанавливается автоматически при инсталляции системы. Но я настоятельно рекомендую Вам установить ее сразу же, как только Вы произвели установку ОС. Это существенно облегчит Вашу дальнейшую жизнь. Поскольку вопрос об установке новых программных пакетов будет рассмотрен только в одном из следующих разделов, я приведу здесь самые краткие инструкции по установке Midnight Commander -а.

Вначале смонтируйте дистрибутивный CDROM с Black Cat Linux (команду mount Вы уже знаете). Предположим, что CDROM смонтирован в каталог /mnt/cdrom. Теперь перейдите в каталог /mnt/cdrom/RedHat/RPMS, воспользовавшись для этого тоже уже знакомой Вам командой cd. Дальше нужно определить точное имя пакета, содержащего Midnight Commander , для чего дать команду
ls mc*
Теперь осталось только набрать в командной строке команду примерно такого вида:
rpm -i mc-4.50.i386.rpm
где вместо "mc-4.50.i386.rpm" нужно подставить точное имя rpm-пакета, которое сообщено Вам программой ls. После того, как снова появится приглашение shell, Вы можете запускать программу Midnight Commander . Как это делается, Вы узнаете ниже.

3.11.00. Между прочим Валерий Студенников написал чудесную , которая позволяет выбирать кодовые страницы при просмотре файла. Она предназначена для последней официальной версии (4.5.51, 4228 Kb).

1.2. Внешний вид экрана при работе с Midnight Commander

Примечания: 1. Приводимое описание составлено применительно к версии 4.5.30 программы, хотя может использоваться и для других (тем более ранних) версий.
2. Данное описание полностью применимо только в тех случаях, когда программа запущена с терминала. Когда работа производится через эмулятор терминала в графическом режиме, некоторые положения описания могут не соответствовать реакции программы, по-видимому потому, что нажатия на клавиши вначале перехватываются графической оболочкой. Наиболее часто такое несоответствие будет встречаться там, где речь идет о "горячих" клавишах.

Для того, чтобы запустить Midnight Commander , надо набрать в командной строке оболочки два символа: mc и нажать . Если программа не запустилась, надо найти, где расположен исполняемый файл с именем mc , воспользовавшись командой find / -name "mc" , после чего указать в командной строке полный путь, например, у меня это /usr/bin/mc . После запуска Вы увидите голубой экран, очень напоминающий экран программы Norton Commander для MS-DOS или программы FAR Е.Рошаля, которая широко иcпользуется в ДОС-окне под Windows.

Почти все пространство экрана при работе с Midnight Commander занято двумя "панелями", отображающими списки файлов двух каталогов (вообще говоря, разных, но, в частном случае, может быть и одного и того же каталога).
Над панелями расположена строка меню, причем к выбору пунктов в этом меню можно переключиться по клавише или с помощью мыши (если сразу после запуска mc Вы не видите строки меню, не огорчайтесь - видна или нет строка меню определяется настройками программы).

Самая нижняя строка представляет собой ряд экранных кнопок, каждая из которых ассоциирована с одной из функциональных клавиш - . Можно считать эту строку подсказкой по использованию функциональных клавиш, а можно и непосредственно запускать соответствующие команды, щелкая мышкой по экранной клавише.
Отображение строки с экранными кнопками можно отключить, если Вы хотите сэкономить пространство экрана (об этом будет рассказано позже, когда будем говорить о настройках программы). Такая экономия оказывается оправданной по двум причинам. Во-первых, Вы достаточно быстро запомните назначение этих 10 клавиш и подсказка Вам становится не нужна (а мышкой по этим клавишам щелкать не всегда удобно). Во вторых, если даже Вы забыли, какая именно клавиша Вам нужна для выполнения необходимого в данный момент действия, Вы всегда можете воспользоваться выпадающим меню "Файл" главного меню программы (только помните, что выход в главное меню осуществляется по клавише F9). Через меню "Файл" обеспечивается возможность выполнения любой из операций из числа ассоциированных с функциональными клавишами (кроме F1 и F9, но уж эти-то клавиши Вы не забудете, я надеюсь!).

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

Каждая панель состоит из заголовка, списка файлов некоторого каталога и строки мини-статуса (последняя может быть не видна, это тоже задается настройками программы). В заголовке панели указан полный путь к каталогу, содержимое которого отображается в панели, а также три экранных кнопки - "<", "v" и ">", которые используются для управления программой с помощью мыши. В строке "мини-статуса" отображаются некоторые данные о том файле или каталоге, на который в данный момент указывает подсветка (например, размер файла и права доступа к нему).

Одна из панелей является текущей (активной), о чем свидетельствует подсветка в одной из строчек данной панели и подсветка имени каталога в заголовке панели. Соответственно, в той оболочке shell, в которой была запущена программа Midnight Commander , текущим является каталог, отображаемый в активной панели. В этом каталоге и выполняются почти все операции. Операции типа копирования () или переноса файла () используют каталог, отображаемый на второй панели, в качестве целевого каталога (в который осуществляется копирование или перенос).

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

Таблица 1.1

Как Вы уже заметили, клавиши обозначаются нанесенным на клавишу символом, заключенным в угловые скобки. Если две таких скобки соединены дефисом, это означает, что надо удерживать первую клавишу и нажать в это время вторую. Если обозначения клавиш разделены пробелом, значит нужно последовательно нажать первую клавишу (или комбинацию клавиш), отпустить ее, а потом нажать следующую клавишу. Отметим еще, что в документации к программе Midnight Commander часто встречается упоминание некоторых клавиш (например, клавиши ), которые отсутствуют на обычной клавиатуре IBM-PC совместимых компьютеров. Мы будем использовать те обозначения клавиш, которые имеются на привычных клавиатурах IBM-PC.

1.3. Получение помощи

При работе с программой Midnight Commander практически в любой момент можно обратиться к интерактивной подсказке, вызов которой осуществляется нажатием клавиши . Поскольку подсказка организована как гипертекст, то в тексте ее встречаются гипертекстовые ссылки на те или иные разделы подсказки. Такие ссылки выделены голубым фоном.
Для перемещения в окне просмотра подсказки Вы можете использовать клавиши перемещения курсора (стрелки) или мышь. Кроме общих комбинаций управления перемещением, приведенных в таблице 1.1, программа просмотра помощи воспринимает еще и следующие комбинации, которые действуют также в подпрограмме просмотра файлов:

Таблица 1.2

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

Таблица 1.3

Переход на следующую ссылку.
- Переход на предыдущую ссылку.
<стрелка вниз> Переход на следующую ссылку или смещение текста на одну строку вверх.
<стрелка вверх> Переход на следующую ссылку или смещение текста на одну строку вниз.
<стрелка вправо> или Переход по текущей ссылке.
<стрелка влево> или клавиша Переход к ранее просмотренным разделам.
Помощь по использованию самой подсказки.
Переход к следующему разделу помощи.

Переход к предыдущему разделу помощи.
Переход к оглавлению подсказки.
, Выход из окна просмотра подсказки.

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

1.4. Поддержка мыши.

Программа Midnight Commander обеспечивает поддержку мыши. Это свойство реализуется, если запущен сервер мыши gpm , независимо от того, работаете ли Вы на консоли Linux или программа Midnight Commander запущена через терминал xterm(1) (даже если Вы используете соединение с удаленной машиной из xterm через telnet или rlogin

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

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

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

Если щелкнуть мышью по верхней рамке панели, отображающей очень длинный список файлов. происходит перемещение списка на одну колонку назад. Щелчок по нижней рамке панели приводит, соответственно, к перемещению по списку на целую колонку вперед. Этот метод перемещения работает также при просмотре встроенной подсказки и просмотре окна "Дерево каталогов".

Если Commander запущен с поддержкой мыши, Вы можете производить вырезание и вставку текста, если будете удерживать клавишу (отметим, что это свойство не работает в окне эмулятора терминала).

1.5. Управление панелями

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

Форматы отображения списка файлов

Вид панелей, в которых отображаются списки файлов и подкаталогов, может быть изменен через пункты выпадающих меню левой и правой панелей "Левая" ("Left") и "Правая" ("Right") главного меню.
Если Вы хотите изменить формат представления списка файлов в панели, Вы можете воспользоваться пунктом "Формат списка..." соответствующей (левой или правой) панели. Имеется возможность выбрать один из 4 вариантов представления списка файлов: "Стандартный" (Full), "Укороченный" (Brief), "Расширенный" (Long) и "Определяемый пользователем" (User).

В "стандартном" формате отображаются имя файла, его размер и время последней модификации.

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

В "расширенном" (long) формате содержимое каталога представляется так, как это делает команда "ls -l". В этом формате панель занимает весь экран.

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

При задании структуры вначале указывается размер панели: "half" (половина экрана) или "full" (весь экран). После размера панели можно указать, что на панели должно быть две колонки. Это делается добавлением цифры 2 в строку задания формата.
Далее надо перечислить имена полей с необязательным параметром ширины поля. В качестве имен полей могут использоваться следующие слова:
- name , отображать имя файла.
- size , отображать размер файла.
- bsize , отображать размер в альтернативной форме, при которой выводятся размеры файлов, а для подкаталогов выводится только надпись "SUB-DIR" или "UP--DIR".
- type , отображать односимвольное поле типа. Этот символ может принимать значения из подмножества символов, выводимых командой ls с параметром -F:

* (asterisk) - для исполняемых файлов; / (slash) - для каталогов; @ (at-sign) - для ссылок (links); = (знак равенства) - для сокетов (for sockets) - (дефис) - для байт-ориентированных устройств; + (плюс) - для блок-ориентированных устройств; | (pipe) - для файлов типа FIFO, ~ (тильда) - для символических ссылок на каталоги; ! (восклицательный знак) - для оборванных (stalled) символических ссылок (ссылок, указывающих в никуда).

- mtime , время последней модификации файла.
- atime , время последнего обращения к файлу.
- ctime , время создания файла.
- perm , строка, показывающая текущие права доступа к файлу.
- mode , восьмеричное представление текущих прав доступа к файлу.
- nlink , число ссылок на данный файл.
- ngid , идентификатор группы (GID), в цифровой форме.
- nuid , идентификатор пользователя (UID), в цифровой форме.
- owner , владелец файла.
- group , группа, имеющая права на файл.
- inode , номер inode файла.

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

Для того, чтобы задать фиксированную ширину поля, нужно добавить двоеточие ":", после которого указать число позиций, которое отводится под это поле. Если после числа поставить
символ "+", то указанное число будет интерпретироваться как минимальная ширина поля, и, если экран позволяет, поле будет расширено.

Например, "стандартный" формат вывода задается строкой:

half type,name,|,size,|,mtime

а "расширенный" - строкой:

full perm,space,nlink,space,owner,space,group,space,size,space,mtime,space,name

А вот пример формата, определяемого пользователем:

half name,|,size:7,|,type,mode:3

Отображение списка файлов в любой из панелей может производиться в соответствии с одним из восьми порядков сортировки:
- по имени;
- по расширению;
- по размеру файла;
- по времени модификации;
- по времени последнего обращения к файлу;
- по номеру узла (inode);
- без сортировки.

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


По умолчанию подкаталоги отображаются в начале списка, но это можно изменить, проставив отметку возле опции "Смешивать файлы и каталоги" ("Mix all files") пункта "Конфигурация" меню "Настройки".

Можно выводить в панель не все списки файлов данного каталога, а только соответствующие определенному шаблону. Пункт меню "Фильтр" позволяет задать шаблон, которому должны соответствовать имена файлов, отображаемых в панели (например, "*.tar.gz"). Имена подкаталогов и ссылки на подкаталоги отображаются всегда, независимо от шаблона.

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

Другие режимы отображения

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

Режим "Информация"
В этом режиме на панель выводится информация о подсвеченном в другой панели файле и о текущей файловой системе (тип, свободное пространство и число свободных inode).


Режим "Дерево"
В режиме отображения дерева каталогов Вы увидите в одной из панелей изображение, подобное приведенному на следующем рисунке:

Этот режим подобен тому, который Вы увидите, выбрав пункт "Дерево каталогов" из меню "Команды".

Режим "Быстрый просмотр" ("Quick View")
В этом режиме панель переключается на отображение содержимого файла, подсвеченного
в другой панели. Для примера приведем вид экрана при быстром просмотре файла /etc/fstab.


При выводе в панель результатов "быстрого просмотра" используется встроенная программа просмотра файлов, так что, если переключиться клавишей в панель просмотра, Вы сможете использовать все команды управления просмотром, в частности, перечисленные в таблицах 1.1 - 1.2.

Режимы "Сетевое соединение" и "FTP-соединение"
Эти два режима используются для отображения списка каталогов, располагающихся на удаленных компьютерах. В остальном формат вывода информации аналогичен форматам, используемым для отображения локальных каталогов. Описание того, как пользоваться этими режимами, будет дано позже.

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

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

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

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

- . Циклически переключает режимы отображения списка файлов текущей директории. С помощью этой комбинации клавиш можно быстро переключаться из режима стандартного вывода
(long listing) к сокращенному или к режиму, определяемому пользователем.

-<\> (control-backslash). Показать справочник каталогов и перейти к выбранному каталогу.

<стрелка вверх>, -

. Перемещает подсветку на предыдущую позицию в списке файлов панели.

<стрелка вниз>, - . Перемещает подсветку на следующую позицию в списке файлов панели.

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

, -">" . Перемещает подсветку на последнюю позицию списка файлов.

, - . Перемещает подсветку на одну страницу вниз.

, - . Перемещает подсветку на одну страницу вверх.

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

-, - . Только если mc запущен с консоли Linux: выполняется, соответственно, переход (chdir ) к родительскому каталогу ("..") или к выделенному подсветкой каталогу.

- . Перемещение к предыдущему каталогу из истории перемещения по каталогам; эквивалентно нажатию мышкой на символ "<" в верхнем углу панели.

- . Перемещение к следующему каталогу из истории перемещения по каталогам; эквивалентно нажатию мышкой на символ ">".

1.6. Функциональные клавиши и меню "Файл"

До сих пор мы рассказывали только о внешнем виде экрана программы Midnight Commander и о том, как изменить этот вид. Теперь пора рассказать и том, как работать с файлами с помощью этой программы.
Наиболее часто выполняемые в Midnight Commander операции привязаны к функциональным клавишам - . Приведем сводку в виде таблицы.

Таблица 1.4.

Функциональная
клавиша
Выполняемое действие
F1 Вызывает контекстно-зависимую подсказку
F2 Вызывает меню, создаваемое пользователем
F3 Просмотр файла, на который указывает подсветка в активной панели
F4 Вызов встроенного редактора для файла, на который указывает подсветка в активной панели.
F5 Копирование файла или группы отмеченных файлов из каталога, отображаемого в активной панели, в каталог, отображаемый на второй панели. При копировании одного файла можно поменять его имя. Можно также указать имя каталога, куда будет производиться копирование (если надо скопировать в каталог, отличный от каталога, отображаемого во второй панели).
F6 Перенос файла или группы отмеченных файлов из каталога, отображаемого в активной панели, в каталог, отображаемый на второй панели. Как и при копировании, можно поменять имя файла или целевого каталога.
F7 Создание подкаталога в каталоге, отображаемом в активной панели.
F8 Удаление файла (подкаталога) или группы отмеченных файлов.
F9 Вызов основного меню программы (отображаемого над панелями).
F10 Выход из программы.

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

Выбор (отметка) файлов

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

Выделить группу файлов для последующей обработки можно также с помощью пункта "Отметить группу" меню "Файл". Эта команда используется для отметки группы файлов по заданному шаблону. Midnight Commander выдаст строку ввода, в которой надо задать регулярное выражение, определяющее желаемую группу имен. Если включена опция "Образцы в стиле shell" (смотри раздел "Настройки программы"), регулярные выражение строятся по тем же правилам, которые действуют в оболочке shell (* означает ноль или большее число любых символов, а? заменяет один произвольный символ). Если опция "Образцы в стиле shell" отключена, то пометка файлов производится по правилам обработки нормальных регулярных выражений (смотри ed (1)).
Если выражения начинаются или оканчиваются слэшем (/), то пометка будет ставиться на каталоги, а не на файлы.
"Горячей" клавишей для операции отметки группы файлов является клавиша <+> .

Операция "Снять отметку" ("горячая" клавиша - <\> - обратный слэш) является обратной по отношению к операции отметки группы файлов и использует те же правила формирования шаблонов. Используется для снятия отметки с группы файлов.

Операция "Инвертировать отметку (<*>) используется для того, чтобы снять отметки со всех помеченных файлов текущего каталога, одновременно отметив все файлы, которые не были помечены.

Если текущий каталог содержит много файлов (так что все они не умещаются на панели), то прежде чем отметить файл, его нужно еще отыскать. В таких случаях удобно пользоваться комбинациями клавиш - и - . После нажатия одной из этих комбинаций инициируется режим поиска имен файлов в текущей директории по первым символам имени, в котором вводимые символы отображаются не в командной строке, а в строке поиска. Если режим "Показ мини-статуса" ("Show mini-status") включен, эта строка отображается на месте строки мини-статуса. При этом в процессе ввода символов линия подсветка перемещается к следующему файлу, название которого начинается с введенной строки символов. Клавиши или могут использоваться для исправления ошибок. Если - нажато снова, осуществляется поиск следующего подходящего файла.

После выбора и отметки файлов для обработки достаточно нажать одну из функциональных клавиш, чтобы выполнить нужную операцию с файлами, например, скопировать файлы, переместить или удалить. Особенно удобно в сравнении с работой из командной строки осуществлять с помощью Midnight Commander просмотр или редактирование файлов, поскольку в Midnight Commander имеются встроенные программы для этих целей. Но в этом разделе мы не будем рассматривать встроенный редактор, отложив его описание до раздела 1.4. ().
Как уже говорилось, вовсе не обязательно использовать функциональные клавиши для вызова ассоциированных с ними команд. Любую из этих команд можно выполнить через меню "Файл".
Кроме команд, ассоциированных с функциональными клавишами, меню "Файл" содержит еще следующие команды (в скобках указаны соответствующие "горячие" клавиши):

Права доступа (- )
Позволяет изменить права доступа к выделенному или помеченным файлам.

Владелец/группа (- )
Позволяет выполнить команду chown.

Права (расширенные)
Позволяет изменить права доступа и владения файлом.

Если Вы не знаете, что такое ссылки: создание ссылки в некотором смысле подобно копированию файла, но и исходное имя файла и ссылка указывают на один и тот же реальный файл на диске. Поэтому, если Вы, например, редактируете файл, то изменения будут появляться в обеих копиях. Синонимами термина "ссылка" (link) являются термины алиас (alias) и ярлык (shortcut).

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

Символическая ссылка - это ссылка на имя исходного файла. Если исходный файл удален, символическая ссылка становится бесполезной. Символическую ссылку легко отличить от первоначального имени файла и программа Midnight Commander указывает символические ссылки выводя знак "@" перед именем такой ссылки (кроме ссылок на подкаталоги, которые обозначаются знаком тильды "~"). Если на экран выводится строка мини-статуса (опция "Показывать мини-статус" включена), то в ней отображается имя того файла, на который указывает ссылка. Используйте символические ссылки в тех случаях, когда хотите избежать путаницы, связанной с применением жестких ссылок.

Быстрая смена каталога (-)
Используйте этот пункт меню, если Вы знаете полный путь к каталогу, в который хотите перейти (который хотите сделать текущим).

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

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

1.7. Маски файлов для операций копирования/переименования

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


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

Есть еще несколько опций, которые влияют на выполнение операций копирования / перемещения файлов, и которые устанавливаются в том же окне запроса, где задаются маски имен файлов, либо через пункт меню "Настройки / Конфигурация":

Опция "Разименовывать ссылки" (Follow links) определяет, будут ли при копировании жестких или символических ссылок в каталоге-приемнике (и рекурсивно в подкаталогах) создаваться такие-же ссылки, или будут копироваться файлы (и подкаталоги), на которые эти ссылки указывают.

Опция "Внутрь каталога, если есть" (Dive into subdirs) определяет, что делать, если в каталоге-приемнике уже существует подкаталог, имя которого совпадает с именем файла (каталога), который копируется (источника). По умолчанию (опция отключена) содержимое каталога-источника копируется в каталог-приемник. Если опция включена, то в каталоге приемнике будет создан новый подкаталог с тем же именем, в который и будет осуществляться копирование.

Лучше показать это на примере:
Пусть Вы хотите скопировать содержимое каталога foo в каталог /bla/foo, который уже существует. Обычно (опция отключена) mc будет просто копировать все файлы из foo в /bla/foo.
Если опцию включить, копирование файлов будет производиться в /bla/foo/foo.

Опция "Сохранять атрибуты" (Preserve attributes) определяет, будут ли при копировании/перемещении сохранены атрибуты исходного файла: права доступа, временные метки и, если Вы root, UID и GID исходного файла. Если опция отключена, атрибуты будут установлены в соответствии с текущим значением umask.

Опция "Образцы в стиле shell" (меню " "). Когда опция "Образцы в стиле shell" включена, Вы можете использовать символы замены (wildcards) "*" и "?" в маске источника. Они обрабатываются аналогично тому, как это делается в shell. В маске приемника разрешается использовать только "*" и "\<цифра>". Первый символ "*" в маске приемника соответствует первой группе символов замены в маске источника, второй символ "*" соответствует второй группе и т.д.
Аналогично, символ замены "\1" соответствует первой группе символов замены в маске источника, символ "\2" - второй группе и т.д. Символ "\0" соответствует целому имени файла-источника.

Два примера:

Если маска источника "*.tar.gz", а приемник - "/bla/*.tgz" и имя копируемого файла - "foo.tar.gz", копия будет называться "foo.tgz" и будет находиться в каталоге "/bla".

Предположим Вы хотите поменять местами имя и расширение файла, так чтобы "file.c" стал файлом "c.file". Маска источника для этого должна иметь вид "*.*", а маска приемника - "\2.\1".

Когда опция "Образцы в стиле shell" (Use shell patterns) выключена, MC не осуществляет автоматической группировки. Для указания групп символов в маске источника, которые будут соответствовать символам замены в маске приемника, Вы должны в этом случае использовать скобки "\(...\)". Этот способ более гибкий, но требует больше усилий при вводе.

Два примера:

Если маска источника имеет вид "^\(.*\)\.tar\.gz$", копирование производится в "/bla/*.tgz" и копируется файл "foo.tar.gz", то результатом будет "/bla/foo.tgz".

Предположим, что Вы хотите поменять местами имя файла и его расширение, так чтобы имена вида "file.c" приняли вид "c.file". Маска источника для этого - "^\(.*\)\.\(.*\)$", а маска приемника - "\2.\1".

"Преобразование регистра"

Вы можете также преобразовать регистр символов в именах файлов. Если Вы используете "\u" или "\l" в маске приемника, то следующий символ имени будет образован в верхнем (заглавные символы) или нижнем (строчные) регистре соответственно.

Если использовать в маске приемника "\U" или "\L", то к соответствующему регистру будут преобразованы все последующие символы, вплоть до следующего вхождения "\E" или "\U", появления символа "\L" или конца имени файла.

Применение "\u" и "\l" обеспечивает более широкие возможности, чем "\U" и "\L".

Например, если маска источника есть "*" (опция "Образцы в стиле shell" включена) или "^\(.*\)$" (опция "Образцы в стиле shell" выключена), а маска приемника есть "\L\u*", имена файлов будут преобразованы таким образом, что первые буквы имени будут заглавными, а все остальные - строчными.

Символ "\" в масках используется для отмены специальной интерпретации отдельных символов. Например, "\\" означает просто backslash и "\*" означает просто звездочку (asterisk).

1.8. Особенности выполнения операций копирования/перемещения файлов

Когда Вы выполняете операции копирования, перемещения или удаления файлов, Midnight Commander отображает на экране диалоговое окно, в котором показано, какой(ие) файл(ы) в данный момент обрабатывается и как идет процесс обработки. Для отображения процесса обработки на экран выводится до трех диаграмм-полосок (progress bars). Первая (file bar) показывает, какая часть текущего файла обработана (например, скопирована). Вторая (count bar) показывает какая доля помеченных файлов обработано на текущий момент. Третья (bytes bar) показывает долю выполненных работ в процентах от суммарного объема (в битах) помеченных файлов. Если отключена опция "Детали операций" (см. описание пункта меню "Настройки/Конфигурация"), две последних диаграммы не отображаются.

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

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

Окно ошибок информирует об ошибке и предлагает три варианта продолжения. Обычно Вы выбираете либо вариант <Пропустить> для того, чтобы исключить из обработки файл, на котором споткнулась программа, либо <Прервать>, чтобы вообще отменить выполнение заданной операции. Третий вариант, <Повторить>, выбирается тогда, когда Вам удалось устранить причину сбоя (например, воспользовавшись другим терминалом).

Окно подтверждения перезаписи появляется тогда, когда Вы пытаетесь перезаписать существующий файл. В этом окне отображаются время создания и размер файла-источника и файла-приемника (то есть перезаписываемого файла, который фактически будет уничтожен).
Ниже выведены два вопроса. На первый вопрос ("Переписать этот файл?") предлагается три варианта ответа:
- согласиться (кнопка <Да>);
- отказаться, то есть пропустить перезапись текущего файла (кнопка <Нет>);
- дописать содержимое файла-источника в конец файла-приемника (кнопка <Дописать в Конец>).
Выбор одного из вариантов ответа на второй вопрос ("Переписать все файлы?") позволяет принять одно решение по всем выбранным для обработки файлам (чтобы окно запроса не появлялось каждый раз). Предлагается 4 варианта решения:
- <Все> - перезаписались без дополнительных вопросов все выбранные файлы;
- <Устаревшие> - перезапишутся (затрутся) только файлы, которые созданы раньше файла-источника;
- <ни Одного> - не перезаписывать файлы (но если не существует файла-приемника, то копирование источника будет произведено);
- <Различающиеся по длине>.
Вы можете отказаться от выполнения операции, если нажмете клавишу <Прервать> в нижней части окна запроса. Выбор нужной экранной кнопки производится клавишами стрелок или клавишей табуляции.

Окно запроса на рекурсивное удаление появляется в том случае, когда Вы пытаетесь удалить непустой каталог. По кнопке <Да> каталог будет удален вместе со всеми файлами, <Нет> означает отказ от удаления каталога, <Все> надо выбирать, если Вы отметили группу подкаталогов для удаления и уверены в своем выборе, <ни Одного> - чтобы пропустить все непустые каталоги из числа помеченных, <Прервать> означает отказ от выполнения операции удаления. Выбирайте <Да> или <Все> только в том случае, когда Вы действительно уверены, что хотите удалить каталог со всеми вложенными подкаталогами.

Если Вы пометили для обработки группу файлов, то после выполнения операции будет снята отметка только с тех файлов, которые успешно обработаны. Пропущенные файлы останутся помеченными.

1.9. Командная строка оболочки

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

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

Если Вы нажимаете клавишу в тот момент, когда подсветка указывает на имя файла, не являющегося исполняемым, Midnight Commander сравнивает расширение выбранного файла с расширениями, прописанными в "файле расширений" ~/mc.ext . Если в файле расширений найдется подраздел, задающий процедуры обработки файлов с данным расширением, то обработка файла производится в соответствии с заданными в этом подразделе командами.
Перед обработкой выполняются простые макро-подстановки.

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

-. Копирует подсвеченное имя файла или каталога в командную строку.

-. То же самое, что -, но работает только на консоли Linux.

-. Пытается выполнить операцию "Завершение ввода" (completion) имени файла, названия команды, переменной, имени пользователя или имени хоста (в зависимости от того, что Вы начали набирать и какой элемент команды вводите).

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

-

, - -

Первая комбинация клавиш копирует в командную строку имя текущего каталога, а вторая - имя каталога, отображаемого в пассивной панели.

-. Эта команда (the quote command) используется для того, чтобы вставить символы, которые каким-то образом интерпретируются самим Midnight Commander -ом (например, символ "+").

-

, - -

Вызывает перемещение на команду назад по списку ранее запускавшихся команд, а - - перемещение на одну команду вперед.

-. Выводит историю текущей строки ввода (для командной строки - историю команд).

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

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

-. Перемещает курсор в началу строки.

-. Перемещает курсор в конец строки.

-, <стрелка-влево>. Перемещает курсор на одну позицию влево.

-, <стрелка-вправо>. Перемещает курсор на одну позицию вправо.

-. Перемещает курсор на одно слово вперед.

-. Перемещает курсор на одно слово назад.

-, . Удаляет символ, предшествующий курсору.

-, . Удаляет символ в позиции курсора.

-<@>. Устанавливает метку для того, чтобы вырезать (скопировать в буфер) часть текста.

-. Копирует текст, расположенный между курсором и меткой, в буфер, удаляя текст из строки ввода.

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

-. Вставляет содержимое буфера в строку ввода перед позицией курсора.

-. Удаляет текст от курсора до конца строки.

-

, -. Эти комбинации используются для перемещения по истории команд. -

Перемещает к предыдущей команде, - - к следующей.

--, -. Удалить предшествующее слово.

-. Пытается выполнить завершение ввода (completion) имени файла, команды, переменной, имени пользователя или имени хоста.

В коце, приведу пример подобия команд Windows:

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

Копирование текста - кликаем правой клавишей мыши по выделенному тексту, готово, текст в буфере

Вставляем текст - выставляем курсор в нужное место, зажимаешь шифт, кликаем правой клавишей мыши ИЛИ выставляем курсор в нужное место и нажимаем на +

Удаление текста - выставляем курсор в нужном месте, зажимаешь левую клавишу мыши и выделяем до нужного места, нажимаем F8

Вызвать верхнее меню - нажимаем +

1.10. Меню "Команды"

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

При обращении к пункту меню "Дерево каталогов " выводится окно, отображающее структуру каталогов файловой системы.

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

Чтобы избавиться от долгих задержек во время создания дерева каталогов, Midnight Commander создает дерево путем просмотра только небольшого подмножества всех каталогов. Если каталог, который Вам нужен, не отображен, перейдите в его родительский каталог и нажмите - (или ).
Существует два режима отображения дерева каталогов. В статическом режиме перемещения для выбора каталога (т.е. перемещения подсветки на имя другого каталога) используются только стрелки вверх/вниз. Показываются все известные программе на данный момент подкаталоги.

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

Для управления просмотром дерева каталогов могут использоваться следующие комбинации клавиш:

Работают все клавиши управления перемещением (смотри ).

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

(Forget). Удалить текущий каталог из дерева. Эта команда используется для удаления ошибочно отображаемых ветвей дерева. Если Вам необходимо вернуть подкаталог в дерево, перейдите в его родительский каталог и нажмите клавишу .

(Static/Dynamic). Переключение между статическим (применяемым по умолчанию) и динамическим режимами перемещения по дереву.

(Copy). Копировать подкаталог (появляется строка ввода, в которой надо указать, куда копировать).

(RenMov). Переместить подкаталог.

(Mkdir). Создать подкаталог в текущем (подсвеченном) каталоге.

(Delete). Удалить подсвеченный каталог из файловой системы.

-, -. Найти следующий каталог, соответствующий заданному шаблону поиска. Если такого каталога не существует, происходит просто смещение подсветки на одну строку вниз.

-, . Удаляет последний символ в строке (шаблоне) поиска.

<Любой другой символ>. Этот символ добавляется в шаблон поиска и производится перемещение на имя следующего каталога, удовлетворяющее шаблону. В режиме просмотра дерева каталогов вначале необходимо активизировать режим поиска клавишами -. Шаблон поиска будет отображаться в строке мини-статуса.

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

(Help). Вызов подсказки с отображением раздела помощи об окне дерева каталогов.

, . Выход из окна дерева каталогов. Смены текущего каталога не происходит.

В окне просмотра дерева каталогов поддерживается мышка. Двойной щелчок аналогичен нажатию клавиши .
Команда "Поиск файла " (-) позволяет Вам найти на диске файл с заданным именем. После выбора этого пункта меню "Поиск файла" вначале запрашивается имя искомого файла и имя каталога, с которого необходимо начинать поиск. Нажав экранную кнопку <Дерево>, Вы можете выбрать начальный каталог поиска из дерева каталогов. В поле "Содержание" (contents) можно задать регулярное выражение по правилам команды egrep(1). Это значит, что перед символами, имеющими специальное значение для egrep, необходимо вставить символ "\", например, если Вам нужно найти строку "strcmp (", Вы должны указать шаблон поиска в виде "strcmp \(" (без двойных кавычек).
Для того, чтобы начать поиск, нажмите экранную кнопку <Дальше>. Во время поиска его можно приостановить кнопкой <Остановить> и продолжить по кнопке <Продолжить>.
Список найденных файлов можно просматривать, перемещаясь с помощью клавиш "стрелка вверх" и "стрелка вниз". Кнопка <Перейти> используется для перехода в каталог, в котором находится подсвеченный файл. Кнопка <Повтор> служит для задания параметров нового поиска.
Кнопка <Выход> служит для выхода из режима поиска.
Нажатие на кнопку <Панелизация> приведет к тому, что результаты поиска будут отображены на текущую активную панель, так что Вы можете производить с выбранными файлами еще какие-то действия (просматривать, копировать, перемещать, удалять и так далее). После вывода на панель можно нажать - для возврата к обычному списку файлов.

Кроме того, имеется возможность задать список каталогов, которые команда "Поиск файла" будет пропускать в ходе поиска (например, Вы знаете, что искомого файла нет на CDROM или не хотите искать в каталогах, подключенных через NFS по очень медленному каналу).
Каталоги, которые надо пропустить, должны быть указаны в переменной find_ignore_dirs в секции Misc Вашего файла ~/.mc/ini. Имена каталогов разделяются двоеточиями, следующим образом:


find_ignore_dirs=/cdrom:/nfs/wuarchive:/afs

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

Команда "Переставить панели " (-) меняет местами содержимое правой и левой панелей.

По команде "Отключить панели " (-) показывается вывод последней из выполнявшихся команд shell. Эта команда работает только через xterm и на консоли Linux.

По команде "Сравнить каталоги " (- ) сравнивается содержимое каталогов, отображаемых на левой и правой панелях. После сравнения Вы можете воспользоваться командой "Копировать" (F5) для того, чтобы сделать содержимое каталогов одинаковым.
Существует три метода сравнения. При быстром методе сравниваются только размер и дата создания файлов с одинаковыми именами. При по-байтном методе сравнивается содержимое файлов (побайтно). Этот метод недоступен, если машина не поддерживает системный вызов mmap(2). При сравнении по размеру сравниваются только размеры соответствующих файлов, а дата создания не проверяется.

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

find . -type l -print

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

awk "$9 ~! /incoming/ { print $9 }" < /usr/adm/xferlog

Если Вы захотите, то можете сохранить часто используемые команды панелизации под отдельными информативными именами, чтобы иметь возможность их быстро вызвать по этим именам. Для этого нужно набрать команду в строке ввода и нажать кнопку <Добавить>. После этого Вам потребуется ввести имя, по которому Вы будете вызывать команду. В следующий раз Вам достаточно будет выбрать нужное имя из списка, а не вводить всю команду заново.

Пункт меню "История команд " выводит окно со списком ранее выполнявшихся команд. Подсвеченную строку из истории можно скопировать в командную строку оболочки (перемещение подсветки - стрелками вверх/вниз, копирование - по клавише ).
Доступ к истории команд можно получить также по комбинациям клавиш -

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

Происходит смена этой команды на предыдущую, а по - - на следующую команду из истории команд.

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

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

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

Пункт "Файл меню " используется для редактирования пользовательского меню (которое появляется после нажатия клавиши ).

1.11. Настройка программы Midnight Commander

Программа Midnight Commander имеет ряд установок (опций), каждая из которых может быть включена или выключена, для чего служат несколько диалоговых окон, доступных через меню "Настройки". Опция включена, если поставлена звездочка или знак "x" в скобках перед названием опции. Рассмотрим последовательно пункты меню "Настройки", через которое включаются / отключаются эти опции.

Пункт "Конфигурация".

При выборе этого пункта меню появляется диалоговое окно следующего вида


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

В поле "Настройки панелей" Вы задаете значения следующих параметров:

Показывать резервные (Backup) файлы . По умолчанию программа Midnight Commander не показывает файлы, имена которых заканчиваются на "~" (подобно опции -B команды ls в GNU).

Показывать скрытые файлы . По умолчанию Midnight Commander показывает все файлы, имена которых начинаются точкой (как ls -a).

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

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

Смешивать файлы/каталоги . Если эта опция включена, имена файлов и каталогов отображаются вперемежку. Если опция отключена, каталоги (и ссылки на каталоги) показываются в начале списка, а имена файлов - после имен всех каталогов.

. По умолчанию эта опция выключена. Если Вы активизируете ее, Midnight Commander будет использовать для вывода содержимого каталога следующий трюк:
содержимое каталога перечитывается только в том случае, если изменилась запись в i-node каталога, то есть если в каталоге создавались или удалялись файлы; если изменялись только записи в i-node файлов каталога (изменялся размер файла, режим доступа или владелец и т.п.) содержимое панели не обновляется. В этом случае (если опция включена) Вы должны обновлять список файлов вручную (клавишами -).

Поле "Пауза после исполнения".

После выполнения Вашей команды Midnight Commander может обеспечить паузу, чтобы Вы могли просмотреть и изучить вывод команды. Есть три варианта установки этой опции:
<Никогда> Это значит, что Вы не хотите видеть вывод команды. На консоли Linux или при использовании xterm Вы можете просмотреть этот вывод, нажав -.
<На "тупых" терминалах> Пауза будет создаваться на терминалах, которые не способны обеспечить показ вывода последней из выполнявшихся команд (это любые терминалы, отличные от xterm или Linux-консоли).
<Всегда> Программа обеспечит паузу после выполнения любой команды.

В поле "Прочие настройки" Вы задаете значения следующих параметров:

Детали операций (Verbose operation). Этот переключатель определяет, будет ли при выполнении операций копирования, перемещения и удаления выводится дополнительное окно, отображающее ход выполнения операции. Если у Вас медленный терминал, Вы можете отключить этот вывод. Он отключается автоматически, если скорость Вашего терминала меньше 9600 bps.

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

Образцы в стиле shell (Shell Patterns) . По умолчанию команды Select, Unselect и Filter используют регулярные выражения, которые строятся по правилам, действующим в оболочке (shell-like regular expressions). Для того, чтобы достичь такого эффекта, выполняются следующие преобразования: "*" заменяется на ".*" (ноль или больше символов); "?" заменяется на "." (в точности один символ) и "." заменяется на обычную точку (literal dot). Если опция отключена, то регулярные выражения должны строиться так, как описано в ed(1).

Автосохранение настроек . Если эта опция включена, то при выходе из программы Midnight Commander значения всех настраиваемых параметров сохраняются в файле ~/.mc/ini.

Автоматические меню . Если эта опция включена, пользовательское меню будет автоматически вызываться на экран при запуске программы. Это бывает полезно, если на компьютере работают неопытные пользователи (операторы), которые должны выполнять только стандартные операции.

Встроенный редактор . Если эта опция включена, то для редактирования файлов вызывается встроенный редактор. Если опция выключена, то будет использоваться редактор, указанный в переменной окружения EDITOR. Если такой редактор не задан, будет вызываться vi.

Встроенный просмотр . Если эта опция включена, для просмотра файлов вызывается встроенная программа просмотра. Если опция выключена, вызывается программа, указанная в переменной окружения PAGER. Если такая программа не задана, используется команда view.

Дополнение: показывать все (Complete: show all). В процессе ввод команд Midnight Commander может выполнять "Завершение ввода" при нажатии на клавиши -, пытаясь угадать окончание вводимой команды. По умолчанию при первом нажатии - он ищет все возможные варианты завершения и, если завершения неоднозначны (имеется много разных вариантов), то только издает звуковой сигнал. При втором нажатии - отображаются все возможные завершения. Если Вы хотите видеть все возможные варианты завершения после первого нажатия -, включите эту опцию.

Rotating dash . Если эта опция включена, Midnight Commander отображает в верхнем правом углу вращающуюся черточку, как индикатор того, что выполняется какое-то задание (операция).

Навигация в стиле lynx (Lynx-like motion). Если эта опция включена, Вы имеете возможность использовать клавиши "стрелка вправо" для перехода в подсвеченный в данный момент каталог и "стрелка влево" для перехода в родительский по отношению к текущему каталог (при условии, что командная строка пуста). По умолчанию опция отключена.

Расширенная команда chown . Если эта опция включена, то при обращении к командам Chmod или Chown вместо них будет вызываться Расширенная команда Chown.

Смена каталога по ссылкам . Установка этой опции приводит к тому, что Midnight Commander будет следовать логической цепочке подкаталогов при выполнении команд смены каталога как в панели, так и по команде cd. Так же ведет себя по умолчанию bash. Если же опция не включена, Midnight Commander будет при выполнении команды cd следовать реальной структуре каталогов, так что если Вы вошли в текущий каталог по ссылке на него, то по команде cd .. Вы окажетесь в его родительском каталоге, а не в той директории, где расположена ссылка.

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

Пункт "Внешний вид"

Диалоговое окно "Внешний вид" дает Вам возможность изменить некоторые параметры отображения на экране главного окна программы Midnight Commander.


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

По умолчанию вся информация отображаются одним цветом, но Вы можете сделать так, что права доступа и типы файлов были выделены другими цветами. Если включено выделение цветом прав доступа, поля perm и mode в форматах вывода, показывающие права пользователя, запустившего программу Midnight Commander , выделены цветом, определенным ключевым словом selected (смотри раздел Цвета). Если включено выделение цветом типов файлов, то разными цветами выделяются каталоги, дампы памяти (файлы core), исполняемые файлы и т.д.

Если включена опция "Мини-статус", в нижней части каждой панели выводится строка информации о выделенном подсветкой файле или каталоге каждой панели.

Пункт "Биты символов.."

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


Если терминал поддерживает только 7-битный вывод, то нужно выбрать установку "7 бит". Выбрав "ISO-8859-1" Вы получите все символы из таблицы ISO-8859-1, а выбор установки "Полный 8-битный вывод" имеет смысл на тех терминалах, которые могут отображать все 8-битовые символы. Чтобы при просмотре или редактировании файлов в Midnight Commander видеть на экране кириллицу, установите опции "Полный 8-битный вывод" и "Полный 8-битный ввод" (как на приведенном рисунке) и нажмите экранную кнопку [Дальше].

Пункт "Подтверждения"

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

Пункт "Распознавание клавиш.."

Пункт "Распознавание клавиш (Learn keys)" вызывает диалоговое окно, в котором Вы можете протестировать работу некоторых клавиш (-, , ), которые работают не на всех типах терминалов.
В диалоговом окне появляется таблица с названиями клавиш, которые подлежат тестированию. Вы можете перемещать подсветку по названиям, используя клавишу или клавиши, применяемые в редакторе vi ( - влево, - вниз, -вверх, - вправо). Если один раз нажать на клавиши со стрелками, после чего возле их названий в таблице появится пометка OK, то их тоже можно будет использовать для управления перемещением.

Для тестирования работы клавиш нужно нажать каждую клавишу из перечисленных в таблице. Если она работает нормально, возле ее названия в таблице появится пометка OK. После появления такой пометки клавиша начинает работать в ее обычном режиме. Например, первое нажатие на клавишу приводит только к появлению пометки (если она работает нормально), а при следующих нажатиях будет вызываться окно подсказки.
То же самое относится к клавишам стрелок. Клавиша работает всегда.

Если какая-то клавиша не работает, то после нажатия на нее пометка OK не появится. В таком случае можно связать ту реакцию системы, которая должна была последовать за нажатием неработающей (отсутствующей) клавиши, с нажатием другой клавиши или комбинации клавиш. Для этого надо переместить подсветку на название неработающей клавиши (используя мышь или клавишу ) и нажать или клавишу пробела. Должно появиться окно красного цвета, в котором Вас просят нажать клавишу, которая будет использоваться вместо неработающей. Для отмены операции нажмите и дождитесь, пока красное окно исчезнет. Либо выберите и нажмите ту комбинацию клавиш, которая будет служить заменой для неработающей клавиши (и тоже дождитесь закрытия окна).

Когда закончите тестирование и настройку всех клавиш, Вы можете сохранить эти настройки в секции Вашего файла ~/.mc/ini (где TERM - название используемого терминала) либо отказаться от запоминания изменений. Если все клавиши работают нормально, то сохранение, конечно, не требуется.

Пункт "Виртуальные ФС" вызывает диалоговое окно, в котором Вы можете задать значения некоторых параметров, связанных с использованием виртуальных файловых систем.

И последний пункт меню "Настройки" ("Сохранить настройки" ) обеспечивает сохранение выбранных значений параметров в ini-файле программы.

Я надеюсь, что приведенный в этом разделе материал позволит Вам начать работу с ОС с использованием программы Midnight Commander . Но возможности этой программы гораздо шире, чем это описано в настоящем разделе. В разделе 12 Вы еще прочитаете о встроенном редакторе Midnight Commander . И, если судьба будет мне благоприятствовать, я надеюсь дать дополнительный материал по этой программе во второй части настоящей книги. Если же какие-либо обстоятельства помешают осуществить этот замысел, то обратитесь к встроенной подсказке, вызываемой по клавише . Перевод файла подсказки на русский язык (в виде ) Вы можете найти на моем сайте. Разархивируйте его, поместите в каталог /usr/lib/mc, заменив расположенный там файл mc.hlp, и Вы будете при нажатии клавиши получать подсказку на русском языке.

Оригинал: Midnight Commander - A Console Based File Manager for Linux
Автор: Pungki Arianto
Дата публикации: 23 октября 2013 года
Перевод: А. Кривошей
Дата перевода: май 2013 г.

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

В консольном окружении для работы с файлами вы должны знать основные команды и их синтаксис. К счастью, в Linux также имеется текстовый файловый менеджер, работающий в консольном окружении. Он называется Midnight Commander (далее мы будем называть его просто MC).

Заголовки разделов

Сайт Midnight Commander говорит:
"GNU Midnight Commander - это визуальный файловый менеджер, распространяемый под лицензией GPL, и поэтому он квалифицируется как Free Software. Это мощная текстовая полнофункциональная программа, которая позволяет вам копировать, перемещать и удалять файлы и директории, производить поиск файлов и запускать на выполнение команды оболочки. Также включены встроенные редактор и программа для просмотра файлов".

Как установить Midnight Commander в Linux

По умолчанию MC, как правило, не устанавливается. В Debian, Ubuntu и Linux Mint вы можете установить его с помощью команды apt-get:

$ sudo apt-get install mc

В RHEL, CentOS и Fedora вы можете использовать команду:

# yum install mc

После завершения инсталляции просто введите "mc" (без кавычек) в консоли для его запуска.

Возможности Midnight Commander

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

Копирование, удаление, переименование/перемещение, создание директорий

Интерфейс MC разделен на две колонки, независимые друг от друга. Каждая колонка представляет активную директорию. Вы можете переключаться между ними с помощью клавиши Tab. В нижней части экрана вы можете видеть кнопки с номерами, которые относятся к функциональным клавишам F1 - F10.
Для копирования файла из одной директории в другую просто выделите его и нажмите "F5". Для копирования нескольких файлов сразу необходимо сначала выделить их с помощью клавиши "Insert".

MC запросит у вас подтверждения. Для начала копирования просто нажмите "OK".
Удаление файлов еще проще. Просто выделите файлы и нажмите "F8". Перемещение файлов выполняется с помощью клавишы "F6".
Однако переименование файлов немного отличается. Нажав клавишу "F6", вам необходимо ввести новое имя файла. Пример, как это делается, приведен ниже на скриншоте.

Для создания директории вы можете нажать "F7". MC создаст новую директорию в текущей. Чтобы узнать, что еще MC может делать с файлами, нажмите "F9" > File.

Встроенная утилита для просмотра файлов

В консольном режиме доступно множество текстовых редакторов, таких как vi, joe и nano. MC имеет свою встроенную программу для просмотра содержимого текстовых файлов. Для ее запуска выделите файл и нажмите "F3". Вы также можете при необходимости редактировать файл, выделив его и нажав "F4".
Когда вы запустите текстовый редактор в первый раз, MC попросит вас выбрать текстовый редактор по умолчанию:

Pungki@mint15 ~ $ Select an editor. To change later, run "select-editor". 1. /bin/ed 2. /bin/nano

Затем, когда вы нажмете клавишу "F4", MC будет использовать выбранный вами текстовый редактор. Если вы хотите изменить редактор по умолчанию, просто нажмите "F2", вы берите "@" и введите "select-editor" (без кавычек).

Что, если вы хотите использовать другой текстовый редактор, не обнаруженный MC? Допустим, вы хотите работать с Vi. Это можно сделать по другому. Найдите в своей домашней директории файл ".selected_editor". Это скрытый файл, поэтому он начинается с точки. Отредактируйте его следующим образом:

# Generated by /usr/bin/select-editor SELECTED_EDITOR="/usr/bin/vi"

Права доступа к файлам

Файлы и директории имеют права доступа, которые указывают, кто может читать, записывать и исполнять файлы и директории. Команда для управления правами доступа - chmod. Чтобы узнать, как нею пользоваться, наберите в терминале "man chmod".
В MC вам нужно только выделить файл, затем нажать "F9" > File > Chmod или "Ctrl-x" и "c". МС покажет вам текущие права доступа выделенного файла и параметры, которые можно изменить.

Владелец файла

Файлы и директории имеют своего владельца, а также группу владельца. Привилегии владельца управляются с помощью описанной выше команды chmod. Управление владельцами осуществляется с помощью команды chown.
Как обычно, чтобы узнать, как нею пользоваться, наберите в терминале "man chmod". В MC вам нужно просто выделить файл, затем нажать "F9" > File > Chown, или "Ctrl-x" и "o". Теперь вы можете задать владельца и группу владельца из списка доступных пользователей и групп.

У MC также есть функция "Advanced Chown", которая представляет собой комбинацию chmod и chown, позволяющая выполнять две описанные выше задачи в одном месте. Нажмите "F9" > File > Advanced Chown.

По умолчанию MC имеет двухпанельный интерфейс. Эти панели предназначены не только для локальных директорий. Вы можете подключить их к удаленному компьютеру по FTP.
В этом случае MC выступает в качестве FTP-клиента. Для подключения вам необходимо нажать "F9" > FTP Link. MC запросит данные для подключения в следующем формате:

User:password@machine_or_ip_address

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

Для отключения FTP-соединения вы можете нажать "F9" > Command > Active VPS Link. В списке директорий Active VFS вы увидите свое FTP-соединение. Выберите его и нажмите "Free VFSs". Если вы хотите просто переключиться на локальную директорию без разрыва FTP-соединения, выберите "Change to".

Если в вашей сети используется прокси-сервер, вы можете настроить MC на работу с прокси. Нажмите "F9" > Options > Virtual FS > Always use ftp proxy.

Выход из Midnight Commander

Чтобы выйти из Midnight Command, нажмите "F9" > File > Exit или "F10".

Для более детального ознакомления с возможностями MC, постетите Midnight Commander FAQ.

В другой своей заметке я уже писал о том, что главное требование, которое нужно предъявлять к компьютеру и операционной системе, - эффективность и скорость отклика. И действительно, кому нужны красивые графические интерфейсы с "удобными" кнопками, если для того, чтобы ими пользоваться, приходится применять крайне неэффективное устройство ввода - мышь? Время работы компьютера сейчас стоит намного дешевле, чем несколько десятков лет назад. Но ваше собственное время нужно экономить и использовать продумано. Компьютер достаточно быстро решает все задачи, но за их постановку приходится отвечать вам. Чем быстрее вы сообщите о том, что хотите получить, тем раньше компьютер приступит к решению проблемы.

Лично я уже давно отказался от использования файловых менеджеров с графическим интерфейсом и под Linux применяю исключительно Midnight Commander. И сейчас я дам несколько простых советов, которыми пользуюсь сам, чтобы достичь еще большей эффективности при работе с MC.

Если вам нужно часто переходить в одни и те же каталоги, то создайте для них закладки в "Каталогах быстрого доступа". Чтобы открыть соответствующее диалоговое окно в MC, нажмите сочетание клавиш Ctrl+\ . Если у вас еще нет закладок, то вы увидите следующее:

Первым делом вам нужно будет заполнить этот список. Для этого добавьте в него те каталоги, к которым вам требуется частый доступ. Удобнее всего это сделать, когда вы уже находитесь в нужном каталоге и вызвали диалоговое окно с помощью Ctrl+\ . В этом случае вам достаточно выбрать с помощью клавиши Tab пункт "Добавить текущий". Таким образом вы также можете сохранять параметры подключения к FTP-серверам или Shell-соединениям. При желании можно компоновать все по группам, создавая иерархические структуры, но это усложнит доступ и уменьшит преимущества от использования закладок.

Когда список будет скомпонован, то чтобы воспользоваться им в дальнейшем, вам вновь потребуется нажать Ctrl+\ . Однако теперь достаточно выбрать один из заранее подготовленных пунктов и нажать клавишу Enter . Для выбора пунктов эффективнее всего использовать цифровые клавиши 0 - 9 . Нажатие на ноль переводит вас к выбору первой строки, нажатие на единицу - на вторую строку и т.д. Однако Enter для подтверждения выбора нажать все равно придется. При этом учитывайте, что на первой позиции имеет смысл разместить самый часто вызываемый каталог, в который вы будете переходить чаще всего. Для меня таким каталогом служит домашняя директория. Если вы не будете забывать использовать закладки, то скоро доведете переход в часто используемые каталоги до автоматизма. И для этого потребуется не более 3 нажатий клавиш.

Если в какой-то каталог вы переходите относительно редко, то можете решить, что его не следует добавлять в закладки. И, скорее всего, окажетесь правы. Но если у него имеется хорошее запоминающееся имя, то пробираться к нему откуда-то издалека может оказаться слишком неэффективным и занять много времени. Для этой цели в MC предусмотрена функция "Смены рабочего каталога". Она вызывается с помощью комбинации клавиш Alt+C . Вот как оно выглядит:

В нем вы можете ввести полный или относительный путь к нужному каталогу, как вы сделали бы это с помощью команды cd . Например. вы можете нажать Alt+C , ввести /etc/mysql/ и нажать Enter . После чего окажетесь в каталоге с настройками MySQL , конечно, если он у вас, установлен.

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

Первый из них заключается в использовании "Быстрого поиска". Вызвать его можно с помощью комбинации клавиш Ctrl+S . Делать это нужно после того, как вы уже оказались в нужном каталоге и знаете, что файл расположен прямо в нем, а не в одном из его подкаталогов. Например, мы хотим скопировать файл библиотеки libQtGui.so из /usr/lib/ . Для этого сначала переходим в каталог с помощью "быстрого перехода" из второго совета. Затем нажимаем сочетание клавиш Ctrl+S и начинаем набирать *QtGui . Как вы уже поняли, быстрый поиск поддерживает шаблоны поиска. В результате выполнения этих действий вы увидите что-то подобное:

Близко, но это не тот файл, который нам нужен. Поэтому мы можем уточнить шаблон поиска и продолжить печатать до *QtGui.so , однако и это не приведет нас к успеху, поскольку для искомой библиотеки еще имеются символические ссылки. Чтобы продолжить поиск мы просто нажимаем еще раз комбинацию клавиш Ctrl+S и получаем следующее соответствие шаблону поиска, которое через несколько нажатий приведет нас к искомой библиотеке.

Но что делать в случае, если вы знаете имя файла и находитесь в нужном каталоге, но у него много подкаталогов, и вы не уверены, в каком из них находится искомый файл? Для этого в MC предусмотрено диалоговое окно "Поиск файла". Вызвать его можно с помощью комбинации клавиш Alt+? (не забудьте нажать Shift). Выглядит это диалоговое окно следующим образом:

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

Find -type f -name "*.cpp" -exec grep -H "#include " {} \;

В конце предыдущего совета я показал, что то действие, которое позволяет выполнять MC, не намного сложнее выглядит в виде консольной команды. А бывают такие случаи, когда консольная команда оказывается более эффективной, намного более эффективной. Вы можете держать запущенным еще один экземпляр терминала или использовать вкладки, но это приведет к потере контекста. То есть скорее всего, команду нужно будет выполнить именно в том каталоге, который сейчас открыт с помощью MC. Консольные команды можно вводить в нем самом (в нижней части окна), но это не слишком удобно, хотя стоит признать, что иногда полезно. Такое ограничение связано с тем, что часть весьма эффективных комбинаций клавиш командных оболочек переопределены в MC и не могут быть использованы. Поэтому не забывайте про комбинацию клавиш Ctrl+O . С ее помощью вы сможете переключаться между консолью и сеансом MC.

Если вы еще не знаете, что именно ищете, то возможности поиска из третьего совета вам не помогут. Придется просматривать содержимое каталогов вручную. Но нужно делать это правильно. Интерфейс MC разбит на две панели. Используйте это по максимуму. Когда указатель MC находится над каталогом, содержимое которого вы хотите увидеть, то нажмите комбинацию клавиш Alt+O . В этом случае он откроется на соседней панели. А курсор на рабочей панели сдвинется на одну позицию вниз. Этот же прием будет работать и для просмотра содержимого каталога, который расположен на один уровень иерархии выше. Для этого нужно нажать Alt+O , когда курсор будет находиться над файлом, а не каталогом, или над обозначением родительского каталога /.. (в самом верху). Если же вы решите, что на второй панели имеет смысл отобразить тот же самый каталог, который сейчас открыт в рабочей панели, то нажмите сочетание клавиш Alt+I . Причем, на второй панели не только отобразится содержимое того же каталога, но и положение курсора у него будет установлено на том же файле или каталоге, который был выбран на рабочей панели в момент нажатия комбинации клавиш.

Я уже говорил, что мышь - это крайне неэффективное устройство ввода. Но и на клавиатуре пытайтесь все время держать руки в рабочей позиции над клавишами фыва и олдж. Если вы будете тянуться до клавиш стрелок, то просто потеряете время. Чем меньше движений, тем эффективнее вы работаете. К тому же, в MC все для этого предусмотрено. Вместо того, чтобы нажимать стрелку вверх, используйте сочетание клавиш Ctrl+P , а вместо стрелки вниз нажимайте Ctrl+N . Но и это еще не все. Вместо PgUp нажимайте Alt+V , а вместо PgDown - Ctrl+V . Если же вы захотите, чтобы курсор MC попал на верхний отображаемый в текущий момент файл, то нажмите Ctrl+G , если на нижний отображаемый файл, то Ctrl+J , а на средний - Ctrl+R . Еще одной полезной комбинацией клавиш из этого семейства является Ctrl+I . Ее использование равносильно нажатию клавиши Tab и позволяет переключаться между вкладками.

Пользоваться историей действий, которые вы уже делали, всегда правильно. Это же утверждение справедливо и для перемещения по каталогам. Крайне неэффективным выглядит переход в предыдущий каталог в MC через /.. , а если таких переходов было много или вы сделали "быстрый переход", воспользовавшись вторым советом? С помощью команды cd представленная задача решается достаточно легко:

Таким образом вы можете переместиться в предыдущий просматриваемый каталог с помощью простой команды. Но MC позволяет сделать то же самое еще эффективнее. Для этого достаточно нажать комбинацию клавиш Alt+Y . Однако MC идет еще дальше и позволяет ходить по истории каталогов в обе стороны. Например, вы случайно нажали лишний раз Alt+Y и ушли слишком далеко. В этом случае вернуться на один шаг вперед вы можете с помощью Alt+U .

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

Совет 8. Не вводите одни и те же команды более одного раза

В предыдущем совете мы поговорили об эффективном использовании истории перемещений по каталогам, но чем команды хуже? Например, для командой оболочки bash предусмотрено сочетание клавиш Ctrl+R . Оно позволяет по началу команды получить ее продолжение, если вы уже набирали ее полную версию хотя бы один раз. К сожалению, насколько мне известно, в MC такой функции не предусмотрено. Однако для некоторых простейших случаев может хватить и того, что в нем есть. Если вы выполнили в MC какую-нибудь простую команду, то повторить ее ввод вы можете с помощью комбинации клавиш Alt+P . Но как и в случае истории каталогов, вы можете перемещаться по истории команд назад и вперед. О том, как ходить назад нам уже известно, но вы могли догадаться и о комбинации клавиш для передвижения вперед: Alt+N . То есть прослеживается явная аналогия с сочетаниями клавиш для перемещений из шестого совета. Кроме того, вы можете вызвать диалоговое окно с историей команд с помощью Alt+H . По нему вы можете перемещаться с помощью Ctrl+P , Ctrl+N , Ctrl+V и Alt+V , как по содержимому панелей.

Предположим, что вам потребовалось скопировать все заголовочные h -файлы из текущего каталога на флешку, которая смонтирована в /media/flash_drive/ . Вы можете добиться этого относительно легко с помощью следующей команды:

Cp *.h /media/flash_drive/

Ничего сложно, но неужели нельзя сделать это в MC? - Конечно, можно. Если файлов мало, то вы можете просто выбрать их вручную с помощью Ctrl+T . Просто нажмите эту комбинацию, когда курсор MC будет расположен над нужным файлом, и он добавится к выделению. На другой панели откройте каталог назначения. Снова вернитесь на панель с файлами и нажмите F5 . Но если файлов много? Тогда этот вариант не пойдет, иначе вы потратите слишком много времени. Правильным вариантом является выбор файлов с помощью комбинации клавиш + (т.е. Shift+=). Вот какое диалоговое окно вы должны увидеть, если нажмете ее:

Я уже ввел шаблон поиска для заголовочных файлов, поэтому после нажатия Enter они будут отмечены и готовы к копированию. Все здорово, но что делать в случае, когда нам требуется скопировать все файлы, КРОМЕ заголовочных. На самом деле, все уже почти готово. Просто после выбора всех заголовочных файлов так, как мы уже сделали, нажмите * (т.е. Shift+8), что приведет к инверсии выбора. Таким образом, выделенными окажутся все файлы, кроме заголовочных.

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

Например, когда вы набираете новую команду в терминале, то всегда используйте автодополнение. Для bash и подобных ему автодополнение вызывается с помощью клавиши Tab . В MC Tab по умолчанию переключает вас между панелями и не может быть использован при вводе команд. Но ничего страшного. Вместо Tab используйте комбинацию Alt+Tab и все будет работать.

Если вам нужно выполнить в MC какую-то команду относительно нескольких файлов в текущем каталоге, то не набирайте их имена вручную. Выделите их, применив рекомендации из девятого совета, и нажмите комбинацию клавиш Ctrl+X T (сначала Ctrl+X , затем T). Это приведет к тому, что их имена добавятся к набираемой команде и могут быть использованы в качестве аргументов заранее набранной команды.

Заключение

На этом мы заканчиваем рассмотрение советов по эффективному использованию замечательного файлового менеджера Midnight Commander. Он обладает всеми необходимыми возможностями, которые нужны для эффективного управления вашей файловой системой. В представленных советах я привел лишь основные его возможности и быстрые клавиши, которыми пользуюсь сам ежедневно. Поэтому в качестве одиннадцатого совета могу рекомендовать полистать документацию по MC и обратить внимание на другие сочетания клавиш, которые в нем есть. Возможно, что-то из этого поможет вам сэкономить немало времени.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: