Saya ingin mengedit crontab. Seharusnya Vi, tapi tidak, seperti yang Anda lihat:
root@euve252628:~# crontab -e
0
0 * * * * /var/www/vhosts/nevemind-what-webs/httpdocs/megacronstunde.php
?
:wq
?
Ya, itu memberi saya ?
. Dan mengapa itu memberi saya nol?
Ketika saya mengetik a qdan tekan Enter- itu berhenti. Saya perlu tahu bagaimana cara menyimpan, karena itu bukan Vi klasik.
cron
text-editor
hanya aku
sumber
sumber
ed
: secara default, ini memberikan jumlah karakter (yang dalam sistem berbasis Debian biasanya888
pertama kali, menjadi jumlah karakter dalam templat "kosong" crontab). Jika Anda melihat hitungan 0, Anda harus mengubahnya. Lihat perintah Crontab -e tidak berfungsi dengan baikEDITOR
ke yang lain, jika Anda tertarik untuk benar-benar menggunakan ed, ini adalah pengantar yang bagus: sanctum.geek.nz/arabesque/actually-using-edJawaban:
Itu
ed
Secara default promptnya adalah string kosong. Jika Anda ingin berhenti, cukup masukkan
q
. Jangan awali dengan:
. Jika Anda memiliki perubahan yang belum disimpan, itu akan membalas dengan?
. Anda dapat menafsirkannya sebagai "Anda yakin?", Dan mengonfirmasi dengan memerintahkanq
lagi. Ngomong-ngomong, perintah apa pun yang tidak dimengerti juga akan menyebabkannya membalas?
. Itulah satu-satunya pesan kesalahan yang diketahuinya.Perintah nya adalah apa vim / vi / ex / sed didasarkan pada, sehingga perintah seperti
g/re/p
,%s/vi/&m/g
,1,3d
,/pattern/,$d
,w
,q
,wq
bekerja sama seperti vim.Perintah suka
i
,,a
danc
masuk ke mode insert. Untuk meninggalkan mode penyisipan dan kembali ke mode perintah, cukup masukkan baris yang hanya memiliki a.
. Untuk "pindah" ke baris lain, cukup masukkan nomor baris, offset dari baris saat ini seperti+2
atau-1
, atau regex sebagai perintah untuk pergi ke baris itu..
berarti baris saat ini dalam mode perintah. Anda dapat menggunakannya untuk mengetahui di mana Anda berada.$
berarti baris terakhir.Ngomong-ngomong, jika Anda ingin mempelajari lebih lanjut tentang hal ini, ini adalah program GNU di linux, sebagian besar dokumentasinya ada di
info ed
bukanman ed
.Berikut adalah contoh sesi, dengan komentar yang ditambahkan (tidak diterima oleh ed):
EDIT: Seperti grawity menyebutkan, pesan kesalahan yang lebih bermanfaat dapat diaktifkan dengan
h
atauH
. Juga,,
alih-alih%
di bagian jangkauan perintah adalah cara resmi untuk merujuk ke "semua baris" died
. Dalam GNUed
, kemungkinan untuk menggunakan%
ini didukung tetapi tidak disebutkan dalaminfo
manual. Penggunaan%
untuk semua lini tampaknya diciptakan olehex
, tampaknya karena, di sana,,
berarti.,.
daripada1,$
seperti died
.EDIT2: Mengatur editor yang berbeda
Seperti jawaban lain yang disebutkan, jika Anda ingin menentukan editor yang berbeda, Anda dapat melakukannya dengan mengatur variabel lingkungan
EDITOR
atauVISUAL
. Perbedaan antara keduanya dijelaskan dalam jawaban ini .Anda dapat melakukannya seperti ini jika Anda ingin mengaturnya untuk satu perintah:
atau seperti ini jika Anda ingin semua program diluncurkan di sesi shell untuk menggunakannya:
Anda dapat menyimpan
export
dalam~/.profile
atau/etc/profile
, tergantung apakah Anda ingin menjadi pengguna atau pengaturan sistem untuk bash, masing-masing. Itulah cara portabel unix untuk mengatur editor; Anda dapat melakukan ini dalam distribusi apa pun.Di Ubuntu, ada juga
update-alternatives
perintahnya. Editor default saat ini dapat dilihat denganupdate-alternatives --display editor
, dan Anda dapat menggunakannyaupdate-alternatives --config editor
untuk mengaturnya:sumber
h
untuk memintanya (atauH
untuk mengaktifkannya secara permanen).%
tampaknya merupakan penemuan ex . Secara resmi ed menggunakan,
berarti semua baris, meskipun beberapa versi menerima%
juga.)EDITOR
danVISUAL
lingkungan.ed
sama dengan divi
, kecuali Anda tidak harus menekan ":" terlebih dahulu untuk keluar dari mode pengeditan grafis. Saya belajar Unix ketika "programmer nyata" tidak membuang-buang waktu menggunakan GUI - terminal "layar hijau" 80x25 bekerja hampir serta pukulan kartu IBM 029 untuk mengedit, tetapi tidak cukup;)EDITOR
danVISUAL
tidak terlalu relevan. Pertanyaannya adalah pada dasarnya: apa editor ini, dan bagaimana cara menggunakannya? (apa ini0
dan ini?
, dan bagaimana cara menyimpan?).Cara mengetahui apa itu editor ini
Tekan Ctrl+ Z. Ini menangguhkan editor dan memberi Anda prompt shell. Saat diminta, jalankan
ps
untuk melihat proses apa yang sedang berjalan di terminal ini.bash
adalah shell asli,crontab
diharapkan,sh
adalah shell lain yang harus dipanggil olehcrontab
, danps
merupakanps
perintah yang berjalan . Itu meninggalkaned
(disediakan oleh paket dengan nama yang sama ).Jika Anda tidak tahu cara keluar dari editor, Anda dapat membunuhnya pada saat ini, dengan
kill 26302
ataukill %1
.Apa itu ed?
Ed adalah editor kuno, yang berasal dari sebelum monitor adalah hal yang lumrah. Itu dirancang untuk komputer yang perangkat output interaktifnya adalah teleprinter .
Yang
0
ditampilkan di awal adalah jumlah baris dalam file. Jelas itu informasi penting.?
berarti ed tidak mengerti apa yang Anda ketikkan. Line printer lambat, jadi ed tidak membuang waktu dan tinta untuk menampilkan informasi yang tidak berguna seperti pesan kesalahan. Lelucon lama (saya tidak tahu asal usulnya):Jika Anda merasa tidak berpengalaman, Anda bisa mengeluarkan perintah
H
(semua perintah kecuali satu adalah satu huruf (tidak termasuk argumen data), karena yang suka mengetik), dan Anda akan mendapatkan pesan kesalahan. Misalnya, jika Anda hanya menekan Enter...Jelas bukan? (Baris kosong adalah perintah kosong - baris yang bukan huruf tunggal. Perintah kosong akan pindah ke baris berikutnya dan mencetaknya. Jika Anda berada di akhir file, yang selalu merupakan kasus kosong file, tidak ada baris berikutnya, jadi alamat yang Anda minta tidak valid.)
Cara mendapatkan editor lain
The
crontab
perintah, seperti kebanyakan perintah yang menjalankan editor teks, memeriksa variabel lingkunganVISUAL
danEDITOR
(agar) untuk menentukan program untuk dijalankan, jatuh kembali ke sistem default. Jika salah satu dari variabel ini diatur keed
, ubah atau hapus.Di Ubuntu (dan Debian dan lainnya), editor default sistem adalah
/etc/alternatives/editor
, yang dikelola melalui mekanisme alternatif . Secara default ia memilih editor "terbaik" yang diinstal, di mana "terbaik" ditentukan oleh prioritas yang ditetapkan oleh pengelola paket. Gunakanupdate-alternatives
untuk mengkonfigurasi alternatif. Anda dapat menampilkan editor yang tersedia dan prioritasnyaed
memiliki prioritas -100, sedangkan semua editor "masuk akal" lainnya memiliki prioritas positif, jadi satu-satunya cara itu akan digunakan secara default adalah jika tidak ada editor yang diinstal. Instalasi default Ubuntu menggunakan nano sebagai editor default, dengan prioritas 400. Jika alternatif telah diatured
, Anda dapat mengubahnya dengansumber
ps
denganpstree -sap $$
? (lebih mudah untuk mengetahui editor mana yang diluncurkan, karena sekarang dalam format pohon)/usr/bin/editor
adalah symlink ke/etc/alternatives/editor
. Fakta bahwa panggilan aplikasi/usr/bin/editor
adalah detail yang saya lewatkan.EDITOR
danVISUAL
. Mereka sebenarnya cara yang tepat untuk memilih editor karena ini adalah preferensi pengguna, bukan preferensi seluruh sistem. Saya lebih suka tetap dips
sini untuk menjaga hal-hal sederhanaDari pertanyaan Anda, sepertinya EDITOR default Anda tidak
vim
, dan Anda memiliki masalah dengan editor default saat ini.Perintah di bawah ini akan mengatur EDITOR default menjadi
vim
Setelah mengatur editor default menjadi
vim
, menjalankancrontab -e
akan digunakanvim
sebagai editor Anda.Catatan:
vim
secara permanen, Anda harus menambahkan perintah di atas untuk Anda~/.bashrc
atau~/.profile
atau mirip berkas.sumber
Untuk menggunakan editor VI untuk mengedit crontab, gunakan perintah di bawah ini.
atau, jika Anda ingin mengedit dengan editor lain seperti gedit, nano, dll., ganti saja vi dengan nama editor.
sumber