Bashrc

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

.bashrc: En omfattande guide

Introduktion

`.bashrc`-filen är en kritisk komponent i användarens Bash-miljö. Den här filen körs varje gång en ny Bash-skal sesion öppnas, vilket gör den idealisk för att anpassa användarens arbetsmiljö genom att sätta alias, miljövariabler, funktioner och andra inställningar. Den här artikeln kommer att utforska de olika aspekterna av `.bashrc`-filen och ge många exempel på hur man kan använda den.

Grundläggande Struktur

# .bashrc

# Källa globala definierade bashrc-filer
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# Ställ in användarspecifika miljövariabler
export PATH=$PATH:$HOME/bin

# Alias
alias ll='ls -la'
alias ..='cd ..'

# Funktioner
function extract {
    if [ -f $1 ]; then
        case $1 in
            *.tar.bz2)   tar xjf $1   ;;
            *.tar.gz)    tar xzf $1   ;;
            *.bz2)       bunzip2 $1   ;;
            *.rar)       unrar x $1   ;;
            *.gz)        gunzip $1    ;;
            *.tar)       tar xf $1    ;;
            *.tbz2)      tar xjf $1   ;;
            *.tgz)       tar xzf $1   ;;
            *.zip)       unzip $1     ;;
            *.Z)         uncompress $1;;
            *.7z)        7z x $1      ;;
            *)           echo "'$1' cannot be extracted via extract()" ;;
        esac
    else
        echo "'$1' is not a valid file!"
    fi
}

# Anpassa prompten
PS1='[\u@\h \W]\$ '

# Läsa in ytterligare skript
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

if [ -f ~/.bash_functions ]; then
    . ~/.bash_functions
fi

Miljövariabler

export PATH=$PATH:/usr/local/bin
export EDITOR=nano
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

Alias

alias ll='ls -la'
alias la='ls -A'
alias l='ls -CF'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias gs='git status'
alias gp='git pull'
alias gc='git commit -m'

Funktioner

function extract {
    if [ -f $1 ]; then
        case $1 in
            *.tar.bz2)   tar xjf $1   ;;
            *.tar.gz)    tar xzf $1   ;;
            *.bz2)       bunzip2 $1   ;;
            *.rar)       unrar x $1   ;;
            *.gz)        gunzip $1    ;;
            *.tar)       tar xf $1    ;;
            *.tbz2)      tar xjf $1   ;;
            *.tgz)       tar xzf $1   ;;
            *.zip)       unzip $1     ;;
            *.Z)         uncompress $1;;
            *.7z)        7z x $1      ;;
            *)           echo "'$1' cannot be extracted via extract()" ;;
        esac
    else
        echo "'$1' is not a valid file!"
    fi
}

function mkcd {
    mkdir -p "$1"
    cd "$1"
}

function fgrep {
    find . -name "$2" | xargs grep "$1"
}

Anpassa Prompten

PS1='[\u@\h \W]\$ '
PS1='\[\e[0;32m\]\u@\h \[\e[0;34m\]\w \$\[\e[m\] '
parse_git_branch() {
    git branch 2> /dev/null | grep '*' | sed 's/* //'
}
PS1='[\u@\h \W$(parse_git_branch)]\$ '

Inkludera Ytterligare Skript

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

if [ -f ~/.bash_functions ]; then
    . ~/.bash_functions
fi

Avancerade Exempel

function cdd() {
    case $1 in
        docs) cd ~/Documents ;;
        dls) cd ~/Downloads ;;
        desk) cd ~/Desktop ;;
        *) cd "$1" ;;
    esac
}

function workon() {
    source ~/.virtualenvs/$1/bin/activate
}

function vfind() {
    find . -name "$1" -exec vim {} \;
}

Felsökning

bash -n ~/.bashrc
source ~/.bashrc

Slutsats

Den här artikeln har gett en omfattande översikt över `.bashrc`-filen och hur den kan användas för att anpassa din Bash-miljö. Genom att använda exempel och förklaringar har vi täckt allt från grundläggande alias och miljövariabler till avancerade funktioner och felsökningstekniker. Med denna kunskap kan du effektivt anpassa och optimera din terminalupplevelse.

Referenser

* [GNU Bash manual](https://www.gnu.org/software/bash/manual/bash.html)
* [Bash Guide for Beginners](http://tldp.org/LDP/Bash-Beginners-Guide/html/)
* [Advanced Bash-Scripting Guide](http://tldp.org/LDP/abs/html/)