Команды Linux · 3 min read · Sep 17, 2025

Учебник по команде size в Linux для начинающих (6 примеров)

Как некоторые из вас уже могут знать, объект или исполняемый файл в Linux состоит из нескольких секций (таких как txt и data). Если вы хотите узнать размер каждой секции, существует утилита командной строки - названная size - которая предоставляет вам эту информацию. В этом учебнике мы обсудим основы этого инструмента, используя несколько простых для понимания примеров.

Но прежде чем мы это сделаем, стоит упомянуть, что все примеры, упомянутые в этой статье, были протестированы на Ubuntu 16.04LTS.

Команда size в Linux

Команда size в основном перечисляет размеры секций, а также общий размер для входного объектного файла(ов). Вот синтаксис для команды:

size [-A|-B|--format=compatibility]  
            [--help]  
            [-d|-o|-x|--radix=number]  
            [--common]  
            [-t|--totals]  
            [--target=bfdname] [-V|--version]  
            [objfile...]

А вот как страница man описывает эту утилиту:

Утилита GNU size перечисляет размеры секций---и общий размер---для каждого из объектных или  
архивных файлов objfile в своем списке аргументов. По умолчанию для каждого  
объектного файла или каждого модуля в архиве генерируется одна строка вывода.  

objfile... это объектные файлы, которые необходимо проверить. Если ни один не указан, будет  
использован файл "a.out".

Следующие примеры в формате вопрос-ответ дадут вам лучшее представление о том, как работает команда size.

Вопрос 1. Как использовать команду size?

Основное использование size очень простое. Все, что вам нужно сделать, это передать имя объектного/исполняемого файла в качестве входных данных для инструмента. Вот пример:

size apl

Вот вывод, который сгенерировала вышеуказанная команда на нашей системе:

Первые три записи относятся к секциям text, data и bss, с их соответствующими размерами. Затем идет общий размер в десятичном и шестнадцатеричном форматах. И, наконец, последняя запись - это имя файла.

Вопрос 2. Как переключаться между различными форматами вывода?

По умолчанию формат вывода, как говорит страница man для size, похож на формат Berkeley. Однако, если вы хотите, вы также можете использовать соглашение System V. Для этого вам нужно будет использовать опцию –format со значением SysV.

size apl --format=SysV

Вот вывод в этом случае:

Как переключаться между различными форматами вывода

Вопрос 3. Как переключаться между различными единицами размера?

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

Вот что говорит страница man об этих опциях:

-d  
-o  
-x  
--radix=number  

Используя одну из этих опций, вы можете контролировать, будет ли размер каждой секции указан в десятичном  
(-d, или --radix=10); восьмеричном (-o, или --radix=8); или шестнадцатеричном (-x, или --radix=16).  В  
--radix=number поддерживаются только три значения (8, 10, 16). Общий размер всегда указывается в  
двух системах счисления; десятичной и шестнадцатеричной для вывода -d или -x, или восьмеричной и шестнадцатеричной, если вы используете  
-o.

Вопрос 4. Как заставить команду size показывать итоги всех объектных файлов?

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

size -t [file1] [file2] ...

Следующий скриншот показывает эту опцию командной строки в действии:

Последняя строка в выводе была добавлена опцией командной строки -t.

Вопрос 5. Как заставить size выводить общий размер общих символов в каждом файле?

Если вы запускаете команду size с несколькими входными файлами и хотите, чтобы команда отображала общие символы в каждом файле, то вы можете сделать это с помощью опции командной строки –common.

size --common [file1] [file2] ...

Также стоит упомянуть, что при использовании формата Berkeley они включены в размер bss.

Вопрос 6. Какие другие доступные опции командной строки?

Помимо обсуждаемых до сих пор, size также предлагает некоторые общие опции командной строки, такие как -v (для информации о версии) и -h (для сводки допустимых аргументов и опций)

Какие другие доступные опции командной строки

Кроме того, вы также можете заставить size читать опции командной строки из файла. Это можно сделать с помощью опции @file. Следующие детали относятся к этой опции:

Опции, прочитанные из файла, вставляются вместо оригинальной опции @file. Если файл не существует или  
не может быть прочитан, то опция будет рассматриваться буквально и не будет удалена. Опции в файле  
разделяются пробелами. Символ пробела может быть включен в опцию, окружив всю опцию либо одинарными, либо двойными кавычками. Любой символ (включая обратный слэш) может быть включен, предварив символ, который нужно включить, обратным слэшем. Сам файл может содержать дополнительные опции @file; любые такие опции будут обрабатываться рекурсивно.

Заключение

Одно ясно, команда size не для всех. Она предназначена только для тех, кто имеет дело со структурой объектных/исполняемых файлов в Linux. Так что, если вы относитесь к целевой аудитории, практикуйте опции, которые мы обсудили здесь, и вы должны быть готовы использовать инструмент на ежедневной основе. Для получения дополнительной информации о size, перейдите на его страницу man.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.