
Я делаю этот маленький файл на основе комбинации шестнадцатеричного числа, которое может сломать cat и терминал, показывающий файл с cat; сброс больше не работает, возможно, он помещает cat в своего рода цикл? Пожалуйста, кто-нибудь может объяснить? Это не вызовет никаких проблем, но не запускайте его в продакшне, потому что это может иметь некоторые побочные эффекты, которые я не видел:
Выполните команду «кот сломалкот» и вы увидите.
Может быть, это проблема безопасности cat, который может выполнить произвольный код?
Другой пример: cat /usr/bin/vi может выполнять некоторые команды, не найденные в конце!
Есть ли более безопасный способ запустить кошку?
решение1
Вы могли бы сделать cat -v /usr/bin/vi
так, чтобы он печатал непечатаемые символы как представления ASCII, а не как фактические управляющие символы, которые терминал может попытаться обработать. Это решает вашу проблему?
решение2
Вам действительно не следует 'cat'ить произвольные файлы. Это плохая идея, даже если файл не является вредоносным.
Вы можете определить «тип» файла, запустив программу «file», например file /usr/bin/vi
. Использование «cat» в любом случае является низкоуровневым. Возможно, попробуйте использовать «more» или «less». Когда я пытаюсь, more /usr/bin/vi
я получаю /usr/bin/vi: Not a text file
.
Кроме того, вы можете сбросить свой терминал с помощью команды «reset(1)», но вам, возможно, придется ввести resetC-J
, т. е. строку «reset», за которой следует «control-J», если терминал перейдет в режим raw.