Месяц: Июль 2010

The Unarchiver — универсальный распаковщик

The Unarchiver — универсальный распаковщик

The Unarchiver — одна из тех программ, которые должны быть установлены на каждом компьютере с Mac OS X. Она позволит практчески полностью забыть о любых проблемах с полученными из различных источников архивов. По числу поддерживаемых форматов The Unarchiver значительно превосходит BOMArchiveHelper — встроенное средство Mac OS X.

Кроме того — и это нам тоже очень важно — The Unarchiver умеет правильно работать с архивами, в которых имена файлов хранятся в национальных кодировках. То есть, получив от коллеги, пользующегося Windows, архив в формате RAR (почему-то он невероятно популярен на этой платформе), вы не получите после его распаковки кучу файлов с «кракозябрами» вместо имен. Если повезет, The Unarchiver сам угадает правильную кодировку. Если нет (по правде сказать, чаще бывает именно так), вам придется вручную выбрать из предложенного списка «DOS – русская».

На данный момент полностью поддерживаются следующие форматы:

  • ZIP (включая шифрованные архивы, самораспаковывающиеся (*.exe) архивы для Windows, а также ряд расширений формата);
  • RAR (включая шифрованные и многотомные архивы, а также самораспаковывающиеся (*.exe) архивы для Windows);
  • LZH;
  • Tar;
  • Gzip;
  • Bzip2;
  • ZOO;
  • PackIt;
  • Cpio;
  • XAR;
  • RPM;
  • LZMA, XZ;
  • Compress (.Z);
  • CAB;
  • MSI;
  • LZX;
  • PowerPacker.

Архивы 7z и StuffIt (*.sit) также могут быть распакованы, но только если в них не использовано шифрование. В той или иной степени поддерживается и еще несколько форматов. В некоторых случаях удается извлечь (естественно, частично) информацию из поврежденных архивов.

Программа распространяется с исходными кодами. Загрузить ее (и исходники) можно на сайте автора — https://theunarchiver.com.

Опубликовано Михаил К в Для Mac OS X
Справка по редактору vi. Основные команды

Справка по редактору vi. Основные команды

Наиболее распространенные команды консольного текстового редактора vi.

Содержание


Совет: Перед любыми действиями с документом введите следующую команду:

:set showmode


Запуск и завершение VI

vi filenameОткрыть файл filename для редактирования
vi -r filenameОткрыть последнюю сохраненную версию filename после аварийного выхода
vi filename file2Открыть filename, затем file2 … Переход к следующему файлу — :n
ZZ или :wq или 😡Сохранить изменения и завершить VI
:wСохранить изменения в текущем файле
:w!Безусловно сохранить текущий файл
:w fileСохранить текущий файл под именем file
:q!Завершить VI без сохранения

К началу страницы

Режимы

VI работает в командном режиме и режиме ввода. Сразу после запуска редактор находится в командном режиме, в котором можно перемещаться по тексту, выполнять копирование и вставку текста из буфера. Режим ввода включается по командам вставки, дополнения, замены. Нажатие [ESC] возвращает редактор в командный режим. Большинство команд выполняется сразу после нажатия клавиши. Исключение — команды строчного редактора ex, начинающиеся с двоеточия, которые выполняются после нажатия [Return].

К началу страницы

Вставка текста

iВставка перед курсором
IВставка перед строкой
aДобавление за курсором
AДобавление после строки
:r fileВставить содержимое file после текущей строки
В режиме ввода:
CTRL-i или TABВставить смещение вправо на shift width
CTRL-dУменьшить смещение вправо на shift width
CTRL-h или BackspaceУдалить предыдущий символ
CTRL-wУдалить предыдущее слово
CTRL-uУдалить предыдущую строку

К началу страницы

Перемещение по тексту

hВлево
jВниз
kВверх
lВправо
«стрелки»Перемещение по тексту (в больших файлах работает медленно, в некоторых конфигурациях может работать некорректно).
wК следующему слову
bК началу слова
^К первому непробельному символу строки
+ или <cr>К первому символу следующей строки
К первому непробельному символу предыдущей строки
eК концу слова
(К началу предложения
)К концу предложения
{К началу абзаца
}К концу абзаца
Примечание: абзацы разделяются пустой строкой.
0 или |К началу строки
$В конец строки
1GК первой строке файла
GК последней строке файла
HК верхней строке экрана
LК нижней строке экрана
CTRL-dПрокрутка вниз на пол-экрана
CTRL-fПрокрутка вниз на экран
CTRL-uПрокрутка вверх на пол-экрана
CTRL-bПрокрутка вверх на экран
%К парной скобке: ( ), { }, [ ]

