Полезные переменные (системные и пользовательские)

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin
Контактная информация:

Полезные переменные

Сообщение Bolverk »

Вот многие наверняка не знают, что очень многого можно добиться, просто установив кое-какие переменные окружения. В этом случае разные программы будут использовать их значения в своей работе, что позволяет глобально создать подстройку системы под себя.
Как именно их устанавливать, зависит от системы/shell и т.п., для bash - пишем
export VARIABLENAME=value в .bashrc

Про переменную LANG и LC_* много говорили отдельно, они устанавливают язык интерфейса и опции локализации.

VISUAL, EDITOR - ваш любимый консольный редактор. Обычно по умолчанию vi, хорошие кандидаты - vim, emacs и т.п.
PAGER - консольный текстовый просмотрщик, обычно less, я лучше ничего не нашел.
HTTP_PROXY, FTP_PROXY
(устарело) http_proxy, ftp_proxy
Прокcи, через которую должны работать HTTP/FTP соединения, например http://user:password/192.168.0.1:8080

Многие программы могут использовать специальные переменные окружения, но об этом должно быть написано в документации к программе.

Раскапывайте конфиги.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: Полезные переменные

Сообщение alv »

очень полезная идея
нужно только будет про разницу в синтаксисе POSIX shell и C shell досочинить (могу взять на себя)
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux
Контактная информация:

Re: Полезные переменные

Сообщение polachok »

export G_FILENAME_ENCODING=@locale может исправить проблемы в отображении не UTF8 названий файлов в некоторых gtk-программах.(у меня например rox ее хочет).
для bash - пишем export VARIABLENAME=value в .bashrc

для sh/bash/zsh. для tcsh/csh пишем setenv VARIABLENAME value
И немедленно выпил.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: Полезные переменные

Сообщение alv »

(polachok @ Понедельник, 01 Августа 2005, 17:15) писал(а):export G_FILENAME_ENCODING=@locale может исправить проблемы в отображении не UTF8 названий файлов в некоторых gtk-программах.(у меня например rox ее хочет).
для bash - пишем export VARIABLENAME=value в .bashrc

для sh/bash/zsh. для tcsh/csh пишем setenv VARIABLENAME value



для zsh допустимы оба синтаксиса

для csh/tcsh переменные оболочки определяются командой

set VARIABLENAME value

их принято определять в файле ~/.cshrc

Переменные среды определяются командой

setenv VARIABLENAME value

их традиционно помещают в ~/.login

В zsh - все очень кучеряво, так что наверное про него здесь не нужно?
Спасибо сказали:
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin
Контактная информация:

Re: Полезные переменные

Сообщение Bolverk »

Вот ещё, вспомнил.
BROWSER
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux
Контактная информация:

Re: Полезные переменные

Сообщение polachok »

а в чем отличие переменных среды от переменных оболочки? про zsh так и сказать
для zsh допустимы оба синтаксиса

PS про zsh знал - забыл
И немедленно выпил.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: Полезные переменные

Сообщение alv »

(polachok @ Понедельник, 01 Августа 2005, 17:41) писал(а):а в чем отличие переменных среды от переменных оболочки?


переменные оболочки действенны только в текущем экземпляре шелла, переменные среды - во всех порожденных процессах (в т.ч и не обязательно шеллах - в mc, например)

поэтому переменные среды обычно определяют раз навсегда в том файле, который отвечает за конфигурацию login shell - в csh сотоварищи это будет ~/.login, в zsh - ~/.zlogin или ~/.zprofile, в зависимости от того, какой схемы придерживаться - sh'вской или csh'евской
а в bash - ~/.bash_profile? не ошибаюсь?


alv добавил в 01.08.2005 19:37

(Bolverk @ Понедельник, 01 Августа 2005, 17:29) писал(а):Вот ещё, вспомнил.
BROWSER


еще такая важная переменная, как

PACKAGESITE URL

или ее аналоги - место, откель по умолчанию берутся пакеты при использовании штатного пакетного менеджера
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Полезные переменные

Сообщение t.t »

А что же про такую классику, как PATH и MANPATH не написали? В первой хранится список путей (в bash -- разделённых двоеточиями) для поиска запускаемых файлов, во второй -- для поиска man-страниц. Например, у меня в ~/.bashrc есть такие строки:

Код: Выделить всё

for i in /usr/share/man/ru*; do
       echo $MANPATH |grep -q "$i" || export MANPATH="$i":"$MANPATH"
done


t.t добавил в 01.08.2005 20:23

Ещё вот вспомнил, полезные вещи для работы с историей команд:
HISTCONTROL -- у меня там единственный параметр, ignoredups, думаю, смысл понятен из названия; про других не помню.
HISTIGNORE -- список (в баше -- опять же через двоеточия) игнорируемых, т.е. не добавляемых в историю, команд, например

