manpath

title: manpath(1)

text:
# manpath(1)

## НАЗВАНИЕ
manpath - определяет путь поиска справочных страниц

## СИНТАКСИС
manpath [-qgdc?V] [-m система[,...]] [-C файл]

## ОПИСАНИЕ
Если установлена переменная окружения $MANPATH, то manpath просто покажет её значение и выдаст предупреждение. Если нет, то manpath определит подходящий путь поиска иерархии справочных страниц и отобразит результаты.

Список путей поиска (через двоеточие) определяется по данным файла настройки man-db (/etc/man_db.conf) и пользовательского окружения.

## ПАРАМЕТРЫ
-q, --quiet

Не выдавать предупреждения.

-d, --debug

Показывать отладочную информацию.

-c, --catpath

Вывести catpath, а не manpath. После того, как определён manpath, каждый элемент преобразуется в соответствующий catpath.

-g, --global

Вывести manpath, состоящий из всех путей, отмеченных как «глобальные» в файле настройки man-db.

-m система[,...], --systems=система[,...]

Если эта система имеет доступ к иерархиям справочных страниц других операционных систем, то с помощью этого параметра можно включить их в вывод manpath. Чтобы включить иерархии справочных страниц для операционной системы NewOS, укажите -m NewOS. В значении система можно указать несколько названий операционных систем через запятую. Чтобы включить иерархии родной операционной системы, в значение параметра нужно добавить системное название man. Этот параметр заменяет значение переменной окружения $SYSTEM.

-C файл, --config-file=файл

Использовать указанный пользовательский файл настройки вместо значения по умолчанию ~/.manpath.

-?, --help

Показать справочное сообщение и закончить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать информацию о версии.

## ОКРУЖЕНИЕ
MANPATH

Если задана переменная $MANPATH, то manpath выведет её значение, а не будет определять её в процессе работы. О том, как используется эта переменная окружения и поведение по умолчанию, смотрите раздел ПУТЬ ПОИСКА в manpath(5).

SYSTEM

Установка значения переменной окружения $SYSTEM равносильна указанию параметра -m.

## ФАЙЛЫ
/etc/man_db.conf

Файл настройки man-db.

## СМОТРИТЕ ТАКЖЕ
apropos(1), man(1), whatis(1)

## АВТОР

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


whatis

package: man-db

title: whatis(1)

text:
# whatis(1)

## НАЗВАНИЕ
whatis - показывает однострочные описания справочных страниц

## СИНТАКСИС
whatis [-dlv?V] [-r|-w] [-s список] [-m система[,...]] [-M путь] [-L локаль] [-C файл] название ...

## ОПИСАНИЕ
В начале каждой справочной страницы есть её краткое описание. whatis осуществляет поиск в названиях справочных страниц и отображает описания всех страниц, подходящих под название.

В названии могут содержаться шаблоны (-w) или это может быть регулярное выражение (-r). При использовании этих параметров, может потребоваться указывать название в кавычках или экранировать (\) специальные символы для того, чтобы оболочка командной строки не обрабатывала их.

При поиске используются индексные базы данных, которые обновляются с помощью программы mandb. Для обновления баз в зависимости от установки, её можно периодически запускать из задания cron или вручную после установки новых справочных страниц. Чтобы создать текстовую базу данных whatis старого формата из соответствующей индексной базы, выполните команду:

whatis -M manpath -w '*' | sort > manpath/whatis

где manpath — иерархия справочных страниц, например /usr/man.

## ПАРАМЕТРЫ
-d, --debug

Показывать отладочную информацию.

-v, --verbose

Показывать подробные предупреждающие сообщения.

-r, --regex

Рассматривать каждое название как регулярное выражение. Если название совпадает с любой частью имени страницы, то совпадение считается произошедшим. Этот параметр вызывает замедление работы whatis из-за применяемого алгоритма поиска в базе.

-w, --wildcard

Рассматривать каждое название как шаблон, содержащий символы подстановки в стиле интерпретатора командной строки. Для получения совпадения, раскрытое название должно полностью совпадать с именем страницы. Этот параметр вызывает замедление работы whatis из-за применяемого алгоритма поиска в базе.

-l, --long

Не обрезать вывод по ширине терминала. Обычно, вывод обрезается по ширине терминала во избежание проблем с плохо оформленными разделами НАЗВАНИЕ.

-s список, --sections=список, --section=список

Искать только в заданном разделе справочных страниц. В списке перечисляются разделы через двоеточие или запятую. Если в списке указан только номер, например "3", то в выводимый список описаний войдут страницы из разделов "3", "3perl", "3x" и так далее; но если в списке указано расширение, например "3perl", то будут показаны страницы только из раздела справочных страниц с этим расширением.

-m система[,...], --systems=система[,...]

Если система имеет доступ к названиям справочных страниц других операционных систем, то с помощью этого параметра среди них тоже можно осуществлять поиск. Чтобы искать в названиях справочных страниц для операционной системы NewOS, укажите -m NewOS. В значении система можно указать несколько имён операционных систем через запятую. Чтобы включить поиск в именах страниц для родной операционной системы, укажите в значении системное название man. Этот параметр заменяет значение переменной окружения $SYSTEM.

-M путь, --manpath=путь

Задать альтернативный набор каталогов (через двоеточие) иерархии справочных страниц для поиска. По умолчанию, whatis использует переменную окружения $MANPATH, если она существует и не пуста, иначе соответствующий manpath определяется на основе переменной окружения $PATH. Этот параметр подменяет значение переменной окружения $MANPATH.

-L локаль, --locale=локаль

whatis, обычно, определяет текущую локаль с помощью вызова C-функции setlocale(3), которая исследует различные переменные окружения, возможно $LC_MESSAGES и $LANG. Для временной подмены полученного значения, используйте этот параметр, задающий локаль только в whatis. Заметим, что это влияет только непосредственно на поиск страниц. Вывод сообщений программы, например справки, всегда будет выполняться для изначально определённой локали.

-C файл, --config-file=файл

Использовать указанный пользовательский файл настройки вместо значения по умолчанию ~/.manpath.

-?, --help

Показать справочное сообщение и закончить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать информацию о версии.

## КОД ВЫХОДА
0

Успешное выполнение программы.

1

Была показана справка об использовании, произошла синтаксическая ошибка или проблемы в файле настройки.

2

Ошибка при работе.

16

По запросу ничего не найдено.

## ОКРУЖЕНИЕ
SYSTEM

Установка значения переменной окружения $SYSTEM равносильна указанию параметра -m.

MANPATH

Если установлена переменная окружения $MANPATH, то она рассматривается как набор каталогов (через двоеточие) иерархии справочных страниц для использования при поиске. О том, как используется эта переменная окружения и поведение по умолчанию, смотрите раздел ПУТЬ ПОИСКА в manpath(5).

MANWIDTH

Если установлена переменная окружения $MANWIDTH, то её значение используется для определения ширины терминала (смотрите описание параметра --long). Если она не установлена, то ширина терминала вычисляется из значения переменной окружения $COLUMNS и, если доступен, вызова ioctl(2) или устанавливается равной 80 символам, если определить значение не удалось.

## ФАЙЛЫ
/usr/share/man/index.(bt|db|dir|pag)

Традиционный кэш глобальной базы данных index.

/var/cache/man/index.(bt|db|dir|pag)

Соответствующий FHS глобальный кэш базы данных index.

/usr/share/man/.../whatis

Традиционная текстовая база данных whatis.

## СМОТРИТЕ ТАКЖЕ
apropos(1), man(1), mandb(8)

## АВТОР

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db

branch: sisyphus


zsoelim

title: zsoelim(1)

text:
# zsoelim(1)

## НАЗВАНИЕ
zsoelim - выполняет .so запросы для входящих данных roff

## СИНТАКСИС
zsoelim [-CVh] [файл ...]

## ОПИСАНИЕ
zsoelim анализирует параметры файл или, если ничего не указано, строки из стандартного входного потока в виде:

.so <имя файла>

Эти запросы заменяются содержимым указанного файла. Если запрос не может быть удовлетворён, то zsoelim ищет имя_файла.расширение, где .расширение может быть одним из .gz, .Z или .z. Могут поддерживаться другие типы расширений в зависимости от параметров компиляции программы. Если запрос решён с помощью сжатого файла, то данный файл расжимается с помощью соответствующей программы, и результат используется для удовлетворения запроса.

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

## ПАРАМЕТРЫ
-C, --compatible

Данный параметр введён для совместимости с другими программами soelim. Он позволяет использовать для отделения имени файла в .so запросах символы, отличные от пробелов. Так как это является поведением по умолчанию, то данный параметр игнорируется.

-h, --help

Показать справочное сообщение и закончить работу.

-V, --version

Показать информацию о версии.

## СМОТРИТЕ ТАКЖЕ
groff(1), man(1), nroff(1), troff(1)

## АВТОР

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

## ОШИБКИ
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


getent

package: man-pages-ru

title: getent(1)

text:
# getent(1)

## ИМЯ
getent - возвращает записи из библиотек диспетчера службы имён

## ОБЗОР
getent [параметр]... база_данных ключ...

## ОПИСАНИЕ
Команда getent отображает записи из баз данных, поддерживаемых библиотеками диспетчера службы имён (Name Service Switch), которые настраиваются в /etc/nsswitch.conf. Если указан один или более аргументов ключ, то отображаются только записи, совпадающие с заданными ключами. В противном случае, если ключ не указан, то будут показаны все записи (если база данных поддерживает перечисление).

Значение базы данных может быть любым из поддерживаемых библиотекой GNU C:

ahosts

Если ключ не указан, то используются sethostent(3), gethostent(3) и endhostent(3) для перечисления базы данных hosts. Идентично использованию hosts. Если указан один или более ключ, то каждый ключ последовательно передаётся в getaddrinfo(3) с адресным семейством AF_UNSPEC, которая возвращает каждую перечисляемую адресную структуру сокета.

ahostsv4

То же, что и ahosts, но используется адресное семейство AF_INET.

ahostsv6

То же, что и ahosts, но используется адресное семейство AF_INET6. В этом случае при вызове getaddrinfo(3) включается флаг AI_V4MAPPED.

aliases

Если ключ не указан, используется setaliasent(3), getaliasent(3) и endaliasent(3) для перечисления базы данных aliases. Если указан один или более ключ, то каждый ключ последовательно передаётся в getaliasbyname(3) и показывается результат.

ethers

Если указан один или более ключ, то каждый ключ последовательно передаётся в ether_aton(3) и ether_hostton(3), пока не будет возвращён результат, и показывается результат. Перечисление ethers не поддерживается, поэтому ключ обязателен.

group

Если ключ не указан, используется setgrent(3), getgrent(3) и endgrent(3) для перечисления базы данных group. Если указан один или более ключ, то каждый числовой ключ передаётся в getgrgid(3) и каждый не числовой ключ в getgrnam(3) и показывается результат.

gshadow

