28

Есть ли способ отредактировать файл, если нет vi, vim, joe, mcedit? Другими словами, есть ли способ отредактировать файл, используя только команды оболочки?

5 ответов5

16

В этом случае я попытался бы перенести файлы и отредактировать их на другом компьютере, а затем перенести обратно. Если у вас есть ssh, у вас должен быть scp (я надеюсь), чтобы вы могли загружать и выводить файлы. Если нет, вы также можете искать ftp для передачи файлов внутрь и наружу.

Если нет, то я думаю, что ваш лучший вариант - попытаться использовать перенаправление cat, grep, sed, echo и I/O (особенно добавить >>). И много временных файлов.

Хотя, если у вас есть доступ к Perl (или что-то подобное), вы можете запустить его без аргументов, и он позволит вам вводить источник скрипта из стандартного ввода. Как только вы нажмете Ctrl + D, он может запустить скрипт. Вы можете использовать этот метод для создания файла. Это было бы более мощно, чем взламывание чего-либо в командной строке, как я упоминал ранее.

4

Я полагаю, что вы можете делать то, что вам нужно, с помощью grep и perl - найдите нужную строку с помощью grep , отредактируйте эту строку с помощью perl (perl может действовать как большая замена для sed), а затем подтвердите, что вы не внесли больше изменений, чем вы. намеревался сделать diff filename filename.new . Если это так, сделайте изменения постоянными - mv filename.new filename

3

Предполагая, что вы используете SSH в своем маршрутизаторе, вы также можете использовать различные утилиты для передачи файла обратно и четвертого на ваш компьютер / маршрутизатор. Вы можете загрузить копию на свой ПК, изменить ее, а затем отправить по SSH обратно на маршрутизатор через SFTP (см. Putty или WinSCP, если вы пользователь Windows).

Если вы используете специальную прошивку на маршрутизаторе / шлюзе, вам может повезти. Существуют различные пакеты Optware, содержащие простые (и небольшие) текстовые редакторы. В зависимости от ваших потребностей, вы можете получить пакет nano или просто перейти на busybox содержащий vi .

2

Одним из способов будет вывод результата эха.

echo "foo" > bar.txt

Это создаст файл с именем bar.yxy с текстом "foo".

1

Вы уничтожили /bin или что-то? В противном случае, возможно, вы могли бы взломать что-нибудь вместе с текстовыми утилитами в GNU Coreutils, которые должны быть стандартными в системе Linux.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .