Chcę edytować crontab. To ma być Vi, ale nie jest, jak widać:
root@euve252628:~# crontab -e
0
0 * * * * /var/www/vhosts/nevemind-what-webs/httpdocs/megacronstunde.php
?
:wq
?
Tak, dało mi to ?
. I dlaczego daje mi zero?
Kiedy piszę a qi naciskam Enter- wychodzi. Muszę wiedzieć, jak oszczędzać, bo to nie jest klasyczna Vi.
cron
text-editor
tylko ja
źródło
źródło
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 poprawnieEDITOR
coś innego, jeśli jesteś zainteresowany faktycznym użyciem ed, jest to świetne wprowadzenie: sanctum.geek.nz/arabesque/actally-using-edOdpowiedzi:
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
ic
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
zamiastman ed
.Oto przykładowa sesja z dodanymi komentarzami (nieakceptowanymi przez ed):
EDYCJA: Jak wspomina grawitacja, bardziej pomocne komunikaty o błędach można aktywować za pomocą
h
lubH
. Ponadto,,
zamiast%
w części zakresu, jest oficjalnym sposobem na odniesienie się do „wszystkich linii” wed
. W GNUed
możliwość użycia%
tego jest obsługiwana, ale nie wspomniana winfo
instrukcji. Wykorzystanie%
do wszystkich linii najwyraźniej zostało wymyślone przezex
, najwyraźniej dlatego, że tam są,
środki,.,.
a nie1,$
jak wed
.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
lubVISUAL
. Różnica między nimi została wyjaśniona w tej odpowiedzi .Możesz to zrobić, jeśli chcesz ustawić to dla pojedynczego polecenia:
lub jeśli chcesz, aby wszystkie programy uruchomione w sesji powłoki z niego korzystały:
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żnaupdate-alternatives --config editor
go ustawić:źródło
h
aby o nie poprosić (lubH
na stałe włączyć).%
wydaje się być ex wynalazek Oficjalnie. Ed zastosowań,
oznaczać wszystkie linie, choć niektóre wersje przyjąć%
, jak również.)EDITOR
iVISUAL
.ed
jest taka sama jak wvi
, ale nie musisz najpierw naciskać „:”, aby wyjść z trybu edycji grafiki. Nauczyłem się Uniksa, gdy „prawdziwi programiści” nie tracili czasu na używanie GUI - terminal „zielony ekran” 80x25 działa prawie tak samo dobrze jak dziurkacz do kart IBM 029 do edycji, ale nie do końca;)EDITOR
iVISUAL
tak naprawdę nie są tak istotne. Pytanie było w zasadzie: co to jest ten edytor i jak go używać? (co to jest0
i to?
i jak oszczędzać?).Jak dowiedzieć się, czym jest ten edytor
Naciśnij Ctrl+ Z. Spowoduje to zawieszenie edytora i wyświetlenie monitu powłoki. Po wyświetleniu monitu uruchom,
ps
aby zobaczyć, jakie procesy działają w tym terminalu.bash
jest oryginalną powłoką,crontab
oczekuje się,sh
jest kolejną powłoką, która musiała zostać wywołanacrontab
ips
jest działającąps
komendą. To pozostawiaed
(dostarczone przez paczkę o tej samej nazwie ).Jeśli nie możesz dowiedzieć się, jak zamknąć edytor, możesz go zabić w tym momencie za pomocą
kill 26302
lubkill %1
.Co to jest Ed?
Ed to starożytny redaktor, którego historia sięga jeszcze przedtem, gdy monitory były (powszechne). Został on zaprojektowany dla komputerów, których moc interaktywny obwodowy był dalekopis .
W
0
wyświetla na początku to liczba linii w pliku. Widocznie to ważna informacja.?
oznacza, że ed nie rozumiał, co wpisałeś. Drukarki liniowe działają wolno, więc ed nie marnuje czasu i atramentu na wyświetlanie bezsensownych informacji, takich jak komunikaty o błędach. Stary żart (nie znam pochodzenia) brzmi:Jeśli czujesz się niedoświadczony, możesz wydać polecenie
H
(wszystkie polecenia oprócz jednej są pojedynczą literą (nie licząc argumentów danych), ponieważ kto lubi pisać), a otrzymasz komunikaty o błędach. Na przykład, jeśli po prostu naciśniesz Enter…Jasne, prawda? (Pusta linia to pusta komenda - ta, która nie jest pojedynczą literą. Puste polecenie przechodzi do następnej linii i drukuje ją. Jeśli jesteś na końcu pliku, co zawsze ma miejsce w pustym plik, nie ma następnego wiersza, więc adres, na który chcesz się przenieść, jest nieprawidłowy).
Jak zdobyć innego edytora
crontab
Polecenia, podobnie jak większość poleceń uruchomić edytor tekstu, należy sprawdzić zmienne środowiskoweVISUAL
iEDITOR
(w tej kolejności), aby zdecydować, który program do biegu, spada z powrotem na domyślne systemu. Jeśli jedna z tych zmiennych jest ustawiona naed
, zmień ją lub usuń.W systemie Ubuntu (oraz Debian i innych) domyślnym edytorem systemu jest system
/etc/alternatives/editor
zarządzany za pomocą mechanizmu alternatyw . Domyślnie wybiera „najlepszy” zainstalowany edytor, w którym „najlepszy” jest definiowany przez priorytety ustalone przez opiekunów pakietów. Służyupdate-alternatives
do konfigurowania alternatywy. Możesz wyświetlić dostępne edytory i ich priorytety za pomocąed
ma priorytet -100, podczas gdy wszystkie inne „rozsądne” edytory mają pozytywny priorytet, więc jedynym sposobem, w jaki byłby domyślnie używany, jest brak edytora. Domyślna instalacja Ubuntu używa nano jako domyślnego edytora, z priorytetem 400. Jeśli opcja została ustawiona naed
, możesz to zmienić za pomocąźródło
ps
zpstree -sap $$
? (łatwiej jest dowiedzieć się, który edytor został uruchomiony, ponieważ jest teraz w formacie drzewa)/usr/bin/editor
jest dowiązaniem symbolicznym do/etc/alternatives/editor
. Fakt, że aplikacje dzwonią,/usr/bin/editor
jest szczegółem, który pominąłem.EDITOR
iVISUAL
. W rzeczywistości są one właściwym sposobem wyboru edytora, ponieważ jest to preferencja użytkownika, a nie preferencja ogólnosystemowa. Wolę trzymać sięps
tutaj, aby wszystko było proste.Z twojego pytania wynika, że domyślny EDYTOR nie jest
vim
i masz problemy z bieżącym domyślnym edytorem.Poniższe polecenie ustawi domyślny EDYTOR na
vim
Po ustawieniu domyślnego edytora na
vim
uruchamianiecrontab -e
będzie działaćvim
jako edytor.Uwagi:
vim
na stałe, trzeba dodać do powyższego polecenia~/.bashrc
lub~/.profile
lub podobnego pliku.źródło
Aby użyć edytora VI do edycji crontab, użyj poniższego polecenia.
lub, jeśli chcesz edytować za pomocą innego edytora, takiego jak gedit, nano itp., po prostu zastąp vi nazwą edytora.
źródło