Если ключ не указан, используется setsgent(3), getsgent(3) и endsgent(3) для перечисления базы данных gshadow. Если указан один или более ключ, то каждый ключ последовательно передаётся в getsgnam(3) и показывается результат.

hosts

Если ключ не указан, используется sethostent(3), gethostent(3) и endhostent(3) для перечисления базы данных hosts. Если указан один или более ключ, то каждый ключ последовательно передаётся в gethostbyaddr(3) или gethostbyname2(3), в зависимости от результата вызова inet_pton(3), определяющего, является ли ключ адресом IPv6 или IPv4, и показывается результат.

initgroups

Если указан один или более ключ, то каждый ключ последовательно передаётся в getgrouplist(3) и показывается результат. Перечисление initgroups не поддерживается, поэтому ключ обязателен.

netgroup

Если указан один ключ, то он передаётся в setnetgrent(3) и, с помощью getnetgrent(3), отображается полученная строковая тройка (hostname, username, domainname). В противном случае могут быть указаны три ключа, которые рассматриваются как hostname, username и domainname для поиска имени netgroup посредством innetgr(3). Перечисление netgroup не поддерживается, поэтому должен быть указан либо один, либо три ключа.

networks

Если ключ не указан, используется setnetent(3), getnetent(3) и endnetent(3) для перечисления базы данных networks. Если указан один или более ключ, то каждый числовой ключ передаётся в getnetbyaddr(3) и каждый не числовой ключ в getnetbyname(3) и показывается результат.

passwd

Если ключ не указан, используется setpwent(3), getpwent(3) и endpwent(3) для перечисления базы данных passwd. Если указан один или более ключ, то каждый числовой ключ передаётся в getpwuid(3) и каждый не числовой ключ в getpwnam(3) и показывается результат.

protocols

Если ключ не указан, используется setprotoent(3), getprotoent(3) и endprotoent(3) для перечисления базы данных protocols. Если указан один или более ключ, то каждый числовой ключ передаётся в getprotobynumber(3) и каждый не числовой ключ в getprotobyname(3) и показывается результат.

rpc

Если ключ не указан, используется setrpcent(3), getrpcent(3) и endrpcent(3) для перечисления базы данных rpc. Если указан один или более ключ, то каждый числовой ключ передаётся в getrpcbynumber(3) и каждый не числовой ключ в getrpcbyname(3) и показывается результат.

services

Если ключ не указан, используется setservent(3), getservent(3) и endservent(3) для перечисления базы данных services. Если указан один или более ключ, то каждый числовой ключ передаётся в getservbynumber(3) и каждый не числовой ключ в getservbyname(3) и показывается результат.

shadow

Если ключ не указан, используется setspent(3), getspent(3) и endspent(3) для перечисления базы данных shadow. Если указан один или более ключ, то каждый ключ последовательно передаётся в getspnam(3) и показывается результат.

## ПАРАМЕТРЫ
-s служба, --service служба

Заменить все базы данных с указанной службой (начиная с glibc 2.2.5).

-s база_данных:служба, --service база_данных:служба

Заменить только указанные базы данных с указанной службой. Параметр может указываться несколько раз, но будет использоваться только последняя служба для каждой базы данных (начиная с glibc 2.4).

-i, --no-idn

Отключить кодировку IDN в поиске ahosts/getaddrinfo(3) (начиная с glibc-2.13).

-?, --help

Показать справку по использованию и завершить работу.

--usage

Показать краткую справку по использованию и завершить работу.

-V, --version

Показать номер версии, лицензию и уведомление о гарантиях для getent.

## КОД РЕЗУЛЬТАТА
Программа getent может возвращать один из следующих кодов завершения:

0

Команда успешно выполнена.

1

Отсутствуют аргументы или неизвестная база данных.

2

Один или более указанных ключей невозможно найти в базе данных.

3

Перечисление не поддерживается в этой базе данных.

## СМОТРИТЕ ТАКЖЕ
nsswitch.conf(5)


iconv

title: iconv(1)

text:
# iconv(1)

## ИМЯ
iconv - преобразует текст из одной кодировки в другую

## ОБЗОР
iconv [параметры] [-f начальная_кодировка] [-t конечная_кодировка] [входной_файл]…

## ОПИСАНИЕ
Программа iconv читает текст в одной кодировке и выдаёт его в другой кодировке. Если входной файл не указан, или если как имя указана черта (-), то iconv читает данные со стандартного ввода. Если выходной файл не указан, то iconv осуществляет запись в стандартный вывод.

Если начальная_кодировка не задана, то по умолчанию используются данные о кодировке текущей локали. Если конечная_кодировка не задана, то по умолчанию используются данные о кодировке текущей локали.

## ПАРАМЕТРЫ
-f начальная_кодировка, --from-code=начальная_кодировка

Использовать начальную_кодировку для входных данных.

-t конечная_кодировка, --to-code=конечная_кодировка

Использовать конечную_кодировку для выходных данных.

Если в конечную_кодировку добавлена строка //IGNORE, то символы, которые невозможно преобразовать, отбрасываются и после преобразования выводится ошибка.

Если в конечную_кодировку добавлена строка //TRANSLIT, то при необходимости и возможности символы будут транслитерироваться. Это означает, что когда символ невозможно представить в конечной кодировке, он может быть приблизительно преобразован в один из похожих символов. Символы, которые отсутствуют в конечной кодировке и их невозможно транслитерировать, в выводе заменяются на знак вопроса (?).

-l, --list

Вывести все известные кодировки символов.

-c

Отбрасывать символы, которые невозможно преобразовать, а не прекращать работу при обнаружении такого символа.

-o файл_результата, --output=файл_результата

Использовать файл_результата для вывода.

-s, --silent

Параметр игнорируется, предоставляется только для совместимости.

--verbose

Выводить информацию о ходе работы в стандартный поток ошибок при обработке нескольких файлов.

-?, --help

Показать справку по использованию и завершить работу.

--usage

Показать краткую справку по использованию и завершить работу.

-V, --version

Показать номер версии, лицензию и уведомление о гарантиях для iconv.

## КОД ВЫХОДА
При успешном выполнении возвращается 0, при ошибках возвращается ненулевое значение.

## ОКРУЖЕНИЕ
Для преобразования между кодировками программа iconv использует функцию iconv(3), которая, в свою очередь, использует модули gconv (динамически загружаемые общие библиотеки). Перед вызовом iconv(3) программа iconv сначала должна разместить дескриптор преобразования с помощью iconv_open(3). На работу последней функции влияет настройка переменной окружения GCONV_PATH:

- Если GCONV_PATH отсутствует, то iconv_open(3) загружает системный файл кэша настроек модуля gconv, созданного iconvconfig(8) и затем, на основе настройки, загружает модули gconv, необходимые для выполнения преобразования. Если системный файл кэша настроек модуля gconv недоступен, то используется системный файл настроек модуля gconv.

- Если GCONV_PATH задана (список путей через двоеточие), то системный файл кэша настроек модуля gconv не используется. Вместо него iconv_open(3) пытается загрузить файлы настройки сначала из каталогов в GCONV_PATH в порядке, заданном в системном файле настроек по умолчанию модуля gconv. Если каталог не содержит файл настройки модуля gconv, все модули gconv, которые он может содержать, игнорируются. Если каталог содержит файл настройки модуля gconv и определённый им модуль, требуемый для этого преобразования, доступен в каталоге, то необходимый модуль загружается из этого каталога; используется первый подходящий модуль, найденный в GCONV_PATH. Это позволяет пользователям использовать свои модули и даже заменять системные модули, указывая такие модули в каталогах GCONV_PATH.

## ФАЙЛЫ
/usr/lib/gconv

Обычный путь по умолчанию модуля gconv.

/usr/lib/gconv/gconv-modules

Обычный файл настройки по умолчанию модуля gconv.

/usr/lib/gconv/gconv-modules.cache

Обычный путь кэша настроек модуля gconv.

## СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001.

## ПРИМЕР
Преобразует текст из кодировки ISO 8859-15 в UTF-8:

```
$ iconv -f ISO-8859-15 -t UTF-8 < input.txt > output.txt
```

В следующем примере выполняется преобразование из UTF-8 в ASCII с транслитерацией где возможно:

```
$ echo abc ß α € àḃç | iconv -f UTF-8 -t ASCII//TRANSLIT
abc ss ? EUR abc
```

## СМОТРИТЕ ТАКЖЕ
locale(1), uconv(1), iconv(3), nl_langinfo(3), charsets(7), iconvconfig(8)


intro

title: intro(1)

summary: введение в пользовательские команды

text:
# intro(1)

## ИМЯ
intro - введение в пользовательские команды

## ОПИСАНИЕ
В разделе 1 справочного руководства описываются пользовательские команды и инструменты, например, программы управления файлами, командные оболочки, компиляторы, веб-браузеры, программы просмотра и редактирования файлов и изображений и т.п.

## ЗАМЕЧАНИЯ
Linux является одной из разновидностей UNIX, и в первом приближении, все пользовательские команды для UNIX точно также работают в Linux (а также во FreeBSD и в большом количестве других UNIX-подобных систем).

В Linux существуют графические интерфейсы пользователя (GUI), где вы можете выполнить необходимую работу простым указанием и перетаскиванием без предварительного прочтения большого объёма документации. Но традиционное окружение UNIX — это интерфейс командной строки (CLI), где вы вводите команды, чтобы сказать компьютеру о том, что нужно сделать. Такой подход является более быстрым и обеспечивает больше возможностей, но требует знания команд. Ниже даётся минимум, который поможет сделать первые шаги.

### Login
Чтобы начать работу, вы должны сперва открыть сеанс, указав имя пользователя и пароль. Программа login запускает для вас оболочку (shell, командный интерпретатор). В случае, если процедура входа происходит в графическом режиме, вы увидите экран с меню и значками, и с помощью мыши сможете запустить командный интерпретатор в окне. Смотрите также xterm(1).

### Командный интерпретатор
Здесь можно вводить команды для shell (оболочки) — командного интерпретатора. Он не является каким-то встроенным средством — это просто программа, и вы можете её изменить. Каждый имеет свой любимый командный интерпретатор. Стандартное имя — sh. Смотрите также ash(1), bash(1), chsh(1), csh(1), dash(1), ksh(1), zsh(1).

Сеанс может выглядеть как:

```
knuth login: aeb
Password: ********
$ date
Tue Aug  6 23:50:44 CEST 2002
$ cal

     August 2002
Su Mo Tu We Th Fr Sa

             1  2  3

 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
$ ls
bin  tel
$ ls -l
total 2
drwxrwxr-x   2 aeb       1024 Aug  6 23:51 bin
-rw-rw-r--   1 aeb         37 Aug  6 23:52 tel
$ cat tel
maja    0501-1136285
peter   0136-7399214
$ cp tel tel2
$ ls -l
total 3
drwxr-xr-x   2 aeb       1024 Aug  6 23:51 bin
-rw-r--r--   1 aeb         37 Aug  6 23:52 tel
-rw-r--r--   1 aeb         37 Aug  6 23:53 tel2
$ mv tel tel1
$ ls -l
total 3
drwxr-xr-x   2 aeb       1024 Aug  6 23:51 bin
-rw-r--r--   1 aeb         37 Aug  6 23:52 tel1
-rw-r--r--   1 aeb         37 Aug  6 23:53 tel2
$ diff tel1 tel2
$ rm tel1
$ grep maja tel2
maja    0501-1136285
$
```

