Основы использования командной строки
Оставлены две незатр. темы: собственно операторы и написание командных сценариев. Совсем не было про шелл в первой ипостаси, между тем грамотно настр. шелл хорошо помогет облегчить работу с ком. строкой.
Среди разл. удобств, которые предл. шелл, есть следующие:
- Prompt. Её можно здавать самому, это хранится в перем. окр. PS1. Например, PS1='$ '. Такую подск. обычно исп. в качестве примера. При задании prompt можно исп. спецпосл, коих довльно много: \u --- имчя польз, \n --- хост, \W --- последняя часть pwd
Отделение выдачи и промпта: какое надо сделать PS1="[\[tput smso\]\u@\h \W\[tput rmso\]]\$ ". tput --- выводит упр. посл. для изм. режима вывода. Это свйства самого терминала, tput илшь интерфейс к св-ву, на самом деле все программы, которые работают с терминалом, польз. этими св-вами. Что собой явл. результат работы tput. Результатом являются символы, escape-последовательности, для того, чтобы заставить терминал работать как-то иначЕ, нужно вывести символы, спец. символы, например, [[38m, [[0m, которые, вместо того, чтобы выводиться, как-то упр. терминалом. Это пошло с тех времё1н, кгда были только алф-цифр. терминалом, который гоняет байты туд-сюда. Когда выясн., что нелох было бы , чтбы можно было разные вещи, стали думать, как можно сделать так, чтобы это устройство показать буквы спец цветом. И додумлись до того, что нек. символы непечатные, более того, при выдаче этого симв. на экран он переходит в режи, когда им управляют, и следующие неск. символов указывают комнды. Дело в тм, что было это в давних годах, и было много сотен рахных типов терминалов, казалось бы, что это должно вымереть, но существует с дюжину разных программ, которые изображают из себя терминал, и у них у всех разные упр. посл., поэтому это не стит запоминать наизусть, а лучше изучить локументацию по terminfo и пользоваться tput.
- bold --- полужирный
- smso --- set mode standout --- наиболее выраженный режим, у разных терминалов он разный.
Если echo $PS1, т там уже раскрашено будет, ибо бэктики. Самая удобная программа для просмора этого --- hexdump -C
Зачем бэкслешквадратные скобки --- баш двольно глубенький, ему говришь "моя подсказка сстоит из...", он считает ширину промпта и остальне место --- строка ввода, но упр. посл. не сдвигают курсор, поэтому их надо брать в кв. стрки.
Понятие терминала
Мы его по факту приняли, но на самом деле там ещё моног интересного. Мы обнаружили такую штуку, как упр. последовательности. Это с тчки зрения терм. как железяки. А нет ли особых свйст, почему он имеет такое название, "оконечное устройство"? С точки зрения ОС, терминал не прсто передача байт, терминал эти байты преобразовывает. Когда мы запускали cat и потом ндо был, чтобы она закончилсь, мы бы нажимали D. Если бы мы его не зарег. как терминал, то ввод бы продолжался. Аналогично C. Здесь мы как раз имеем дело с тем фактом, что при передаче данных т и к терминалу данные обраб, при чём в обе строны. ут есть два вида обраю:
- ^D --- система закр. для текущей программы сист. ввод. Первый тип преобр. ввода --- нека манип. с системой.
Более кокретная манип. с системой --- при нажатии на комб. клавиш посылается сигнал. Прграмма, получ сигнал, должн его обр, иначе эт сделает система. Когда наж C, это обр. системой --- посылется SIGINT. Есть утилита stty, кторая как раз этим и управляет. Если вы умудрились сделать так, что вы оказались в необр. режиме, то вас может выручить след. посл. команд: stty sane J (^J --- ещё одно св-во того, что наз. бич. В юиксе --- в конце строки стоит конец строки. Допустим, он совпадает с переводом строки, а при выводе на экран это должно опр.)
Две вещи:
Среди прочих вариантов работы есть целых три сивола работы --- erase, kill, werase (bs, u, w).
Возр. к шеллу, как к инт. ком. строки: разумеется, этих трёх команд недост., поэтому любой уваж. себя шелл имеет огрмное кол-во кманд редакт. ввда. Например, стрелочки вверх=вниз --- история, а втрелчки влево-вправо --- перемещ. по строке. Ctrl-R --- поиск по истории. На самом деле, таких функций --- десятки. И в шелле есть способ привязать клавиши к функции.
(рассказ про less)
Есть команда bind, которая пр. привязку многих программ, к тем функиям, которые есть, к клавишам. Эти привязки относятся не к шеллу как таковому, а к библиотеке readline. C- значет control, M- --- meta (esc)
В чём идея --- назначить какие команды какими клавишами выполнять. Как сделать хождение по словам по PgUp/PgDn:
- bind '"^[[5~": backward-word'
- bind '"^[[6~": forward-word'
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
End date |
0 |
1 |
1 |
1 |
|
1 |
|
|