Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

emacs отдыхает

Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

emacs отдыхает

Сообщение 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
Привет!
Поздравляю с праздником
Всех участников форума!
Желаю удачи!
Незабудка.
Последний раз редактировалось nezabudka 28 ноя 2016, 19:58, всего редактировалось 2 раза.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Sunderland93

Re: emacs отдыхает

Сообщение Sunderland93 »

Сравнила. Emacs это почти ОС.
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

Re: emacs отдыхает

Сообщение nezabudka »

Sunderland93 писал(а):Сравнила. Emacs это почти ОС.
Поэтому работяга пусть отдохнет в праздники :)
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Sunderland93

Re: emacs отдыхает

Сообщение Sunderland93 »

nezabudka писал(а):
Sunderland93 писал(а):Сравнила. Emacs это почти ОС.
Поэтому работяга пусть отдохнет в праздники :)
Изображение
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

Re: emacs отдыхает

Сообщение nezabudka »

Лысина глаза слепит. Не можешь размер уменьшить?
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватара пользователя
Packum
Активный участник
Активный участник
Сообщения: 172
Зарегистрирован: 18 янв 2015, 15:03
Откуда: С.Петербург

Re: emacs отдыхает

Сообщение Packum »

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

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

echo "..." >> путь к файлу
Вместо точек копирую, что надо вставить из того же терминала и жму enter. Это быстрее, чем открывать файл в
текстовом редакторе в другом окне. sed у меня, наверное, никогда не будет времени освоить. :(
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

Re: emacs отдыхает

Сообщение nezabudka »

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

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

sed -i.old myfile     #создаст резервную копию файла с расширением .old
sed -i '3d' myfile     #удалит третью строчку в файле
sed -i.old '3d' myfile #удалит в файле myfile 3 строчку и создаст копию myfile.old
И главное описывается принципы работы с регистрами. Вообщем не пожалееш.
А регулярные выражения ваще пальчики оближешь!
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватара пользователя
Packum
Активный участник
Активный участник
Сообщения: 172
Зарегистрирован: 18 янв 2015, 15:03
Откуда: С.Петербург

Re: emacs отдыхает

Сообщение Packum »

nezabudka писал(а): И главное описывается принципы работы с регистрами.
Тьфу ты, - переклинило! Думаю: как это sed может работать с регистрами процессора? Это же не ассм! :lol:
Потом дошло, что с регистрами букв!
Аватара пользователя
Oleg65
Местный говорун
Местный говорун
Сообщения: 859
Зарегистрирован: 18 янв 2015, 10:56
Откуда: г.Коломна Моск.обл.

Re: emacs отдыхает

Сообщение Oleg65 »

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

Re: emacs отдыхает

Сообщение nezabudka »

Oleg65 писал(а):Спасибо Доку (это лежит на LinuxForum с незапамятных времен
Я привела именно ту ссылку потому что правила хорошего тона диктуют что не совсем
красиво ссылаться на другой форум. :)
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Ответить

Вернуться в «Bash»