К началу страницы

Удаление текста

Большинство команд удаления образуются из символа d и команды перемещения. Например, dw удаляет слово. Другие команды удаления:

xУдалить текущий символ
nxУдалить n символов вправо, начиная с текущего
XУдалить символ слева от курсора
nXУдалить n символов влево от курсора
dd или :dУдалить текущую строку
«(a-z)ddВырезать текущую строку в именованный буфер (от a до z)

К началу страницы

Копирование в буфер

Подобно командам удаления, большинство команд копирования в буфер состоят из символа y и команды перемещения. Например, y$ помещает в буфер конец строки.

yy или :yКопировать текущую строку
«(a-z)yyКопировать текущую строку в именованный буфер (от a до z)

К началу страницы

Изменение текста

Команды изменения действуют как команды удаления с последующим переводом в режим ввода. Большинство из них состоит из символа c и команды перемещения. Например cw заменяет слово.

Вставка из буфера

pПоместить текст из буфера после курсора
PПоместить текст из буфера перед курсором
«(a-z)p или «(a-z)PПоместить текст из буфера (от a до z) после/перед текущей строкой

Буферы

Имя буфера может быть указано перед любой командой удаления, изменения, копирования или вставки. Префикс имеет вид «c, где c — любой символ нижнего регистра. Например, «adw удаляет слово и помещает его в буфер a. Затем его можно будет поместить в текст по команде «ap.

К началу страницы

Поиск/замена подстрок

/strПоиск str вперед от курсора
?strПоиск str назад от курсора
nПовторить поиск в том же направлении
:n,ms/str1/str2/optИскать строку str1 со строки n до m (n и m могут быть опущены); заменить str1 на str2; с опциями opt. Возможные опции: g — глобальный, c — подтверждать замены (y — заменить, <cr> — не заменять), p — печатать измененные строки
&Повторить последнюю команду :s
:g/str1/s/str2/str3/Найти строку, содержащую str1, заменить str2 на str3
;Повторить поиск
,Повторить поиск в обратном направлении

К началу страницы

Регулярные выражения

. (точка)Любой символ, кроме «новой строки»
*0 или более вхождений любого символа
[…]Любой из указанных символов
[^…]Любой из символов, кроме указанных
\<Строго в начале слова
\>Строго в конце слова
^В начале строки
$В конце строки
\(…\)Группа условий
\nЗначение n-ой группы
\Отмена значения спецсимвола (например, \$ позволяет искать символ $)
\\Отмена особого действия символа \

Счетчики

Практически перед любой командой можно указать количество ее повторений. Например, 5dw приведет к удалению 5 слов, а 3fe — к перемещению курсора вперед на 3-е вхождение символа «e». Подобным образом можно действовать и с командами вставки, например, вставить 100 одинаковых строк.

К началу страницы

Режимы VI

Заметьте: вводится :set option для включения режима и :set nooption для выключения. Чтобы установить настройки для каждого запуска VI, в домашнем каталоге создается файл .exrc, содержащий данные команды без двоеточия перед ними.

:set aiАвтоматический отступ (по предыдущей строке)
:set allВывести на экран все режимы
:set ebЗвуковой сигнал при ошибках
:set icИгнорировать регистр при поиске
:set listПоказывать символы табуляции (^l) и конца строки ($)
:set nu
:set number
Показывать номера строк
:set showmodeПоказывать текущий режим в нижней части экрана
:set showmatchПодсвечивать парную открывающую скобку при вводе закрывающей
:set waИсключить нормальную проверку перед записью
:set wm=nУстановить размер правого поля для автопереноса. Для отключения автопереноса n=0

К началу страницы

Макросы

Примечания:

  • Файл «.exrc» в домашнем каталоге может содержать набор макросов, используемый при каждом запуске VI (записываются аналогично командам определения макросов, но без двоеточия).
  • Чтобы включить в макрос управляющий символ, например, ESC, следует предварительно нажать CTRL-v.
  • Чтобы включить в макрос кавычки («), перед ними набирается \ (backslash).
  • Неиспользуемые в vi клавиши: K V Z g q v * = [ ] @ # и функциональные.

