$ stty erase е kill k
где 'e'
обозначает нужный вам символ стирания, а 'k'
— символ удаления. Однако задавать эти символы при каждом входе в систему — довольно нудное занятие.
На помощь здесь приходит shell
. Если в вашем начальном каталоге есть файл .profile
, интерпретатор будет запускать команды из него при каждом входе в систему перед выдачей первого приглашения. Поэтому можно поместить команды в .profile
для установки требуемой среды, и они будут выполняться всякий раз при входе в систему.
Большинство пользователей первым делом помещают в свой файл .profile
команду
$ stty erase ←
Мы использовали ←, чтобы сделать символ стирания видимым, но вы должны поместить в .profile
настоящий символ "шаг назад". Команда stty
воспринимает также обозначение ^x
в качестве ctl-x
, поэтому тот же результат можно получить, вводя:
$ stty erase '^h'
поскольку ctl-h и есть шаг назад. (Символ '^'
ранее применялся для операции программного канала |
, поэтому его следует экранировать с помощью кавычек.) Если на вашем терминале нет возможности задать интервалы табуляции, можно добавить к строке с stty
аргумент -tabs
:
stty erase '^h' -tabs
Если у вас есть желание посмотреть, как загружена система, при входе в нее добавьте для подсчета пользователей конвейер
who | wc -l
Если имеется служба новостей, можно добавить команду news
. Те, кому нравится игра fortune
, могут добавить
/usr/games/fortune
Спустя некоторое время вы обнаружите, что период входа в систему существенно возрос, и выберете для себя оптимальный вариант.
Некоторыми возможностями системы можно управлять с помощью так называемых shell-переменных, значения которых пользователь может и посмотреть, и установить. Например, строка-приглашение, обозначаемая ранее как $
, на самом деле хранится в shell-переменной, называемой PS1
, и можно присвоить ей любое значение:
PS1='Yes, dear ?'
Да, дорогой?
Кавычки необходимы, поскольку в строке-приглашении есть пробелы, а в этой операции пробелы перед и после "="
не допускаются.
Интерпретатор также выделяет переменные НОМЕ
и MAIL
. НОМЕ
представляет собой имя вашего начального каталога; переменная обычно имеет правильное значение даже без установки ее в .profile
. Переменная MAIL
содержит имя стандартного файла, в котором хранится ваша почта. Если вы переопределите ее для интерпретатора, то будете в случае появления новой почты получать извещение после ввода каждой команды. [4] Эта возможность плохо реализована в shell . Просмотр файла после ввода каждой команды сказывается на времени работы системы. Кроме того, если вы достаточно долго работаете в редакторе, то не узнаете о новой почте, поскольку не задаете новых команд в начальном интерпретаторе shell . Лучшим решением была бы проверка через каждые несколько минут, а не после очередной команды. В гл. 5 и 7 будет показано, как реализовать такую проверку получения почты. Третьим решением, хотя и не для всех доступным, может быть извещение, посылаемое самой программой mail , — она точно "знает", когда появится почта.
MAIL=/usr/spool/mail/you
(В вашей системе файл для почты может быть другим; распространенным является и имя /usr/mail/you
.)
Наиболее полезной переменной интерпретатора shell
, вероятно, считается та, которая определяет, где проводится поиск команд. Вспомните, что, когда вы вводите имя команды, интерпретатор обычно вначале ищет его в текущем каталоге, затем в /bin
и далее в /usr/bin
. Эта последовательность каталогов называется путем поиска и хранится в переменной интерпретатора с именем PATH
. Если определенный по умолчанию путь поиска вас не устраивает, то его можно изменить (опять в файле .profile
). Например, строкой ниже к стандартному пути поиска добавляется /usr/games
:
PATH=.:/bin:/usr/bin:/usr/games/
Один способ…
Синтаксис может показаться вам несколько странным: последовательность имен каталогов разделяется двоеточием. Напоминаем, что обозначает текущий каталог. Можно опустить имя '.'
, пустой компонент в PATH
обозначает текущий каталог.
Другой способ установить значение PATH
— просто добавить к предыдущему значению
PATH=$PATH:/usr/games
… Другой способ
Можно получить значение любой переменной интерпретатора, предварив ее имя символом $
. В приведенном примере выражение $PATH
выбирает текущее значение, к которому добавляется новый компонент, и результат вновь присваивается PATH
. Можно проверить это с помощью команды echo
:
Читать дальше
Конец ознакомительного отрывка
Купить книгу