Код: Выделить всё

cd:cd *:l:ls:la:su:su *:/tmp/*:ps aux:exit:logout:reboot:poweroff
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin
Контактная информация:

Re: Полезные переменные

Сообщение Bolverk »

PATH это тривиально.
MANPATH знал да забыл, его не часто нужно менять, а за озвучку спасибо.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Полезные переменные

Сообщение t.t »

(Bolverk @ Понедельник, 01 Августа 2005, 19:25) писал(а):PATH это тривиально.
По мне, не более тривиально, чем, скажем, LANG.

(Bolverk @ Понедельник, 01 Августа 2005, 19:25) писал(а):MANPATH знал да забыл, его не часто нужно менять
Менять -- да, а вот прописать в стартовых файлах после доустановки тех же русских манов не помешает.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: Полезные переменные

Сообщение alv »

(t.t @ Понедельник, 01 Августа 2005, 19:27) писал(а):
(Bolverk @ Понедельник, 01 Августа 2005, 19:25) писал(а):MANPATH знал да забыл, его не часто нужно менять
Менять -- да, а вот прописать в стартовых файлах после доустановки тех же русских манов не помешает.


а также в тех дистрах, которые активно пользуют /opt
и в системах, использующих pkgsrc - там это просто обязательно

а про alias'ы будем здесь говорить? или лучше в отдельной теме?
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Полезные переменные

Сообщение t.t »

(alv @ Понедельник, 01 Августа 2005, 19:34) писал(а):а про alias'ы будем здесь говорить? или лучше в отдельной теме?
по-моему, лучше в отдельной.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin
Контактная информация:

Re: Полезные переменные

Сообщение Bolverk »

(t.t @ Понедельник, 01 Августа 2005, 18:36) писал(а):
(alv @ Понедельник, 01 Августа 2005, 19:34) писал(а):а про alias'ы будем здесь говорить? или лучше в отдельной теме?
по-моему, лучше в отдельной.


+1
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: Полезные переменные

Сообщение alv »

кстати, про PATH - имхо нужно добавить нечто вроде этого:

в большинстве систем переменная PATH определяется по разному для root'а и всех обычных пользователелей. Для первого в числе ее значений в обязательном порядке присутствуют каталоги /sbin, /usr/sbin и, возможно, /usr/local/sbin, которые у пользователя обычно не определяются. Категорически не рекомендуется вносить в PATH администратора текущий каталог (символ точки); для юзера это не столь критично, но делать это следует только если есть веская причина (хотя какая причина может быть тут веской - ума не приложу:-)), и в любом случае текущий каталог должен быть последним из значений PATH

alv добавил в 01.08.2005 20:40

(Bolverk @ Понедельник, 01 Августа 2005, 19:38) писал(а):
(t.t @ Понедельник, 01 Августа 2005, 18:36) писал(а):
(alv @ Понедельник, 01 Августа 2005, 19:34) писал(а):а про alias'ы будем здесь говорить? или лучше в отдельной теме?
по-моему, лучше в отдельной.


+1



согласен. покончим с переменными - займемся алиасами?
Спасибо сказали:
Аватара пользователя
Valerius
Бывший модератор
Сообщения: 1469
Статус: Отпетый КДЕ'шник

Re: Полезные переменные

Сообщение Valerius »

Вставлю и свои 5 копеек :) Для тех кто любит сам собирать кдешный софт полезно определить переменную KDEDIR:

export KDEDIR=`kde-config --prefix`

Это избавит от необходимости каждый раз указывать --prefix в ./configure
А для кутявых прог можно определить QTDIR.
Свобода есть тонкая полоска между диктатурой и анархией.

---------------------
Mandriva Linux PowerPack 2006 (Cooker-нутая) / KDE-3.5.1
Спасибо сказали:
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin
Контактная информация:

Re: Полезные переменные

Сообщение Bolverk »

(alv @ Понедельник, 01 Августа 2005, 17:37) писал(а):а в bash - ~/.bash_profile? не ошибаюсь?

У меня запихнуто в ~/.bashrc, но ~/.bash_profile выглядит так:

Код: Выделить всё

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

BASH_ENV=$HOME/.bashrc
export BASH_ENV


Это читает ~/.bashrc, и ещё какую-то переменную выставляет...


Bolverk добавил в 02.08.2005 02:23

А вот ещё MAIL, вроде бы указывающая на юзерский почтовый ящик (подозреваю, что для программы mail, т.е. только mbox).

Bolverk добавил в 02.08.2005 02:32

(t.t @ Понедельник, 01 Августа 2005, 18:27) писал(а):По мне, не более тривиально, чем, скажем, LANG.

LANG тоже тривиально :) Без него никуда.
(t.t @ Понедельник, 01 Августа 2005, 18:27) писал(а):Менять -- да, а вот прописать в стартовых файлах после доустановки тех же русских манов не помешает.

Ну, это смотря какой дистрибутив :D


Bolverk добавил в 02.08.2005 02:34

(t.t @ Понедельник, 01 Августа 2005, 18:23) писал(а):HISTCONTROL -- у меня там единственный параметр, ignoredups, думаю, смысл понятен из названия; про других не помню.

Вот за это дякую, ибо задолбало.


Bolverk добавил в 02.08.2005 02:37

(polachok @ Понедельник, 01 Августа 2005, 17:41) писал(а):а в чем отличие переменных среды от переменных оболочки?

Переменные оболочки, по сути - конфигурационные параметры шелла, размер истории
там и т.п.

(alv @ Понедельник, 01 Августа 2005, 17:37) писал(а):PACKAGESITE URL

У меня такой переменной не обнаружилось, аналогов не знаю... и меня это совсем не удивляет :D
Спасибо сказали:
Аватара пользователя
TIM
Сообщения: 91
ОС: FreeBSD

Re: Полезные переменные

Сообщение TIM »

тоже добавим в копилку .... :)

при использовании локали (не UTF) для GTK2:

G_BROKEN_FILENAMES
G_FILENAME_ENCODING

antialiasing: QT_XFT, GDK_USE_XFT

MPD_HOST,MPD_PORT - хост/порт демона musicpd, если используются клиенты mpc, ncmpc

для FreeBSD:

__MAKE_CONF - путь к make.conf

для KDE:

KDEWM - оконный менеджер для KDE ;)
Спасибо сказали:
MaGIc laNTern
Сообщения: 537
Статус: 人です
ОС: Gentoo

Re: Полезные переменные

Сообщение MaGIc laNTern »

Народ, а в каком файлике прописывается переменная $PATH?
Спасибо сказали:
Аватара пользователя
clx
Сообщения: 3121
Статус: Think Different !
ОС: Mac OS X

Re: Полезные переменные

Сообщение clx »

Для MaGIc2laNTern:
Может в /etc/ld.so.conf ?
iMac 20" Core Duo.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: Полезные переменные

Сообщение t.t »

(clx @ Четверг, 04 Августа 2005, 14:43) писал(а):Для MaGIc2laNTern:
Может в /etc/ld.so.conf ?
Издеваешься?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
polachok
Бывший модератор
Сообщения: 2199
Статус: главный форумный маргинал
ОС: gnu/linux
Контактная информация:

Re: Полезные переменные

Сообщение polachok »

типа прикол наверное :) в конфигурационном файле твоего shell'a
И немедленно выпил.
Спасибо сказали:
Аватара пользователя
clx
Сообщения: 3121
Статус: Think Different !
ОС: Mac OS X

Re: Полезные переменные

Сообщение clx »

Ладно , проехали :)
Переменная $PATH прописывается в ~/.bash_profile, например.
iMac 20" Core Duo.
Спасибо сказали:
EdiG
Сообщения: 33
Контактная информация:

Re: Полезные переменные

Сообщение EdiG »

Код: Выделить всё

t=/mnt/media/mp3  // для удобства быстрого перехода в каталог пример #cd $t
PATH="${PATH}:${HOME}/bin" //для поиска программ в каталоге
alias ls="ls --color=auto" // list files цветной
Спасибо сказали:
Аватара пользователя
Jinn
Сообщения: 698
Статус: Интересующийся бывалый прохожий

Re: Полезные переменные

Сообщение Jinn »

А вот переменную PRINTER забыли! А ведь её многие редакторы пользуют!
Don't trouble troubles until troubles trouble you!
Спасибо сказали:
Nab
Сообщения: 257
Контактная информация:

Re: Полезные переменные

Сообщение Nab »

А вот из собственного опыта.
Когда локаль выставлена не очень верно, Perl может ругается на LOCALE.
Для временной блокировки сего эффекта можно установить PERL_BADLANG=0.
Но при этом

Код: Выделить всё

use locale;

возможно будет работать не очень верно :(.
Чтобы правильно задать вопрос, нужно знать больше половины ответа...
FREESCO in Ukraine
Спасибо сказали:
vadiml
Сообщения: 446
ОС: fc12.x86_64
Контактная информация:

Re: Полезные переменные

Сообщение vadiml »

в FC (в других не обращал внимания) есть файл /etc/environment, значения которого действуют на всех юзеров
phenom x4 905e, asus m4a79 deluxe, 4 gb, ati x550, ati 4350, 2 x 17" LCD
Спасибо сказали:
Ответить