Здесь для завершения сеанса нажали Control-D.

Символ $ здесь является приглашением к вводу команды — таким способ интерпретатор показывает, что он готов к выполнению следующей команды. Вид приглашения может быть настроен многими способами, и может включать имя пользователя, машины, текущий каталог, время и т. д. Например, выполнение PS1="What next, master? " изменит приглашение на то, что мы ввели.

Выше мы видели, что есть такие команды как date (которая выдаёт дату и время) и cal (которая выдаёт календарь).

Команда ls выдаёт список содержимого текущего каталога — показывает какие файлы у вас есть. С параметром -l эта команда выдаёт длинный список, который включает владельца, размер и дату файла, а также права доступа на чтение и/или изменение файла. Например, файл "tel" имеет размер в 37 байт, владелец файла — пользователь aeb, а права доступа такие, что владелец может читать и писать в этот файл, а другие могут только читать его. Владелец и права доступа могут быть изменены командами chown и chmod.

Команда cat показывает содержимое файла. (Имя команды является аббревиатурой слов «concatenate and print» (соединить и напечатать): все файлы, заданные как параметры этой команды, будут соединены в один и отправлены на «стандартный вывод» (смотрите stdout(3)), которым в данном случае является экран терминала.)

Команда cp (от слова «copy», копировать) копирует файл.

А вот команда mv (от слова «move», переместить) только переименовывает его.

Команда diff показывает различия между двумя файлами. В примере, который дан выше, она ничего не выдаёт, потому что различий нет.

Команда rm (от слова "remove") удаляет файл и будьте осторожны! Он пропадает. Нет никакой корзины для удалённых файлов. Удалённые файлы будут потеряны.

Команда grep (от "g/re/p") ищет указанные строки в одном или нескольких файлах. В примере команда ищет телефонный номер Maja.

### Пути и текущий каталог
Файлы располагаются в большом дереве, файловой иерархии. Каждый файл имеет pathname (полный путь), описывающий путь от корня дерева (который имеет имя /) до данного файла. Пример полного пути: /home/aeb/tel. Постоянное использование полного пути может быть не рационально, и имя файла в текущем каталоге может быть сокращено до последнего компонента. Так, /home/aeb/tel может быть сокращено до tel, если текущим каталогом является каталог /home/aeb.

Команда pwd показывает имя текущего каталога.

Команда cd изменяет текущий каталог.

Попробуйте выполнить команды cd и pwd, и попробуйте вызвать cd так: «cd», «cd .», «cd ..», «cd /» и «cd ~».

### Каталоги
Команда mkdir создаёт новый каталог.

Команда rmdir удаляет каталог, если он пустой, в противном случае выдаёт ошибку.

Команда find (с несколько причудливым синтаксисом) ищет файлы с указанным именем или другими свойствами Например, «find -name tel» будет искать файл tel начиная с указанного каталога (который имеет имя .). А команда «find / -name tel» будет делать тоже самое, но начиная с корневого каталога дерева файлов. Поиск по многогигабайтному диску займёт много времени, и, возможно, лучше использовать команду locate(1).

### Диски и файловые системы
Команда mount подключает файловую систему, найденную на каком-либо диске (или дискете, компакт-диске и т.д.) к основной иерархии файловой системы. А команда umount отключает её. Команда df скажет вам как много осталось свободного пространства на вашем диске.

### Процессы
В системах UNIX многие пользовательские и системные процессы работают одновременно. Некоторые запущены в приоритетном режиме (foreground), другие в фоновом режиме (background). Команда ps покажет вам какие процессы активны и какие номера они имеют. Команда kill позволяет вам освободиться от них. Эта команда, запущенная без параметров, посылает процессу дружественное предложение: завершай работу. А если за командой «kill -9» следует номер процесса, то этот процесс будет немедленно уничтожен. Процессы приоритетного режима часто могут быть завершены по нажатию Control-C.

### Получение информации
Существуют тысячи команд, каждая из которых имеет множество параметров. Традиционно, команды документируются в справочных страницах (man pages, таких как эта), так что команда "man kill" покажет вам документ, в котором описывается использование команды "kill" (а "man man" — документ, где описывается использование команды "man"). Программа man выводит текст через пейджер (pager), обычно less. Нажмите пробел, чтобы перейти к следующей странице или q для выхода.

Ссылки на документацию в man-страницах указываются в виде имени и номера раздела, например man(1). Справочные страницы содержат краткое описание и позволяют вам быстро найти некоторые забытые детали работы. Для новичков существуют тексты введений с большим количеством примеров и разъяснений.

Большое количество программного обеспечения GNU/FSF предоставляется вместе с файлами info. Введите команду «info info», чтобы получить начальное представление об использовании программы info.

Специализированные темы часто описываются в документах HOWTO. Загляните в каталог /usr/share/doc/howto, и используйте браузер для просмотра, если вы нашли там нужные HTML-файлы.

## СМОТРИТЕ ТАКЖЕ
ash(1), bash(1), chsh(1), csh(1), dash(1), ksh(1), locate(1), login(1), man(1), xterm(1), zsh(1), wait(2), stdout(3), man-pages(7), standards(7)


ldd

title: ldd(1)

text:
# ldd(1)

## ИМЯ
ldd - выдаёт список зависимостей от общих объектов

## ОБЗОР
ldd [параметр]… файл…

## ОПИСАНИЕ
Программа ldd выдаёт список общих объектов (общих библиотек), которые требуются для каждой из заданных в командной строке программы или общего объекта. Пример использования и результат работы:

```
$ ldd /bin/ls

        linux-vdso.so.1 (0x00007ffcc3563000)

        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f87e5459000)

        libcap.so.2 => /lib64/libcap.so.2 (0x00007f87e5254000)

        libc.so.6 => /lib64/libc.so.6 (0x00007f87e4e92000)

        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f87e4c22000)

        libdl.so.2 => /lib64/libdl.so.2 (0x00007f87e4a1e000)

        /lib64/ld-linux-x86-64.so.2 (0x00005574bf12e000)

        libattr.so.1 => /lib64/libattr.so.1 (0x00007f87e4817000)

        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f87e45fa000)
```

Обычно, ldd вызывает стандартный динамический компоновщик (смотрите ld.so(8)), установив значение переменной окружения LD_TRACE_LOADED_OBJECTS в 1. Это заставляет компоновщик просмотреть динамические зависимости программы и найти (согласно правилам, описанным в ld.so(8)) и загрузить объекты, удовлетворяющие этим зависимостям. Для каждой зависимости ldd показывает расположение подошедшего объекта и адрес (шестнадцатеричный) загрузки (общие зависимости linux-vdso и ld-linux являются специальными; смотрите vdso(7) и ld.so(8)).

### Безопасность
Однако заметим, что при определённых условиях (например, в программе указан интерпретатор ELF не ld-linux.so) некоторые версии ldd могут попытаться получить информацию о зависимостях посредством прямого запуска программы,что может привести к выполнению какого угодно кода, указанного в интерпретаторе ELF программы и, возможно, выполнению самой программы (до glibc версии 2.27 так, например, поступала авторская реализация ldd, хотя в большинстве дистрибутивов содержалась изменённая версия, которая так не делала).

Поэтому никогда не запускайте ldd для недоверенных исполняемых файлов, так как это может привести к выполнению произвольного кода. Безопасной альтернативой при работе с недоверенными исполняемыми файлами является команда:

```
$ objdump -p /путь/к/программе | grep NEEDED
```

Однако заметим, что эта альтернатива показывает только непосредственные зависимости исполняемого файла, а ldd показывает всё его дерево зависимостей.

## ПАРАМЕТРЫ
--version

Выдать номер версии ldd.

-v, --verbose

Выдать всю информацию, включая, например, информацию о версии символов.

-u, --unused

Выдать неиспользуемые явные зависимости. (Начиная с glibc 2.3.4.)

-d, --data-relocs

Выполнить перемещения и показать все отсутствующие объекты (только для ELF).

-r, --function-relocs

Выполнить перемещения и для объектов данных и для функций, и показать все отсутствующие объекты или функции (только для ELF).

--help

Выдать справку по использованию.

## ДЕФЕКТЫ
ldd не работает с динамическими библиотеками в формате a.out.

ldd не работает с некоторыми очень старыми a.out программами, которые были скомпилированы до добавления поддержки ldd в компиляторы. Если вы используете ldd для одной из таких программ, то будет предпринята попытка выполнить программу с argc = 0, и результаты будут непредсказуемы.

## СМОТРИТЕ ТАКЖЕ
pldd(1), sprof(1), ld.so(8), ldconfig(8)


locale

title: locale(1)

summary: выдаёт информацию о локали

text:
# locale(1)

## ИМЯ
locale - выдаёт информацию о локали

## ОБЗОР

```
locale [параметр]
locale [параметр] -a
locale [параметр] -m
locale [параметр] имя…
```

## ОПИСАНИЕ
Команда locale выдаёт в стандартный вывод информацию о текущей или всех локалях.

При запуске без аргументов locale выводит настройки текущей локали по каждой категории локали (смотрите locale(5)) в зависимости от настроек переменных окружения, которые управляют локалью (смотрите locale(7)). Значения для переменных, установленных из окружения, печатаются без двойных кавычек; предполагается, что кавычки содержатся в самих значениях.

Если указан параметр -a или -m (или их длинные эквиваленты), то выполняется следующее:

-a, --all-locales

Выдаётся список всех доступных локалей. С параметром -v в вывод добавляются метаданные LC_IDENTIFICATION по каждой выводимой локали.

-m, --charmaps

Выдаются доступные кодировки (charmaps, файлы описаний наборов символов). Чтобы посмотреть текущую кодировку локали, используйте locale -c charmap.

Команде locale также можно передать один или более аргументов: имена ключевых слов локали (например, date_fmt, ctype-class-names, yesexpr или decimal_point) или категории локали (например, LC_CTYPE или LC_TIME). Для каждого аргумента отображается следующее:

- Для ключевого слова локали — значение этого ключевого слова.

- Для категории локали — значения всех ключевых слов в этой категории.

При указании аргументов доступны следующие параметры:

-c, --category-name

Для аргумента имени категории, выводится имя категории локали в отдельной строке перед списком значений ключевых слов этой категории.

Для аргумента имени ключевого слова, выводится имя категории локали для этого ключевого слова в отдельной строке перед значением ключевого слова.

