Как отредактировать файлы в/usr/bin?

Исправьте меня, если я неправ, но один из каталогов, в которых команды хранятся в Ubuntu, /usr/bin. Я пытался просмотреть один из ELF 64-разрядные исполняемые файлы LSB (совместные действия) с nano но все, что я вижу, является соединением случайных символов/букв. Я могу просмотреть эти файлы? Если так, как я иду об этом?

2
задан 8 March 2014 в 02:13

2 ответа

Большинство файлов (если не все) от /usr/bin двоичный файл исполняемые файлы. Теперь, двоичный файл является компьютерным файлом, который не является текстовым файлом ; это может содержать любой тип данных, закодированных в двоичной форме для компьютерного устройства хранения данных и целей обработки (больше о: Двоичный файл ).

Так, если двоичный файл не является текстовым файлом, Вы не можете использовать nano (или другой текстовый редактор) для редактирования его (хорошо, Вы можете, но наверняка Вы не будете знать то, что Вы делаете).

В Ubuntu (и Linux как операционные системы в целом) существуют некоторые приложения, названные hexeditors, как GHex, который может использоваться, чтобы просмотреть и отредактировать файлы двумя способами, шестнадцатеричным числом или ASCII:

enter image description here

, Кроме того, можно преобразовать vim в hexeditor путем ввода :%!xxd внутренняя часть его (:%!xxd -r для возвращения к нормальному режиму).

8
ответ дан 8 October 2019 в 12:20

Файлы под /usr/bin, которые не являются сценариями оболочки, обычно являются "реальными" исполняемыми файлами, т.е. они содержат машинный код, который выполняется непосредственно ЦП (смешанный с некоторыми заголовками/структурами, используемыми загрузчиком и динамическим компоновщиком, чтобы сделать их задание)

, Вы можете открывать их с шестнадцатеричным редактором, но обычно Вы не можете сделать многого с ним; если Вы знаете о формате ELF, классический инструмент для проверки свойств исполняемых файлов objdump; objdump -x filename распечатает большую информацию о заголовках ELF, в то время как -d опция произведет дизассемблирование всех исполняемых сегментов данного исполняемого файла. Но снова, или Вы действительно опытны, и Вы делаете очень определенные вещи, или это действительно бесполезно. Исполняемые файлы предназначены, чтобы быть выполненными компьютером, не считанным человеком.

то, Что более интересно, если Вы - программист, должно получить исходный код (т.е. код, на самом деле записанный человеком и затем скомпилированный в двоичный исполняемый файл) программы, которую Вы установили, чтобы проверить его, применить патчи, изменить его... Если Ваш sources.list настроен соответственно, и исходный пакет доступен (это обычно имеет место для всех пакетов, обеспеченных в repos от "основного" до "вселенной"), можно получить источники с помощью команды apt-get source name_of_the_package.

2
ответ дан 8 October 2019 в 12:20

Другие вопросы по тегам:

Похожие вопросы: