# vim: ts=4 sw=4 sts=4 ################################################################################ ## Script : .bashrc ## Name : bash 設定ファイル ## Version : 0.0.1 ## Copyright : 2018-2019 Nomura Kei ## License : BSD-2-Clause ################################################################################ # 対話モードでない場合は、終了する。 # [理由] .bashrc で標準出力/標準エラー出力等をした際、rsync などが失敗するため [[ "$-" != *i* ]] && return # 各種設定ファイルを読み込む。 for CONF_FILE in `\ls -1 ~/.bash.d/bashrc_* 2> /dev/null`; do . ${CONF_FILE} done # システムに依存のファイルを読み込む UNAME=`uname` for CONF_FILE in `\ls -1 ~/.bash.d/bashrc-${UNAME}* 2> /dev/null`; do . ${CONF_FILE} done # 端末に応じた設定 ファイルを読み込む for CONF_FILE in `\ls -1 ~/.bash.d/bashrc-${TERM}* 2> /dev/null`; do . ${CONF_FILE} done # ホストに応じた設定 ファイルを読み込む HOSTNAME=`hostname` for CONF_FILE in `\ls -1 ~/.bashrc/bashrc-${HOSTNAME}* 2> /dev/null`; do . ${CONF_FILE} done # その他設定 export EDITOR=vim # Completion options # # These completion tuning parameters change the default behavior of bash_completion: # # # Define to avoid stripping description in --option=description of './configure --help' # COMP_CONFIGURE_HINTS=1 # # Define to avoid flattening internal contents of tar files # COMP_TAR_INTERNAL_PATHS=1 # # Uncomment to turn on programmable completion enhancements. # Any completions you add in ~/.bash_completion are sourced last. # [[ -f /etc/bash_completion ]] && . /etc/bash_completion # History Options # # Don't put duplicate lines in the history. # export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups export HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups # # Ignore some controlling instructions # HISTIGNORE is a colon-delimited list of patterns which should be excluded. # The '&' is a special pattern which suppresses duplicate entries. # export HISTIGNORE=$'[ \t]*:&:[fb]g:exit' # export HISTIGNORE=$'[ \t]*:&:[fb]g:exit:ls' # Ignore the ls command as well # # Whenever displaying the prompt, write the previous line to disk # export PROMPT_COMMAND="history -a" # Aliases # Misc :) # alias less='less -r' # raw control characters # alias whence='type -a' # where, of a sort # alias grep='grep --color' # show differences in colour # alias egrep='egrep --color=auto' # show differences in colour # alias fgrep='fgrep --color=auto' # show differences in colour # # Some shortcuts for different directory listings # alias ls='ls -hF --color=tty' # classify files in colour # alias dir='ls --color=auto --format=vertical' # alias vdir='ls --color=auto --format=long' # alias ll='ls -l' # long list # alias la='ls -A' # all but . and .. # alias l='ls -CF' # # Umask # # /etc/profile sets 022, removing write perms to group + others. # Set a more restrictive umask: i.e. no exec perms for others: # umask 027 # Paranoid: neither group nor others have any perms: # umask 077 # Functions # # Some people use a different file for functions # if [ -f "${HOME}/.bash_functions" ]; then # source "${HOME}/.bash_functions" # fi # # Some example functions: # # a) function settitle settitle () { echo -ne "\e]2;$@\a\e]1;$@\a"; } # # b) function cd_func # This function defines a 'cd' replacement function capable of keeping, # displaying and accessing history of visited directories, up to 10 entries. # To use it, uncomment it, source this file and try 'cd --'. # acd_func 1.0.5, 10-nov-2004 # Petar Marinov, http:/geocities.com/h2428, this is public domain # cd_func () # { # local x2 the_new_dir adir index # local -i cnt # # if [[ $1 == "--" ]]; then # dirs -v # return 0 # fi # # the_new_dir=$1 # [[ -z $1 ]] && the_new_dir=$HOME # # if [[ ${the_new_dir:0:1} == '-' ]]; then # # # # Extract dir N from dirs # index=${the_new_dir:1} # [[ -z $index ]] && index=1 # adir=$(dirs +$index) # [[ -z $adir ]] && return 1 # the_new_dir=$adir # fi # # # # # '~' has to be substituted by ${HOME} # [[ ${the_new_dir:0:1} == '~' ]] && the_new_dir="${HOME}${the_new_dir:1}" # # # # # Now change to the new dir and add to the top of the stack # pushd "${the_new_dir}" > /dev/null # [[ $? -ne 0 ]] && return 1 # the_new_dir=$(pwd) # # # # # Trim down everything beyond 11th entry # popd -n +11 2>/dev/null 1>/dev/null # # # # # Remove any other occurence of this dir, skipping the top of the stack # for ((cnt=1; cnt <= 10; cnt++)); do # x2=$(dirs +${cnt} 2>/dev/null) # [[ $? -ne 0 ]] && return 0 # [[ ${x2:0:1} == '~' ]] && x2="${HOME}${x2:1}" # if [[ "${x2}" == "${the_new_dir}" ]]; then # popd -n +$cnt 2>/dev/null 1>/dev/null # cnt=cnt-1 # fi # done # # return 0 # } # # alias cd=cd_func