Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

4 - vim, mc, inittab

Лекция



Сразу хочу сказать, что здесь никакой воды про vim, и только нужная информация. Для того чтобы лучше понимать что такое vim, mc, inittab , настоятельно рекомендую прочитать все из категории Операционная система LINUX.

В данной лекции мы немного поговорим о текстовых редакторах, файловом менеджере mc и рассмотрим файлinittab. Надеюсь, вы просмотрели основные команды оболочки, которые я просил рассмотреть самостоятельно. На всякий случай давайте рассмотрим те которые нам могут понадобиться сегодня.Команда ls -l - выводит на экран содержимое текущей директории в расширенном формате. Команде можно передать в качестве параметра любой каталог и тогда будет отображено уже его содержимое. Например ls -l /etc/X11/ - отобразит содержимое каталога /etc/X11.

Команда cd имя каталога - позволяет перейти в указанный каталог. cd /etc/ - выполнив эту команду перейдем в каталог /etc.

Мы уже рассмотрели команду less, которая позволяет нам просматривать содержимое текстовых файлов. Но lessне позволяет изменять содержимое файлов. Для этой цели существуют текстовые редакторы. Одним из самых старых является текстовый редактор vi. Сейчас он практически вытеснен своим более продвинутым наследникомvim. Редактор vim является очень гибким, универсальным (способным работать на практически любых типах консолей) и нетребовательным к ресурсам. Единственный его минус - он немного сложен на начальном этапе освоения, чем и отпугивает новичков. Все дело в том, что он не так интуитивно понятен как другие текстовые редакторы. Очень многие начинающие пользователи открыв какой либо файл в этом редакторе даже не могут выйти из него, что стразу вызывает массу негатива. Поэтому запомните следующее: у редактора vim есть несколько режимов работы: режим вставки (режим редактирования), основной режимрежим ввода команд. Между режимами работы можно переключатся нажимая определенные клавиши. По умолчанию vimзапускается в основном режиме. Чтобы начать редактировать текст нужно перейти в режим вставки. Для этого необходимо нажать клавишу i (от английского insert). Для того, чтобы выйти из редактора vim, ему необходимо сообщить об этом выполнив команду выхода. Как вы уже догадались сделать это можно в режиме ввода команд. Чтобы перейти в режим команд необходимо нажать двоеточие - : . Чтобы перейти в основной режим необходимо нажать клавишу Esc (иногда два раза).

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

В нижнем левом углу редактора слова подсказки указывают в каком режми вы находитесь. Например, в режиме вставки там будет написано – INSERT – (или — ВСТАВКА –), в режиме команд там будет двоеточие. Теперь рассмотрим несколько основных команд. После набора каждой команды нужно нажимать на клавишу Enter.

Команда выхода из редактора. Находясь в основном режиме, набрать :q! - выйти из редактора без сохранения сделанных изменений. Если набрать команду :q , то vim проверит были ли изменения в файле, и если были, то он предупредить вас об этом и вы останетесь в редакторе.

Чтобы сохранить сделанные изменения нужно набрать :w . Если сохраняется новый файл у которого нет имени, то после :w нужно через пробел указать имя файла - :w text.

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

Чтобы получить справку по vim, нужно ввести команду :help. Об этом говорит сайт https://intellect.icu . Чтобы выйти из справки нужно нажать команду выхода :q .

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

Если вы все же решили, что vim это не ваш редактор, или нет времени на его изучение, то можно воспользоваться более простыми текстовыми редакторами. Я рекомендую в этом случае обратить внимание на редактор nano. Этот редактор хорошо подойдет тем, кто только начинает изучать Linux. Набрав в консоли команду nano вы попадаете в редактор, в котором в нижней части указаны сочетания клавиш для выполнения основных действий (см. рис. 1).

4 - vim, mc, inittab

Рисунок 1

Чтобы выйти из редактора нужно нажать на комбинацию ctrl+x, для получения справки ctrl+g, для сохранения изменений ctrl+o и т.д. nano - простой и понятный редактор и его освоение не должно вызвать у вас затруднений.

Еще один редактор, которым вы возможно будете пользоваться это встроенный редактор программы Midnight Commander или более известной по сокращенному названию - mcmc - это обычный двухпанельный файловый менеджер наподобие Norton Commander в DOS или Far в Windows. Чтобы запустить mc просто наберите в командной строке команду mc. Если вы работали с Far или Norton Commander, то освоение mc не займет у вас много времени, тем более, что многие сочетания клавиш у этих менеджеров совпадают. Нас в данный момент интересует встроенный редактор. Чтобы перейти в него нужно нажать на клавишу F4. Выйти можно, нажав на клавишу Esc два раза. Хочу также отметить, система может быть настроена так, что при нажатии на F4 будет запускать редактор системы по умолчанию (например nano).

