Ed: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «Category:HOWTO '''ed''' ( /iːdiː/ ) - строчный текстовый редактор из 1969 года, когда терминалы были ме…»)
 
мНет описания правки
 
(не показаны 2 промежуточные версии 1 участника)
Строка 1: Строка 1:
[[Category:HOWTO]]
[[Category:HOWTO]]


'''ed''' ( /iːdiː/ ) - строчный текстовый редактор из 1969 года, когда терминалы были медленными, ОЗУ была дорогой и её было мало, а экраны были маленькими. '''ed''' стандартизирован по стандартам '''POSIX''' и '''Open Group''' ('''X/Open''') и встречается практически в каждой '''UNIX''' или '''UNIX-like''' системе. Знание этого инструмента может понадобиться не только для написания скриптов или работы с дистрибутивами, куда редактор '''vi''' не включен по умолчанию, но он также может оказаться достаточно простым и удобным для решения повседневных задач.
'''ed''' ( /iːdiː/ ) строчный текстовый редактор из 1969 года, когда терминалы были медленными, ОЗУ была дорогой и её было мало, а экраны были маленькими. '''ed''' стандартизирован по стандартам '''POSIX''' и '''Open Group''' ('''X/Open''') и встречается практически в каждой '''UNIX''' или '''UNIX-like''' системе. Знание этого инструмента может понадобиться не только для написания скриптов или работы с дистрибутивами, куда редактор '''vi''' не включен по умолчанию, но он также может оказаться достаточно простым и удобным для решения повседневных задач.
 
В отличие от остальных редакторов '''ed''' не создаёт копию файла, в которой выполяет редактирование с последующей заменой файла, а работает с оригинальным файлом. Это может быть полезным, когда необходимо изменить файл при этом не изменяя его '''inode number''', но буфер становится ограничен адресным пространством процесса.


__TOC__
__TOC__


=Введение в работу с ed на примере создания и редактирования текстового файла=
== Справочник по командам ed ==
 
{| class="wikitable"
|+Команды ed и их комбинации
|-
|P
|Отобразить приглашение командной строки
|-
|a
|Добавить строки после текущей
|-
|p
|Напечатать текущую строку
|-
|pn
|Напечатать текущую строку с номером
|-
|,p
|Напечатать содержимое всего буфера
|-
|,pn
|Напечатать содержимое всего буфера с номерами строк
|-
|w <имя_файла>
|Записать содержимое буфера в файл
|-
|q
|Выйти из редактора
|-
|u
|Отменить последнее действие
|-
|!<команда>
|Запустить программу <code>команда</code>
|-
|}
 
== Пример создания текстового файла ==


Вызовем '''ed''' простой командой:
Вызовем '''ed''' простой командой:


<source>
<source lang="bash">
$ ed
$ ed
</source>
</source>


К удивлению современных пльзователей на экран при этом ничего не выводится, но если потоптать клавиатуру, то можно увидеть символ <code>?</code>. Для начала стоит включить отображение приглашения командной строки введя большую латинскую <code>P</code> и нажав <code>Enter</code>:
К удивлению современных пользователей на экран при этом ничего не выводится, но если потоптать клавиатуру, то можно увидеть символ <code>?</code>. Для начала стоит включить отображение приглашения командной строки введя большую латинскую <code>P</code> и нажав <code>Enter</code>:


<source>
<source lang="bash">
$ ed
$ ed
P
P
Строка 23: Строка 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
Строка 35: Строка 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
Строка 52: Строка 91:
Мы можем переместиться на другую строку указав её номер в командной строке:
Мы можем переместиться на другую строку указав её номер в командной строке:


<source>
<source lang="bash">
$ ed
$ ed
P
P
Строка 73: Строка 112:
Если нас всё устраивает, то можно записать файл с помощью команды <code>w &lt;filename&gt;</code> и выйти из редактора с помощью команды <code>q</code>:
Если нас всё устраивает, то можно записать файл с помощью команды <code>w &lt;filename&gt;</code> и выйти из редактора с помощью команды <code>q</code>:


<source>
<source lang="bash">
*w notes.txt
*w notes.txt
*q
*q
</source>
</source>
=Справочник по командам ed=
При работе с '''ed''' стоит учитывать несколько нюансов:
* В отличие от остальных редакторов '''ed''' не создаёт копию файла, в которой выполяет редактирование с последующей заменой файла, а работает с оригинальным файлом. Это может быть полезным, когда необходимо изменить файл при этом не изменяя его '''inode number'''.
{| class="wikitable"
|+Команды ed и их комбинации
|-
|P
|Отобразить приглашение командной строки
|-
|a
|Добавить строки после текущей
|-
|p
|Напечатать текущую строку
|-
|pn
|Напечатать текущую строку с номером
|-
|,p
|Напечатать содержимое всего буфера
|-
|,pn
|Напечатать содержимое всего буфера с номерами строк
|-
|w &lt;имя_файла&gt;
|Записать содержимое буфера в файл
|-
|q
|Выйти из редактора
|-
|u
|Отменить последнее действие
|-
|}

Текущая версия от 14:25, 20 апреля 2022


ed ( /iːdiː/ ) — строчный текстовый редактор из 1969 года, когда терминалы были медленными, ОЗУ была дорогой и её было мало, а экраны были маленькими. ed стандартизирован по стандартам POSIX и Open Group (X/Open) и встречается практически в каждой UNIX или UNIX-like системе. Знание этого инструмента может понадобиться не только для написания скриптов или работы с дистрибутивами, куда редактор vi не включен по умолчанию, но он также может оказаться достаточно простым и удобным для решения повседневных задач.

В отличие от остальных редакторов ed не создаёт копию файла, в которой выполяет редактирование с последующей заменой файла, а работает с оригинальным файлом. Это может быть полезным, когда необходимо изменить файл при этом не изменяя его inode number, но буфер становится ограничен адресным пространством процесса.

Справочник по командам ed

Команды 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