Bagaimana saya bisa mengedit file jika tidak ada vi, vim, joe, dll?

35

Apakah ada cara untuk mengedit file jika tidak ada vi, vim, joe, mcedit? Dengan kata lain apakah ada cara untuk mengedit file hanya dengan menggunakan perintah shell?

Eduard Florinescu
sumber
1
Saya juga tidak punya nano!
Eduard Florinescu
1
Ini adalah router, tetapi juga saya telah melihat juga custom gateway dalam situasi ini :)
Eduard Florinescu
3
Buat salinan file yang ingin Anda edit. Kemudian lakukan cat file, diikuti oleh cat >filedan mengatur bagian-bagian dengan cut + paste dan / atau mengetik, selesaikan dengan ctrl-d.
ott--
7
Ini juga terjadi pada saya, di buruh pelabuhan .. Ini sangat minimalis. Sekarang bagaimana caranya saya melakukan sesuatu seperti itu. VM itu singkat, saya tidak bisa ssh atau ftp, saya harus menggunakan pengalihan dan hacks seperti sed untuk mengubah beberapa file. Itu adalah tantangan besar. Lihat betapa bergantungnya kita pada editor: P
code ninja
3
Jika ini sebuah wadah atau diakses melalui beberapa host lain yang dapat Anda gunakan echo <<EOF > new.file [paste here] EOF. Edit konten file pada PC host.
pztrick

Jawaban:

18

Dalam hal itu, saya akan mencoba mentransfer file dan mengeditnya di komputer lain, kemudian mentransfernya kembali. Jika Anda memiliki ssh, Anda harus memiliki scp (saya harap), jadi Anda harus bisa mendorong file masuk dan keluar. Jika tidak, Anda juga dapat mencari ftp untuk mentransfer file masuk dan keluar.

Jika tidak, maka saya pikir pilihan terbaik Anda adalah mencoba dan memanfaatkan pengalihan cat, grep, sed, echo, dan I / O (terutama ditambahkan dengan >>). Dan banyak file sementara.

Meskipun jika Anda memiliki akses ke perl (atau sesuatu yang serupa), Anda dapat menjalankannya tanpa argumen dan itu akan membiarkan Anda memasukkan sumber skrip dari input standar. Setelah Anda menekan ctrl + d, ia dapat menjalankan skrip. Anda dapat menggunakan metode itu untuk membuat file. Itu akan lebih kuat daripada meretas sesuatu di baris perintah seperti yang saya sebutkan sebelumnya.

Ben Richards
sumber
tidak sshd tapi saya punya telnetd
Eduard Florinescu
Lalu bisakah Anda melakukannya?
Ben Richards
1
Saya dapat menggunakan redirection cat, grep, echo, dan I / O (terutama ditambah dengan >>) tetapi tidak ada sed
Eduard Florinescu
2
Ftp bekerja :) sekarang saya harus melihat di mana di router ini saya punya sesuatu yang bisa ditulisi.
Eduard Florinescu
3
Jika Anda terhubung ke perangkat Anda melalui telnet, saya akan dengan serius memikirkan untuk hanya melakukan catting file ke terminal (dengan buffer backscroll yang cukup besar), menyalin / menempelkan semuanya ke editor lokal, membuat perubahan, dan kemudian mencambuk sesuatu yang akan mengubahnya menjadi serangkaian perintah gema yang akan menulis file pengganti.
Afrazier
4

Saya membayangkan Anda bisa melakukan apa yang Anda butuhkan grepdan perl- mencari garis yang Anda inginkan grep, mengedit garis itu dengan perl( perldapat bertindak seperti pengganti besar untuk sed) dan kemudian mengonfirmasi bahwa Anda tidak membuat lebih banyak perubahan daripada yang Anda maksudkan dengan melakukan diff filename filename.new. Jika demikian, buat perubahan itu permanen -mv filename.new filename

AlexWebr
sumber
3

Dengan asumsi Anda SSH'ing ke router Anda, Anda juga dapat menggunakan berbagai utilitas untuk mentransfer file kembali dan keempat ke komputer / router Anda. Anda dapat mengunduh salinan pada PC Anda, memodifikasinya, dan kemudian SSH mengembalikannya ke router melalui SFTP (lihat Putty atau WinSCP jika Anda pengguna Windows).

Namun, jika Anda menggunakan firmware khusus pada router / gateway, Anda mungkin beruntung. Ada berbagai paket Optware yang berisi editor teks sederhana (dan kecil). Tergantung pada kebutuhan Anda, Anda bisa mendapatkan nanopaket, atau hanya pergi untuk busyboxyang berisi vi.

Penerobosan
sumber
2

Salah satu caranya adalah dengan mengeluarkan hasil gema.

echo "foo" > bar.txt

Ini akan membuat file berjudul bar.yxy dengan teks yang mengandung, "foo".

Mendarat di
sumber
3
Itu tidak terlalu mengedit.
DavidPostill
2
Dapatkan pekerjaan selesai, sampai Anda bisa mendapatkan editor di dalamnya.
Landon
1

Apakah Anda menghapus / bin atau sesuatu? Kalau tidak, mungkin Anda bisa meretas sesuatu bersama dengan utilitas teks di GNU Coreutils yang seharusnya menjadi standar pada sistem linux.

bobmagoo
sumber