Этот параметр повышает читаемость при указании нескольких аргументов. Его можно указывать совместно с параметром -k.

-k, --keyword-name

Для каждого ключевого слова при отображении значений также выводится имя этого ключевого слова; формат вывода:

ключевое слово="значение"

Команда locale также имеет следующие параметры:

-v, --verbose

Отобразить дополнительную информацию при некоторых комбинациях параметров командной строки и аргументов.

-?, --help

Показать справку по параметрам командной строки и аргументам и завершить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать версию программы и выйти.

## ФАЙЛЫ
/usr/lib/locale/locale-archive

Обычный путь по умолчанию для расположения архива локалей.

/usr/share/i18n/locales

Обычный путь по умолчанию для файлов определений локалей.

## СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008.

## ПРИМЕР

```
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
$ locale date_fmt
%a %b %e %H:%M:%S %Z %Y
$ locale -k date_fmt
date_fmt="%a %b %e %H:%M:%S %Z %Y"
$ locale -ck date_fmt
LC_TIME
date_fmt="%a %b %e %H:%M:%S %Z %Y"
$ locale LC_TELEPHONE
+%c (%a) %l
(%a) %l
11
1
UTF-8
$ locale -k LC_TELEPHONE
tel_int_fmt="+%c (%a) %l"
tel_dom_fmt="(%a) %l"
int_select="11"
int_prefix="1"
telephone-codeset="UTF-8"
```

В следующем примере компилируется специализированная локаль из каталога ./wrk с помощью утилиты localedef(1) в каталоге $HOME/.locale, затем тестируется результат командой date(1), а потом устанавливается переменные окружения LOCPATH и LANG в файле оболочки профиля для того, чтобы специализированная локаль была задействована в последующих сеансах пользователя:

```
$ mkdir -p $HOME/.locale
$ I18NPATH=./wrk/ localedef -f UTF-8 -i fi_SE $HOME/.locale/fi_SE.UTF-8
$ LOCPATH=$HOME/.locale LC_ALL=fi_SE.UTF-8 date
$ echo "export LOCPATH=\$HOME/.locale" >> $HOME/.bashrc
$ echo "export LANG=fi_SE.UTF-8" >> $HOME/.bashrc
```

## СМОТРИТЕ ТАКЖЕ
localedef(1), charmap(5), locale(5), locale(7)


localedef

title: localedef(1)

summary: компилирует файлы определения локали

text:
# localedef(1)

## ИМЯ
localedef - компилирует файлы определения локали

## ОБЗОР
localedef [параметры] путь_результата

localedef --add-to-archive [параметры] путь_скомпилированного

localedef --delete-from-archive [параметры] имя_локали …

localedef --list-archive [параметры]

localedef --help

localedef --usage

localedef --version

## ОПИСАНИЕ
Программа localedef читает заданные файлы карты символов (charmap) и входные файлы, компилирует их в двоичную форму для быстрого доступа из функций локали библиотеки C (setlocale(3), localeconv(3) и т. д.) и помещает результат в путь_результата.

Аргумент путь_результата рассматривается следующим образом:

- Если путь_результата содержит косую черту («/»), то он считается именем каталога для хранения создаваемых определений. В этом случае создаётся отдельный файл результата для каждой категории локали (LC_TIME, LC_NUMERIC и так далее).

- Если указан параметр --no-archive, то путь_результата считается именем подкаталога в /usr/lib/locale, где размещены скопированные файлы для каждой категории.

- В противном случае, путь_результата считается именем локали и компилируемые данные локали добавляются в файл архива /usr/lib/locale/locale-archive. Файл архива — это файл отображаемый в память, который содержит все локали системы; он используется всеми локализованными программами, если не установлена переменная окружения LOCPATH.

В любом случае, localedef прекращает работу, если каталог, в который она пытается записать файлы локали, ещё не был создан.

Если файл карты символов не указан, то по умолчанию используется значение ANSI_X3.4-1968 (для ASCII). Если не указан входной файл, или если вместо него указан перенос (-), то localedef читает данные из стандартного входного потока.

## ПАРАМЕТРЫ

### Параметры действия-выбора
Некоторые параметры указывают localedef сделать что-то другое, а не компилировать определения локали. Одновременно может быть указан только один такой параметр.

--add-to-archive

Добавить каталоги путь_скомпилированного файл архива локалей. Каталоги должны быть созданы ранее запускавшимся localedef с параметром --no-archive.

--delete-from-archive

Удалить заданную локаль из файла архива локалей.

--list-archive

Показать список локалей, содержащихся в файле архива локалей.

### Другие параметры
Следующие параметры имеют значение только для определённых операций; обычно, по названию понятно для каких. Заметим, что параметры -f и -c работают не так как можно ожидать, то есть -f это не тоже самое что --force.

-f charmapfile, --charmap=charmapfile

Задаёт файл, которым определяется набор символов, используемый в файле входных данных. Если значение файл_карты_символов содержит косую черту («/»), то оно рассматривается как название карты символов. В противном случае, файл ищется в текущем каталоге и каталоге по умолчанию для карт символов. Если установлена переменная окружения I18NPATH, то после текущего каталога также просматриваются $I18NPATH/charmaps/ и $I18NPATH/. Каталог по умолчанию для карт символов можно увидеть в выводе localedef --help.

-i inputfile, --inputfile=inputfile

Задаёт файл определения локали для компиляции. Файл ищется в текущем каталоге и каталоге по умолчанию для файлов определения локалей. Если установлена переменная окружения I18NPATH, то после текущего каталога также просматриваются $I18NPATH/locales/ и $I18NPATH. Каталог по умолчанию для файлов определения локалей можно увидеть в выводе localedef --help.

-u repertoirefile, --repertoire-map=repertoirefile

Из файла_набора читаются отображения символических имён в кодовые точки Юникода. Если значение файла_набора содержит косую черту («/»), то оно рассматривается имя пути карты набора (repertoire map). В противном случае, файл ищется в текущем каталоге и каталоге по умолчанию для карт наборов. Если установлена переменная окружения I18NPATH, то после текущего каталога также просматриваются $I18NPATH/repertoiremaps/ и $I18NPATH. Каталог по умолчанию для карт наборов можно увидеть в выводе localedef --help.

-A aliasfile, --alias-file=aliasfile

Использовать файл_псевдонимов для поиска псевдонимов имён локалей. Для файла псевдонимом нет файла по умолчанию.

-c, --force

Записывать файлы результата даже, если есть предупреждения при генерации входных данных.

-v, --verbose

Генерировать дополнительные предупреждения об ошибках, которые обычно игнорируются.

--big-endian

Генерировать вывод с прямым порядком байт (big endian).

--little-endian

Генерировать вывод с обратным порядком байт (little endian).

--no-archive

Не использовать файл архива локалей, вместо этого создать путь_результата в качестве подкаталога в текущем каталоге для файла архива локалей, и создать в нём отдельные файлы результата для категорий локали. Это позволяет не перезаписывать системный архив локалей пользовательскими локалями, созданными с помощью localedef.

--no-hard-links

Не создавать жёсткие ссылки между установленными локалями.

--no-warnings=warnings

Разделенный запятыми список отключённых предупреждений; поддерживаемые предупреждения: ascii и intcurrsym.

--posix

Жёстко следовать POSIX. Подразумевает --verbose. Этот параметр, в настоящее время, больше ничего не делает. Соответствие POSIX предполагается, если установлена переменная окружения POSIXLY_CORRECT.

--prefix=путь

Указывает префикс полного пути к архиву. По умолчанию префикс пуст. Если указать в качестве префикса foo, то архив будет помещён в foo/usr/lib/locale/locale-archive.

--quiet

Не показывать все уведомления и предупреждения; сообщать только о фатальных ошибках.

--replace

Заменить локаль в файле архива локалей. Без этого параметра, если локаль в архиве уже есть, то выдаётся ошибка.

--warnings=warnings

Разделенный запятыми список включённых предупреждений; поддерживаемые предупреждения: ascii и intcurrsym.

-?, --help

Показать справку по использованию и завершить работу. Также выводятся пути по умолчанию, используемые в localedef.

--usage

Показать краткую справку по использованию и завершить работу.

-V, --version

Показать номер версии, лицензию и уведомление о гарантиях для localedef.

## КОД РЕЗУЛЬТАТА
Программа localedef может возвращать один из следующих кодов завершения:

0

Команда успешно выполнена.

1

Произошла ошибка или предупреждение, файлы результата записаны.

4

Произошла ошибка, результат не записан.

## ОКРУЖЕНИЕ
POSIXLY_CORRECT

Если эта переменная окружения установлена, то предполагается флаг --posix.

I18NPATH

Список каталогов через двоеточие для поиска файлов.

## ФАЙЛЫ
/usr/share/i18n/charmaps

Обычный путь по умолчанию для файлов карт символов.

/usr/share/i18n/locales

Обычный путь по умолчанию для файлов определений локалей.

/usr/share/i18n/repertoiremaps

Обычный путь по умолчанию для файлов карт набора.

/usr/lib/locale/locale-archive

Обычный путь по умолчанию для расположения архива локалей.

/usr/lib/locale

Обычный путь по умолчанию для скомпонованных файлов данных отдельных локалей.

outputpath/LC_ADDRESS

Файл результата содержит информацию о формате адресов и географических элементах.

outputpath/LC_COLLATE

Файл результата содержит информацию о правилах сравнения строк.

outputpath/LC_CTYPE

Файл результата содержит информацию о классах символов.

outputpath/LC_IDENTIFICATION

Файл результата содержит метаданные о локали.

outputpath/LC_MEASUREMENT

Файл результата содержит информацию о единицах измерения (метрическая или система мер США).

outputpath/LC_MESSAGES/SYS_LC_MESSAGES

Файл результата содержит информацию о языке, на котором должны выводиться сообщения и как выглядят ответы «да» и «нет».

outputpath/LC_MONETARY

Файл результата содержит информацию о правилах написания денежных единиц.

outputpath/LC_NAME

Файл результата содержит информацию об описании персон.

outputpath/LC_NUMERIC

Файл результата содержит информацию о правилах написания не денежных числовых единиц.

outputpath/LC_PAPER

Файл результата содержит информацию о параметрах, относящихся к размерам бумаги.

outputpath/LC_TELEPHONE

Файл результата содержит информацию о форматах, используемых в телефонных службах.

outputpath/LC_TIME

Файл результата содержит информацию о форматах значений даты и времени.

## СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2008.

## ПРИМЕР
Компилирование файлов локали для финских пользователей с набором символов UTF-8 и добавление к архиву локалей по умолчанию с именем fi_FI.UTF-8:

```
localedef -f UTF-8 -i fi_FI fi_FI.UTF-8
```

В следующем примере делается тоже самое, но файлы генерируются в каталоге fi_FI.UTF-8, который затем можно использовать в программах, установив переменную окружения LOCPATH равной текущему каталогу (заметим, что последний аргумент должен содержать косую черту):

