Сценарии оболочки — создание двоичного файла

Опубликовано: 14 Февраля, 2023

Работая в системах Linux, мы ежедневно использовали очень много команд. Большинство команд в двоичном формате находятся в каталогах /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin и т. д. Как системные администраторы, мы должны были бы написать множество сценариев оболочки, чтобы выполнить несколько задач или автоматизировать их. В этой статье мы увидим, как создать двоичный файл из нашего собственного сценария оболочки, чтобы никто не мог видеть исходный код, и его также можно было использовать как обычную системную команду.

Что такое бинарные файлы?

Двоичный файл — это тип компьютерного файла, который используется для хранения данных в виде байтов. Его можно использовать для хранения любых данных, отформатированных или неформатированных, закодированных в двоичном формате. Он используется непосредственно компьютером и не предназначен для чтения человеком, который также называется двоичным файлом. Заголовок двоичного файла определяет тип файла и другую важную информацию, такую как размер блока и тела. Заголовок может включать несколько человекочитаемых символов, но двоичный файл в целом требует специального программного или аппаратного обеспечения для чтения файла.

Двоичные файлы обычно используются при создании приложений/программ. Но программисты не работают напрямую с бинарными файлами. Вместо этого они создают свои приложения на языке программирования высокого уровня, таком как C, C++ или Java. Языки используют удобочитаемые текстовые файлы для определения логики. В какой-то момент цикла разработки логика приложения компилируется и преобразуется в объектный код, который затем называется исполняемым или двоичным файлом с такими расширениями, как .bin или .exe.

Следующие шаги помогут создать наш собственный двоичный файл из сценария оболочки,

Предпосылки

Чтобы создать двоичный файл из сценария оболочки, пользователю необходимо установить SHC (компилятор сценариев оболочки), что можно сделать двумя следующими способами:

Установка шк

Способ 1: из репозитория

Его можно скачать и установить из репозитория с помощью следующих команд:

Для Ubuntu/Debian:

sudo apt install shc

Для RHEL/Centos/Fedora:

sudo yum install shc

Способ 2: Загрузите и установите SHC

SHC также можно установить, загрузив исходный RPM с официальной веб-страницы, используя следующие команды:

cd /root/shc

wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz

tar xzf shc-3.8.9.tgz

Теперь давайте скомпилируем исходный код SHC и установим его с помощью «make install» , который скопирует двоичный файл shc в каталог /usr/local/bin,

cd shc-3.8.9
make install

Таким образом, shc успешно установлен в системе,

Пример бинарного файла:

Шаг 1: Создайте сценарий оболочки

Мы напишем простой сценарий оболочки add.sh , который принимает число от пользователя и отображает значение суммы.

#!/bin/bash

total=0

for i in $@; do
   if [ ! -z "${i##[0-9]*}" ]; then
        echo "Please enter numeric only"
        exit 1
   fi
   total=$(($total + $i))
done

if [ $total -eq 0 ]; then
    echo "Please execute script like: $0 10 20 30"
    exit 0
fi

echo "The sum is $total"

Шаг 2: Создайте двоичный файл

Используя SHC, мы создадим двоичный файл из add.sh, используя следующую команду:

shc -f add.sh

Приведенная выше команда создает два файла в текущем каталоге, где выполняется команда. Одним из них будет add.sh.xc, который находится в формате языка C, а другим — add.sh.x, который представляет собой двоичный файл.

Шаг 3: Протестируйте двоичный файл

Таким образом, мы успешно создали бинарный файл из нашего скрипта add.sh, и пришло время переместить его в каталог /usr/bin, чтобы бинарный файл работал как стандартная системная команда. Кроме того, установите разрешение на выполнение для скрипта.

mv add.sh.x /usr/bin/add
chmod +x /usr/bin/add

Теперь запуск двоичного файла в любом месте системы даст тот же результат, что и сценарий оболочки,