Основные программы и команды программирования
Примечание: Посмотреть подробную справку по интересующей команде можно воспользовавшись командой man или добавив опцию --help, например:
man uname
uname --help
A
aclocal - утилита из инструментария Automake, генерирует макрос aclocal.m4 на основе файла configure.in
ar - создание/редактирование архивов (статических библиотек) из объектных модулей
autoconf - утилита из инструментария Autoconf, генерирует скрипт configure на основе configure.in
automake - утилита из инструментария Automake, генерирует Makefile.in на основе Makefile.am
Основные опции:
r — добавление новых и замена старых файлов;
c — создание библиотеки при её отсутствии.
C
cpp - препроцессор языка C (обычно вызывается из gcc)
ctags - генерирует тег-файл для облегчения навигации по коду (используется редактором VIM)
Основные опции:
-e — эмуляция etags для генерации тег-файлов для emacs.
ctrace - для прослеживания выполнение C-программы по операторам
cxref - анализирует группу .c-файлов и строит для каждого файла таблицу перекрестных ссылок на автоматические, статические и глобальные имена
D
dialog - позволяет создавать диалоги в консоли, из скрипта (на основе ncurses)
diff - поиск изменений в сравниваемых текстовых файлах, например:
создание патча
diff -uNr somedir.orig somedir > my.patch
F
f2c - транслирует исходный код программы на языке "Fortran" в исходный код на языке "C"
G
gcc, g++ - GNU коллекция компиляторов языка С, С++, ASM (с вызовом линкера)
Основные опции:
-x lang — определяет язык исходных модулей;
-c — компилирует и собирает ранее или позже перечисленные исходные файлы;
-S — компилирует перечисленные исходные файлы в *.s файлы;
-E — производит первичную обработку исходных файлов;
-o rez — собрать перечисленные obj-файлы в один файл <rez>
-L — определяет пути поиска библиотек;
-l — определяет перечень статических библиотек (без lib* и *.a);
-w — запрет отображения предупреждений компилятора;
-Wall — генерировать все возможные предупреждающие сообщения;
-pedantic — проверка исходного текста на соответствие стандарту ANSI;
-Wl — различные опции линковщика:
,rpath — определяет дополнительные пути поиска динамических библиотек (-Wl,rpath,/usr/newpath);
,soname — название разделяемой библиотеки (-Wl,-soname,libfuncs.so.1).
-fPIC — создание объектных файлов для динамических библиотек (PIC – Position Independent Code.);
-shared — создание динамической библиотеки (совместно с -o);
-nostdlib — не использовать стандартные системные запускающие файлы или линкующиеся библиотеки;
-static — принуждает использовать статические библиотеки вместо динамических;
-rdynamic — включает возможность использования символьной информации для разрешения ссылок в динамически загружаемых библиотеках;
-M — для каждого файла с исходным текстом препроцессор будет выдавать на стандартный вывод список зависимостей в виде правила для программы make;
-MM — аналогичен ключу -M, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include <имя_файла>;
-MD — аналогичен ключу -M, но список зависимостей выдается не на стандартный вывод, а записывается в отдельный файл зависимостей;
-MMD — аналогичен ключу -MD, но в список зависимостей попадает только сам исходный файл, и файлы, включаемые с помощью директивы #include <имя_файла>;
-pipe — компилятор будет работать через каналы;
-O[n] — установить уровень оптимизации (n=0..3);
-g — добавить отладочную информацию;
-p, -pg — добавить в модуль код для отслеживания узких мест, после выполнения генерируется mon.out файл, который можно обработать утилитой gprof;
-masm — использовать стандарт ассемблера (att|intel).
gdb - мощный консольный GNU дебагер
I
indent - утилита форматирования исходного текста под указанные требования
L
lclint - утилита проверки синтаксиса исходных модулей
ldconfig - активизировать изменения в файле /etc/ld.so.conf
ldd - показывает динамические библиотеки используемые программой
lint - обнаруживает в C-программах конструкции, которые могут привести к ошибкам во время выполнения, расточительно используют ресурсы или могут снизить мобильность программ
ltrace - трассировка динамических библиотек, программы указанной в параметре
M
make - используется для организации сложных проектов из десятков файлов
Основные опции:
-directory — указывает рабочую директорию;
-makefile — указывает на используемый makefile;
-p — вызывает вывод списка всех установок по умолчанию;
-j3 — установить количество параллельно компилирующих процессов.
memprof - программа для определения утечек памяти в программах и др
mtrace - обработка лога созданного С-функцией mtrace
N
nm - используется для получения различной информации из таблицы имен объектных файлов обычного формата
O
objdump - позволяет получить много информации об объектном файле, а также дизасемблировать его
od - печать дампа файла
P
p2c - транслирует исходный код программы на языке "Pascal" в исходный код на языке "C"
patch - внесение изменений в файл исходя из файла изменений, например:
внесение изменений в текущий каталог из my.patch
patch -p1 < ../my.patch
patch -p1 < my.diff
prof, gprof - получение статистики по времени выполнения каждой функции программы, для использования этой функции, необходимо скомпилировать с ключом -p
R
ranlib - добавление таблицы индексов библиотеки созданной ar в эту же библиотеку
S
SCCS (Source Code Control System) - это набор утилит, предназначенных для управления версиями исходных текстов программ, в состав SCCS входят утилиты admin(1), cdc(1), comb(1), delta(1), get(1), prs(1), rmdel(1), sccsdiff(1), val(1), what(1)
sdb - символьный отладчик (Symbolic Debugger)
shar - создание самораспаковывающихся кодированных архивов для отправки по почте
size - выдает количество байт, занимаемое тремя секциями (.text, .data и .bss) объектного файла обычного формата при загрузке его в память для выполнения
strace - трассировка системных вызовов, осуществляемых программой указанной в параметре
strip - удаляет из объектного файла обычного формата таблицу имен и информацию о номерах строк
sum - расчет контрольной суммы
X
Xdialog - позволяет создавать диалоги в X из скрипта