Ed: различия между версиями
Nir (обсуждение | вклад) мНет описания правки |
мНет описания правки |
||
Строка 1: | Строка 1: | ||
[[Category:HOWTO]] | [[Category:HOWTO]] | ||
'''ed''' ( /iːdiː/ ) | '''ed''' ( /iːdiː/ ) — строчный текстовый редактор из 1969 года, когда терминалы были медленными, ОЗУ была дорогой и её было мало, а экраны были маленькими. '''ed''' стандартизирован по стандартам '''POSIX''' и '''Open Group''' ('''X/Open''') и встречается практически в каждой '''UNIX''' или '''UNIX-like''' системе. Знание этого инструмента может понадобиться не только для написания скриптов или работы с дистрибутивами, куда редактор '''vi''' не включен по умолчанию, но он также может оказаться достаточно простым и удобным для решения повседневных задач. | ||
В отличие от остальных редакторов '''ed''' не создаёт копию файла, в которой выполяет редактирование с последующей заменой файла, а работает с оригинальным файлом. Это может быть полезным, когда необходимо изменить файл при этом не изменяя его '''inode number''', но буфер становится ограничен адресным пространством процесса. | В отличие от остальных редакторов '''ed''' не создаёт копию файла, в которой выполяет редактирование с последующей заменой файла, а работает с оригинальным файлом. Это может быть полезным, когда необходимо изменить файл при этом не изменяя его '''inode number''', но буфер становится ограничен адресным пространством процесса. | ||
Строка 7: | Строка 7: | ||
__TOC__ | __TOC__ | ||
=Справочник по командам ed= | == Справочник по командам ed == | ||
{| class="wikitable" | {| class="wikitable" | ||
Строка 44: | Строка 44: | ||
|} | |} | ||
=Пример создания текстового файла= | == Пример создания текстового файла == | ||
Вызовем '''ed''' простой командой: | Вызовем '''ed''' простой командой: | ||
<source> | <source lang="bash"> | ||
$ ed | $ ed | ||
</source> | </source> | ||
Строка 54: | Строка 54: | ||
К удивлению современных пользователей на экран при этом ничего не выводится, но если потоптать клавиатуру, то можно увидеть символ <code>?</code>. Для начала стоит включить отображение приглашения командной строки введя большую латинскую <code>P</code> и нажав <code>Enter</code>: | К удивлению современных пользователей на экран при этом ничего не выводится, но если потоптать клавиатуру, то можно увидеть символ <code>?</code>. Для начала стоит включить отображение приглашения командной строки введя большую латинскую <code>P</code> и нажав <code>Enter</code>: | ||
<source> | <source lang="bash"> | ||
$ ed | $ ed | ||
P | P | ||
Строка 62: | Строка 62: | ||
Мы увидим символ <code>*</code>, который является приглашением командной строки. Теперь можно попробовать ввести текст. Для этого введём команду <code>a</code>, нажмём <code>Enter</code> и начнём вводить текст. Ввод текста с возвратом в командный режим завершается единственным символом <code>.</code> на пустой строке: | Мы увидим символ <code>*</code>, который является приглашением командной строки. Теперь можно попробовать ввести текст. Для этого введём команду <code>a</code>, нажмём <code>Enter</code> и начнём вводить текст. Ввод текста с возвратом в командный режим завершается единственным символом <code>.</code> на пустой строке: | ||
<source> | <source lang="bash"> | ||
$ ed | $ ed | ||
P | P | ||
Строка 74: | Строка 74: | ||
Итак, мы ввели две строки, а на третьей поставили единственную точку, которая вернула нас в командный режим. В '''ed''' перемещение по буферу, где хранятся данные (и куда считываются файлы) происходит построчно. Мы можем посмотреть содержимое текущей строки с помощью команды <code>p</code> или содержимое всего буфера с помощью команды <code>,p</code>, а также напечатать номера строк указав команду <code>n</code> после команды печати: | Итак, мы ввели две строки, а на третьей поставили единственную точку, которая вернула нас в командный режим. В '''ed''' перемещение по буферу, где хранятся данные (и куда считываются файлы) происходит построчно. Мы можем посмотреть содержимое текущей строки с помощью команды <code>p</code> или содержимое всего буфера с помощью команды <code>,p</code>, а также напечатать номера строк указав команду <code>n</code> после команды печати: | ||
<source> | <source lang="bash"> | ||
$ ed | $ ed | ||
P | P | ||
Строка 91: | Строка 91: | ||
Мы можем переместиться на другую строку указав её номер в командной строке: | Мы можем переместиться на другую строку указав её номер в командной строке: | ||
<source> | <source lang="bash"> | ||
$ ed | $ ed | ||
P | P | ||
Строка 112: | Строка 112: | ||
Если нас всё устраивает, то можно записать файл с помощью команды <code>w <filename></code> и выйти из редактора с помощью команды <code>q</code>: | Если нас всё устраивает, то можно записать файл с помощью команды <code>w <filename></code> и выйти из редактора с помощью команды <code>q</code>: | ||
<source> | <source lang="bash"> | ||
*w notes.txt | *w notes.txt | ||
*q | *q | ||
</source> | </source> |
Текущая версия от 17:25, 20 апреля 2022
ed ( /iːdiː/ ) — строчный текстовый редактор из 1969 года, когда терминалы были медленными, ОЗУ была дорогой и её было мало, а экраны были маленькими. ed стандартизирован по стандартам POSIX и Open Group (X/Open) и встречается практически в каждой UNIX или UNIX-like системе. Знание этого инструмента может понадобиться не только для написания скриптов или работы с дистрибутивами, куда редактор vi не включен по умолчанию, но он также может оказаться достаточно простым и удобным для решения повседневных задач.
В отличие от остальных редакторов ed не создаёт копию файла, в которой выполяет редактирование с последующей заменой файла, а работает с оригинальным файлом. Это может быть полезным, когда необходимо изменить файл при этом не изменяя его inode number, но буфер становится ограничен адресным пространством процесса.
Справочник по командам ed
P | Отобразить приглашение командной строки |
a | Добавить строки после текущей |
p | Напечатать текущую строку |
pn | Напечатать текущую строку с номером |
,p | Напечатать содержимое всего буфера |
,pn | Напечатать содержимое всего буфера с номерами строк |
w <имя_файла> | Записать содержимое буфера в файл |
q | Выйти из редактора |
u | Отменить последнее действие |
!<команда> | Запустить программу команда
|
Пример создания текстового файла
Вызовем ed простой командой:
$ ed
К удивлению современных пользователей на экран при этом ничего не выводится, но если потоптать клавиатуру, то можно увидеть символ ?
. Для начала стоит включить отображение приглашения командной строки введя большую латинскую P
и нажав Enter
:
$ ed
P
*
Мы увидим символ *
, который является приглашением командной строки. Теперь можно попробовать ввести текст. Для этого введём команду a
, нажмём Enter
и начнём вводить текст. Ввод текста с возвратом в командный режим завершается единственным символом .
на пустой строке:
$ ed
P
*a
Первая строка
и вторая строка.
.
*
Итак, мы ввели две строки, а на третьей поставили единственную точку, которая вернула нас в командный режим. В ed перемещение по буферу, где хранятся данные (и куда считываются файлы) происходит построчно. Мы можем посмотреть содержимое текущей строки с помощью команды p
или содержимое всего буфера с помощью команды ,p
, а также напечатать номера строк указав команду n
после команды печати:
$ ed
P
*a
Первая строка
и вторая строка.
.
*p
и вторая строка.
*,pn
1 Первая строка
2 и вторая строка.
*
Мы можем переместиться на другую строку указав её номер в командной строке:
$ ed
P
*a
Первая строка
и вторая строка.
.
*p
и вторая строка.
*,pn
1 Первая строка
2 и вторая строка.
*1
Первая строка
*pn
1 Первая срока
*
Если нас всё устраивает, то можно записать файл с помощью команды w <filename>
и выйти из редактора с помощью команды q
:
*w notes.txt
*q