Làm cách nào để chỉnh sửa tập tin nếu không có vi, vim, joe, v.v?


35

Có cách nào để chỉnh sửa tập tin nếu không có vi, vim, joe, mcedit? Nói cách khác, có cách nào để chỉnh sửa một tập tin chỉ bằng các lệnh shell?


1
Tôi cũng không có nano!
Eduard Florinescu

1
Đó là một bộ định tuyến, nhưng tôi cũng đã thấy một cổng tùy chỉnh trong tình huống này :)
Eduard Florinescu

3
Tạo một bản sao của tập tin bạn muốn chỉnh sửa. Sau đó làm cat file, tiếp theo cat >filevà sắp xếp các phần bằng cắt + dán và / hoặc gõ, kết thúc với ctrl-d.
ott--

7
Điều này cũng xảy ra với tôi, trong docker .. Nó rất tối giản. Bây giờ làm thế quái nào tôi làm một cái gì đó như thế. VM là phù du, tôi không thể ssh hay ftp, tôi phải sử dụng chuyển hướng và hack như sed để thay đổi một số tập tin. Đó là một thử thách lớn. Xem mức độ tin cậy của chúng tôi đối với các biên tập viên: P
code ninja

3
Nếu đây là một container hoặc được truy cập thông qua một số máy chủ khác, bạn có thể sử dụng echo <<EOF > new.file [paste here] EOF. Chỉnh sửa nội dung của tệp trên máy chủ PC.
pztrick

Câu trả lời:


18

Trong trường hợp đó, tôi sẽ thử chuyển các tệp ra và chỉnh sửa chúng trên một máy tính khác, sau đó chuyển chúng trở lại. Nếu bạn có ssh, bạn nên có scp (tôi hy vọng), vì vậy bạn sẽ có thể đẩy các tệp vào và ra. Nếu không, bạn cũng có thể tìm ftp để truyền tệp vào và ra.

Nếu không, thì tôi nghĩ lựa chọn tốt nhất của bạn là thử và sử dụng chuyển hướng cat, grep, sed, echo và I / O (đặc biệt là nối thêm >>). Và rất nhiều tập tin tạm thời.

Mặc dù nếu bạn có quyền truy cập vào perl (hoặc một cái gì đó tương tự), bạn có thể chạy nó mà không có đối số và nó sẽ cho phép bạn nhập nguồn kịch bản từ đầu vào tiêu chuẩn. Khi bạn nhấn ctrl + d, nó có thể chạy tập lệnh. Bạn có thể sử dụng phương pháp đó để tạo một tập tin. Nó sẽ mạnh hơn việc hack thứ gì đó trên dòng lệnh như tôi đã đề cập trước đó.


không có sshd nhưng tôi có telnetd
Eduard Florinescu

Sau đó, bạn có thể ftp?
Ben Richards

1
Tôi có thể sử dụng chuyển hướng mèo, grep, echo và I / O (đặc biệt là nối thêm với >>) nhưng không có sed
Eduard Florinescu

2
Ftp hoạt động :) bây giờ tôi cần xem nơi nào trên bộ định tuyến này tôi có một cái gì đó có thể ghi được.
Eduard Florinescu

3
Nếu bạn được kết nối với thiết bị của mình qua telnet, tôi sẽ nghiêm túc suy nghĩ về việc chỉ lưu tập tin vào thiết bị đầu cuối (với bộ đệm backscroll đủ lớn), sao chép / dán toàn bộ nội dung vào trình chỉnh sửa cục bộ, thực hiện thay đổi của bạn, sau đó đánh lên một cái gì đó sẽ biến điều đó thành một chuỗi các lệnh echo sẽ viết một tập tin thay thế.
afrazier

4

Tôi tưởng tượng bạn có thể làm những gì bạn cần grepperl- tìm kiếm dòng bạn muốn grep, chỉnh sửa dòng đó với perl( perlcó thể hoạt động như một sự thay thế lớn cho sed) và sau đó xác nhận bạn không thực hiện nhiều thay đổi hơn bạn dự định diff filename filename.new. Nếu vậy, hãy thay đổi vĩnh viễn -mv filename.new filename


3

Giả sử bạn đang SSH vào bộ định tuyến của mình, bạn cũng có thể sử dụng nhiều tiện ích khác nhau để chuyển tệp trở lại và thứ tư vào máy tính / bộ định tuyến của bạn. Bạn có thể tải xuống một bản sao trên PC, sửa đổi nó và sau đó SSH nó trở lại bộ định tuyến thông qua SFTP (xem Putty hoặc WinSCP nếu bạn là người dùng Windows).

Tuy nhiên, nếu bạn đang sử dụng chương trình cơ sở tùy chỉnh trên bộ định tuyến / cổng, bạn có thể gặp may. Có nhiều gói Optware khác nhau chứa các trình soạn thảo văn bản đơn giản (và nhỏ). Tùy thuộc vào nhu cầu của bạn, bạn có thể nhận được nanogói, hoặc chỉ đi cho busyboxchứa vi.


2

Một cách sẽ là đầu ra kết quả của tiếng vang.

echo "foo" > bar.txt

Điều này sẽ tạo một tệp có tiêu đề bar.yxy với văn bản chứa "foo".


3
Đó không phải là thực sự chỉnh sửa.
DavidPostill

2
Hoàn thành công việc, cho đến khi bạn có thể có được một biên tập viên về nó.
Landon

1

Bạn đã quét sạch / bin hoặc cái gì đó? Nếu không, có lẽ bạn có thể hack một cái gì đó cùng với các tiện ích văn bản trong GNU Coreutils phải là tiêu chuẩn trên hệ thống linux.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.