```
localedef -f UTF-8 -i fi_FI ./fi_FI.UTF-8
```

## СМОТРИТЕ ТАКЖЕ
locale(1), charmap(5), locale(5), repertoiremap(5), locale(7)


memusage

title: memusage(1)

text:
# memusage(1)

## ИМЯ
memusage - исследует использование памяти программы

## ОБЗОР
memusage [параметры]… программа [параметры_программы]…

## ОПИСАНИЕ
Программа memusage представляет собой сценарий bash, который описывает использование памяти программой. Сценарий загружает библиотеку libmemusage.so в окружение вызывающего (через переменную окружения LD_PRELOAD, смотрите ld.so(8)). Библиотека libmemusage.so отслеживает распределение памяти путём перехвата вызовов malloc(3), calloc(3), free(3) и realloc(3); при необходимости, также могут быть перехвачены вызовы mmap(2), mremap(2) и munmap(2).

memusage может выводить собранные данные в текстовом виде, также может использовать memusagestat(1) (смотрите вариант -р далее) для того, чтобы создать файл PNG, содержащий графическое представление собранных данных.

### Сводка использование памяти
Выводимая memusage строка "сводка использование памяти" содержит три поля:

heap total

Сумма аргументов size всех вызовов malloc (3), результат аргументов (nmemb*size) всех вызовов calloc(3) и сумма аргументов length всех вызовов mmap (2) . В случае realloc (3) и mremap (2), если новый размер блока адресов больше, чем в предыдущий размер, добавляется сумма всех таких различий (новый размер минус старый размер).

heap peak

Максимальное значение всех аргументов size у malloc(3), все произведения nmemb*size у calloc(3), все аргументы size у realloc(3), аргументы length у mmap(2) и аргументы new_size у mremap(2).

stack peak

Перед первым вызовом любой отслеживаемой функции сохраняется адрес указателя стека (базовый указатель стека). После каждого вызова функции читается текущий адрес указателя стека и вычисляет разница с базовым указателем стека. Максимальное значение среди вычитаний является пиком стека.

Сразу за строкой итога в таблице для каждой перехваченной функции показывается количество вызовов, общее количество выделенной и освобождённой памяти и количество вызовов с ошибками. Для realloc(3) и mremap(2) также есть поле «nomove», показывающее переразмещения, у которых изменился адрес блока, и поле «dec», показывающее переразмещения, у которых уменьшился размер блока. Для realloc(3) в дополнительном поле «free» показываются переразмещения, которые были вызваны освобождением блока (т. е., размер переразмещения был равен 0).

Таблица «realloc/total memory», выводимая memusage, не отражает случаи, где realloc(3) используется для переразмещения блока памяти меньшего размера, чем предыдущий. Это может привести к тому, что сумма всех ячеек «total memory» (кроме «free») будет больше, чем ячейка «free/total memory».

### Гистограмма размеров блоков
«Гистограмма размеров блоков» выдает разбивку адресованных блоков по размерам.

## ПАРАМЕТРЫ
-n имя, --progname=имя

Имя файла профилируемой программы.

-p file, --png=file

Создать изображение в формате PNG и сохранить его в

-d файл, --data=файл

Создать двоичный файл данных и сохранить его в файл.

-u, --unbuffered

Не буферизуйте вывод.

-b size, --buffer=size

Собрать size записей перед тем, как записать их.

--no-timer

Отключить измерение значения указателя стека на основе таймера (SIGPROF).

-m, --mmap

Также трассировать mmap(2), mremap(2) и munmap(2).

-?, --help

Показать справку по использованию и завершить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать информацию о версии и завершить работу.

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

-t, --time-based

По оси X — время (а не количество вызовов функций).

-T, --total

Построить также график общего использования памяти.

--title=название

Использовать название в качестве заголовка графика.

-x size, --x-size=size

Рисовать график шириной в size пикселов.

-y size, --y-size=size

Рисовать график высотой в size пикселов.

## КОД РЕЗУЛЬТАТА
Код завершения работы равен коду выхода профилируемой программы.

## ДЕФЕКТЫ
Сообщения об ошибках доступны по адресу http://www.gnu.org/software/libc/bugs.html

## ПРИМЕР
Ниже показана простая программа, которая переразмещает блок памяти в цикле, который достигает пика до того как размер циклически переразмещаемой памяти достигнет нуля. После компиляции программы и запуска следующих команд график использования памяти программой можно найти в файле memusage.png:

```
$ memusage --data=memusage.dat ./a.out
...
Memory usage summary: heap total: 45200, heap peak: 6440, stack peak: 224

        total calls  total memory  failed calls

 malloc|         1           400             0
realloc|        40         44800             0  (nomove:40, dec:19, free:0)

 calloc|         0             0             0

   free|         1           440
Histogram for block sizes:

  192-207             1   2% ================
...

 2192-2207            1   2% ================

 2240-2255            2   4% =================================

 2832-2847            2   4% =================================

 3440-3455            2   4% =================================

 4032-4047            2   4% =================================

 4640-4655            2   4% =================================

 5232-5247            2   4% =================================

 5840-5855            2   4% =================================

 6432-6447            1   2% ================
$ memusagestat memusage.dat memusage.png
```

### Исходный код программы

```
#include <stdio.h>
#include <stdlib.h>
#define CYCLES 20
int
main(int argc, char *argv[])
{

     int i, j;

     int *p;

     printf("malloc: %zd\n", sizeof(int) * 100);

     p = malloc(sizeof(int) * 100);

     for (i = 0; i < CYCLES; i++) {

         if (i < CYCLES / 2)

             j = i;

         else

             j--;

         printf("realloc: %zd\n", sizeof(int) * (j * 50 + 110));

         p = realloc(p, sizeof(int) * (j * 50 + 100));

         printf("realloc: %zd\n", sizeof(int) * ((j+1) * 150 + 110));

         p = realloc(p, sizeof(int) * ((j + 1) * 150 + 110));

     }

     free(p);

     exit(EXIT_SUCCESS);
}
```

## СМОТРИТЕ ТАКЖЕ
memusagestat(1), mtrace(1) ld.so(8)


memusagestat

title: memusagestat(1)

text:
# memusagestat(1)

## ИМЯ
memusagestat - генерирует график по данным профилирования памяти

## ОБЗОР
memusagestat [параметр]... файл_с_данными [файл_результата]

## ОПИСАНИЕ
Программа memusagestat создаёт файл в формате PNG с графическим представлением данных профилирования памяти из файла datafile; этот файл генерируется с программой memusage(1), запущенной с параметром -d (или --data).

Красной линией на графике показывается использование кучи (выделяемой памяти), а зелёной — использование стека. По оси Х отражается количество вызовов функций работы с памятью (если указан параметр -t) или время.

## ПАРАМЕТРЫ
-o файл, --output=файл

Имя выходного файла.

-s строка, --string=строка

Использовать строку в качестве заголовка графика.

-t, --time

По оси X — время (а не количество вызовов функций).

-T, --total

Также строить график общего потребления памяти.

-x size, --x-size=size

Рисовать график шириной в size пикселов.

-y size, --y-size=size

Рисовать график высотой в size пикселов.

-?, --help

Показать сообщение об использовании и завершить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать информацию о версии и завершить работу.

## ДЕФЕКТЫ
Сообщения об ошибках доступны по адресу http://www.gnu.org/software/libc/bugs.html

## ПРИМЕР
Смотрите memusage(1).

## СМОТРИТЕ ТАКЖЕ
memusage(1), mtrace(1)


mtrace

title: mtrace(1)

summary: трактует журнал трассировки malloc

text:
# mtrace(1)

## ИМЯ
mtrace - трактует журнал трассировки malloc

## ОБЗОР
mtrace [параметр]… [binary] mtracedata

## ОПИСАНИЕ
Программа mtrace представляет собой сценарий Perl и используется для трактовки и вывода в понятном человеку виде журнала трассировки из файла mtracedata, который создаётся mtrace(3). Если указан файл binary, то вывод mtrace также содержит имя файла исходного кода и номера строк соответствующих мест (предполагается, что binary скомпилирован с отладочной информацией).

Подробней о функции mtrace(3) и использовании сценария mtrace смотрите в mtrace(3).

## ПАРАМЕТРЫ
--help

Показать справку по использованию и завершить работу.

--version

Показать информацию о версии и завершить работу.

## ДЕФЕКТЫ
Инструкции по созданию отчетов об ошибках можно найти по адресу http://www.gnu.org/software/libc/bugs.html.

## СМОТРИТЕ ТАКЖЕ
memusage(1), mtrace(3)


pldd

title: pldd(1)

text:
# pldd(1)

## ИМЯ
pldd - отобразить список динамических объектов общего пользования, связанных в процесс

## ОБЗОР

```
pldd pid
pldd option
```

## ОПИСАНИЕ
Команда pldd отображает список динамических объектов общего пользования (DSO), связанных в процесс для указанного идентификатора процесса (PID). Этот список также включает в себя библиотеки, динамически загруженные с помощью dlopen(3).

## ПАРАМЕТРЫ
-?, --help

Показать справку и выйти.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Показать сведения о версии программы и выйти.

## КОД РЕЗУЛЬТАТА
При успешном выполнении pldd завершается с кодом 0. Если указанный процесс не существует, пользователь не имеет прав для доступа к списку общих динамических объектов или не указаны аргументы командной строки, pldd завершается с кодом 1. Если указан неправильный параметр, команда завершается с кодом ошибки 64.

## ВЕРСИИ
pldd доступна в glibc с версии 2.15.

## СООТВЕТСТВИЕ СТАНДАРТАМ
Команда pldd не описана в POSIX.1. В других системах есть похожая команда.

## ЗАМЕЧАНИЯ
Команда

```
lsof -p PID
```

также показывает в выводе общие динамические объекты, связанные с процессом.

Команда info shared в gdb(1) также показывает используется процессом общие библиотеки, что позволяет получить подобную pldd информацию с помощью команды (для процесса с указанным pid):

```
$ gdb -ex "set confirm off" -ex "set height 0" -ex "info shared" \

        -ex "quit" -p $pid | grep '^0x.*0x'
```

## ДЕФЕКТЫ
В glibc с версии 2.19 по 2.29, pldd не работала: висла при запуске. Эта проблема была исправлена в glibc 2.30, и в некоторых дистрибутивах это исправление было добавлено и в старые версии glibc.

## ПРИМЕР

```
$ echo $$               # Показать PID оболочки
1143
$ pldd $$               # Показать объекты, скомпонованные с оболочкой
1143:   /usr/bin/bash
linux-vdso.so.1
/lib64/libtinfo.so.5
/lib64/libdl.so.2
/lib64/libc.so.6
/lib64/ld-linux-x86-64.so.2
/lib64/libnss_files.so.2
```

## СМОТРИТЕ ТАКЖЕ
ldd(1), lsof(1), dlopen(3), ld.so(8)


sprof