А теперь давайте вернемся к загрузке Linux и рассмотрим подробно содержимое файла inittab. Наберите в командной строке команду vim /etc/inittab, чтобы открыть файл в редакторе vim. Строки начинающиеся с символа # являются комментариями. Процесс init не обращает на такие строки внимание. Остальные строки разделены на поля с помощью символа двоеточия. Первое поле это так называемая метка, во втором поле указывается runlevel (уровень системы), в третьем поле указывается действие процесса init, а в четвертом выполняемая команда и ее параметры. Рассмотрим для примера строку l5:5:wait:/etc/init.d/rc 5 .

l5 - это метка
5 - это runlevel
wait - это действие
/etc/init.d/rc - это команда, а 5 - это параметр

Что такое runlevel? Дело в том, работу системы условно разбили на так называемые уровни. То есть система в каждый момент времени находится на каком-то из уровней. Стандартно определено 7 уровней - от уровня 0 до уровня 6. Уровень 0 - означает, что система выключена. На уровне 1 система находится во время загрузки или в однопользовательском режиме. Уровни 2-5 - это уровни для многопользовательской работы. Причем уровень 5 как правило используется для запуска графической подсистемы, а уровень 3 - это многопользовательский алфавитно-цифровой режим (режим командной строки). Уровень 6 - это перезагрузка системы. При переходе системы на определенный уровень выполняется соответствующий для этого уровня набор скриптов. Скрипты расположены в папке /etc/init.d/. Строка из примера говорит о том, что при переходе на 5-й уровень работы системы необходимо запустить скрипт /etc/init.d/rc с параметром 5. Давайте теперь посмотрим на inittab с самого начала.

id:5:initdefault: - эта строка сообщает на каком уровне должна остаться система после загрузки (перезагрузки). В данном случае система должна перейти на пятый уровень на котором запускается графическая подсистема. Если цифру 5 заменить в этой строке например на цифру 2, то система загрузиться на второй уровень (обычно это многопользовательский режим без графической подсистемы).

si::sysinit:/etc/init.d/rcS - это первый скрипт инициализации системы, если не загружается в аварийном режиме. Здесь вводится понятие уровня S. Уровень S тесно связан с уровнем 1. Это уровни однопользовательского режима. В разных дистрибутивах определение этих уровней может немного отличатся. Поэтому в целом сложно дать точную оценку и отличия уровня 1 от уровня S. Необходимо уже для конкретного дистрибутива изучать отличия и особенности. Для разных дистрибутивов эта строка может отличатся в файлеinittab.

~~:S:respawn:/sbin/sulogin - это программа для регистрации в системе в однопользовательском режиме. Две тильды указывают на то, что процесс должен пройти аутентификацию. Действие respawn - означает, что процессinit должен поддерживать этот процесс (sulogin) в рабочем  состоянии на указанном уровне (в данном случае на уровне S). Если процесс по каким-то причинам завершится, то он будет запущен снова.

Ниже представлены строки которые запускают скрипт загрузки на соответствующем уровне.

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6

Действие wait означает, что скрипт необходимо запустить и ждать пока он закончится. То есть init не будет предпринимать действий пока не закончится загрузка скрипта. Переходить между уровнями можно по командеinit с передачей ей в качестве параметра номера уровня запуска. Например, по команде init 3 будет завершена работа графической подсистемы и вы перейдете в режим командной строки. Затем после регистрации в системе на уровне 3 можно набрать init 5 и снова будет запущена графическая подсистема.

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now - это строка указывает на то как процессу init реагировать на нажатие клавиш ctrl+alt+del. Как видим эта запись актуальна для уровней 1, 2, 3, 4, 5. То есть если необходимо, чтобы программы или скрипты запускались на нескольких уровнях их нужно просто перечислить без пробелов, запятых и других символов.

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

pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop

И последние строки:

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

отвечают за запуск на соответствующих уровнях программы getty.

Сейчас в некоторых современных дистрибутивах вместо процесса init, используется подсистема upstart в которой реализован свой init. Если вы не нашли у себя файла /etc/inittab значит у вас установлена подсистемаupstart. Вместо файла inittab, upstart использует конфигурационные файлы размещенные в /etc/event.d/. Подсистема upstart является событийно-ориентированной, то есть ориентированной на обработку событий. Например, так же как и подсистема udev (можно сравнить со службой Plug&Play в Windows ), которая также ориентирована на обработку событий. Аппаратные средства постоянно усовершенствуються, растет их количество и разнообразие. Для удобства пользователей была придумана технология Plug&Play и вслед за этим для Linux была разработана подсистема udev. Подключение той же флешки - это событие, и подсистема udevреагирует на это событие и выполняет действия по инициализации устройства, монтированию файловой системы флешки и др. и флешка готова к использованию. Upstart работает по такому же принципу. Проект достаточно молодой и активно развивается, поэтому рекомендую отслеживать его развитие.

В заключении рекомендую выполнить несколько упражнений:

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

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

создано: 2014-09-13
обновлено: 2021-03-13
132495



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Операционная система LINUX

Термины: Операционная система LINUX