Немало конфигурационных файлов находится в домашнем каталоге пользователя. Этими файлами практически любая утилита может быть перенастроена по сравнению с обычным поведением, или поведением, задаваемым конфигурационным файлом из /etc
. В Linux принято предоставлять пользователю возможность задавать профиль любого используемого им инструмента, начиная от простой утилиты и заканчивая графической подсистемой управления «рабочим столом» (см. об этом лекцию Графический интерфейс (X11)). Как правило, имена таких файлов или каталогов начинаются на «.», т. е. считаются скрытыми — для того, чтобы не засорять выдачу ls
. Если пользователю нужно работать не со своими файлами, а именно с настройками, он всегда может использовать ключ «-
a» или «-A
»:
methody@localhost:~ $ ls
bin cat.info cat.stderr Documents examples grep.info textfile tmp
methody@localhost:~ $ ls -AF
.alias .bashrc .emacs .inputrc~ textfile .Xauthority
.bash_history bin/ examples/ .lpoptions tmp/ .xsession.d/
.bash_logout cat.info grep.info .pinerc .viminfo
.bash_profile cat.stderr .i18n .pyhistory .vimrc
.bash_profile~ Documents/ .inputrc .pythonstartup .vimrc~
methody@localhost:~ $ rm .*~
Пример 14. Конфигурационные файлы в домашнем каталоге
Многие утилиты создают конфигурационный файл при запуске, если его в домашнем каталоге пользователя нет, поэтому со временем объём ls -A
становится всё больше. Файл .lpoptions
задаёт параметры подсистемы печати, .pinerc
— это настройки почтового клиента pine
, .viminfo
— файл истории команд редактора Vi, а файл .Xauthority
и каталог .xsession.d
управляют запуском графической подсистемы X``
, описанной в лекции Графический интерфейс (X11). Из файлов в примере некоторые вообще не являются «стандартными»: так, .aliases
и .i18n
просто «втягиваются» стартовым командным сценарием bash, потому что упомянуты в нём явно; строго говоря, они могли бы называться и по-другому. Все конфигурационные, стартовые и прочие вспомогательные файлы принято делать скрытыми даже если никаких требований к их названиям нет.
Файл .pythonstartup
(настройки интерпретатора языка программирования Python) выполняется потому, что имя этого файла задано в переменной окружения PYTHONSTARTUP
. Мефодию пришлось дописать строку PYTHONSTARTUP="/home/methody/.pythonstartup"; export PYTHONSTARTUP
в ~/.bash_profile
и "C-i": complete
в ~/.inputrc
, чтобы достраивание заработало и в этом интерпретаторе. Ещё один файл, .pyhistory
, используется в самом .pythonstartup
:
methody@localhost:~ $ cat .pythonstartup
import atexit, os, readline, rlcompleter
historyPath = os.path.expanduser("~/.pyhistory")
def save_history(historyPath=historyPath):
import readline
readline.write_history_file(historyPath)
if os.path.exists(historyPath):
readline.read_history_file(historyPath)
atexit.register(save_history)
del os, atexit, readline, rlcompleter, save_history, historyPath
Пример 15. Стартовый файл интерпретатора Python
Подавляющее большинство конфигурационных файлов предназначено для того, чтобы их мог редактировать пользователь. Эти файлы часто имеют самодокументированный формат и/или сопровождаются руководством, нередко выделенным а отдельный от руководства по самой утилите документ.