title: sprof(1)

text:
# sprof(1)

## ИМЯ
sprof - читает и показывает общие объекты данных профилирования

## ОБЗОР

```
sprof [параметр]… shared-object-path [profile-data-path]
```

## ОПИСАНИЕ
Команда sprof выводит краткий отчёт по профилированию для общего объекта (общей библиотеки), заданного в первом аргументе командной строки. Краткий отчёт по профилированию создан с помощью ранее сгенерированных данных профилирования во втором (необязательном) аргументе командной строки. Если путь данных профилирования отсутствует, то sprof попытается вычислить его используя soname общего объекта и поищет файл с именем <soname>.profile в текущем каталоге.

## ПАРАМЕТРЫ
Следующие параметры командной строки определяют выводимые данные профилирования:

-c, --call-pairs

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

-p, --flat-profile

Сгенерировать плоский профиль всех функций в отслеживаемом объекте, а также количество вызовов и время работы.

-q, --graph

Сгенерировать граф вызовов.

Если ни один из этих параметров не указан, то действием по умолчанию является вывод плоского профиля и графа вызовов.

Доступны следующие дополнительные параметры командной строки:

-?, --help

Показать справку по параметрам командной строки и аргументам и завершить работу.

--usage

Показать короткое сообщение об использовании и завершить работу.

-V, --version

Вывести версию программы и выйти.

## СООТВЕТСТВИЕ СТАНДАРТАМ
Команда sprof является расширением GNU и отсутствует в POSIX.1.

## ПРИМЕР
В следующем примере показано использование sprof. Пример состоит из основной программы, которая вызывает две функции из общего объекта. Вот код основной программы:

```
$ cat prog.c
#include <stdlib.h>
void x1(void);
void x2(void);
int
main(int argc, char *argv[])
{

    x1();

    x2();

    exit(EXIT_SUCCESS);
}
```

Функции x1() и x2() определены в следующем файле исходного кода, который используется для сборки общего объекта:

```
$ cat libdemo.c
#include <unistd.h>
void
consumeCpu1(int lim)
{

    int j;

    for (j = 0; j < lim; j++)
	getppid();
}
void
x1(void) {

    int j;

    for (j = 0; j < 100; j++)
	consumeCpu1(200000);
}
void
consumeCpu2(int lim)
{

    int j;

    for (j = 0; j < lim; j++)
	getppid();
}
void
x2(void)
{

    int j;

    for (j = 0; j < 1000; j++)
	consumeCpu2(10000);
}
```

Соберём общий объект с реальным именем libdemo.so.1.0.1 и soname libdemo.so.1:

```
$ cc -g -fPIC -shared -Wl,-soname,libdemo.so.1 \

        -o libdemo.so.1.0.1 libdemo.c
```

Создадим символьные ссылки на soname библиотеки и имя библиотеки для компоновщика:

```
$ ln -sf libdemo.so.1.0.1 libdemo.so.1
$ ln -sf libdemo.so.1 libdemo.so
```

Скомпилируем основную программу, скомпонуем её с общим объектом и выведем список динамических зависимостей программы:

```
$ cc -g -o prog prog.c -L. -ldemo
$ ldd prog
	linux-vdso.so.1 =>  (0x00007fff86d66000)
	libdemo.so.1 => not found
	libc.so.6 => /lib64/libc.so.6 (0x00007fd4dc138000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fd4dc51f000)
```

Чтобы получить информацию о профилировании общего объекта мы определим переменную окружения LD_PROFILE с soname библиотеки:

```
$ export LD_PROFILE=libdemo.so.1
```

Затем определим переменную окружения LD_PROFILE_OUTPUT с именем каталога куда нужно сохранить результат профилирования и создадим этот каталог, если его ещё нет:

```
$ export LD_PROFILE_OUTPUT=$(pwd)/prof_data
$ mkdir -p $LD_PROFILE_OUTPUT
```

Переменная LD_PROFILE приводит к добавлению результата профилирования в выходной файл, если он уже существует, поэтому убедимся, что не существует каких-либо результатов профилирования:

```
$ rm -f $LD_PROFILE_OUTPUT/$LD_PROFILE.profile
```

Затем запустим программу для получения результата профилирования, которые записывается в файл в каталоге, указанном в LD_PROFILE_OUTPUT:

```
$ LD_LIBRARY_PATH=. ./prog
$ ls prof_data
libdemo.so.1.profile
```

Используем параметр sprof -p для генерации плоского профиля с счётчиками и временем:

```
$ sprof -p libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile
Плоский профиль:
Each sample counts as 0.01 seconds.

  %   cumulative   self              self     total

 time   seconds   seconds    calls  us/call  us/call  name

 60.00      0.06     0.06      100   600.00           consumeCpu1

 40.00      0.10     0.04     1000    40.00           consumeCpu2

  0.00      0.10     0.00        1     0.00           x1

  0.00      0.10     0.00        1     0.00           x2
```

Параметр sprof -q генерирует граф вызовов:

```
$ sprof -q libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile
index % time    self  children    called     name

                0.00    0.00      100/100         x1 [1]
[0]    100.0    0.00    0.00      100         consumeCpu1 [0]
-----------------------------------------------

                0.00    0.00        1/1           <UNKNOWN>
[1]      0.0    0.00    0.00        1         x1 [1]

                0.00    0.00      100/100         consumeCpu1 [0]
-----------------------------------------------

                0.00    0.00     1000/1000        x2 [3]
[2]      0.0    0.00    0.00     1000         consumeCpu2 [2]
-----------------------------------------------

                0.00    0.00        1/1           <UNKNOWN>
[3]      0.0    0.00    0.00        1         x2 [3]

                0.00    0.00     1000/1000        consumeCpu2 [2]
-----------------------------------------------
```

Выше и ниже строки «<UNKNOWN>» представляют идентификаторы, которые находятся вне объекта профилирования (в этом примере они являются экземплярами main()).

Параметр sprof -c генерирует список пар вызовов и количество их появления:

```
$ sprof -c libdemo.so.1 $LD_PROFILE_OUTPUT/libdemo.so.1.profile
<UNKNOWN>                  x1                                 1
x1                         consumeCpu1                      100
<UNKNOWN>                  x2                                 1
x2                         consumeCpu2                     1000
```

## СМОТРИТЕ ТАКЖЕ
gprof(1), ldd(1), ld.so(8)


time

title: time(1)

text:
# time(1)

## ИМЯ
time - подсчитывает время выполнения простой команды или использования ресурсов

## ОБЗОР
time [параметры] команда [аргументы...]

## ОПИСАНИЕ
Программа time запускает указанную команду с заданными аргументами. Когда команда завершается, time выдаёт в стандартный вывод сообщений об ошибках статистическое сообщение об использованном времени при этом запуске. Эта статистика содержит (1) прошедшее реальное время между вызовом и завершением, (2) процессорное время работы в пользовательском пространстве (сумма значений tms_utime и tms_cutime из структуры struct tms, возвращаемой times(2)) и (3) процессорное время работы в системном пространстве (сумма значений tms_stime и tms_cstime из структуры struct tms, возвращаемой times(2)).

Замечание: некоторые командные интерпретаторы (например, bash(1)) имеют встроенную команду time, выводит похожую информацию и, возможно, другие ресурсы. Для работы с настоящей командой вам может потребоваться вызывать её по абсолютному имени (например, /usr/bin/time).

## ПАРАМЕТРЫ
-p

При локали POSIX использовать точный традиционный формат

```
"real %f\nuser %f\nsys %f\n"

```

(с цифрами в секундах), где число целых разрядов в выводе для %f не задаётся, но является достаточным для точного вывода времени и, по крайней мере, разрядов не меньше одного.

## КОД РЕЗУЛЬТАТА
Если команда отработала, то возвращается её код результата (exit status). В противном случае он равен 27, если команда не найдена, 126 — если она найдена, но не может быть вызвана, и некоторому другому отличному от нуля значению (1–125), если произошли какие-либо другие ошибки.

## ОКРУЖЕНИЕ
Переменные LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, LC_NUMERIC и NLSPATH при выводе и форматировании текста. Переменная PATH используется для поиска команды. Остальные — для форматирования и вывода текстового результата.

## ВЕРСИЯ GNU
Ниже дано описание программы GNU time версии 1.7. Несмотря на тоже имя утилиты, GNU выводит большее количество полезной информации, не только об использованном времени, но также и о других ресурсах, таких как память, ввод/вывод и вызовы IPC (если возможно). Вывод создаётся с помощью строки форматирования, которую можно задать с помощью параметра -f или переменной окружения TIME.

По умолчанию строка форматирования имеет вид:

```
%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
```

Если задан параметр -p, то используется переносимый формат вывода:

```
real %e
user %U
sys %S
```

### Строка форматирования
Формат интерпретируется аналогично printf. Обычные символы просто копируются, табуляции, символы новой строки и обратная косая черта изолируются с помощью \t, \n и \\, знак процента указывается как %% и, наконец, % указывает на преобразование следующего за ним символа. Программа time всегда будет добавлять в начало вывода новую строку. Преобразования описаны ниже. Поддерживаются все параметры, имеющиеся в tcsh(1).

Время

%E

Фактическое затраченное время (в формате [часы:]минуты:секунды).

%e

(Нет в tcsh(1).) Фактическое затраченное время (в секундах).

%S

Общее количество секунд времени ЦП, которое процесс провел в режиме ядра.

%U

Общее количество секунд времени ЦП, которое процесс провел в пользовательском режиме.

%P

Процент ЦП, который процесс получил для работы, вычисляется как (%U + %S) / %E.

Память

%M

Максимальный резидентный размер процесса в течении его выполнения в килобайтах.

%t

(Нет в tcsh(1).) Средний резидентный размер процесса в килобайтах.

%K

Средний общий размер использованной процессом памяти (данные+стек+текст) в килобайтах.

%D

Средний размер неразделяемой области данных процесса в килобайтах.

%p

(Нет в tcsh(1).) Средний размер неразделяемого пространства стека процесса в килобайтах.

%X

Средний размер разделяемого пространства кода процесса в килобайтах.

%Z

(Нет в tcsh(1).) Размер системной страницы в байтах. Это значение является постоянным, но может отличаться у разных систем.

%F

Число больших страничных промахов, произошедших при работе процесса. Данные промахи учитываются, если нужную страницу пришлось читать с диска.

%R

Число малых или восстановимых страничных промахов. Данные промахи учитываются для страниц, которые уже считаются некорректными, но не были захвачены другими виртуальными страницами. Таким образом, данные в странице всё ещё достоверны, но требуется обновление системных таблиц.

%W

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

%c

Количество раз, когда для процесса совершалось принудительное переключение контекста (потому что истёк выделенный ему отрезок времени).

%w

Количество ожиданий: сколько раз программа добровольно выполняла переключение контекста, например, на время ожидания завершения операций ввода/вывода.

Ввод/вывод

%I