Пример (выделены команды VI, которые будут включены в макрос):

:map v /I CTRL-v ESC dwiYou CTRL-v ESC ESC

Действие макроса: При нажатии v найти «I» (/I ESC), удалить слово (dw) и вставить «You» (iYou ESC). CTRL-v нужно для вставки кода ESC

:map key cmd_seqНазначить клавише key исполнение макроса cmd_seq
:mapПоказать в строке состояния все имеющиеся макросы
:unmap keyУдалить макрос
:ab str stringПри вводе сокращения str заменить его на string
:abПоказать все сокращения
:una strОтменить сокращение str

К началу страницы

Прочее

~Смена регистра символа над курсором
JСлияние следующей строки с текущей
nJСлияние n строк
.Повторить последнюю команду, изменяющую текст
uОтменить последнее изменение
UОтменить все изменения в строке
CTRL-GПоказать имя файла, номер строки, общее число строк и положение в файле (%)

К началу страницы

Опубликовано Михаил К в FreeBSD, Linux
Справка по редактору vi

Справка по редактору vi

vi — это консольный текстовый редактор. Фактически стандартный для всевозможных вариантов Linux и Unix. Так что тому, кто собирается серьезно заниматься администрированием таких ОС, уметь обращаться с этой программой крайне желательно. Проблема в том, что работа с vi совершенно непохожа на то, как мы действуем в редакторах с графическим интерфейсом. И, кроме того, тут нет никаких меню, панелей кнопок и даже подсказок. Команды нужно (О, ужас!) помнить.

Предлагаю два варианта справочных таблиц: «большой» (в который я постарался включить максимум информации) и «краткий» (с наиболее полезными, на мой взгляд, командами).

Содержание


Совет: Перед любыми действиями с документом введите следующую команду:

:set showmode


Запуск и завершение VI

Запуск VI
vi filenameОткрыть файл filename для редактирования
view filenameОткрыть файл filename для просмотра
vi -r filenameОткрыть последнюю сохраненную версию filename после аварийного выхода
vi + n filenameОткрыть filename и поместить курсор на строку n
vi + filenameОткрыть filename и поместить курсор на последнюю строку
vi +/string filenameОткрыть filename и поместить курсор на первое вхождение string
vi filename file2Открыть filename, затем file2 … Переход к следующему файлу — :n
Завершение VI
ZZ или :wq или :хСохранить изменения и завершить VI
:wСохранить изменения в текущем файле
:w!Безусловно сохранить текущий файл
:w fileСохранить текущий файл под именем file
:w! fileБезусловно сохранить файл под именем file
:n,mw fileСохранить строки с n до m в file
:n,mw >>fileСохранить строки с n до m в конец file
:qЗавершить VI, предупредив при необходимости сохранения
:q!Завершить VI без сохранения
:e!Начать редактирование снова (отменив несохраненные изменения)
:we!Сохранить и продолжить редактирование

К началу страницы

Статус

:.=Номер текущей строки
:=Количество строк в файле
CTRL-GИмя файла, номер строки, общее число строк и положение в файле (%)
lСпецсимволы в текущей строке: tab (^l), backslash (\), backspace (^H), newline ($), bell (^G), formfeed (^L^)

К началу страницы

Режимы

VI работает в командном режиме и режиме ввода. Сразу после запуска редактор находится в командном режиме, в котором можно перемещаться по тексту, выполнять копирование и вставку текста из буфера. Режим ввода включается по командам вставки, дополнения, замены. Нажатие [ESC] возвращает редактор в командный режим. Большинство команд выполняется сразу после нажатия клавиши. Исключение — команды, начинающиеся с двоеточия, которые выполняются после нажатия [Return].

К началу страницы

Вставка текста

