HISTFILE, HISTSIZE Расположение и размер файла истории команд
LANG Язык текущего сеанса
LINES, COLUMNS Число строк и столбцов на экране текстовой консоли
PS1, PS2, PS3, PS4 Переменные, определяющие вид приглашения оболочки
PATH Порядок просмотра каталогов в поисках исполняемого файла с заданным вами именем, когда полный путь к нему не указан

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

Обратите внимание на переменную PATH: среди каталогов, в которых bash ищет исполняемый файл, нет текущего. Поэтому в предыдущем примере, если бы вы попытались исполнить сценарий командой myscript, оболочка ответила бы «Command not found». Нужно было указать путь к исполняемому файлу, и мы указали его относительным способом, считая от текущего каталога: ./myscript.

Переменная PS1 у меня выглядит так: [u@h W]$. Это значит, что приглашение оболочки у меня формируется из регистрационного имени (username), имени машины (hostname), текущего каталога (working dir) и символа $. Я могу и изменить его:

[[email protected] ~]$ pssave=$PS1 # сохраняю старое значение

[den@dhsilabs PS1='W>'

~> # новое приглашение состоит из имени текущего каталога и символа >

-> cd My* MyDownloads>

MyDownloads > PS1=$pssave # поиграли, и хватит

[den@dhsilabs MyDownloads]$

Удалить переменную можно командой unset <имя>.

Быстрая смена каталога

Переменная CDPATH задает список каталогов, в которых будет происходить поиск нужного подкаталога при смене каталога (использовании команды cd). Проще всего пояснить, как работает CDPATH, на примере. Пусть в моем каталоге /home/denis/books/linux-server есть подкаталоги chapter1 ... chapter20. Если мне нужно перейти в подкаталог chapter2, то я могу сэкономить на наборе имени его родительского каталога, внеся это имя в переменную CDPATH:

$ export CDPATH=:.:/home/denis/books/linux-server

Теперь по команде cd chapter2 я попаду в каталог /home/denis/books/linux- server/chapter2 из любого места файловой системы, если подкаталога chapter2 нет в текущем каталоге.

Настройка командной строки. Утилита tput

Наверное, многим хочется, чтобы их компьютер не был похож на компьютер коллеги за соседним столом. Кто-то меняет темы, кто-то — обои. Мы попробуем изменить командную строку текстовой консоли. Рассмотрим сценарий, выводящий текущий каталог в правом верхнем углу — обычно этот угол при выводе текста остается свободным. Для чего? А просто так — чтобы было не как у всех.

Для манипуляции с курсором и цветом букв и фона используется утилита tput. В п.2.1.4 вы узнали, как применить ее для восстановления «сбитой» консоли, а сейчас посмотрите на то, что она умеет еще. А потом прочитайте man-страницу.

Листинг 3.1. Демонстрация возможностей утилиты tput

#!/bin/bash

function prompt_command {

 # сохраняем текущую позицию курсора

 tput sc

 # вычисляем длину, необходимую для вывода текущего каталога

 # текущий каталог можно узнать с помощью команды pwd

 let backwash=$(tput cols)-$(echo $(pwd) | wc -m)-2

 # позиционируем курсор Y=0, X=длина

 tput cup 0 ${backwash}

 # установка цвета букв, начертание — жирное

 tput setaf 4 ; tput bold

 # выводим полный путь в квадратных скобках

 echo -n ' ['

 # устанавливаем цвет

 tput setaf 6

 # отображаем путь

 echo -n '$(pwd)'

 # устанавливаем цвет для закрывающей скобки

 tput setaf 4 ; tput bold

 # отображаем ]

 echo -n ']'

 # возвращаем курсор в исходную позицию

 tput rc

}

PROMРТ_СОММAND=prompt_соmmand

GREEN='[$(tput setaf 2 ; tput bold)]'

WHITE='[$(tput setaf 7 ; tput bold)]'

NO_COLOUR='[$(tput sgr0)]'

case $TERM in

xterm*|rxvt*)

 TITLEBAR='[33]0;u@h 07]'

 ;;

*)

 TITLEBAR=''

 ;;

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

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

Отметить Добавить цитату