Количество чтений файловой системы процессом.

%O

Количество записи в файловую систему процессом.

%r

Количество сообщений, принятых процессом из сокета.

%s

Количество сообщений, посланных процессом в сокет.

%k

Количество сигналов, доставленных процессу.

%C

(Нет в tcsh(1).) Имя и аргументы командной строки запущенной команды.

%x

(Нет в tcsh(1).) Код результата выполненной команды.

### Параметры GNU
-f формат, --format=формат

Задать формат вывода, возможно перекрывая формат, указанный в переменной окружения TIME.

-p, --portability

Использовать переносимый формат вывода.

-o файл, --output=файл

Не посылать вывод в stderr, а перезаписать им указанный файл.

-a, --append

(Используется совместно с -o.) Не перезаписывать файл, а дополнять его.

-v, --verbose

Выводить все возможные подробности о работе программы.

-q, --quiet

Не сообщать о ненормальном завершении программы (если команда завершается по сигналу) или ненулевом возвращаемом коде.

### Стандартные параметры GNU
--help

Выдать справку по работе на стандартный вывод и успешно завершить работу.

-V, --version

Выдать информацию о версии на стандартный вывод и успешно завершить работу.

--

Служит для обозначения конца списка параметров.

## ДЕФЕКТЫ
Не все ресурсы могут быть измерены во всех версиях UNIX, поэтому некоторые значения могут быть показаны как нулевые. Отбор измеряемых ресурсов, в основном, проводился по данным, предоставляемым 4.2 или 4.3BSD.

Программа GNU time версии 1.7 пока не локализована. Таким образом, она не удовлетворяет требованиям POSIX.

Имя для переменной окружения TIME выбрано неосмотрительно. Есть вполне распространённая практика для систем, например autoconf(1) или make(1), использовать переменные окружения с именами утилит для замены используемой утилиты. Использование MORE или TIME в качестве параметров программ (вместо путей к программам) рано или поздно приведёт к проблемам.

Кажется неудачным, что -o выполняется перезапись вместо добавления. (То есть параметр -a должен бы использоваться по умолчанию.)

Советы и сообщения об ошибках по GNU time направляйте на bug-time@gnu.org. Указывайте версию time, которую можно узнать, запустив

```
time --version
```

а также операционную систему и компилятор C, который вы использовали.

## СМОТРИТЕ ТАКЖЕ
bash(1), tcsh(1), times(2), wait3(2)


ar

package: man-pages-ru-extra

title: ar(1)

text:
# ar(1)

## НАЗВАНИЕ
ar - создает, модифицирует и извлекает архивы.

## СИНТАКСИС
ar [-X32_64] [-]p[модификатор [имя_компонента_архива] [счётчик]] архив [файл...]

## ОПИСАНИЕ
GNU ar программа создает и модифицирует архивы, а также извлекает компоненты из архива. Архив, это одиночный файл содержащий коллекцию других файлов в особом формате, который делает возможным восстановление оригинальных файлов, которые называются компонентами архива.

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

GNU ar может обслуживать архивы, файлы в которых имеют имена любой длины, однако, в зависимости от того как ar конфигурируется для вашей системы, может быть введено ограничение на длину имени (для совместимости с архивным форматом поддерживаемым другими программами). Если это имеет место, то ограничение обычно составляет 15 символов (обычно для формата a.out) или 16 символов (обычно для формата coff).

ar является бинарной утилитой, потому что архивы этого сорта очень часто используют как библиотеки (libraries) содержащие часто употребляющиеся подпрограммы.

Если вы задаете модификатор s, то ar будет создавать индекс для символов определенных в объектных модулях, содержащихся в архиве. Однажды созданный индекс освежается в архиве, когда ar изменяет содержимое этого архива (сохраняется для операции обновления q). Архив с индексом быстрее присоединяется к библиотеке и позволяет подпрограммам в библиотеке вызывать друг друга вне зависимости от их размещения в архиве.

Вы можете использовать nm -s или nm --print-armap для получения таблицы индекса. Если архив не содержит эту таблицу, то можно использовать ranlib (другую форму ar) для получения данной таблицы.

GNU ar принимает два различных способа передачи аргументов. Вы можете управлять его активностью передавая параметры посредством командной строки, как некоторыми разновидностями ar для UNIX-систем; или, если вы укажете в командной строке единственный параметр -M, при помощи сценария, подаваемого на стандартный ввод, наподобие программы MRI "librarian".

## ОПЦИИ
GNU ar позволяет вам смешивать коды операций p и флаги модификатора (mod) в любом порядке, за исключением первого аргумента командной строки.

Если вы желаете, то можете указать первым аргументом командной строки тире.

Литера p задает операцию для выполнения; она может принимать любые значения из следующих, однако вы должны указать только одно из них:

d

Удаляет модули из архива. Необходимо задать имена модулей для удаления как компонент... (member); архив не будет изменен, если не они не заданы. Если вы задали модификатор v, то ar будет сообщать название каждого удаляемого модуля.

m

Используйте эту операцию для перемещения компонентов в архив. Порядок компонентов в архиве может отличаться от того, в котором программы связываются при использовании библиотеки, если символ определён в более чем одном компоненте архива.

Если не заданы модификаторы для "m", то любые имена объектов, которые вы задали как аргумент компонент, перемещаются в конец архива; вы можете использовать модификаторы a, b или i для помещения их вместо конца архива в заданное место.

p

Выводит заданные компоненты архива на стандартный вывод. Если задан модификатор v, то перед копированием содержимого компонентов на стандартный вывод показываются их имена. Если вы не задали аргумент компонент, то все файлы архива будут выведены на стандартный вывод.

q

Быстрое добавление; Традиционно добавляет файлы компонент... в конец архива без проверки на замещение. Модификаторы a, b и i не оказывают эффекта при этой операции: новые компоненты всегда помещаются в конец архива.

Модификатор v принуждает ar сообщать имя каждого добавляемого файла.

Так как весь смысл данной операции в скорости выполнения, то таблица индексов при этом не обновляется, даже если она уже существует; вы можете использовать ar s или ranlib для обновления таблицы индекса символов.

Однако, в очень многих разных системах быстрое добавление приводит к перегенерации индекса, таким образом GNU ar реализует q как синоним для r.

r

Вставляет файлы компонент в архив (с замещением). Эта операции отличается от q тем, что существующие в архиве компоненты удаляются если их имена совпадают с добавляемыми. Если один из файлов заданных в компонент не существует, ar выводит сообщение об ошибке и продолжает работу не затрагивая те компоненты архива, которые носят такое же имя, как у не существующего файла.

По умолчанию новые компоненты добавляются в конец файла, но вы можете использовать одни из модификаторов a, b или i для того чтобы разместить новые компоненты относительно уже существующих.

Модификатор v при использовании с этой операцией показывает имя каждого добавляемого файла, а в сочетании с a или r показывает, что файл был либо добавлен (а не что удален старый) либо замещен.

t

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

Если в каком-либо архиве (скажем в b.a) имеется несколько файлов, имеющих одинаковое имя с тем, что вы задали (скажем, fie), то при выполнении ar t b.a fie будет показан только первый встретившийся файл с таким именем; для того чтобы увидеть их все, вы должны выполнить команду ar t b.a.

x

Извлекает компоненты (указанные как компонент) из архива. Вы можете использовать модификатор v для того, чтобы ar показывал имя каждого извлекаемого компонента. Если вы не задали какие-нибудь компоненты, то из архива будут извлечены файлы.

Нижеперечисленные модификаторы (mod) могут быть использованы непосредственно после p, для определения поведения выполняемых операций.

a

Добавить новые файлы после одного из существующих в архиве компонентов. Если вы используете модификатор a, то имя компонента архива (relpos) должно быть представлено как аргумент перед именем архива.

b

Добавить новый файл перед одним из существующих в архиве компонентов. Если вы используете модификатор b, то имя компонента архива (relpos) должно быть представлено как аргумент перед указанием имени архива (аналогично i).

c

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

f

Урезает имена в архиве. Обычно GNU ar работает с именами файлов любой длины. Это может способствовать созданию архива, несовместимого с ar для некоторых других систем. Если эта проблема вас затрагивает, то данный модификатор может быть использован для обрезания имен файлов при помещении их в архив.

i

Вставить новые файлы перед существующим в архиве компонентом. Если вы используете модификатор i, то имя компонента архива (relpos) должно быть представлено как аргумент перед именем архива (аналогично b).

l

Этот модификатор допускается, но не используется.

N

Использует параметр счетчик (count). Используется в случае, если в архиве имеется несколько компонентов с одним и тем же именем. Извлекает или удаляет указанное имя из архива заданное счётчиком количество раз.

o

Восстанавливает оригинальные даты компонентов архива при их извлечении. Если не использовать этот модификатор, то файлы будут извлечены с текущей датой и временем.

P

Использует полное имя файла при сравнении имен в архиве. GNU ar может не создавать архив с полным именем (такие архивы не соответствуют стандарту POSIX), но другие программы создания архивов могут так делать. Данная опция будет заставлять GNU ar сравнивать имена файлов, используя их полные имена, что может быть удобным при извлечении одиночного файла из архива, созданного другой программой.

s

Записывает индекс объектного файла в архив или, если он существует, обновляет его, даже если нет других изменений в архиве. Вы можете использовать этот модификатор как в сочетании с другими операциями, так и самостоятельно. Запуск ar s эквивалентен запуску ranlib.

S

Не генерировать таблицу символов архива. Это может поднять скорость построения большой библиотеки, если её построение производится в несколько этапов. Получившийся в итоге архив не может быть использован компоновщиком. Для создания таблицы символов вы должны опустить модификатор S, на последнем этапе выполнения ar или выполнить ranlib над данным архивом.

u

Обычно, ar r... помещает все перечисленные файлы в архив. Если хотите вставить только те из них, которые отличаются от уже имеющихся в архиве, то используйте данный модификатор. Модификатор u допускается только для операции r (замещение). В частности не допускается использование комбинации qu, так как проверка временных меток привела бы к потери скорости получаемой от использования q.

v

Этот модификатор включает режим выдачи подробностей выполняемых операций. Многие операции выдают такую дополнительную информацию, как имена обрабатываемых файлов, если присутствует модификатор v.

V

Этот модификатор показывает версию ar.

ar игнорирует начальную опцию, имеющую синтаксис -X32_64, для совместимости с AIX. Поведение производимое этой опцией является значением по умолчанию для GNU ar. ar не поддерживает любую из других -X опций; в частности он не поддерживает -X32, которая является значением по умолчанию для AIX-версии ar.

## СМОТРИТЕ ТАКЖЕ
nm(1), ranlib(1), и содержание Info для binutils.

## АВТОРСКИЕ ПРАВА
Copyright (c) 1991, 92, 93, 94, 95, 98, 99, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.