iВставка перед курсором
IВставка перед строкой
aДобавление за курсором
AДобавление после строки
oНовая строка после текущей
OНовая строка перед текущей
rЗаменить символ на символ
RЗамена символов (режим замены)
CTRL-v charвставка управляющих символов (например, ESC и CTRL) до нажатия ESC
Внимание: коды CTRL-Q и CTRL-S обрабатываются операционной системой до передачи VI, поэтому их ввести невозможно.
:r fileВставить содержимое file после текущей строки
:nr fileВставить содержимое file после строки n
В режиме ввода:
CTRL-i или TABВставить смещение вправо на shift width
CTRL-dУменьшить смещение вправо на shift width
CTRL-h или BackspaceУдалить предыдущий символ
CTRL-wУдалить предыдущее слово
CTRL-uУдалить предыдущую строку
CTRL-xУдалить от начала вставленного текста
CTRL-vВставить следующий спецсимвол (т. е. для вставки CTRL-H нужно нажать CTRL-v CTRL-h)

К началу страницы

Перемещение по тексту

hВлево
jВниз
kВверх
lВправо
«стрелки»Перемещение по тексту (в больших файлах работает медленно, в некоторых конфигурациях может работать некорректно).
wК следующему слову
WК следующему слову (по пробелам)
bК началу слова
BК началу слова (по пробелам)
^К первому непробельному символу строки
+ или <cr>К первому символу следующей строки
К первому непробельному символу предыдущей строки
eК концу слова
EК концу слова (по пробелам)
(К началу предложения
)К концу предложения
{К началу абзаца
}К концу абзаца
Примечание: абзацы разделяются пустой строкой.
0 или |К началу строки
n|К позиции n текущей строки
$В конец строки
1GК первой строке файла
GК последней строке файла
nG или :nК n-ой строке файла
fcВперед к символу c
FcНазад к символу c
HК верхней строке экрана
nHК n-ой строке от начала экрана
MК средней строке экрана
LК нижней строке экрана
nLК n-ой строке от конца экрана
CTRL-dПрокрутка вниз на пол-экрана
CTRL-fПрокрутка вниз на экран
CTRL-uПрокрутка вверх на пол-экрана
CTRL-bПрокрутка вверх на экран
CTRL-eПрокрутка на строку вниз
CTRL-yПрокрутка на строку вверх
CTRL-lОбновить экран
z <cr>Сделать текущую строку верхней строкой экрана
nzСделать строку n верхней строкой экрана
z.Сделать текущую строку средней строкой экрана
nz.Сделать строку n средней строкой экрана
z-Сделать текущую строку нижней строкой экрана
nz-Сделать строку n нижней строкой экрана
%К парной скобке: ( ), { }, [ ]

К началу страницы

Удаление текста

Большинство команд удаления образуются из символа d и команды перемещения. Например, dw удаляет слово. Другие команды удаления:

xУдалить текущий символ
nxУдалить n символов вправо, начиная с текущего
XУдалить символ слева от курсора
nXУдалить n символов влево от курсора
DУдалить до конца строки
d$Удалить от курсора до конца строки
dd или :dУдалить текущую строку
ndwУдалить следующие n слов, начиная с текущего
ndbУдалить предыдущие n слов, начиная с текущего
nddУдалить следующие n строк, начиная с текущей
:n,mdУдалить строки с n до m
dMotion_cmdУдалить все, что захватывает команда перемещения (например, dG удаляет текст от текущей позиции до конца файла, а d4 — до конца 4-го предложения).
«(a-z)nddВырезать n строк в именованный буфер (от a до z)
«(a-z)ddВырезать текущую строку в именованный буфер (от a до z)
«npОтменить n-е из последних удалений (последние 9 удалений хранятся в буфере)
«1pu.u.Просмотр буфера удалений, пока не будет возвращено нужное (повторить — u.)

К началу страницы

Копирование в буфер

Подобно командам удаления, большинство команд копирования в буфер состоят из символа y и команды перемещения. Например, y$ помещает в буфер конец строки.

yy или :yКопировать текущую строку
nyy или nYКопировать n строк
yMotion_cmdКопировать текст, захватываемый командой перемещения (например, yG копирует все от текущей позиции курсора до конца файла, а y4 — до конца текущего предложения)
«(a-z)nyyКопировать n строк в именованный буфер (от a до z)
«(a-z)yyКопировать текущую строку в именованный буфер (от a до z)

К началу страницы

Изменение текста

Команды изменения действуют как команды удаления с последующим переводом в режим ввода. Большинство из них состоит из символа c и команды перемещения. Например cw заменяет слово.

