From a8ef6453d954108ae0445943487ef76228c5a26c Mon Sep 17 00:00:00 2001 From: Maxim Likhachev Date: Tue, 2 Nov 2021 23:01:50 +0300 Subject: [PATCH] bash: adjust configuration --- etc/shell/bash/aliases | 35 ++++++++++++++++++++++++----------- etc/shell/bash/bashrc | 35 +++++++++++++++++++++++------------ etc/shell/bash/bashrc_darwin | 19 ++++++++++++++----- 3 files changed, 61 insertions(+), 28 deletions(-) diff --git a/etc/shell/bash/aliases b/etc/shell/bash/aliases index 2953af3..b1634a0 100755 --- a/etc/shell/bash/aliases +++ b/etc/shell/bash/aliases @@ -14,22 +14,23 @@ alias aliases="alias | vcat -l sh" #- Перемещение по директориям function popd() { - local stack=$(dirs -v | wc -l) + local stack + stack=$(dirs -v | wc -l) if [ "$stack" -gt 1 ]; then - builtin popd + builtin popd || return else - builtin cd - + builtin cd - || return fi } function pushd() { if [ $# -eq 0 ]; then - builtin pushd "$HOME" + builtin pushd "$HOME" || return elif [ "$1" == "-" ]; then - builtin popd + builtin popd || return else - builtin pushd "$1" + builtin pushd "$1" || return fi } @@ -106,6 +107,15 @@ else alias htop="htop -u $(whoami)" fi +#noindex +sed() { + if command -V gsed >/dev/null 2>&1; then + gsed "$@" + else + sed "$@" + fi +} + #}}} ########################################################################### #{{{ \033[00m\n\b------\n ################################################################################ @@ -117,7 +127,7 @@ function cal() { #noindex #- Запуск программ без привязки к сессии nh() { - nohup "$@" &>/dev/null & + nohup "$@" &>/dev/null & } #- Правка псевдонимов в Vim @@ -144,10 +154,13 @@ function lls() { s/r-x/5/g; s/rw-/6/g; s/rwx/7/g; s/---/0/g' } -#- История bash -h() { #noindex - query=$* - [ -z "$1" ] && history || history | grep "${query// /.*}"; +#- История bash с нечётким поиском +h() { + if [ -z "$1" ]; then + history + else + history | ug -Z --bool "$*" + fi } #Переназначение функции, вызываемой неизвестной командой diff --git a/etc/shell/bash/bashrc b/etc/shell/bash/bashrc index 8b3c510..12a43f4 100755 --- a/etc/shell/bash/bashrc +++ b/etc/shell/bash/bashrc @@ -1,6 +1,6 @@ -#!/bin/bash #################################################################### +#!/usr/bin/env bash ############################################################ # -# Изменён: вт 02 ноя 2021 12:29:31 +# Изменён: вт 02 ноя 2021 21:12:01 # ################################################################################ @@ -14,12 +14,12 @@ export BASHRC="$SHELLRC/etc/shell/bash" #Путь к настройкам bash export INPUTRC="$BASHRC/inputrc" #Файл inputrc export PLATFORM="$(uname -s | tr 'A-Z' 'a-z')" #Тип ОС -export MANPATH="$MANPATH:/home/maks/.shellrc/var/man" #Локальные файлы руководства +export MANPATH="${MANPATH}:${SHELLRC}/var/man" #Локальные файлы руководства export GTK_IM_MODULE="xim" #Метод ввода Χ export QT_IM_MODULE="xim" #Метод ввода Χ -source "$SHELLRC/etc/wm/xdg/user-dirs.dirs" +source "${SHELLRC}/etc/wm/xdg/user-dirs.dirs" export HSTR_CONFIG="keywords-matching,blacklist,hicolor" #hstr export HSTR_PROMPT="> " @@ -62,13 +62,13 @@ export LS_COLORS=$(cat $BASHRC/ls_colors_generated) export LC_ALL=ru_RU.UTF-8 export LC_CTYPE=ru_RU.UTF-8 -export IGNOREEOF=3 #Закрывать оболочку по 3м C-d +export IGNOREEOF=3 #Закрывать оболочку по 3м C-d -export LOGDIR=$SHELLRC/var/log #Директория журналов скриптов -export MD=$SHELLRC/var/mail/ #Директория почты +export LOGDIR=$SHELLRC/var/log #Директория журналов скриптов +export MD=$SHELLRC/var/mail/ #Директория почты export MAILCAPS=$SHELLRC/etc/mail/mailcap/mailcap #~/.mailcap -export CRON=$SHELLRC/etc/cron/crontab #Задания cron -export TMP="/tmp" #Директория временных файлов +export CRON=$SHELLRC/etc/cron/crontab #Задания cron +export TMP="/tmp" #Директория временных файлов #Настройки nnn export NN_USE_EDITOR=1 @@ -192,7 +192,17 @@ fi # {{{ Подключение псевдонимов ################################################################################ -[ -f "$BASHRC/aliases" ] && ALIASES="$BASHRC/aliases" && . "$ALIASES" && HELPSRC+=("$ALIASES") +if [[ -f "${BASHRC}/aliases" ]]; then + ALIASES="${BASHRC}/aliases" + HELPSRC+=("$ALIASES") + source "$ALIASES" +fi + +if [[ -f "${BASHRC}/aliases_${PLATFORM}" ]]; then + PLATFORM_ALIASES="${BASHRC}/aliases_${PLATFORM}" + HELPSRC+=("$PLATFORM_ALIASES") + source "$PLATFORM_ALIASES" +fi #Раскрывать псевдонимы в скриптах # shopt -s expand_aliases @@ -260,8 +270,9 @@ 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" +[ -f "${BASHRC}/bash_completion" ] && . "${BASHRC}/bash_completion" +[ -f "${BASHRC}/bash_completion_custom" ] && . "${BASHRC}/bash_completion_custom" +[ -f "${BASHRC}/bash_completion_${PLATFORM}" ] && . "${BASHRC}/bash_completion_${PLATFORM}" # }}} ########################################################################## # {{{ Настройка истории команд diff --git a/etc/shell/bash/bashrc_darwin b/etc/shell/bash/bashrc_darwin index 54f206c..2a05084 100644 --- a/etc/shell/bash/bashrc_darwin +++ b/etc/shell/bash/bashrc_darwin @@ -1,4 +1,16 @@ -PATH="$SHELLRC/bin:$SHELLRC/bin/scripts:/usr/local/opt/coreutils/libexec/gnubin/:$PATH:/Applications/:~/go/bin/:~/Library/Python/3.9/bin/:$HOME/.cabal/bin:${GHCUP_INSTALL_BASE_PREFIX:=$HOME}/.ghcup/bin:~/.cargo/bin:~/.local/bin" +path++ $SHELLRC/bin MACOS_PATH +path++ $SHELLRC/bin/scripts MACOS_PATH + +# GNU-утилиты имеют более высокий приоритет +path++ /usr/local/opt/coreutils/libexec/gnubin/ MACOS_PATH +path++ $PATH MACOS_PATH + +path++ /Applications/ MACOS_PATH +path++ ~/go/bin/ MACOS_PATH +path++ ~/.local/bin MACOS_PATH + +export PATH="$MACOS_PATH" +unset MACOS_PATH # Homebrew settings export HOMEBREW_NO_ANALYTICS=1 @@ -10,8 +22,5 @@ export DOTNET_CLI_TELEMETRY_OPTOUT=1 [[ -e "${HOME}/.iterm2_shell_integration.bash" ]] && source "${HOME}/.iterm2_shell_integration.bash" -[[ -f $BASHRC/aliases_darwin ]] && DARWIN_ALIASES="$BASHRC/aliases_darwin" \ - && . $DARWIN_ALIASES \ - && HELPSRC+=("$DARWIN_ALIASES") -[[ -f $BASHRC/bash_completion_darwin ]] && . $BASHRC/bash_completion_darwin +# [[ -f $BASHRC/bash_completion_darwin ]] && . $BASHRC/bash_completion_darwin