Bashrc

Från Wiki.linux.se
Version från den 27 maj 2024 kl. 05.48 av Admin (diskussion | bidrag) (Skapade sidan med '= .bashrc i MediaWiki-format = == Introduktion == <code>.bashrc</code> ä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 <code>.bashrc</code>-fil har f...')
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

.bashrc i MediaWiki-format

Introduktion

.bashrc ä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 .bashrc-fil har följande grundläggande struktur:

<syntaxhighlight lang="bash">

  1. .bashrc
  1. Source global definitions

if [ -f /etc/bashrc ]; then

   . /etc/bashrc

fi

  1. 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 .bashrc:

<syntaxhighlight lang="bash">

  1. Färgkodad listning

alias ls='ls --color=auto'

  1. Säker borttagning

alias rm='rm -i'

  1. 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 .bashrc:

<syntaxhighlight lang="bash">

  1. Ställ in sökvägen

export PATH=$PATH:$HOME/bin

  1. Ställ in editor

export EDITOR=nano

  1. 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">

  1. Diskanvändning

function dusage {

   df -h | grep -E '^/dev/root'

}

  1. 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">

  1. 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">

  1. 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 .bashrc också innehålla mer avancerade skript och konfigurationer.

Exempel 6: Laddning av andra skript

Du kan inkludera andra skript i din .bashrc för att hålla den organiserad.

<syntaxhighlight lang="bash">

  1. Ladda anpassade funktioner

if [ -f ~/.bash_functions ]; then

   . ~/.bash_functions

fi

  1. 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">

  1. 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

  1. 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">

  1. 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">

  1. 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">

  1. Byggprojekt

alias buildproj='cd ~/projects/myproject && make'

  1. Starta utvecklingsserver

alias startdev='cd ~/projects/myproject && ./start-dev.sh' </syntaxhighlight>

Fullständig Exempel

Nedan är en mer omfattande .bashrc som kombinerar flera av ovanstående exempel:

<syntaxhighlight lang="bash">

  1. .bashrc
  1. Source global definitions

if [ -f /etc/bashrc ]; then

   . /etc/bashrc

fi

  1. User specific aliases and functions
  1. Aliases

alias ls='ls --color=auto' alias rm='rm -i' alias ll='ls -l' alias la='ls -A' alias l='ls -CF'

  1. Environment variables

export PATH=$PATH:$HOME/bin export EDITOR=nano export PS1='\[\e[1;32m\]\u@\h \w$\[\e[0m\] '

  1. Custom functions

function dusage {

   df -h | grep -E '^/dev/root'

}

function mkcd {

   mkdir -p "$1" && cd "$1"

}

  1. Bash completion

if [ -f /etc/bash_completion ]; then

   . /etc/bash_completion

fi

  1. 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$ "

  1. Load custom scripts

if [ -f ~/.bash_functions ]; then

   . ~/.bash_functions

fi

if [ -f ~/.bash_env ]; then

   . ~/.bash_env

fi

  1. 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

  1. 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'

  1. SSH aliases

alias sshhome='ssh user@home.example.com' alias sshwork='ssh user@work.example.com'

  1. Project specific commands

alias buildproj='cd ~/projects/myproject && make' alias startdev='cd ~/projects/myproject && ./start-dev.sh' </syntaxhighlight>

Sammanfattning

.bashrc ä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 .bashrc för att passa dina specifika behov.