Краткая инструкция к OpenBoard на русском языке
справочник
«Скорая помощь» Mac OS X
Apple выпустил очередное обновление Mac OS X — 10.10.3, включающее, в частности, новое приложение Фото, призванное заменить iPhoto и Aperture. «Пощупать» его мне было очень интересно, так что я не удержался и нажал «Обновить»…
…и случилось страшное. Перезагружаясь, мой iMac впал в «панику ядра» (kernel panic)… снова попытался перезагрузиться… снова… снова…
…
Сейчас компьютер вновь «в добром здравии», но по следам событий я решил записать, как реанимировал его в этот раз (а заодно — какие еще есть средства «скорой помощи» Mac OS X). Вдруг кому-нибудь пригодится?
Итак, убедившись, что неприятность «сама собой не рассосется», я предположил, что виной всему какой-то программный конфликт. Стало быть, надо попробовать загрузиться безо всяких посторонних программулин. То есть в…
Safe Mode
- Включаю компьютер, удерживая клавишу Shift (через некоторое время, когда загрузка начнется, ее можно отпустить).
- Если повезет, Мак загрузится (в моем случае еще и успешно завершилось обновление до 10.3.3). Появится экран со списком пользователей и напоминанием (в правом верхнем углу) про работу в «безопасном режиме».
- Как обычно, вхожу в систему. Вижу сообщение, что система была перезагружена из-за возникшей ошибки.
- В окне сообщения щелкаю «Показать подробности» — открывается подробный отчет о состоянии системы, загруженных драйверах и подключенных устройствах на момент краха. Примерно такой:
- В нем ключевые строки —
Kernel Extensions in backtrace:
com.visicom.ManyCam.VideoDevice.driver(3.0.11)
- «Диверсант» найден. Ликвидирую его. В данном случае — использую предусмотренную разработчиками программу-деинсталлятор.
- Перезагружаю компьютер в обычном режиме.
- Радуюсь жизни 😉
Какие средства есть еще в арсенале владельцев компьютеров Apple?
Recovery Partition
Если при включении удерживать клавиши Command+R, компьютер будет загружен со специального «восстановительного» раздела диска.
Выбрать раздел можно также, удерживая при загрузке клавишу Option (Alt).
Здесь для нас подготовлено несколько инструментов. Во-первых, Дисковая утилита, позволяющая проверить и, при необходимости, исправить файловую структуру и права доступа на основном разделе. Во-вторых,..
Time Machine
Встроенное в Mac OS X средство резервного копирования позволяет не только элегантно возвращаться «в прошлое» после ошибочного редактирования или удаления файла. При загрузке компьютера с Recovery Partition «Машина времени» может откатить назад и состояние операционной системы… Если, конечно, вы заранее позаботились о страховке и не пожалели ради этого внешний жесткий диск 😉
Переустановка Mac OS X
На тот случай, если файлы нашей рабочей ОС серьезно повреждены, есть возможность полной её переустановки.
Внимание! Компьютеру будет нужен доступ в Интернет.
Важно, что при этом не затрагиваются файлы пользователей. Мало того, сохраняются и установленные пользователем элементы системы… Поэтому в моем случае такая переустановка не помогла бы — конфликтующий драйвер остался бы на месте.
Естественно, есть в нашем распоряжении и столь любимый пользователями Windows метод «сформатировать диск нафиг» (Дисковой утилитой), после чего установить ОС…. но, надеюсь, нам он никогда не потребуется.
Переустановка через Интернет
Если всё совсем плохо 🙁 современный (ну… не слишком старый) Макинтош может загрузиться даже при полном отсутствии на диске каких-либо системных файлов. Был бы быстрый доступ в Интернет с автоматическим подключением (т.е. с DHCP и без необходимости каких-либо настроек, аутентификации и пр. …ключ WiFi-сети, естественно, ввести можно).
Если при загрузке мы удерживаем Command+Option+R (или если Мак не найдет никаких дисков, с которых бы мог загрузиться), то будет загружен образ Recovery Partition, а затем с него начнется загрузка.
Важное замечание
С локального раздела восстановления устанавливается версия ОС, которая была установлена на компьютере последней.
В случае переустановки через Интернет — та, что была изначально предустановлена на данной модели.
PS. Как проверить «железо»
В случае, если возникнет желание/необходимость проверить исправность аппаратуры вашего Мака, можно запустить тестовую программу, удерживая при загрузке клавишу D (или Option+D — для загрузки тестовой программы через Интернет). Тест автоматически запустится и через несколько минут сообщит либо об отсутствии проблем, либо выдаст короткие описания и коды ошибок.
Справка по редактору 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 | Показать имя файла, номер строки, общее число строк и положение в файле (%) |
Справка по редактору vi
vi — это консольный текстовый редактор. Фактически стандартный для всевозможных вариантов Linux и Unix. Так что тому, кто собирается серьезно заниматься администрированием таких ОС, уметь обращаться с этой программой крайне желательно. Проблема в том, что работа с vi совершенно непохожа на то, как мы действуем в редакторах с графическим интерфейсом. И, кроме того, тут нет никаких меню, панелей кнопок и даже подсказок. Команды нужно (О, ужас!) помнить.
Предлагаю два варианта справочных таблиц: «большой» (в который я постарался включить максимум информации) и «краткий» (с наиболее полезными, на мой взгляд, командами).
Содержание
- Запуск/завершение
- Статус
- Режимы
- Вставка текста
- Перемещение
- Удаление текста
- Копирование в буфер
- Изменение текста
- Вставка из буфера
- Буферы
- Маркеры
- Поиск/замена
- Регулярные выражения
- Счетчики
- Диапазоны
- Обращение к Shell
- Файлы
- Режимы 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! cmd | Reads 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=n | Sets 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
Дерево каталогов FreeBSD
| Каталог | Описание |
|---|---|
| / | Корневой каталог файловой системы. |
| /bin/ | Основные утилиты, необходимые для работы как в однопользовательском, так и в многопользовательском режимах. |
| /boot/ | Программы и конфигурационные файлы, необходимые для нормальной загрузки операционной системы. |
| /boot/defaults/ | Конфигурационные файлы с настройками по умолчанир, используемые в процессе загрузки операционной системы. |
| /dev/ | Файлы устройств. |
| /etc/ | Основные конфигурационные файлы системы и скрипты. |
| /etc/defaults/ | Основные конфигурационные файлы системы с настройками по умолчанию. |
| /etc/mail/ | Конфигурационные файлы для систем обработки почты. |
| /etc/namedb/ | Конфигурационные файлы для утилиты named. |
| /etc/periodic/ | Файлы сценариев, выполняемые ежедневно, еженедельно и ежемесячно. |
| /etc/ppp/ | Конфигурационные файлы для утилиты ppp. |
| /mnt/ | Пустой каталог, часто используемый системными администраторами как временная точка монтирования. |
| /proc/ | Виртуальная файловая система, отображарщая текущие процессы. |
| /root/ | Домашний каталог пользователя root. |
| /sbin/ | Системные утилиты и утилиты администрирования, необходимые для работы как в однопользовательском, так и в многопользовательском режимах. |
| /stand/ | Программы, необходимые для работы в автономном режиме (например, при установке системы). |
| /tmp/ | Временный каталог (часто монтируется как mfs; обычно содержимое этого каталога теряется во время перезагрузки системы). |
| /usr/ | Большинство пользовательских утилит и приложений. |
| /usr/bin/ | Пользовательские утилиты и приложения общего назначения. |
| /usr/include/ | Стандартные заголовочные файлы для языка C. |
| /usr/lib/ | Файлы стандартных библиотек. |
| /usr/libdata/ | Файлы данных для различных утилит. |
| /usr/libexec/ | Системные даемоны и утилиты (выполняемые другими программами). |
| /usr/local/ | Локальные пользовательские приложения, библиотеки, и т.д. Также используется по умолчанию коллекцией портов. Внутри /usr/local иерархиякаталогов должна следовать hier(7) для /usr. Исклрчение составляет каталог man, который расположен непосредственно в /usr/local, а не в /usr/local/share, и документация портов, которая расположена в share/doc/port. |
| /usr/obj/ | Архитектурно-зависимые файлы и каталоги, образурщиеся в процессе сборки системы из исходных текстов в /usr/src. |
| /usr/ports/ | Коллекция портов FreeBSD (опционально). |
| /usr/sbin/ | Системные утилиты и утилиты администрирования (исполняемые пользователем). |
| /usr/share/ | Архитектурно-независимые файлы. |
| /usr/src/ | Исходные тексты BSD и/или программ. |
| /usr/X11R6/ | Утилиты, приложения и библиотеки X11R6 (X Window System; необязательно). |
| /var/ | Файлы журналов общего назначения, временные, перемещаемые файлы и файлы очередей. |
| /var/log/ | Различные файлы системных журналов. |
| /var/mail/ | Почтовые ящики пользователей. |
| /var/spool/ | Файлы очередей печати, почты, и пр. |
| /var/tmp/ | Временные файлы, которые необходимо сохранять между перезагрузками операционной системы. |
| /var/yp/ | Карты (maps) NIS. |

