Bashrc
- .bashrc i MediaWiki-format
Introduktion
<syntaxhighlight lang="bash"> .bashrc</syntaxhighlight> är en konfigurationsfil för GNU Bash, vilket är standardkommandotolken för de flesta Linux-distributioner. Den körs när en användare öppnar ett nytt bash-skal som inte är en inloggningsskal. Filen kan användas för att anpassa användarens miljö, definiera alias, funktioner, miljövariabler och andra inställningar.
Grundläggande Struktur
En typisk <syntaxhighlight lang="bash">.bashrc</syntaxhighlight>-fil har följande grundläggande struktur:
<syntaxhighlight lang="bash">
- .bashrc
- Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
- User specific aliases and functions
</syntaxhighlight>
Exempel 1: Alias
Alias är ett sätt att skapa kortkommandon för långa kommandon. Här är några vanliga alias som kan inkluderas i <syntaxhighlight lang="bash">.bashrc</syntaxhighlight>:
<syntaxhighlight lang="bash">
- Färgkodad listning
alias ls='ls --color=auto'
- Säker borttagning
alias rm='rm -i'
- Kortare kommandon
alias ll='ls -l' alias la='ls -A' alias l='ls -CF' </syntaxhighlight>
Exempel 2: Miljövariabler
Miljövariabler används för att lagra värden som används av program och skal. Här är några vanliga miljövariabler som kan ställas in i <syntaxhighlight lang="bash">.bashrc</syntaxhighlight>:
<syntaxhighlight lang="bash">
- Ställ in sökvägen
export PATH=$PATH:$HOME/bin
- Ställ in editor
export EDITOR=nano
- Färgsättning av prompten
export PS1='\[\e[1;32m\]\u@\h \w$\[\e[0m\] ' </syntaxhighlight>
Exempel 3: Funktioner
Funktioner i bash kan användas för att definiera återanvändbara kodblock. Här är några exempel:
<syntaxhighlight lang="bash">
- Diskanvändning
function dusage {
df -h | grep -E '^/dev/root'
}
- Skapa en ny katalog och gå till den
function mkcd {
mkdir -p "$1" && cd "$1"
} </syntaxhighlight>
Exempel 4: Kommandokomplettering
Kommandokomplettering kan göra det lättare att arbeta i terminalen genom att ge förslag när du trycker på Tab-tangenten.
<syntaxhighlight lang="bash">
- Aktivera bash completion om tillgängligt
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi </syntaxhighlight>
Exempel 5: Anpassad prompt
En anpassad prompt kan göra det enklare att navigera i terminalen och ge viktig information direkt i prompten.
<syntaxhighlight lang="bash">
- Visa git branch i prompten
parse_git_branch() {
git branch 2> /dev/null | grep '^*' | colrm 1 2
} export PS1="\u@\h \[\033[33m\]\$(parse_git_branch)\[\033[00m\] \w$ " </syntaxhighlight>
Avancerade Användningar
Utöver grundläggande användningar kan <syntaxhighlight lang="bash">.bashrc</syntaxhighlight> också innehålla mer avancerade skript och konfigurationer.
Exempel 6: Laddning av andra skript
Du kan inkludera andra skript i din <syntaxhighlight lang="bash">.bashrc</syntaxhighlight> för att hålla den organiserad.
<syntaxhighlight lang="bash">
- Ladda anpassade funktioner
if [ -f ~/.bash_functions ]; then
. ~/.bash_functions
fi
- Ladda miljöinställningar
if [ -f ~/.bash_env ]; then
. ~/.bash_env
fi </syntaxhighlight>
Exempel 7: Villkorlig logik
Du kan använda villkorlig logik för att anpassa beteendet beroende på olika faktorer, som vilken dator du använder eller vilken tid på dagen det är.
<syntaxhighlight lang="bash">
- Olika färger beroende på användare
if [ "$(id -u)" -eq 0 ]; then
export PS1='\[\e[1;31m\]\u@\h \w$\[\e[0m\] '
else
export PS1='\[\e[1;32m\]\u@\h \w$\[\e[0m\] '
fi
- Hälsa användaren baserat på tid på dagen
hour=$(date +"%H") if [ $hour -lt 12 ]; then
echo "God morgon, $USER!"
elif [ $hour -lt 18 ]; then
echo "God eftermiddag, $USER!"
else
echo "God kväll, $USER!"
fi </syntaxhighlight>
Exempel 8: Alias för Git
Om du använder Git ofta kan alias göra dina arbetsflöden mycket snabbare.
<syntaxhighlight lang="bash">
- Git alias
alias gst='git status' alias gco='git checkout' alias gcm='git commit' alias gp='git pull' alias gpu='git push' alias gl='git log --oneline --graph --decorate --all' </syntaxhighlight>
Exempel 9: SSH konfigurationer
För att förenkla anslutningar till fjärrservrar kan du skapa alias för SSH-kommandon.
<syntaxhighlight lang="bash">
- SSH alias
alias sshhome='ssh user@home.example.com' alias sshwork='ssh user@work.example.com' </syntaxhighlight>
Exempel 10: Anpassade kommandon för specifika projekt
Om du arbetar med specifika projekt kan du skapa alias och funktioner som hjälper dig att snabbt utföra vanliga uppgifter.
<syntaxhighlight lang="bash">
- Byggprojekt
alias buildproj='cd ~/projects/myproject && make'
- Starta utvecklingsserver
alias startdev='cd ~/projects/myproject && ./start-dev.sh' </syntaxhighlight>
Fullständig Exempel
Nedan är en mer omfattande <syntaxhighlight lang="bash">.bashrc</syntaxhighlight> som kombinerar flera av ovanstående exempel:
<syntaxhighlight lang="bash">
- .bashrc
- Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
- User specific aliases and functions
- Aliases
alias ls='ls --color=auto' alias rm='rm -i' alias ll='ls -l' alias la='ls -A' alias l='ls -CF'
- Environment variables
export PATH=$PATH:$HOME/bin export EDITOR=nano export PS1='\[\e[1;32m\]\u@\h \w$\[\e[0m\] '
- Custom functions
function dusage {
df -h | grep -E '^/dev/root'
}
function mkcd {
mkdir -p "$1" && cd "$1"
}
- Bash completion
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
- Git branch in prompt
parse_git_branch() {
git branch 2> /dev/null | grep '^*' | colrm 1 2
} export PS1="\u@\h \[\033[33m\]\$(parse_git_branch)\[\033[00m\] \w$ "
- Load custom scripts
if [ -f ~/.bash_functions ]; then
. ~/.bash_functions
fi
if [ -f ~/.bash_env ]; then
. ~/.bash_env
fi
- Conditional logic
if [ "$(id -u)" -eq 0 ]; then
export PS1='\[\e[1;31m\]\u@\h \w$\[\e[0m\] '
else
export PS1='\[\e[1;32m\]\u@\h \w$\[\e[0m\] '
fi
hour=$(date +"%H") if [ $hour -lt 12 ]; then
echo "God morgon, $USER!"
elif [ $hour -lt 18 ]; then
echo "God eftermiddag, $USER!"
else
echo "God kväll, $USER!"
fi
- Git aliases
alias gst='git status' alias gco='git checkout' alias gcm='git commit' alias gp='git pull' alias gpu='git push' alias gl='git log --oneline --graph --decorate --all'
- SSH aliases
alias sshhome='ssh user@home.example.com' alias sshwork='ssh user@work.example.com'
- Project specific commands
alias buildproj='cd ~/projects/myproject && make' alias startdev='cd ~/projects/myproject && ./start-dev.sh' </syntaxhighlight>
Sammanfattning
<syntaxhighlight lang="bash">.bashrc</syntaxhighlight> är ett kraftfullt verktyg för att anpassa din bash-miljö och effektivisera ditt arbetsflöde. Genom att använda alias, miljövariabler, funktioner och andra konfigurationer kan du göra ditt arbete i terminalen snabbare och mer bekvä
mt. Exempel i denna artikel visar hur du kan börja bygga din egen <syntaxhighlight lang="bash">.bashrc</syntaxhighlight> för att passa dina specifika behov.