Предоставляются права на размножение и распространение точных копий этого документа на условиях GNU Free Documentation License, Версии 1.1 или любой более поздней версии, опубликованной Free Software Foundation (Фондом Свободного Программного Обеспечения); без Инвариантных Разделов, без Текстов с титульной и оборотной страниц Обложки. Копия лицензии включена в раздел, озаглавленный "GNU Free Documentation License".


arch

title: arch(1)

text:
# arch(1)

## НАЗВАНИЕ
arch - arch - выводит тип архитектуры компьютера

## СИНТАКСИС
arch

## ОПИСАНИЕ
arch эквивалентно uname -m.

На современных Linux машинах arch выводит сообщения вида "i386", "i486", "i586", "alpha", "sparc", "arm", "m68k", "mips", "ppc".

## СМ. ТАКЖЕ
uname(1), uname(2)


at

title: at(1)

text:
# at(1)

## ИМЯ
at, batch — добавить в очередь, показать или удалить задачи, запланированные для выполнения позже.

## ОБЗОР
at [-blm] [-f файл] [-q очередь] -t время at [-blm] [-f файл] [-q очередь] время at -c | -r задача [задача ...] batch [-m] [-f файл] [-q очередь] [время]

## ОПИСАНИЕ
at и batch считывают со стандартного ввода или указанного файла команды, которые должны быть выполнены позже - при помощи командной оболочки пользователя, указанной в переменной окружения SHELL. Если SHELL не установлена, используется оболочка, указанная в базе данных паролей пользователей. Если и она не указана, будет использована sh(1).

К родственным программам относятся:

at

Выполняет команды в указанное время.

batch

Выполняет команды, когда это позволяет уровень загрузки системы. Иными словами, когда средняя загрузка падает ниже 1.5 или ниже значения, указанного при вызове cron(8).

Доступны следующие опции:

-b

синоним batch.

-c

Вывести на стандартный вывод задачи, перечисленные в командной строке.

-f файл

Прочесть задачи из файла а не из стандартного ввода.

-l

Выводит запланированные задачи текущего пользователя. Если пользователь - администратор, выводит задачи всех пользователей.

-m

Когда задача будет выполнена, отправляет сообщение пользователю, даже если задача не выводила никаких сообщений.

-q очередь

Использует указанную очередь. Очередь обозначается одной буквой. Допустимые символы - от a до z и от A до Z. Очередь c по умолчанию используется командой at и очередь E используется batch. Очереди, обозначенные заглавной буквой запускаются с повышенным приоритетом (т.е. с меньшим приоритетом). Если задача указана для добавления в очередь, обозначенную заглавной буквой, она обрабатывается так, как будто был добавлена командой batch Если пользователь указывает опцию -l и для at указана конкретная очередь, будут показаны только задачи, находящиеся в этой очереди.

-r

Удаляет указанные задачи из очереди at.

-t время

Указать время задачи, используя формат touch(1). Аргумент должен быть указан в виде [[ВВ]ГГ]ММДДччмм[.СС], где каждая пара букв обозначает следующее:

ВВ

две первых цифры года (век).

ГГ

две последние цифры года.

ММ

месяц года, с 1 по 12.

ДД

день месяца, с 1 по 31.

чч

час, с 0 по 23.

мм

минуты, с 0 по 59.

СС

секунды, с 0 по 61.

Если ВВ и ГГ не указаны, используется текущий год. Если СС не указаны, используется 0.

at разрешает относительно сложные спецификации времени. Программа принимает время в формате ччмм или чч:мм для запуска задачи в указанное время дня (если это момент уже прошел, используется следующий день.) Можно также указывать midnight ( полночь ), noon ( полдень ), или teatime (16:00), можно указывать после времени “AM” или “PM” для запуска задачи утром или вечером. Можно также указать, в какой день задача будет запущена, указав дату в форме название-месяца день а также (по желанию) год, или введя дату в форме ДД.ММ.ВВГГ, ДД.ММ.ГГ, ММ/ДД/ВВГГ, ММ/ДД/ГГ, ММДДВВГГ, или ММДДГГ.

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

Формат даты должен совпадать с форматом времени дня. Можно использовать время в форме [‘now ("сейчас")’] + число единиц-времени, где единицей-времени могут быть минуты, часы, дни, или недели, можно указать at запустить задачу сегодня, добавив после времени today ("сегодня"), и запустить задачу завтра, добавив после времени tomorrow ("завтра").

К примеру, чтобы запустить задачу в 16:00 через три дня после сегодняшнего можно использовать at 16:00 + 3 days. Для запуска задачи в 10:00 31го июля можно воспользоваться at 10:00 Jul 31. Для запуска в 1:00 завтра, можно использовать at 1:00 tomorrow.

at также поддерживает формат времени, используемый touch(1) (см. опцию -t ).

И at, и batch считывают команды со стандартного потока ввода (или файла указанного при помощи опции -f ) и исполняют их, используя текущий каталог, переменные окружения (исключая TERM, TERMCAP, DISPLAY, и _), и umask на момент добавления команды. Команда at или batch при запуске через командную оболочку su(1) сохраняют идентификатор текущего пользователя. Пользователь получит сообщение с данными стандартного вывода и потока сообщений об ошибках для запланированной им команды, если что-то было выведено. Сообщение будет отправлено через sendmail(8). Если at выполняется через su(1), пользователь, указанный при вызове su, получит это сообщение.

Для не-администраторов, разрешение на запуск at определяется файлами /etc/at.allow и /etc/at.deny. Примечание: эти файлы (если они существуют) должны быть доступны для чтения группе crontab.

Если /etc/at.allow существует, только упомянутые в нем пользователи могут использовать at. Если /etc/at.allow не существует, проверяется /etc/at.deny. В этом случае каждый пользователь, не упомянутый в этом файле, может использовать at. Если оба файла отсутствуют, только администратор может использовать at.

Пустой /etc/at.deny обозначает, что каждый пользователь может использовать эти команды. Это является конфигурацией по умолчанию.

## ФАЙЛЫ
/var/spool/at

каталог, содержащий файлы задач

/etc/at.allow

контролирует разрешения на использование

/etc/at.deny

контролирует запреты на использование

## СМ. ТАКЖЕ
nice(1), sh(1), touch(1), umask(2), cron(8), sendmail(8)

## АВТОРЫ
Большая часть at написана Thomas Koenig ⟨ig25@rz.uni-karlsruhe.de⟩. Процедуры обработки времени создана David Parsons ⟨orc@pell.chi.il.us⟩.

## ОШИБКИ
at и batch в настоящее время не подходят для ситуаций, когда несколько пользователей пытаются получить доступ к ограниченным ресурсам. В этом случае, подумайте об использовании другой подобной системы, например nqs.

## ПЕРЕВОД
Перевод с английского Виктор Ерёмин <ErV2005@rambler.ru> 2007


atq

title: atq(1)

summary: выводит очередь задач команды

text:
# atq(1)

## ИМЯ
atq — выводит очередь задач команды at(1)

## ОБЗОР
atq [-cnv] [-q список] [имя ...]

## ОПИСАНИЕ
atq выводит очередь ожидающих исполнения задач at(1). Если текущий пользователь не является администратором, будет отображена очередь задач только текущего пользователя. Без опций программа сортирует выводимый список по времени выполнения задач.

Доступны следующие опции:

-c

При выводе сортировать список по времени создания (добавления) задачи. Без этой опции atq сортирует список по времени выполнения задач.

-n

Вывести только общее число файлов, находящихся в очереди.

-q очередь

Вывести информацию только для указанной очереди. Очередь обозначается буквами с a по z или с A по Z. По умолчанию, очередь c используется командой at(1) а очередь E - командой batch(1). Если эта опция не указана, atq выводятся задачи всех очередей.

-v

Также выводить выполненные, но не удаленные из очереди задачи.

Если указано одно или несколько имен, выводить файлы только для этих пользователей.

## ФАЙЛЫ
/var/spool/at

каталог с файлами текущих задач.

## СМ. ТАКЖЕ
at(1), atrm(1), cron(8)

## ИСТОРИЯ
Команда atq изначально появилась в 4.3BSD.

## ПЕРЕВОД
Перевод с английского Виктор Ерёмин <ErV2005@rambler.ru> 2007


atrm

title: atrm(1)

summary: удаляет задачи, добавленные

text:
# atrm(1)

## ИМЯ
atrm — удаляет задачи, добавленные at(1)

## ОБЗОР
atrm [-afi] [[задача] [имя] ...]

## ОПИСАНИЕ
atrm удаляет задачи, добавленные командой at(1)

Доступны следующие флаги:

-a

Удалить все задачи, добавленные пользователем, вызвавшим atrm. Если пользователь является администратором, удалить все запланированные задачи.

-f

Не выводить информацию об удалении текущих задач.

-i

atrm запрашивать подтверждение удаления каждой задачи. Если пользователь ответит ‘y’, задача будет удалена.

Если была указана одна или несколько задач, atrm будет пытаться удалить только эти задачи.

Если указаны одно или несколько имен пользователей, будут удалены все задачи, принадлежащие этим пользователям. Только суперпользователь может удалять задачи других пользователей.

## ФАЙЛЫ
/var/spool/at

каталог, содержащий файлы задач.

## СМ. ТАКЖЕ
at(1), atq(1), cron(8)

## ИСТОРИЯ
Команда atrm изначально появилась в 4.3BSD.

## ПЕРЕВОД
Перевод с английского Виктор Ерёмин <ErV2005@rambler.ru> 2007


basename

title: basename(1)

summary: выделяет имя файла из его полного пути

text:
# basename(1)

## ИМЯ
basename - выделяет имя файла из его полного пути

## ОБЗОР
basename ИМЯ_ФАЙЛА [СУФФИКС]

basename ПАРАМЕТР

## ОПИСАНИЕ
Выводит ИМЯ_ФАЙЛА, удаляя из переданного пути все указанные в нём каталоги. Если указано предполагаемое окончание имени (расширение), то оно также удаляется.

--help

вывести справку и закончить работу

--version

вывести информацию о версии и закончить работу

## ПРИМЕРЫ
basename /usr/bin/sort

Выводит "sort".

basename include/stdio.h .h

Выводит "stdio".

## АВТОР
Неизвестен.

## СООБЩЕНИЕ ОБ ОШИБКАХ
Об ошибках сообщайте по адресу <bug-coreutils@gnu.org>.

## АВТОРСКИЕ ПРАВА
Copyright © 2006 Free Software Foundation, Inc.

Это свободное программное обеспечение. Вы можете распространять его копии при соблюдении условий GNU General Public License <http://www.gnu.org/licenses/gpl.html>. Не предоставляется НИКАКИХ ГАРАНТИЙ в установленных законом пределах.

## СМ. ТАКЖЕ
Полная документация по basename поддерживается в виде руководства в формате Texinfo. Если программы info и basename установлены и настроены в системе, то по команде

info basename

вы получите доступ к полному руководству.

## ПЕРЕВОД
Николай Шафоростов <shafff@ukr.net> 2007