Основы работы в ОС Linux

       

Настройка окружения пользователя


Как вы уже знаете, при входе любого пользователя в систему для него запускается особый экземпляр оболочки - login shell. В процессе запуска в качестве login shell bash ищет следующие файлы:

  • /etc/profile
  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile

(в указанном порядке) и выполняет содержащиеся в них команды. Если bash запускается повторно из командной строки в интерактивном режиме (т. е. не для выполнения какой-то одиночной команды), то он находит файл ~/.bashrc и выполняет содержащиеся в нем команды. Впрочем, в дистрибутиве Mandrake файл ~/.bashrc вызывается и для login shell, а из него вызывается еще и общесистемный файл /etc/bashrc. Так что, как видите, тут возможны варианты.

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

Файлы /etc/profile и /etc/bashrc определяют общесистемные настройки пользовательской среды, а остальные перечисленные файлы определяют индивидуальную среду конкретного пользователя. Сравнительно небольшие добавления или исправления в индивидуальных файлах настройки, изменяющие значения, заданные по умолчанию, могут сделать значительно более приятной для вас работу в системе (о вкусах, как известно, не спорят, и вряд ли люди, которые определяли настройки по умолчанию, угадали ваши предпочтения). Поэтому давайте кратко рассмотрим основные переменные пользовательской среды и то, каким образом вы сами можете их изменять.

Вначале посмотрите переменные окружения, которые заданы по умолчанию. Как мы уже говорили в лекции 5, это можно сделать с помощью команд set (и аналогичной ей команды typeset) или env. Значение, присвоенное отдельной переменной, можно просмотреть с помощью команды echo $name, где name - имя переменной.

Из всех переменных, которые вы увидите по команде set, обычно меняют вид приглашения PS1 и перечень путей поиска PATH. О том, как поменять значения этих переменных, было подробно рассказано в лекции 5. Если вы почему-либо пропустили этот раздел, загляните в него сейчас. Так что осталось только решить, в каком именно скрипте задать этим переменным новые значения. Рассмотрим этот вопрос на примере переменной PATH.

Переменная PATH формируется в двух скриптах: /etc/profile (пути, общие для всех пользователей) и в одном из пользовательских скриптов (например, в ~/.bash_profile), где к ранее сформированному перечню пользователь может добавить пути по своему желанию. Только не стоит делать это в файле ~/bashrc, так как последний перезапускается каждый раз при запуске второго, третьего и т. д. экземпляра оболочки. Для добавления пути в переменную PATH надо вписать в выбранный скрипт строку следующего вида (в этом примере в перечень добавляется путь /home/user/bin):

PATH=$PATH:/home/user/bin


Обратите внимание на то, что двоеточия в конце нет. И имейте в виду, что каталоги просматриваются в поисках нужного файла в том порядке, как они перечислены в переменной PATH.

В отличие от MS-DOS Linux не ищет исполняемый файл в текущем каталоге. Поэтому, если вы хотите, чтобы поиск производился и в текущем каталоге, надо добавить и этот каталог (напомним, что он имеет имя, состоящее из одной точки) в переменную PATH. Но имейте в виду, что с точки зрения безопасности добавлять текущий каталог в перечень путей поиска недопустимо, так как злоумышленник может поместить в один из доступных ему по записи каталогов вредоносную программу, названную именем одной из часто используемых системных утилит. И, когда вы запустите эту программу, считая, что запускаете системную утилиту, она может нанести большой вред вашей системе, тем более, если вы запустили ее от имени суперпользователя.

При желании можно слегка "украсить себе жизнь", включив цветной вывод в команде ls (если по умолчанию он черно-белый). Для этого редактируем файл /etc/bashrc, в который добавляем строку:

alias ls = "ls -F --color"

Кстати, если вы захотите, чтобы Midnight Commander в окне эмулятора терминала был цветным, а не черно-белым, то установите переменную COLORTERM:

COLORTERM = ; export COLORTERM



  3)

  (Замечание прислал Антон Непомнящих.) Не совсем верно, нельзя менять только UID и имя залогиненного пользователя: CAVEATS usermod will not allow you to change the name of a user who is logged in. You must make certain that the named user is not executing any processes when this command is being executed if the user's numerical user ID is being changed. You must change the owner of any crontab files manually. You must change the owner of any at jobs manu- ally. You must make any changes involving NIS on the NIS server.

  4)

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

  5)

  Здесь под "параметром" имелось в виду имя пользователя, в бюджет которого вы переходите. К дефису эти слова относить не следует.

  6)

  Сейчас я уже не стал бы так делать, потому что знаю, что и в среде KDE могут успешно использоваться программы, первоначально созданные для GNOME.

© 2003-2007 INTUIT.ru. Все права защищены.

Содержание раздела