Никакой заголовочный файл не определяет его - те, которые макросы предопределены компилятором. Для обнаружения полного списка предопределенных макросов делают это:
echo | gcc -E -dM -
Затем просмотрите результаты для вероятных макросов.
PS1 обозначает "Строку приглашения Один" или "Быстрый Оператор Один", первая строка приглашения (что Вы видите в командной строке).
Да, существует PS2 и больше! Прочитайте эту статью и Wiki Arch и конечно Справочник Bash.
от немного перефразируемого из Справочника Bash
PS1 основная строка приглашения. Значение по умолчанию является ‘\s-\v\$ ’.
PS2 вторичная строка приглашения. т.е. для длительных команд (те, которые проводят больше чем одну строку). Значение по умолчанию‘> ’.
PS3 значение этой переменной используется в качестве подсказки для избранной команды. т.е. для входа в под управлением сценарий. Если эта переменная не установлена, избранные командные строки с ‘#? ’.
PS4 значение является подсказкой, распечатанной перед командной строкой, отражен, когда-x опция установлена. Первый символ PS4 копируется многократно, по мере необходимости, для указания на несколько уровней абстракции. Значение по умолчанию '+'.
PS1 и PS2 от исходного sh, PS3 и PS4 были добавлены как часть удара
Посмотрите примеры здесь
select
команда первой установкой PS3, например.PS3="Select by typing the number: "
– Peter.O 20.02.2012, 02:03