На другом дистре у меня одним цветом выделяются пользователь и домен, папки и файлы и многое другое.... как в виртуальных терминалах, так и на эмуляторах в Х
Порулить ~/.bashrc
У меня получалось для конкретного юзера сделать всё цветастенькое.
Я из генты /etc/bash/bashrc брал.
Там такой текст, посвящённый цвету:
use_color=false
# Set colorful PS1 only on colorful terminals.
# dircolors --print-database uses its own built-in database
# instead of using /etc/DIR_COLORS. Try to use the external file
# first to take advantage of user additions. Use internal bash
# globbing instead of external grep binary.
safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM
match_lhs=""
[[ -f ~/.dir_colors ]] && match_lhs="${match_lhs}$(<~/.dir_colors)"
[[ -f /etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(DIR_COLORS)"
[[ -z ${match_lhs} ]] \
&& type -P dircolors >/dev/null \
&& match_lhs=$(dircolors --print-database)
[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true
if ${use_color} ; then
# Enable colors for ls, etc. Prefer ~/.dir_colors #64489
if type -P dircolors >/dev/null ; then
if [[ -f ~/.dir_colors ]] ; then
eval $(dircolors -b ~/.dir_colors)
elif [[ -f /etc/DIR_COLORS ]] ; then
eval $(dircolors -b /etc/DIR_COLORS)
fi
fi
if [[ ${EUID} == 0 ]] ; then
PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
else
PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
fi
alias ls='ls --color=auto'
alias grep='grep --colour=auto'
else
if [[ ${EUID} == 0 ]] ; then
# show root@ when we don't have colors
PS1='\u@\h \W \$ '
else
PS1='\u@\h \w \$ '
fi
fi
Да... я скрипты поправил в /etc глобальные... Там немного странные они были, сделал и для всех юзеров и для рута цвета
Тогда другой вопрос по этой же теме. вот у меня основная система гента, у неё изначальная загрузка системы цветная, там где инициализация системы идет, там можно как - нибудь сделать? Ок - одним цветом, fail, warning другим.... при самой загрузке...?
Значит смотри, я приведу свои файлы, и укажу ключевые моменты, я просто люблю скрипты перелопатить....
1) Мои локальные файлы ~/.bashrc у рута и остальных пользователей, я практически очистил
2) Мой /etc/profile
if [ "`id -u`" -eq 0 ]; then PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" else PATH="/usr/local/bin:/usr/bin:/bin:/usr/games" fi
if [ "$PS1" ]; then if [ "$BASH" ]; then PS1='\u@\h:\w\$ ' else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi
export PATH
. /etc/bash.bashrc # КЛЮЧЕВОЙ МОМЕНТ "ТОЧКА ПРОБЕЛ ГЛОБАЛЬНЫЙ ФАЙЛ БАША"
umask 022
3) Мой глобальный файл баша /etc/bash.bashrc
Выделю лишь кусочек, который я дописывал
case "$TERM" in xterm*|rxvt*) PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"' ;; *) ;; esac
if [[ ${EUID} == 0 ]] ; then PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] ' else PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] ' fi
# enable bash completion in interactive shells #if [ -f /etc/bash_completion ]; then # . /etc/bash_completion #fi
if [ -x /usr/bin/dircolors ]; then eval "`dircolors -b`" alias ls='ls --color=auto' alias dir='dir --color=auto' alias vdir='vdir --color=auto'
alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi
Попробуй, если чего не получится, я твои скрипты посмотрю... удачи
Да и еще хотел добавить... Когда вы создаете нового пользователя и назначаете ему оболочку SHELL, то создается файл .bashrc, который по умолчанию, по крайней мере у меня, выключает показ цветов и является более приоритетным по отношению к глобальному.
Приведу строки кода, которые препятствуют показу цветов нового пользователя их две:
1) #здесь переменная TERM проверяется на имя xterm-color и в случае успеха активизируется переменная color_prompt. У меня терминал xterm и условие уже не выполняется
case "$TERM" in xterm-color) color_prompt=yes;; esac
2) # переменная отвечает за принудительный показ цветов, раскомментировав ее, получите цвета, но как я говорил, я свои локальные файлы от этих скриптов почистил и дополнил своими
#force_color_prompt=yes
3) Остается открытый вопрос, как заставить баш не создавать локальные файлы, ну или задать ему опции, с которыми он их создавал бы?
Спасибо, о приоритетах я как-то не подумал.
А чтобы для юзеров создавались правильные конфиги, скорее всего, надо подправить файлики в папке /etc/skel/. Например, /etc/skel/.bashrc. Ведь именно они даются новому юзеру при создании.
Порулить ~/.bashrc
У меня получалось для конкретного юзера сделать всё цветастенькое.
Я из генты /etc/bash/bashrc брал.
Там такой текст, посвящённый цвету:
Да... я скрипты поправил в /etc глобальные... Там немного странные они были, сделал и для всех юзеров и для рута цвета
Тогда другой вопрос по этой же теме. вот у меня основная система гента, у неё изначальная загрузка системы цветная, там где инициализация системы идет, там можно как - нибудь сделать? Ок - одним цветом, fail, warning другим.... при самой загрузке...?
Так поведай как сделал для всех. Я писал и в /etc/bash.bashrc и в /etc/profile и всё безтолку.
По поводу ОК другим цветом: форум Ubuntu
Значит смотри, я приведу свои файлы, и укажу ключевые моменты, я просто люблю скрипты перелопатить....
1) Мои локальные файлы ~/.bashrc у рута и остальных пользователей, я практически очистил
2) Мой /etc/profile
if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi
if [ "$PS1" ]; then
if [ "$BASH" ]; then
PS1='\u@\h:\w\$ '
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
export PATH
. /etc/bash.bashrc # КЛЮЧЕВОЙ МОМЕНТ "ТОЧКА ПРОБЕЛ ГЛОБАЛЬНЫЙ ФАЙЛ БАША"
umask 022
3) Мой глобальный файл баша /etc/bash.bashrc
Выделю лишь кусочек, который я дописывал
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
;;
*)
;;
esac
if [[ ${EUID} == 0 ]] ; then
PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
else
PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '
fi
# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
#fi
if [ -x /usr/bin/dircolors ]; then
eval "`dircolors -b`"
alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
Попробуй, если чего не получится, я твои скрипты посмотрю... удачи
Да и еще хотел добавить... Когда вы создаете нового пользователя и назначаете ему оболочку SHELL, то создается файл .bashrc, который по умолчанию, по крайней мере у меня, выключает показ цветов и является более приоритетным по отношению к глобальному.
Приведу строки кода, которые препятствуют показу цветов нового пользователя их две:
1)
#здесь переменная TERM проверяется на имя xterm-color и в случае успеха активизируется переменная color_prompt. У меня терминал xterm и условие уже не выполняется
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
2)
# переменная отвечает за принудительный показ цветов, раскомментировав ее, получите цвета, но как я говорил, я свои локальные файлы от этих скриптов почистил и дополнил своими
#force_color_prompt=yes
3) Остается открытый вопрос, как заставить баш не создавать локальные файлы, ну или задать ему опции, с которыми он их создавал бы?
Спасибо, о приоритетах я как-то не подумал.
А чтобы для юзеров создавались правильные конфиги, скорее всего, надо подправить файлики в папке /etc/skel/. Например, /etc/skel/.bashrc. Ведь именно они даются новому юзеру при создании.
Да, так и есть... я про /etc/skel/.bashrc
Отправить комментарий