Чтение онлайн

на главную - закладки

Жанры

Linux: Полное руководство

Аллен Питер В.

Шрифт:

$ 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='\[\033]0;\u@\h \007\]'

 ;;

*)

 TITLEBAR=""

 ;;

esac

PS1="${TITLEBAR}\

 $GREEN\u@\h \

 $WHITE\$$NO_COLOUR "

PS2='> '

PS4='+ '

Команды утилиты tput:

tput setaf [1-7] установка цвета символов с использованием ANSI ESC-последовательности;

tput setab [1-7] установка цвета фона;

tput rev обратить цвета фона и переднего плана;

tput bold установка жирного начертания;

tput dim отключение жирного начертания;

tput smul установка подчеркнутого начертания;

tput rmul отключение подчеркнутого начертания.

3.4.4. Подстановка переменных и команд

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

$ cd $cwd

Вывести на экран файл README из этого каталога можно, введя команду

$ more ${cwd}/README

Брать имя переменной в скобки необязательно, но удобно, если нужно отделить имя переменной от предшествующих ему или следующих за ним символов.

Мощным инструментом оболочки bash является подстановка команд, то есть замена имени команды на результат ее выполнения. Так, считая

/home/den/МуDownloads/packages
текущим каталогом, мы могли бы присвоить переменной cwd то же самое значение проще:

$ cwd=`pwd` # напоминаю, что команда pwd возвращает

# путь к текущему каталогу

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

$ ps -ef | grep $USER | less

3.4.5. Шаблоны имен файлов

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

Символы шаблонов Таблица 3.3

Символ Значение Пример
* Произвольная строка символов, в том числе пустая ~/*.png — все файлы в домашнем каталоге с расширением png; Glava* — файлы Glava, Glava03 и Glava.old
? Любой одиночный символ Glava?? — файлы Glava03 и GlavaXZ, но не Glava и не Glava.old
[m,M,x] Любой символ ив перечисленных в скобках Glava0[3,8] — файлы Glava03 и Glava08, Glava?[3,8] — файлы Glava03, Glava08, Glava13, Glava18, Glava23
[a-nA-N] Любой символ ив указанных интервалов Glava0[2-4,9] — Glava02, Glava03, Glava04, Glava09
[^a-n,x,y] Любой символ, на указанный в скобках Glava[^0]* — все главы, начиная с 11
Поделиться:
Популярные книги

Император Пограничья 6

Астахов Евгений Евгеньевич
6. Император Пограничья
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Император Пограничья 6

Я – Стрела. Трилогия

Суббота Светлана
Я - Стрела
Любовные романы:
любовно-фантастические романы
эро литература
6.82
рейтинг книги
Я – Стрела. Трилогия

Изгой Проклятого Клана. Том 2

Пламенев Владимир
2. Изгой
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Изгой Проклятого Клана. Том 2

Идеальный мир для Лекаря 28

Сапфир Олег
28. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 28

Я уже князь. Книга XIX

Дрейк Сириус
19. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я уже князь. Книга XIX

Двойник Короля 10

Скабер Артемий
10. Двойник Короля
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Двойник Короля 10

Супервольф

Ишков Михаил Никитич
Секретный фарватер
Проза:
современная проза
5.00
рейтинг книги
Супервольф

Андер Арес

Грехов Тимофей
1. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Андер Арес

Газлайтер. Том 16

Володин Григорий Григорьевич
16. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 16

За Горизонтом

Вайс Александр
8. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
За Горизонтом

Неудержимый. Книга XXXII

Боярский Андрей
32. Неудержимый
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Неудержимый. Книга XXXII

Предопределение

Осадчук Алексей Витальевич
9. Последняя жизнь
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Предопределение

Мастер 7

Чащин Валерий
7. Мастер
Фантастика:
фэнтези
боевая фантастика
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Мастер 7

Тринадцатый IX

NikL
9. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
сказочная фантастика
5.00
рейтинг книги
Тринадцатый IX