Есть один небольшой, но противоречивый компонент командного пути — точка. Если поместить точку (.) в пути, то это позволит запускать команды в текущем каталоге, не используя символы./ перед именем команды. Это может оказаться удобным при написании сценариев или при компиляции программ, однако такой способ плох по двум причинам.
• Могут появиться проблемы с безопасностью.
• Это непоследовательно и может привести к путанице. Точка в пути может означать, что поведение команды будет изменяться в соответствии с текущим каталогом.
13.3.2. Путь к страницам руководства
Традиционный путь к страницам руководства определяется с помощью переменной окружения MANPATH, однако не стоит его изменять, поскольку при этом будут перезаписаны системные настройки по умолчанию из файла /etc/manpath.config.
13.3.3. Приглашение
Опытные пользователи избегают длинных, усложненных и бесполезных приглашений. Для сравнения: многие администраторы и версии системы стремятся уместить все в приглашении по умолчанию. Ваш выбор должен отражать потребности пользователей; укажите в приглашении текущий рабочий каталог, имя хоста, а также имя пользователя, если это действительно необходимо.
Кроме того, избегайте использовать символы, которые означают что-либо важное для оболочки, например такие:
{ } = & < >
примечание
Особенно внимательно относитесь к символу >, который может привести к появлению пустых ошибочных файлов в текущем каталоге, если вы случайно скопируете и вставите часть окна оболочки (вспомните о том, что команда > перенаправляет вывод в файл).
Даже приглашение, используемое оболочкой по умолчанию, неидеально. Например, приглашение оболочки bash содержит название оболочки и номер версии.
В следующей простой настройке приглашение для оболочки bash заканчивается символом $ (традиционное приглашение оболочки csh заканчивается символом %):
PS1='\u\$ '
Вместо текущего имени пользователя используется подстановка \u (см. раздел PROMPTING («ПРИГЛАШЕНИЕ» на странице руководства bash(1))). Следующие популярные подстановки содержат:
• \h — имя хоста (в короткой форме, без имени домена);
• \! — номер в истории;
• \w — текущий каталог. Поскольку он может оказаться длинным, можно ограничить отображение только последним компонентом, указав параметр \W;
• \$ — при запуске с учетной записью обычного пользователя применяется $, для корневого пользователя — #.
13.3.4. Псевдонимы
Одной из характерных черт современной среды пользователя являются
• передавать аргументы может оказаться затруднительно;
• они приводят к путанице. Встроенная в оболочку команда which может сказать, псевдоним ли перед вами, но она не сообщит вам, где он определен;
• они не одобряются в подоболочках и в неинтерактивных оболочках, а также не работают в других оболочках.
Учитывая эти неудобства, вам следует избегать псевдонимов, где это возможно, поскольку проще написать функцию оболочки или полностью новый сценарий. Современные компьютеры способны запускать и исполнять команды оболочки настолько быстро, что различие между псевдонимом и абсолютно новой командой не будет значимым для вас.
И все же псевдонимы оказываются удобными, когда необходимо изменить часть среды оболочки. Нельзя изменить переменную окружения с помощью сценария оболочки, так как сценарии запускаются в качестве подоболочек. Для выполнения этой задачи можно также определить функции оболочки.
13.3.5. Маска прав доступа
Встроенная в оболочку функция umask (маска прав доступа) устанавливает права доступа по умолчанию. Следует указать запуск команды umask в одном из файлов запуска, чтобы гарантировать то, что каждая выполняемая команда создает файлы с необходимыми вам правами доступа. Два разумных варианта таковы.
• 077. Эта маска является самой сдерживающей маской прав доступа, поскольку она не разрешает никаким другим пользователям доступ к новым файлам и каталогам. Часто это подходит для многопользовательских систем, в которых нежелательно, чтобы другие пользователи видели какие-либо ваши файлы. Тем не менее, если установить ее по умолчанию, это может привести к проблемам, если пользователи желают использовать файлы совместно, но не умеют правильно настраивать права доступа. Неопытные пользователи стремятся назначить файлам режим доступа «доступен для записи всем».