Jest to ed
Domyślnie jego monitem jest pusty ciąg. Jeśli chcesz wyjść, po prostu wpisz q
. Nie prefiks z :
. Jeśli masz niezapisane zmiany, odpowie na nie ?
. Możesz to zinterpretować jako „jesteś pewien?” I potwierdzić, q
ponownie wydając polecenie . Nawiasem mówiąc, każde polecenie, którego nie rozumie, spowoduje również odpowiedź ?
. To jedyny znany komunikat o błędzie.
Jego polecenia są co vim / vi / ex / sed jest na podstawie, tak jak komendy g/re/p
, %s/vi/&m/g
, 1,3d
, /pattern/,$d
, w
, q
, wq
praca, podobnie jak vim.
Polecenia takie jak i
, a
i c
przejdź do trybu wstawiania. Aby wyjść z trybu wstawiania i wrócić do trybu poleceń, wystarczy wpisać wiersz, który ma tylko znak .
. Aby „przejść” do innej linii, wystarczy wprowadzić numer linii, przesunięcie od bieżącej linii, takie jak +2
lub -1
, lub wyrażenie regularne jako polecenie przejścia do tej linii. .
oznacza bieżącą linię w trybie poleceń. Możesz go użyć, aby wiedzieć, gdzie jesteś. $
oznacza ostatnią linię.
Nawiasem mówiąc, jeśli chcesz dowiedzieć się więcej o tym, ponieważ jest to program GNU w systemie Linux, większość jego dokumentacji znajduje się info ed
zamiast man ed
.
Oto przykładowa sesja z dodanymi komentarzami (nieakceptowanymi przez ed):
$ ed
i # insert (on current line)
vi
. # end insert
%s/vi/&m/g # substitute vi for vim globally in all lines
i # insert (on current line)
first line
. # end insert
$a # append on last line
last line
. # end insert
%p # print all lines
first line
vim
last line
2 # move to line 2 and print it
vim
/line # move forward to line matching /line/ and print it
last line
-1 # move 1 line backwards and print it
vim
?line # move backward to line matching /line/ and print it
first line
+1 # move 1 line forward and print it
vim
g/line/p # print lines matching /line/ (grep)
first line
last line
p # print (current line)
last line
. # move to current line and print it
last line
c # change (current line)
final line
. # end insert
%p # print all lines
first line
vim
final line
/vim/,$c # change from line matching /vim/ to last line
that's all
. # end insert
%p # print all lines
first line
that's all
wq # write and quit
? # write what?
h # help with last error message
No current filename
wq # write and quit to check error message
?
H # help with all error messages
No current filename
wq # write and quit to check error message
?
No current filename
wq file.txt # write file.txt and quit
22 # wrote 22 bytes
EDYCJA: Jak wspomina grawitacja, bardziej pomocne komunikaty o błędach można aktywować za pomocą h
lub H
. Ponadto, ,
zamiast %
w części zakresu, jest oficjalnym sposobem na odniesienie się do „wszystkich linii” w ed
. W GNU ed
możliwość użycia %
tego jest obsługiwana, ale nie wspomniana w info
instrukcji. Wykorzystanie %
do wszystkich linii najwyraźniej zostało wymyślone przez ex
, najwyraźniej dlatego, że tam są ,
środki, .,.
a nie 1,$
jak w ed
.
EDYCJA 2: Ustawianie innego edytora
Podobnie jak inne wspomniane odpowiedzi, jeśli chcesz określić inny edytor, możesz to zrobić, ustawiając zmienne środowiskowe EDITOR
lub VISUAL
. Różnica między nimi została wyjaśniona w tej odpowiedzi .
Możesz to zrobić, jeśli chcesz ustawić to dla pojedynczego polecenia:
EDITOR=vi crontab -e
lub jeśli chcesz, aby wszystkie programy uruchomione w sesji powłoki z niego korzystały:
export EDITOR=vi
crontab -e
Możesz zapisać export
w ~/.profile
lub /etc/profile
, w zależności od tego, czy chcesz, aby było to ustawienie użytkownika lub systemowe dla bash. To unikalny przenośny sposób na ustawienie edytora; możesz to zrobić w dowolnej dystrybucji.
W Ubuntu istnieje również update-alternatives
polecenie. Bieżący domyślny edytor można zobaczyć za pomocą update-alternatives --display editor
i można update-alternatives --config editor
go ustawić:
$ sudo update-alternatives --config editor
There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
* 0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 10 manual mode
Press enter to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode.
ed
: domyślnie podaje liczbę znaków (która w systemach opartych na Debianie jest zwykle888
po raz pierwszy, czyli liczba znaków w szablonie „pustym” crontabie). Jeśli widzisz liczbę 0, musisz ją zmodyfikować. Zobacz komenda Crontab -e nie działa poprawnie