|
|
|
|
#!/bin/bash ####################################################################
|
|
|
|
|
#
|
|
|
|
|
# Изменён: Пт 01 фев 2019 18:23:22
|
|
|
|
|
#
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
################################ Общие настройки ###############################
|
|
|
|
|
# {{{ Переменные окружения
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
export BASH_ENV="$HOME/.bashrc" #Файл настроек интерпретатора
|
|
|
|
|
export SHELLRC="$HOME/.shellrc" #Путь к директории настроек
|
|
|
|
|
export BASHRC="$SHELLRC/etc/shell/bash" #Путь к настройкам bash
|
|
|
|
|
export INPUTRC="$BASHRC/inputrc" #Файл inputrc
|
|
|
|
|
|
|
|
|
|
export GTK_IM_MODULE="xim" #Метод ввода Χ
|
|
|
|
|
export QT_IM_MODULE="xim" #Метод ввода Χ
|
|
|
|
|
|
|
|
|
|
export export HH_CONFIG="keywords,blacklist,rawhistory" #hstr
|
|
|
|
|
|
|
|
|
|
export STARDICT_DATA_DIR=$SHELLRC/etc/soft/sdcv/dictionaries/
|
|
|
|
|
export SDCV_HISTSIZE=10000
|
|
|
|
|
#export SDCV_PAGER=less
|
|
|
|
|
|
|
|
|
|
# export TERM=xterm
|
|
|
|
|
export TERM=xterm-256color
|
|
|
|
|
|
|
|
|
|
export GUILE_HISTORY="$SHELLRC/var/shell/guile.history" #История guile
|
|
|
|
|
export GUILE_AUTO_COMPILE=0 #Запрет на автокомпиляцию
|
|
|
|
|
|
|
|
|
|
export PAGER=less #Страничный просмотрщик
|
|
|
|
|
export VISUAL=vim #Стандартный редактор
|
|
|
|
|
export EDITOR=vim #Стандартный редактор
|
|
|
|
|
|
|
|
|
|
export HELPSRC=()
|
|
|
|
|
|
|
|
|
|
#Не очищать экран при выходе.
|
|
|
|
|
#Игнорировать регистр при поиске.
|
|
|
|
|
#Подсвечивать новую строку при пролистывании экрана.
|
|
|
|
|
#Показывать результат поиска в центре.
|
|
|
|
|
export LESS="-X --ignore-case -w --jump-target=.5"
|
|
|
|
|
|
|
|
|
|
export LESSOPEN="|/usr/bin/lesspipe.sh %s"
|
|
|
|
|
export LESSHISTFILE=/dev/null
|
|
|
|
|
export LESSCOLOR=yes
|
|
|
|
|
|
|
|
|
|
export LC_ALL=ru_RU.UTF-8 #Системная локаль
|
|
|
|
|
export PRINTER=HP_LaserJet_P1005 #Принтер по умолчанию
|
|
|
|
|
|
|
|
|
|
export IGNOREEOF=3 #Закрывать оболочку по 3м C-d
|
|
|
|
|
|
|
|
|
|
export LOGDIR=$SHELLRC/var/log #Директория журналов скриптов
|
|
|
|
|
export TODO=$SHELLRC/etc/soft/calcurse/todo #Список дел
|
|
|
|
|
export MD=$SHELLRC/var/mail/ #Директория почты
|
|
|
|
|
export MAILCAPS=$SHELLRC/etc/mail/mailcap/mailcap #~/.mailcap
|
|
|
|
|
export CRON=$SHELLRC/etc/cron/crontab #Задания cron
|
|
|
|
|
export TMP="/tmp" #Директория временных файлов
|
|
|
|
|
|
|
|
|
|
export JAVA_HOME="/usr/lib/jvm/oracle-jdk-bin-1.8/"
|
|
|
|
|
|
|
|
|
|
#Настройки nnn
|
|
|
|
|
export NN_USE_EDITOR=1
|
|
|
|
|
|
|
|
|
|
#Настройки cw
|
|
|
|
|
export NOCOLOR_PIPE=1
|
|
|
|
|
#export CW_INVERT=1
|
|
|
|
|
|
|
|
|
|
#Настройки компилятора
|
|
|
|
|
export CFLAGS="-O2 -pipe"
|
|
|
|
|
export MAKEOPTS="-j `getconf _NPROCESSORS_ONLN`"
|
|
|
|
|
|
|
|
|
|
if [[ $OS != Windows* ]]; then
|
|
|
|
|
#Версия gcc
|
|
|
|
|
GCCV=$(\gcc --version | head -n 1 | cut -d ' ' -f 3)
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
#Формат времени, выводимый командой time
|
|
|
|
|
# real 0m32.155s
|
|
|
|
|
# user 0m0.357s
|
|
|
|
|
# sys 0m0.343s
|
|
|
|
|
# CPU 2.17%
|
|
|
|
|
#
|
|
|
|
|
export TIMEFORMAT=$'real\t%3lR\nuser\t%3lU\nsys\t%3lS\nCPU\t%P%'
|
|
|
|
|
|
|
|
|
|
#Настройка TOR + Privoxy
|
|
|
|
|
export http_proxy=
|
|
|
|
|
export HTTP_PROXY=
|
|
|
|
|
# http_proxy=http://127.0.0.1:8118/
|
|
|
|
|
# proxy_address=$http_proxy
|
|
|
|
|
# HTTP_PROXY=$http_proxy
|
|
|
|
|
# export http_proxy HTTP_PROXY proxy_address
|
|
|
|
|
|
|
|
|
|
export SBCL_HOME=/usr/lib/sbcl
|
|
|
|
|
|
|
|
|
|
export MPLAYER_HOME=$HOME/.config/mplayer
|
|
|
|
|
export GIMP2_DIRECTORY=$HOME/.local/share/gimp-2.8
|
|
|
|
|
export VIMDIR=$SHELLRC/etc/soft/vim/vim
|
|
|
|
|
|
|
|
|
|
# }}} ##########################################################################
|
|
|
|
|
# {{{ Опции подсветки
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
#Настройка цветовых кодов
|
|
|
|
|
rstc="\033[00m"
|
|
|
|
|
yellow="\033[1;33m"
|
|
|
|
|
blue="\033[1;36m"
|
|
|
|
|
red="\033[1;31m"
|
|
|
|
|
green="\033[1;32m"
|
|
|
|
|
grey="\033[0;37m"
|
|
|
|
|
white="\033[1;1m"
|
|
|
|
|
|
|
|
|
|
#Подсветка результатов grep
|
|
|
|
|
export GREP_COLOR='1;31'
|
|
|
|
|
|
|
|
|
|
#Цвета ls
|
|
|
|
|
# export LS_COLORS="\
|
|
|
|
|
# no=00:fi=00:di=01;34:ln=01;36:\
|
|
|
|
|
# pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:\
|
|
|
|
|
# *.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:\
|
|
|
|
|
# *.lzh=01;31:*.zip=01;31:*.7z=01;31:*.rar=01;31:*.z=01;31:*.Z=01;31:\
|
|
|
|
|
# *.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:\
|
|
|
|
|
# *.jpg=00;35:*.jpeg=00;35:*.JPG=00;35:*.png=00;35:*.gif=00;35:*.bmp=00;35:\
|
|
|
|
|
# *.ppm=00;35:*.tga=00;35:*.xbm=00;35:*.xpm=00;35:*.tif=00;35:*.png=00;35:\
|
|
|
|
|
# *.mpg=01;35:*.avi=01;35:*.fli=01;35:*.vob=01;35:*.mp4=01;35:*.wmv=01;35:\
|
|
|
|
|
# *.txt=00;33:*.doc=00;33:*.odt=00;33:*.rtf=00;33:*.pdf=00;33:*.djvu=00;33:\
|
|
|
|
|
# *.mp3=01;36:*.wav=01;36:*.ape=01;36:*.ogg=01;36:*.wma=01;36:*.midi=01;36:\
|
|
|
|
|
# *.flac=01;36:*.gpt=01;38:*.gp2=01;38:*.gp3=01;38:*.gp4=01;38:\
|
|
|
|
|
# *.c=00;04:*.cpp=00;04:*.pas=00;04:*.ui=00;04:*.sh=00;04:*.py=00;04:*.rb=00;04:\
|
|
|
|
|
# *.gl=01;35:*.dl=01;35:"
|
|
|
|
|
|
|
|
|
|
# export LS_COLORS=$($BASHRC/ls_colors_generator.py)
|
|
|
|
|
export LS_COLORS=$(cat $BASHRC/ls_colors_generated)
|
|
|
|
|
|
|
|
|
|
#Настройка подсветки мануалов
|
|
|
|
|
export LESS_TERMCAP_mb=$'\E[01;31m'
|
|
|
|
|
export LESS_TERMCAP_md=$'\E[01;31m'
|
|
|
|
|
export LESS_TERMCAP_me=$'\E[0m'
|
|
|
|
|
export LESS_TERMCAP_se=$'\E[0m'
|
|
|
|
|
export LESS_TERMCAP_so=$'\E[01;44;33m'
|
|
|
|
|
export LESS_TERMCAP_ue=$'\E[0m'
|
|
|
|
|
export LESS_TERMCAP_us=$'\E[01;32m'
|
|
|
|
|
|
|
|
|
|
# }}} ##########################################################################
|
|
|
|
|
# {{{ Настройка путей
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
# removes duplicate paths
|
|
|
|
|
# NOTE: symlinks aren't dereferenced (e.g., using `readlink`) as they may
|
|
|
|
|
# exist for compatibility reasons
|
|
|
|
|
#- Удаление директории(й) из PATH
|
|
|
|
|
path-- () {
|
|
|
|
|
local IFS=':'
|
|
|
|
|
local newpath
|
|
|
|
|
local i
|
|
|
|
|
|
|
|
|
|
for i in ${!2}; do
|
|
|
|
|
if [[ "$i" != "$1" ]]; then
|
|
|
|
|
newpath=${newpath:+$newpath:}$i
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
export $2="$newpath"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#- Добавление директории(й) в PATH. path++ d:i:r:s PATH [before]
|
|
|
|
|
path++ () {
|
|
|
|
|
local IFS=':'
|
|
|
|
|
local oldpath
|
|
|
|
|
local i
|
|
|
|
|
|
|
|
|
|
for i in $1; do
|
|
|
|
|
if [[ -d "$i" ]]; then
|
|
|
|
|
if [ -z "${!2:-}" ]; then
|
|
|
|
|
export $2=""
|
|
|
|
|
fi
|
|
|
|
|
path-- $i $2
|
|
|
|
|
if [ "${3:-}" = "before" ]; then
|
|
|
|
|
export $2="$i:${!2:+${!2}}"
|
|
|
|
|
else
|
|
|
|
|
export $2="${!2:+${!2}:}$i"
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo "$i is not a directory" >&2
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
INIT_PATH=$PATH
|
|
|
|
|
PATH="."
|
|
|
|
|
|
|
|
|
|
if [[ $OS != Windows* ]]; then
|
|
|
|
|
path++ $SHELLRC/etc/shell/cw/def PATH
|
|
|
|
|
path++ $SHELLRC/bin/app:$SHELLRC/bin/dmenu:$SHELLRC/bin/musca:$SHELLRC/bin/exec PATH
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
path++ $SHELLRC/bin:$SHELLRC/bin/scripts PATH
|
|
|
|
|
path++ /bin:/usr/bin:/usr/local/bin PATH
|
|
|
|
|
|
|
|
|
|
#Android SDK
|
|
|
|
|
# path++ /opt/android-sdk-linux/platforms/:/opt/android-sdk-linux/tools/ PATH
|
|
|
|
|
|
|
|
|
|
if [ $UID -eq 0 ]; then
|
|
|
|
|
TMOUT=600
|
|
|
|
|
PROMPT_COLOR='\033[1;31m'
|
|
|
|
|
export HOME=/root
|
|
|
|
|
|
|
|
|
|
path++ /sbin PATH
|
|
|
|
|
path++ /usr/sbin PATH
|
|
|
|
|
path++ /usr/local/sbin PATH
|
|
|
|
|
else
|
|
|
|
|
PROMPT_COLOR='\033[1;32m'
|
|
|
|
|
export HOME=/home/$(whoami)
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# }}} ##########################################################################
|
|
|
|
|
# {{{ Подключение псевдонимов
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
[ -f $BASHRC/aliases ] && ALIASES="$BASHRC/aliases" && . $ALIASES && HELPSRC+=("$ALIASES")
|
|
|
|
|
|
|
|
|
|
#Раскрывать псевдонимы в скриптах
|
|
|
|
|
# shopt -s expand_aliases
|
|
|
|
|
|
|
|
|
|
# }}} ##########################################################################
|
|
|
|
|
# {{{ Настройка Cygwin
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
if [[ `uname -o` == Cygwin ]]; then
|
|
|
|
|
path++ $INIT_PATH PATH
|
|
|
|
|
|
|
|
|
|
[[ -f $BASHRC/aliases_cygwin ]] && CYGWIN_ALIASES="$BASHRC/aliases_cygwin" \
|
|
|
|
|
&& . $CYGWIN_ALIASES \
|
|
|
|
|
&& HELPSRC+=("$CYGWIN_ALIASES")
|
|
|
|
|
[[ -f $BASHRC/bash_completion_cygwin ]] && . $BASHRC/bash_completion_cygwin
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# }}} ##########################################################################
|
|
|
|
|
|
|
|
|
|
[[ "$-" != *i* ]] && return
|
|
|
|
|
|
|
|
|
|
######################## Настройки интерактивного режима #######################
|
|
|
|
|
# {{{ Настройка приглашения
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
[ -n "$SSH_CLIENT" ] && PROMPT_SHH="[${red}ssh${PROMPT_COLOR}]"
|
|
|
|
|
|
|
|
|
|
PS1="$PROMPT_COLOR┌─[$yellow\h$PROMPT_COLOR]─(${yellow}\j${PROMPT_COLOR})$PROMPT_SHH─[$yellow\w$PROMPT_COLOR]\n$PROMPT_COLOR└─[$PROMPT_COLOR\t]\$ $rstc"
|
|
|
|
|
|
|
|
|
|
PS2="$green-> $rstc"
|
|
|
|
|
PS3="$green+> $rstc"
|
|
|
|
|
PS4="$green++ $rstc"
|
|
|
|
|
|
|
|
|
|
short_pwd() {
|
|
|
|
|
# echo -en ' '
|
|
|
|
|
# pwd | sed 's@/home/'$USER'@~@; s@^\([~/][^/]*/\).*\(\(/[^/]*\)\{3\}\)$@\1\2@'
|
|
|
|
|
pwd | sed 's@/home/'$USER'@~@; s@^\(\([~/][^/]*\)\{2\}/\).*\(\(/[^/]*\)\{2\}\)$@\1...\3@'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# PROMPT_COMMAND="history -a; history -n;"
|
|
|
|
|
PROMPT_COMMAND='history -a;echo -en "\033]0;$(short_pwd)\007"'
|
|
|
|
|
|
|
|
|
|
export CDPATH=".:~/FILES:~/FILES/Projects:~/Downloads"
|
|
|
|
|
export PROMPT_DIRTRIM=3 #В приглашении показывать 3 директории
|
|
|
|
|
|
|
|
|
|
# }}} ##########################################################################
|
|
|
|
|
# {{{ Настройка автодополнения
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
export BASH_COMPLETION="$BASHRC/bash_completion"
|
|
|
|
|
|
|
|
|
|
[ -f $BASHRC/bash_completion ] && . $BASHRC/bash_completion
|
|
|
|
|
[ -f $BASHRC/bash_completion_custom ] && . $BASHRC/bash_completion_custom
|
|
|
|
|
|
|
|
|
|
# }}} ##########################################################################
|
|
|
|
|
# {{{ Настройка истории команд
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
#Раздельная история для рута и пользователя
|
|
|
|
|
export HISTFILE=$SHELLRC/var/shell/bash.history-$(whoami | awk '{print $1}';exit)
|
|
|
|
|
export HISTSIZE=100000 #Размер истории
|
|
|
|
|
export HISTFILESIZE=900000 #Размер файла истории
|
|
|
|
|
export HISTTIMEFORMAT='%d.%m.%Y %H:%M:%S ' #Формат записи истории
|
|
|
|
|
export HISTCONTROL="ignoreboth" #Игнорировать '^ ' и дубликаты
|
|
|
|
|
export HISTIGNORE="&:[bf]g:h:c:exit:,ww:~:..:,-:,w,w:,m:ls:\:q:t:\?" #Не записывать в историю
|
|
|
|
|
|
|
|
|
|
# }}} ##########################################################################
|
|
|
|
|
# {{{ Прочие настройки
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
#Права на созданные файлы
|
|
|
|
|
umask 022
|
|
|
|
|
|
|
|
|
|
shopt -s progcomp
|
|
|
|
|
shopt -s globstar #Включение масок ** и **/ (рекурсивный перебор)
|
|
|
|
|
shopt -s autocd #Интерпретировать команды как параметры cd
|
|
|
|
|
shopt -s checkjobs #При выходе проверять фоновые задания
|
|
|
|
|
shopt -s histappend #Не добавлять команды, не переписывая историю
|
|
|
|
|
shopt -s cmdhist #Сохранение многострочной команды в одной строке
|
|
|
|
|
shopt -s cdable_vars #Аргументы cd могут быть переменными
|
|
|
|
|
shopt -s cdspell #Исправление ошибок в именах директорий
|
|
|
|
|
shopt -s dirspell #Исправление имен директорий при автодополнении
|
|
|
|
|
shopt -s checkhash #Проверка на существование команд в хеш-таблице
|
|
|
|
|
shopt -s lithist #Заменять ';' на '\n' в многострочных командах
|
|
|
|
|
shopt -s histreedit #Повторное редактирование команды
|
|
|
|
|
shopt -s promptvars #Раскрывать значения переменных в приглашении
|
|
|
|
|
shopt -s hostcomplete #Дополнение имен хостов (@...)
|
|
|
|
|
shopt -s interactive_comments #Игнорирование строк, начинающихся на #
|
|
|
|
|
shopt -s dotglob #Подстановка скрытых файлов
|
|
|
|
|
shopt -s nocaseglob #Подстановка без учета регистра
|
|
|
|
|
shopt -s checkwinsize #Проверять размер окна терминала
|
|
|
|
|
shopt -s no_empty_cmd_completion #Не дополнять пустую строку
|
|
|
|
|
shopt -s xpg_echo #echo -e -E
|
|
|
|
|
shopt -s extglob #Расширенное сопоставление с образцами
|
|
|
|
|
# ?(шаблон) Количество появлений указанного шаблона, равное нулю или единице
|
|
|
|
|
# *(шаблон) Количество появлений указанного шаблона, равное нулю или больше
|
|
|
|
|
# +(шаблон) Одно или большее количество появлений указанного шаблона
|
|
|
|
|
# @(шаблон) Одно появление указанного шаблона
|
|
|
|
|
# !(шаблон) Всё, кроме одного появления указанного шаблона
|
|
|
|
|
|
|
|
|
|
[[ (-f $BASHRC/cdargs-bash.sh) && (`uname -o` != Cygwin) ]] && . $BASHRC/cdargs-bash.sh
|
|
|
|
|
|
|
|
|
|
#Привычные комбинации клавиш для режима vi
|
|
|
|
|
bind -m vi-command ".":insert-last-argument
|
|
|
|
|
bind -m vi-insert "\C-l.":clear-screen
|
|
|
|
|
bind -m vi-insert "\C-a.":beginning-of-line
|
|
|
|
|
bind -m vi-insert "\C-e.":end-of-line
|
|
|
|
|
bind -m vi-insert "\C-w.":backward-kill-word
|
|
|
|
|
bind -m vi-insert "\C-o":history-search-backward
|
|
|
|
|
bind -m vi-insert "\C-k":kill-line
|
|
|
|
|
# bind -m vi-insert "\C-n":history-search-forward
|
|
|
|
|
|
|
|
|
|
#hstr
|
|
|
|
|
bind '"\C-r": "\C-ahh \C-j"'
|
|
|
|
|
|
|
|
|
|
# bind '"\C-r": "\C-aprintf \033c\e]20;;100x100+1000+1000\a \C-j"'
|
|
|
|
|
|
|
|
|
|
#commacd
|
|
|
|
|
source $SHELLRC/etc/shell/bash/commacd
|
|
|
|
|
|
|
|
|
|
# alias grep="/usr/bin/grep $GREP_OPTIONS"
|
|
|
|
|
unset GREP_OPTIONS
|
|
|
|
|
|
|
|
|
|
export LC_CTYPE="ru_RU.UTF-8"
|
|
|
|
|
|
|
|
|
|
#Исправление ошибок с набором акцентов
|
|
|
|
|
# if [ "$TERM" == "xterm" ]; then
|
|
|
|
|
printf '\33]701;%s\007' "$LANG"
|
|
|
|
|
# fi
|
|
|
|
|
|
|
|
|
|
# }}} ##########################################################################
|
|
|
|
|
|