Автор Гілка: Міркування щодо користувацьких налаштувань  (Прочитано 932 раз)

Відсутній ra

  • Дописувач
  • **
  • дописів: 56
  • Карма: +0/-0
Міркування щодо користувацьких налаштувань у лінуксі, xBSD тощо


Ці нотатки не мають узагальнюючого характеру, але певним чином відображають мій власний досвід у налаштуванні системи.

Перш за все слід визначитись з тим, яку командну оболонку ми збираємось повсякчас використовувати. Справа в тім, що можна мати в системі більш ніж одну таку оболонку. От, скажімо, користувач лінуксу зазвичай послуговується bash-ем. Але якщо він також час від часу працює, наприклад, у системах FreeBSD та OpenBSD, то йому певно може знадобитися досвід та знання також оболонок tcsh та ksh (pdksh). Щоб не втрачати здобутих навичок або для іншої мети, цілком можна використовувати час від часу або постійно командні інтерпретатори, що не є основними для даної системи. Наприклад, tcsh у лінуксі або bash у OpenBSD. (Це може здаватися безглуздим, але менше з тим.) Яким чином можна призвичаїти різні інтерпретатори до використання спільних користувацьких налаштувань у межах однієї системи? Саме про це тут піде мова.

Що може зацікавити початківця (як, от, мене)? Відповіді на різні питання, що мають, однак, одну важливу спільну рису — вимагають розуміння системи. Для цього потрібно не лише читати man-довідку, але й трохи міркувати протягом поступового перетворення своєї системи на дружнього помічника. :)

Отож, почнемо з простих речей.

Після авторизації командний інтерпретатор зчитує налаштування з відповідних користувацьких файлів і встановлює значення для тих змінних, для яких користувач це визначив. Вони діють протягом усього сеансу роботи, якщо їм вдруге не надається нове значення.

Наприклад, змінна LANG може мати значення uk_UA.UTF-8. Але з якихось міркувань користувачеві може знадобитися строга і однозначна локаль С. Тож він однією командої перевстановлює відповідну змінну: unset LC_ALL && export LANG=C [RET]. Нове значення буде дійсним до закінчення сеансу роботи або до явної зміни цього значення користувачем.

Користувацькі змінні (чи може є краще слово для variable?) діють для користувача як системні (власне вони перевизначають певні загальносистемні змінні для даного користувача). Тобто всі програми, що ми використовуємо (наразі й тоді, коли вони запущені за допомогою команди sudo) будуть керуватися цими налаштуваннями.

Напевно, всім відомо, що різні командні оболонки мають різні файли налаштувань. У лінуксі це файли (головним чином для оболонки bash) ~/.bash_profile, ~/.bash_login, ~/.profile, ~/.bashrc, ~/.bash_history, ~/.bash_logout тощо. Для системи BSD це можуть бути файли ~/.cshrc, ~/.login, ~/.profile і таке інше. Нам треба, аби вони, якщо це можливо, зчитували певні налаштування з єдиного джерела — щоб не витрачати багато зайвого часу на додавання до відповідних файлів одних і тих самих налаштувань, бо це дурна робота і можлива плутанина.

Для цього нам доведеться на час пригадати — чи поцікавитись ними — найпростіші засоби оболонки sh.

За файл спільних налаштувань я обрав файл ~/.profile. (Доладно обгрунтувати цей вибір я не можу, принаймні у двох словах. Та й не буду стверждувати, що саме цей вибір є вірним, бо я лише вивчаю систему. :) )

У нього додав відповідні налаштування для деяких змінних та аліасів: мови, переглядача (пейджера), редактора, параметрів команд ls, grep, man тощо.

Далі доведеться поцікавитись у відповідних сторінках довідки man, як саме завантажує користувацькі файли налаштувань той чи інший командний інтерпретатор. У випадку bash-а першим зазвичай читається файл ~/.bash_profile. Тож у цей файл я додаю декілька рядків:

# Додаємо файл ~/.profile, якщо він існує:
#
if [ -f ~/.profile ]; then
    . ~/.profile
fi


# Додаємо файл ~/.bashrc, якщо він існує:
#
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

Тепер я можу у файл ~/.bashrc додати налаштування, що є специфічними саме для цієї оболонки.

А у файл ~/.profile додаю ті налаштування, що мають бути загальними для моєї системи (чи, радше, для мого користувача). Це будуть налаштування мови, обраних програм (PAGER, EDITOR тощо) і таке інше.

Так само цей файл я можу додати до інших файлів налаштувань, що читаються системою при старті. Метою цих дій є позбирати якомога більше потрібних налаштувань до якомога меншій кількості файлів, а головне, щоб вони були зрозумілі для читання живою людиною і логічні.



Далі буде.

« Змінено: 2007-10-28 00:51:55 від ra »
Debian GNU/Linux (stable), OpenBSD.