Опубликован: 24.07.2006 | Уровень: для всех | Доступ: свободно
Лекция 7:

Программа Midnight Commander

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

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

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

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

  • <Alt>+<Enter>. Копирует подсвеченное имя файла или каталога в командную строку.
  • <Ctrl>+<Enter>. То же самое, что <Alt>+<Enter>, но работает только в консоли.
  • <Alt>+<Tab>. Пытается выполнить операцию "Завершение ввода" (completion) имени файла, названия команды, переменной, имени пользователя или имени хоста (в зависимости от того, что вы начали набирать и какой элемент команды вводите), то есть пытается угадать еще не набранные вами символы, исходя из списка файлов текущего каталога, списка команд и т. д.
  • <Ctrl>+<X>, <T>. Копирует в командную строку имена помеченных файлов (или подсвеченное имя, если нет помеченных) из активной панели.
  • <Ctrl>+<X>, <Ctrl>+<T>. Копирует в командную строку имена помеченных файлов из пассивной панели.
  • <Ctrl>+<X>,<P>. Копирует в командную строку имя текущего каталога (т. е. каталога, отображаемого в активной панели).
  • <Ctrl>+<X>, <Ctrl>+<P>. Копирует в командную строку имя каталога, отображаемого в пассивной панели.
  • <Ctrl>+<Q>. Вставляет символы, которые каким-то образом интерпретируются самой программой Midnight Commander (например, символ '+').
  • <Alt>+<P>. Вызывает перемещение на команду назад по списку ранее запускавшихся команд (истории команд).
  • <Alt>+<N>. Перемещение на одну команду вперед в истории команд.
  • <Alt>+<H>. Выводит историю текущей строки ввода (для командной строки - историю команд).

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

Таблица 6.5. Команды управления строкой ввода
Комбинация клавиш Выполняемое действие
<Ctrl>+<A> Перемещает курсор в начало строки
<Ctrl>+<E> Перемещает курсор в конец строки
<Ctrl>+<B> Перемещает курсор на одну позицию влево
<Ctrl>+<F> или <0> Перемещает курсор на одну позицию вправо
<Alt>+<F> или <0> Перемещает курсор на одно слово вперед
<Alt>+<B> Перемещает курсор на одно слово назад
<Ctrl>+<H> или <Backspace> Удаляет символ, предшествующий курсору
<Ctrl>+<D> или <Delete> Удаляет символ в позиции курсора
<Ctrl>+<@> Устанавливает метку для того, чтобы вырезать (скопировать в буфер) часть текста
<Ctrl>+<W> Копирует текст, расположенный между курсором и меткой, в буфер, удаляя текст из строки ввода
<Alt>+<W> Копирует текст, расположенный между курсором и меткой, в буфер (без удаления из строки ввода)
<Ctrl>+<Y> Вставляет содержимое буфера в строку ввода перед позицией курсора
<Ctrl>+<K> Удаляет текст от курсора до конца строки
<Alt>+<P> и <Alt>+<N> Эти комбинации используются для перемещения по истории команд. <Alt>+<P> перемещает к предыдущей команде, <Alt>+<N> - к следующей
<Ctrl>+<Alt>+<H> или <Alt>+<Backspace> Удалить предшествующее слово
<Alt>+<Tab> Пытается выполнить завершение ввода (completion) имени файла, команды, переменной, имени пользователя или имени хоста

Меню Команды

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

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

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

Чтобы избавиться от долгих задержек во время создания дерева каталогов, Midnight Commander создает дерево путем просмотра только небольшого подмножества всех каталогов. Если каталог, который вам нужен, не отображен, перейдите в его родительский каталог и нажмите <Ctrl>+<R> или <F2>. Если каталог не содержит вложенных подкаталогов, ничего не произойдет. В противном случае развернется еще один уровень дерева подкаталогов.

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

Владислав Гермак
Владислав Гермак

Приглашения оболочки

Одна из очень важных переменных имеет имя PS1. Эта переменная задает вид приглашения, которое bash выводит, когда ожидает ввода очередной команды пользователем. По умолчанию этой переменной присвоено значение "\s-\v\$ ".

"\s-\v\$ ". -значиние /v замените /u

Сергей Пархоменко
Сергей Пархоменко
Россия, Ростов-на-Дону, ЮФУ (ДГТУ), 2008