Есть ли способ отредактировать файл, если нет vi, vim, joe, mcedit? Другими словами, есть ли способ отредактировать файл, используя только команды оболочки?
5 ответов
В этом случае я попытался бы перенести файлы и отредактировать их на другом компьютере, а затем перенести обратно. Если у вас есть ssh, у вас должен быть scp (я надеюсь), чтобы вы могли загружать и выводить файлы. Если нет, вы также можете искать ftp для передачи файлов внутрь и наружу.
Если нет, то я думаю, что ваш лучший вариант - попытаться использовать перенаправление cat, grep, sed, echo и I/O (особенно добавить >>
). И много временных файлов.
Хотя, если у вас есть доступ к Perl (или что-то подобное), вы можете запустить его без аргументов, и он позволит вам вводить источник скрипта из стандартного ввода. Как только вы нажмете Ctrl + D, он может запустить скрипт. Вы можете использовать этот метод для создания файла. Это было бы более мощно, чем взламывание чего-либо в командной строке, как я упоминал ранее.
Я полагаю, что вы можете делать то, что вам нужно, с помощью grep
и perl
- найдите нужную строку с помощью grep
, отредактируйте эту строку с помощью perl
(perl
может действовать как большая замена для sed
), а затем подтвердите, что вы не внесли больше изменений, чем вы. намеревался сделать diff filename filename.new
. Если это так, сделайте изменения постоянными - mv filename.new filename
Предполагая, что вы используете SSH в своем маршрутизаторе, вы также можете использовать различные утилиты для передачи файла обратно и четвертого на ваш компьютер / маршрутизатор. Вы можете загрузить копию на свой ПК, изменить ее, а затем отправить по SSH обратно на маршрутизатор через SFTP (см. Putty или WinSCP, если вы пользователь Windows).
Если вы используете специальную прошивку на маршрутизаторе / шлюзе, вам может повезти. Существуют различные пакеты Optware, содержащие простые (и небольшие) текстовые редакторы. В зависимости от ваших потребностей, вы можете получить пакет nano
или просто перейти на busybox
содержащий vi
.
Одним из способов будет вывод результата эха.
echo "foo" > bar.txt
Это создаст файл с именем bar.yxy с текстом "foo".
Вы уничтожили /bin или что-то? В противном случае, возможно, вы могли бы взломать что-нибудь вместе с текстовыми утилитами в GNU Coreutils, которые должны быть стандартными в системе Linux.