CЗаменить от курсора до конца строки
cc или SЗаменить всю текущую строку
xpОбменять символ над курсором и следующий
sЗаменить текущий символ
cwзаменить текущее слово
cMotion_cmdЗаменить текст, захватываемый командой перемещения
<< или >>Сдвинуть строку влево/вправо на shift width (по умолчанию — 8 позиций)
n<< или n>>Сдвинуть n строк влево/вправо на shift width (по умолчанию — 8 позиций)
<Motion_cmd или >Motion_cmdСдвинуть строки, захватываемые командой перемещения, влево/вправо

К началу страницы

Вставка из буфера

pПоместить текст из буфера после курсора
PПоместить текст из буфера перед курсором
«(a-z)p или «(a-z)PПоместить текст из буфера (от a до z) после/перед текущей строкой

К началу страницы

Буферы

Имя буфера может быть указано перед любой командой удаления, изменения, копирования или вставки. Префикс имеет вид «c, где c — любой символ нижнего регистра. Например, «adw удаляет слово и помещает его в буфер a. Затем его можно будет поместить в текст по команде «ap.

К началу страницы

Маркеры

Именованный маркер можно установить на любой строке текста. Именем маркера может быть любой символ нижнего регистра. Маркеры могут использоваться как границы диапазонов.

mcУстановить на строку маркер c
`cК началу строки с маркером c
‘cК первому непробельному символу строки с маркером c

К началу страницы

Поиск/замена подстрок

/strПоиск str вперед от курсора
?strПоиск str назад от курсора
nПовторить поиск в том же направлении
NПовторить поиск в обратном направлении
%Поиск парной скобки: ( ) [ ] или { }
fcПоиск символа c по текущей строке вперед
FcПоиск символа c по текущей строке назад
tcПоиск символа c по строке вперед, курсор устанавливается на предыдущий символ
TcПоиск символа c по строке назад, курсор устанавливается на предыдущий символ
:set icИгнорировать регистр при поиске
:set noicУчиитывать регистр при поиске
:n,ms/str1/str2/optИскать строку str1 со строки n до m (n и m могут быть опущены); заменить str1 на str2; с опциями opt. Возможные опции: g — глобальный, c — подтверждать замены (y — заменить, <cr> — не заменять), p — печатать измененные строки
&Повторить последнюю команду :s
:g/str/cmdВыполнить команду cmd для каждой строки, содержащей str
:g/str1/s/str2/str3/Найти строку, содержащую str1, заменить str2 на str3
:v/str/cmdВыполнить команду cmd для каждой строки, не содержащей str
;Повторить поиск
,Повторить поиск в обратном направлении

К началу страницы

Регулярные выражения

. (точка)Любой символ, кроме «новой строки»
*0 или более вхождений любого символа
[…]Любой из указанных символов
[^…]Любой из символов, кроме указанных
\<Строго в начале слова
\>Строго в конце слова
^В начале строки
$В конце строки
\(…\)Группа условий
\nЗначение n-ой группы
\Отмена значения спецсимвола (например, \$ позволяет искать символ $)
\\Отмена особого действия символа \
[…] — Примеры
[A-Z]Заглавные буквы от A до Z
[a-z]Строчные буквы от a до z
[0-9]Все цифры от 0 до 9
[./=+]Множество, состоящее из . (точки), / (наклонной черты), = и +
[-A-F]Буквы от A до F и минус (минус должен быть указан первым)
[0-9 A-Z]Цифры, пробел и заглавные буквы
[A-Z][a-zA-Z]В первой позиции любая заглавная буква. Во второй позиции любая буква (заглавная или строчная)
[a-z]{m}Поиск m вхождений строчных букв
[a-z]{m,n}Поиск от m до n вхождений строчных букв
Примеры регулярных выражений
/Hello/Строка, содержащая «Hello»
/^TEST$/Строка, точно совпадающая с «TEST»
/^[a-zA-Z]/Строка, начинающаяся с любой буквы
/^[a-z].*/Первый символ строки — cтрочная буква a-z, за которой следует не менее одного символа
/2134$/Строка, заканчивающаяся на «2134»
/\(21|35\)/Строка, содержащая 21 или 35.
Обратите внимание на ( ) и символ вертикальной линии для обозначения операции ИЛИ
/[0-9][0-9]*/Строка, содержащая 1 или более цифр
/^[^#]/Строка, начинающаяся не с «#»
Заметьте: регулярные выражения чувствительны к регистру символов

Счетчики

Практически перед любой командой можно указать количество ее повторений. Например, 5dw приведет к удалению 5 слов, а 3fe — к перемещению курсора вперед на 3-е вхождение символа «e». Подобным образом можно действовать и с командами вставки, например, вставить 100 одинаковых строк.

К началу страницы

Диапазоны

Перед большинством команд, начинающихся с двоеточия, может быть указан диапазон строк, на которые эта команда будет действовать. Например, :3,7d служит для удаления строк 3-7. Диапазоны обычно используются с командой :s для замены в нескольких строках, например, :.,$s/pattern/string/g выполнит замены с текущей строки до конца файла.

:n,mСтроки с n до m
:.Текущая строка
:$Последняя строка
:’cСтрока с маркером c
:%Все строки файла
:g/pattern/Все строки, содержащие pattern

К началу страницы

Обращение к Shell

:! cmdВыполнить команду cmd; возможно использование спецсимволов:

 

% — имя текущего файла

# — имя последнего обработанного файла

!! cmdВыполнить команду cmd; результат поместить в документ, начиная с текущей строки
:!!Выполнить последнюю команду интерпретатора команд
:r! cmdReads and inserts output from cmd
:f fileПереименовать текущий файл в «file»
:w !cmdНазначить текущий файл в качестве входного для команды cmd и исполнить ее
:cd dirСменить рабочую директорию на dir
:shВременно перейти в shell (Возврат в редактор -CTRL-d)
:so fileПрочесть и исполнить команды файла file (file является сценарием shell)
!Motion_cmdПередать текст, захватываемый командой перемещения команде shell cmd
!}sortОтсортировать строки с текущей до конца абзаца

К началу страницы

Файлы

:w fileЗаписать в файл file
:r fileВставить содержимое file после текущей строки
:nК следующему файлу
:pК предыдущему файлу
:e fileРедактировать файл file
!!programЗаменить строку выходными данными program

К началу страницы

Режимы VI

Заметьте: вводится :set option для включения режима и :set nooption для выключения. Чтобы установить настройки для каждого запуска VI, в домашнем каталоге создается файл .exrc, содержащий данные команды без двоеточия перед ними.

:set aiАвтоматический отступ (по предыдущей строке)
:set allВывести на экран все режимы
:set apВыводить текущую строку после команд d c J m :s t u
:set bfУбирать из входных данных управляющие символы (кроме tab)
:set dir=/tmpНазначить /tmp каталогом временных файлов
:set ebЗвуковой сигнал при ошибках
:set icИгнорировать регистр при поиске
:set lispУстанавливать отступы, как принято в Lisp
:set listПоказывать символы табуляции (^l) и конца строки ($)
:set magicПозволить поиск спецсимволов (в регулярных выражениях спецсимволами будут считаться только ^ \ $
:set mesgРазрешить вывод сообщений электронной почты
:set nu
:set number
Показывать номера строк
:set report=nВыводить сообщение, если команда изменяет более n строк (по умолчанию — 5)
:set roСчитать файлы «read only»
:set scroll=nУстановить n строк для CTRL-d и z
:set sh=shell_pathУстановить shell (по умолчанию: /bin/sh) в shell_path
:set showmodeПоказывать текущий режим в нижней части экрана
:set showmatchПодсвечивать парную открывающую скобку при вводе закрывающей
:set sw=nУстановить shift width в n знакомест
:set termПоказать/установить тип терминала
:set terseСокращать сообщения об ошибках
:set timeoutУбрать односекундное ограничение для макросов
:set tl=nSets significance of tags beyond n characters (0 means all)
:set ts=nУстановить для текстового ввода размер табуляции в n
:set waИсключить нормальную проверку перед записью
:set warnПредупреждать: «no write since last change» (последние изменения не сохранены)
:set window=nУстановить число строк в текстовом окне в n
:set wsПри поиске по окончании файла начинать сначала
:set wm=nУстановить размер правого поля для автопереноса. Для отключения автопереноса n=0

К началу страницы

Макросы

Примечания:

  • Файл «.exrc» в домашнем каталоге может содержать набор макросов, используемый при каждом запуске VI (записываются аналогично командам определения макросов, но без двоеточия).
  • Чтобы включить в макрос управляющий символ, например, ESC, следует предварительно нажать CTRL-v.
  • Чтобы включить в макрос кавычки («), перед ними набирается \ (backslash).
  • Неиспользуемые в vi клавиши: K V Z g q v * = [ ] @ # и функциональные.

Пример (выделены команды VI, которые будут включены в макрос):

:map v /I CTRL-v ESC dwiYou CTRL-v ESC ESC

Действие макроса: При нажатии v найти «I» (/I ESC), удалить слово (dw) и вставить «You» (iYou ESC). CTRL-v нужно для вставки кода ESC

:map key cmd_seqНазначить клавише key исполнение макроса cmd_seq
:mapПоказать в строке состояния все имеющиеся макросы
:unmap keyУдалить макрос
:ab str stringПри вводе сокращения str заменить его на string
:abПоказать все сокращения
:una strОтменить сокращение str

К началу страницы

Прочее

~Смена регистра символа над курсором
JСлияние следующей строки с текущей
nJСлияние n строк
.Повторить последнюю команду, изменяющую текст
uОтменить последнее изменение
UОтменить все изменения в строке

К началу страницы


Основой данного материала явилась Advanced Vi Cheat Sheet, взятая с сайта http://www.lagmonster.org/. Информация дополнена и скорректирована с использованием книги: Стен Келли-Бутл. Введение в Unix (пер. с англ.).— М.: «ЛОРИ», 1995, а также Vi Russian FAQ.

Опубликовано Михаил К в FreeBSD, Linux

AppleJack для Снежного Барса

Сегодня наконец появилось долгожданное обновление AppleJack. Теперь эта утилита совместима и с Mac OS X 10.6 Snow Leopard!

Коротко напомню (а для тех, кто еще не знает, расскажу), что это за зверь.

AppleJack — это консольная (т.е. запускающаяся из командной строки) утилита, предназначенная для обслуживания операционной системы Mac OS X. После ее установки даже самый обычный пользователь, не имеющий глубоких знаний командной строки, сможет выполнить «профилактику», а при необходимости, и «реанимацию» ОС. Причем даже тогда, когда по той или иной причине вообще не запускается графическая оболочка.

Итак, после установки AppleJack для обслуживания системы необходимо перезагрузиться в однопользовательском режиме (Single User mode). Для этого при запуске компьютера нужно удерживать клавиши Command-S. При этом будет загружен только самый минимум компонентов операционной системы (а у вас — привилегии суперпользователя; так что будьте аккуратны). Вместо графического рабочего стола перед вами будет черный экран с множеством надписей, описывающих ход загрузки ОС. В нижней части будет приглашение командной строки. Вам потребуется набрать единственное слово:

applejack

и нажать Enter.

Снимок экрана AppleJack

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

1 — исправить файловую систему на дисках;

2 — скорректировать права доступа к файлам;

3 — удалить кэш-файлы;

4 — проверить файлы настроек ОС и прикладных программ;

5 — удалить файлы подкачки;

q — завершить работу с программой (т.е. Quit).

Поскольку в большинстве случаев полезно выполнять эти действия поочередно, самым логичным будет выбрать вариант «a» (All) — автопилот, автоматическое выполнение всех задач. Вообще-то, утилиту можно сразу запустить в режим автопилота. Для этого нужно воспользоваться ключом «auto»:

applejack auto

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

applejack auto restart

или

applejack auto shutdown

Загрузить AppleJack можно на странице проекта на SourceForge. Текущая версия (1.6) годится для Mac OS X 10.4, 10.5 и 10.6. Если у вас сохранились Маки с более старыми версиями ОС, загружайте AppleJack 1.4.3.

И не забудьте: чтобы воспользоваться этой программой, ее нужно установить до того, как с вашей ОС случилась неприятность! То есть качаем, устанавливаем — и забываем о её существовании до «аварийной ситуации».

PS

Я всё же предпочитаю обслуживать систему периодически — не дожидаясь явных проявлений «болезни». (На школьных компьютерах, которые и выключают зачастую неправильно, и вообще… чего только с ними не делают, запускаю AppleJack на автопилоте в каникулы. На домашнем — раз в полгода, а то и реже.)

Опубликовано Михаил К в Mac OS X / macOS, 1 комментарий

FreeBSD+ipfw+Squid+SquidGuard+… часть 3

Первоначальная настройка

Первый вход

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

Вводим в ответ root и оказываемся в системе с правами суперпользователя («рута»). Этот пользователь может делать с системой все, что угодно, в том числе от его имени производятся настройки, затрагивающие работоспособность всей операционной системы в целом. Естественно, допускать к таким действиям кого попало ни в коем случае нельзя. Поэтому первым делом назначим пользователю root пароль. Хороший пароль. То есть не менее 8 знаков, включающий буквы обоих регистров, цифры, не совпадающий с вашим именем, датой рождения и т.д. Вводим команду (значок «#» — это приглашение системы при работе от имени root):

# passwd root

Затем дважды — на запросы New password: и Retype new password: — вводим пароль. Заметьте: при вводе пароля во FreeBSD на экране не отображается абсолютно ничего.

Несколько слов об особенностях имен файлов в Unix. Во-первых, расширения здесь зачастую связаны с назначением файла, а не его типом. Мало того, расширений у файла может быть несколько (а может и не быть ни одного). Во-вторых, все файловые системы монтируются в единое дерево каталогов. Именно с его корня (символа «/»), а не имени диска начинается запись полного пути. В-третьих, в отличие от Windows (и DOS), путь пишется через прямые, а не обратные слеши. Правда, с последней особенностью активные пользователи Интернет, я думаю, достаточно знакомы.

Далее нам предстоит редактировать множество различных конфигурационных файлов. Именно так — с помощью самых обыкновенных текстовых файлов — производятся все настройки в Unix-подобных операционных системах. Чем именно пользоваться для работы с ними — дело вкуса. Конечно, желательно научиться работать с vi. Этот весьма мощный редактор входит по умолчанию в состав, насколько мне известно, любого дистрибутива Unix или Linux. Однако, интерфейс у него очень своеобразный и пользователю современных графических систем крайне непривычный. Потому для первого опыта будем применять другой имеющийся во FreeBSD редактор — ee.

Основные настройки

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

# ee /etc/rc.conf

Приводим содержимое файла примерно к такому виду (строки, начинающиеся с «решетки», являются комментариями):

# -- sysinstall generated deltas -- # Wed Sep 19 12:45:42 2007
# Created: Wed Sep 19 12:45:42 2007
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
check_quotas="NO"
# -------------- Console -------------------
#  здесь мы настраиваем консоль, чтобы можно было видеть русские буквы
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
# на время настройки включим скринсейвер (если хочется ;-))
# потом две следующие строки уберем или закомментируем
saver="logo"
blanktime="300"
# --------------- Network ------------------
# "шлюз по умолчанию" и "наш домен" (домен может и не быть реальным)
defaultrouter="192.168.4.129"
hostname="sch415.uvuo.ru"
# ------------------------------------------
gateway_enable="YES"
# ----------- Network Interfaces -----------
# внутренний сетевой интерфейс
ifconfig_xl0="inet 10.0.1.1 netmask 255.255.255.0" # internal
ifconfig_de0="inet 192.168.4.131 netmask 255.255.255.192" # external
# ------------------------------------------
mousechar_start="3"
# --------------- Services -----------------
named_enable="YES"
sendmail_enable="NONE"
sshd_enable="YES"
usbd_enable="YES"

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

С помощью того же редактора подготавливаем файл /etc/resolv.conf:

# ee /etc/resolv.conf

Он предельно прост:

domain ru
nameserver      192.168.4.131 (здесь нужно указать внешний IP-адрес нашего компьютера)

Виртуальные терминалы

Теперь открываем для редактирования файл, описывающий параметры виртуальных терминалов, /etc/ttys:

# ee /etc/ttys

Чтобы наши терминалы (консоли) стали «русскими», нужно будет найти все строки, содержащие подстроку «cons25» (всего таких строк будет 8 — по числу виртуальных терминалов) и заменить ее на «cons25r». Выглядеть это быдет примерно так:

ttyv0   "/usr/libexec/getty Pc"         cons25r on  secure
# Virtual terminals
ttyv1   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv2   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv3   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv4   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv5   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv6   "/usr/libexec/getty Pc"         cons25r on  secure
ttyv7   "/usr/libexec/getty Pc"         cons25r on  secure

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

# shutdown -r now

PS

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

# shutdown -h now

В данном случае ключ -r означает перезагрузку (Restart), а -h — остановку (Halt)… Англичанам запоминать это, несомненно, проще 😉

Опубликовано Михаил К в FreeBSD, 0 комментариев