Страница 1 из 2

emacs отдыхает

Добавлено: 09 май 2015, 13:05
nezabudka
Конструируем текстовый блокнот. Некоторые не могут обращатся с vim,
другие не любят emacs, но даже не имея nano можно делать
записи воспользовавшись подручнымы консольными инструментами.
Всех остальных кто пользуется перечисленными выше супер программами
но по какой то причине заскучал я приглашаю присоединится.
Для конструктора нам потребуется во первых утилита cat
и два оператора переадресации << и >>. Кто не смог найти всего,
то можно вместо одного оператора >> воспользоваться его упрощенным
аналогом > но придется распрощаться с возможностью добавлления текста
после закрытия блокнота. И так открываем записную книжку командой:

Код: Выделить всё

cat > myfile.tmp << stop
жмем enter и после значка показывающего продолжение ввода пишим свой текст
нажимая enter после каждой строчки так же как в магазинном редакторе.

Код: Выделить всё

> Привет!			<<enter>>
> Поздравляю с праздником	<<enter>>
И когда вы посчитали что текст передан в надежные руки вводим
ключевое слово по которому закрывается дискриптор в файл
и не забываем в конце нажать на enter.

Код: Выделить всё

> stop				<<enter>>
Все, процесс закрыт. Для добавления записи в этот же файл придется
воспользоваться полной версией нашего блокнота

Код: Выделить всё

cat >> myfile.tmp << stop
> Всех участников форума
> stop
Хочу заметить что слово stop не является зарезервированным и может быть
любым на ваш выбор. Для тех кто не нашел второго комплекта стрелочек все же
существует возможностьдобавления текста в файл. В этом нас выручит тройной
оператор

Код: Выделить всё

cat >> /dev/null <<< "
> Костыли не грабли,
> так держать"
Заметили что теперь и конструкция нашего блокнота притерпела изменения?
У нас появилась необходимость заключать наш текст в кавычки которые берут здесь
на себя функцию ключевого слова stop и наш редактор закрывается теперь вводом
завершающей пары красивых черточек и нажатием на клавишу enter. Не станем портить
себе праздничный день и без сожаления отправляем этот текс не в файл
а в системную корзину. Есть конечно и альтернативные способы
(Команду эко и принтф я здесь не рассматриваю. Принимая во внимание
серьезность обсуждаемой темы.)

Код: Выделить всё

cat >> myfile.tmp -
Черточка в конце команды означает что ввод будет осуществлятся с клавиатуры.
Вводит текст строчку за строчкой пока не появится управляющая команда
Ctrl+D с новой строки. Равнозначный фунционал предлагает следующая конструкция

Код: Выделить всё

tr '' - >> myfile.tmp
Не станем останавливатся и спросим себя какой же линуксоид ищет легких путей?
Cамое вкусное на мой взгляд я оставила на десерт.
Если мы выполним в терминале следующую команду

Код: Выделить всё

exec 3>&1 1>> myfile.tmp
то захватим в личное пользование ни много ни мало а сам stdout
и перенаправим его в наш файл, а занчит сможем упростить
команды и в таком виде будем их многократно вызывать.

Код: Выделить всё

cat << stop
> Желаю удачи!
> stop
cat <<< "
> Незабудка."
В конце сообщу что бы починить все дискрипторы нашей терминальной сессии
Введем заключительную команду

Код: Выделить всё

exec 1>&- 1>&6 3>&-
Или можно просто закрыть сессию. Вот мы и сделали с вами маленький шажочек
на пути к редактору sed. Не убираем далеко главный атрибут нашего конструктора
и смотрим что у нас получилось

Код: Выделить всё

cat myfile.tmp
Привет!
Поздравляю с праздником
Всех участников форума!
Желаю удачи!
Незабудка.

Re: emacs отдыхает

Добавлено: 09 май 2015, 13:22
Sunderland93
Сравнила. Emacs это почти ОС.

Re: emacs отдыхает

Добавлено: 09 май 2015, 13:28
nezabudka
Sunderland93 писал(а):Сравнила. Emacs это почти ОС.
Поэтому работяга пусть отдохнет в праздники :)

Re: emacs отдыхает

Добавлено: 09 май 2015, 13:31
Sunderland93
nezabudka писал(а):
Sunderland93 писал(а):Сравнила. Emacs это почти ОС.
Поэтому работяга пусть отдохнет в праздники :)
Изображение

Re: emacs отдыхает

Добавлено: 09 май 2015, 13:50
nezabudka
Лысина глаза слепит. Не можешь размер уменьшить?

Re: emacs отдыхает

Добавлено: 09 май 2015, 15:48
Packum
Очень полезно! В Gentoo, например, частенько приходится что-нибудь дописывать в конфиги после обновлений.
Я обычно пользуюсь echo. Конструкцией типа:

Код: Выделить всё

echo "..." >> путь к файлу
Вместо точек копирую, что надо вставить из того же терминала и жму enter. Это быстрее, чем открывать файл в
текстовом редакторе в другом окне. sed у меня, наверное, никогда не будет времени освоить. :(

Re: emacs отдыхает

Добавлено: 09 май 2015, 17:26
nezabudka
Packum писал(а):sed у меня, наверное, никогда не будет времени освоить. :(
Очень хороший учебник для старта здесь я прочла
на одном дыхании. Достаточно будет взять на вооружение несколько
удобных опций и со временем арсенал быстро разрастется. Там все
очень просто и доходчиво. Например

Код: Выделить всё

sed -i.old myfile     #создаст резервную копию файла с расширением .old
sed -i '3d' myfile     #удалит третью строчку в файле
sed -i.old '3d' myfile #удалит в файле myfile 3 строчку и создаст копию myfile.old
И главное описывается принципы работы с регистрами. Вообщем не пожалееш.
А регулярные выражения ваще пальчики оближешь!

Re: emacs отдыхает

Добавлено: 09 май 2015, 17:58
Packum
nezabudka писал(а): И главное описывается принципы работы с регистрами.
Тьфу ты, - переклинило! Думаю: как это sed может работать с регистрами процессора? Это же не ассм! :lol:
Потом дошло, что с регистрами букв!

Re: emacs отдыхает

Добавлено: 09 май 2015, 18:23
Oleg65
Очень хороший учебник для старта здесь
Спасибо Доку (это лежит на LinuxForum с незапамятных времен), но что в этом приятное - можно с Доком пообщаться напрямую и (если он в себе) получить квалифицированные ответы (не всегда, правда, приятные) на возникшие вопросы! :D

Re: emacs отдыхает

Добавлено: 09 май 2015, 18:52
nezabudka
Oleg65 писал(а):Спасибо Доку (это лежит на LinuxForum с незапамятных времен
Я привела именно ту ссылку потому что правила хорошего тона диктуют что не совсем
красиво ссылаться на другой форум. :)