Налаштування запрошення оболонки bash

Одна з дуже важливих змінних має ім'я PS1. Ця змінна задає вид запрошення, яке bash виводить, коли очікує введення чергової команди користувачем. За замовчуванням цієї змінної присвоєно значення "\ s- \ v \ $". Взагалі-то в bash існує чотири запрошення, які використовуються в різних ситуаціях. Мінлива PS1 задає вид рядка запрошення, яка видається тоді, коли оболонка чекає введення команди. Вторинне запрошення, що задається змінною PS2, з'являється тоді, коли оболонка очікує від користувача введення ще якихось даних, необхідних для продовження роботи запущеної команди або програми. За замовчуванням змінна PS2 має значення ">". Ви вже мали можливість бачити це запрошення, коли запускали команду cat для введення даних з клавіатури в файл. Інший приклад - команда ftp, після запуску якої запрошення теж приймає такий вигляд.

Запрошення, що задається змінною PS3, використовується в команді select. Запрошення, що задається змінною PS4, виводиться перед кожною командою, в той час, коли bash відстежує процес виконання. Значення за замовчуванням - "+".

Якщо у вас є таке бажання, ви можете змінити вид змінних PS1 і PS2. При цьому можна використовувати як будь-які символи, що вводяться з клавіатури, так і деяке число спеціальних символів, які при формуванні рядка запрошення декодируются відповідно до табл. 5.3 (наводимо лише деякі з них, для прикладу; повний список див. У man-сторінці по утиліті bash).

Таблиця 5.3. Спеціальні символи для формування запрошення

\ A Звуковий сигнал (ASCII-код 07)

\ D Дата в форматі "День, місяць, число", наприклад, Срд, Окт, 17.

\ H Ім'я хоста (hostname) до першої точки

\ H Повне ім'я хоста

\ T Поточний час в 24-годинному форматі: HH: MM: SS (години: хвилини: секунди)

\ T Поточний час в 12-годинному форматі: HH: MM: SS

\ @ Поточний час в 12-годинному форматі am / pm

\ U Ім'я користувача, що запустив оболонку

\ W Повне ім'я поточного робочого каталогу (починаючи з кореня)

\ W Поточний робочий каталог (без вказівки шляху)

\ $ Символ #, якщо оболонка запущена суперкористувачем, і символ $, якщо оболонка запущена звичайним користувачем.

\ Nnn Символ, який має восьмеричний код nnn

\ N Новий рядок (новий рядок)

\ # Поточний номер команди

\\ Зворотний слеш (a backslash)

\ [Початок послідовності не друкують символів (цей символ може бути використаний для того, щоб включити в текст підказки послідовність керуючих символів терміналу)

\] Кінець послідовності не друкують символів

\! Порядковий номер даної команди в історії команд

Поточний номер команди (порядковий номер виконуваної команди в рамках поточної сесії) може відрізнятися від номера даної команди в списку історії команд, оскільки останній включає в себе команди, які були збережені в файлі історії команд.

Наприклад, після виконання команди (оскільки в рядку є прогалина, лапки обов'язкові)

[Root] # PS1 = "[\ u @ \ h \ W] \ $"

в стандартному запрошенні буде виводитися квадратних дужок, ім'я користувача, символ @, ім'я комп'ютера, пробіл, назва поточного каталогу (без вказівки шляху), що закриває квадратних дужок і символ $ (якщо в оболонці працює простий користувач) або # (якщо оболонка запущена від імені користувача root).