Я запустил команду hexdump без параметров, и моя машина с Ubuntu зависла ... Что я сделал? Что эта команда делает без параметра?
И для чего она нужна?
Это из man hexdump
:
Утилита hexdump представляет собой фильтр, который отображает указанные файлы или стандартный ввод, если файлы не указаны, в указанный пользователем формат.
blockquote>Короче говоря, он преобразует текст из одного формата в другой. Традиционно hexdump в основном используется для отладки, особенно программ, которые используют низкоуровневые библиотеки.
Но теперь с юникодом я иногда использую его для получения разных значений символов или для преобразования строк или файлов.
Поскольку это фильтр, вы отправляете в него текст . Простой способ сделать это с помощью оператора трубы (
|
).Выводит текст, отображаемый как ASCII, десятичный, шестнадцатеричный или восьмеричный. Вы используете спецификаторы формата, чтобы определить вывод. Это параметры команды, которые вы вводите после
hexdump
.Если вы хотите увидеть результаты в командной строке, вам нужно начать с
echo
.Так что это
echo text-to-transform | hexdump options optional-format-specifiers
Пример из man-страницы:
echo hello | hexdump -v -e '/1 "%02X\n"'
, который выводит шестнадцатеричное значение каждой буквы.
Этот пример может показаться бесполезным, но помните, что можно перекодировать целые файлы или вывести содержимое памяти в удобочитаемом виде.
Если вы не отправляете ввод в hexdump, он продолжает ждать и, похоже, ничего не делает. Это то, что произойдет, если вы запустите
hexdump
самостоятельно. Когда вы говорите, что это замерзло, произошло ли нечто большее?
Он печатает данные в удобочитаемом формате, обычно в шестнадцатеричном формате. Как и большинство команд Unix, без каких-либо аргументов он читает данные на stdin и записывает на stdout, поэтому, если вы не перенаправили stdin, он просто ждет, пока вы введете некоторые данные в терминал. Компьютер не заморожен, только команда ожидает ввода. Вы можете прервать команду с помощью Ctrl-C, или Ctrl-D указывает на конец ввода.