Lisa F: shelli seadistusfailid bash ja zsh jaoks
See lisa annab kopeeritavad algusfailid kahe levinud shelli jaoks:
bashzsh
Shell on käsutõlk: programm, mis loeb terminali sisestatud käsuridu, otsib vastava käsu üles ja käivitab selle. Kui avad terminaliakna, käivitub tavaliselt sinu vaikimisi shell. Seda saad vaadata käsuga:
echo "$SHELL"
Tüüpiline tulemus on näiteks:
/bin/zsh
või:
/bin/bash
Kuhu need failid käivad
Shelli seadistusfailid on tavaliselt sinu kodukataloogis:
| Shell | Peamine fail | Kus see asub |
|---|---|---|
zsh | .zshrc | ~/.zshrc |
bash Linuxis | .bashrc | ~/.bashrc |
bash macOS-is terminali login-shellina | .bash_profile ja .bashrc | ~/.bash_profile, ~/.bashrc |
Punktiga algavad failid on peidetud failid. Kodukataloogis näed neid näiteks nii:
ls -la "$HOME"
Enne muutmist tee oma shelli failist varukoopia. zsh puhul:
cp ~/.zshrc ~/.zshrc.backup
bash puhul:
cp ~/.bashrc ~/.bashrc.backup
Kui faili veel ei ole, võib cp anda veateate. See on sel juhul ootuspärane: järelikult ei olnud varasemat seadistusfaili, mida varundada.
Pärast muutmist lae seadistus uuesti sisse:
source ~/.zshrc
või:
source ~/.bashrc
Kui kasutad macOS-is bash-i ja terminal avab login-shelli, pane faili ~/.bash_profile vähemalt see:
# Lae bash'i tavaline interaktiivne seadistus.
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
Siis võid põhiseadistuse hoida failis ~/.bashrc.
Kuidas näiteid kasutada
Vali allpool üks tase ja kopeeri vastav plokk oma shelli faili:
zshpuhul faili~/.zshrcbashpuhul faili~/.bashrc
Ära pane kõiki tasemeid korraga samasse faili. Alusta ühest tasemest ja lisa hiljem juurde.
Tase 1: kõige lihtsam
See tase muudab ainult ajaloo, lihtsa prompti ja mõne kõige tavalisema aliase. See sobib esimeseks katseks.
~/.bashrc
# ~/.bashrc
# Tase 1: kõige lihtsam bash'i seadistus.
# Ajalugu.
HISTSIZE=1000
HISTFILESIZE=2000
# Elementaarsed käsud.
alias ll='ls -lh'
alias la='ls -la'
alias l='ls -CF'
# Ohutumad vaikekujud.
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Lihtne prompt.
PS1='\u@\h:\w\$ '
~/.zshrc
# ~/.zshrc
# Tase 1: kõige lihtsam zsh seadistus.
# Ajalugu.
HISTFILE="$HOME/.zsh_history"
HISTSIZE=1000
SAVEHIST=2000
# Elementaarsed käsud.
alias ll='ls -lh'
alias la='ls -la'
alias l='ls -CF'
# Ohutumad vaikekujud.
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Lihtne prompt.
PROMPT='%n@%m:%~%# '
Tase 2: lühike igapäevane seadistus
See tase lisab mugava PATH-i, ajaloo korduste vähendamise, otsingukäsud ja mõned navigeerimise alias'ed.
~/.bashrc
# ~/.bashrc
# Tase 2: lühike igapäevane bash'i seadistus.
# PATH: kasutaja enda käsud.
if [ -d "$HOME/bin" ]; then
PATH="$HOME/bin:$PATH"
fi
if [ -d "$HOME/.local/bin" ]; then
PATH="$HOME/.local/bin:$PATH"
fi
export PATH
# Ajalugu.
HISTSIZE=5000
HISTFILESIZE=10000
HISTCONTROL=ignoredups:erasedups
shopt -s histappend
# Elementaarsed käsud.
alias ll='ls -lh'
alias la='ls -la'
alias l='ls -CF'
alias lt='ls -lt | head'
# Navigeerimine.
alias ..='cd ..'
alias ...='cd ../..'
alias c='clear'
# Otsing ja failimaht.
alias h='history | tail -n 20'
alias dus='du -sh * 2>/dev/null | sort -h'
alias biggest='du -a . 2>/dev/null | sort -nr | head'
# Ohutumad vaikekujud.
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Prompt: kasutaja, host ja praegune kataloog.
PS1='\u@\h:\w\$ '
~/.zshrc
# ~/.zshrc
# Tase 2: lühike igapäevane zsh seadistus.
# PATH: kasutaja enda käsud.
if [ -d "$HOME/bin" ]; then
path=("$HOME/bin" $path)
fi
if [ -d "$HOME/.local/bin" ]; then
path=("$HOME/.local/bin" $path)
fi
export PATH
# Ajalugu.
HISTFILE="$HOME/.zsh_history"
HISTSIZE=5000
SAVEHIST=10000
setopt APPEND_HISTORY
setopt SHARE_HISTORY
setopt HIST_IGNORE_DUPS
setopt HIST_REDUCE_BLANKS
# Elementaarsed käsud.
alias ll='ls -lh'
alias la='ls -la'
alias l='ls -CF'
alias lt='ls -lt | head'
# Navigeerimine.
alias ..='cd ..'
alias ...='cd ../..'
alias c='clear'
# Otsing ja failimaht.
alias h='history | tail -n 20'
alias dus='du -sh * 2>/dev/null | sort -h'
alias biggest='du -a . 2>/dev/null | sort -nr | head'
# Ohutumad vaikekujud.
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Prompt: kasutaja, host ja praegune kataloog.
PROMPT='%n@%m:%~%# '
Tase 3: mugavam prompt ja rohkem alias'eid
See tase lisab värvilise prompti, parema less käitumise, Git-i lühikäsud ja paar väikest abifunktsiooni.
~/.bashrc
# ~/.bashrc
# Tase 3: mugavam bash'i seadistus.
# PATH: kasutaja enda käsud.
if [ -d "$HOME/bin" ]; then
PATH="$HOME/bin:$PATH"
fi
if [ -d "$HOME/.local/bin" ]; then
PATH="$HOME/.local/bin:$PATH"
fi
export PATH
# Ajalugu.
HISTSIZE=10000
HISTFILESIZE=20000
HISTCONTROL=ignoreboth:erasedups
shopt -s histappend
shopt -s checkwinsize
# Less ja värvid.
export LESS='-R'
export CLICOLOR=1
# Elementaarsed käsud.
alias ll='ls -lh'
alias la='ls -la'
alias l='ls -CF'
alias lt='ls -lt | head'
alias ltr='ls -ltr | tail'
# Navigeerimine.
alias ..='cd ..'
alias ...='cd ../..'
alias c='clear'
alias home='cd "$HOME"'
# Failid ja kettaruum.
alias dus='du -sh * 2>/dev/null | sort -h'
alias dush='du -sh .[!.]* * 2>/dev/null | sort -h'
alias biggest='du -a . 2>/dev/null | sort -nr | head'
# Ajalugu ja käsu leidmine.
alias h='history | tail -n 30'
alias path='printf "%s\n" ${PATH//:/ }'
alias whichall='type -a'
# Git.
alias gs='git status --short'
alias gd='git diff'
alias gdc='git diff --cached'
alias gl='git log --oneline --decorate -10'
# Ohutumad vaikekujud.
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Abifunktsioon: tee kataloog ja mine sinna sisse.
mkcd() {
mkdir -p "$1" && cd "$1"
}
# Värviline prompt: kasutaja@host:kataloog.
PS1='\[\033[32m\]\u@\h\[\033[0m\]:\[\033[34m\]\w\[\033[0m\]\$ '
~/.zshrc
# ~/.zshrc
# Tase 3: mugavam zsh seadistus.
# PATH: kasutaja enda käsud.
if [ -d "$HOME/bin" ]; then
path=("$HOME/bin" $path)
fi
if [ -d "$HOME/.local/bin" ]; then
path=("$HOME/.local/bin" $path)
fi
export PATH
# Ajalugu.
HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000
SAVEHIST=20000
setopt APPEND_HISTORY
setopt SHARE_HISTORY
setopt HIST_IGNORE_DUPS
setopt HIST_REDUCE_BLANKS
# Less ja värvid.
export LESS='-R'
export CLICOLOR=1
autoload -Uz colors && colors
# Elementaarsed käsud.
alias ll='ls -lh'
alias la='ls -la'
alias l='ls -CF'
alias lt='ls -lt | head'
alias ltr='ls -ltr | tail'
# Navigeerimine.
alias ..='cd ..'
alias ...='cd ../..'
alias c='clear'
alias home='cd "$HOME"'
# Failid ja kettaruum.
alias dus='du -sh * 2>/dev/null | sort -h'
alias dush='du -sh .[!.]* * 2>/dev/null | sort -h'
alias biggest='du -a . 2>/dev/null | sort -nr | head'
# Ajalugu ja käsu leidmine.
alias h='history | tail -n 30'
alias path='printf "%s\n" ${(ps.:.)PATH}'
alias whichall='type -a'
# Git.
alias gs='git status --short'
alias gd='git diff'
alias gdc='git diff --cached'
alias gl='git log --oneline --decorate -10'
# Ohutumad vaikekujud.
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Abifunktsioon: tee kataloog ja mine sinna sisse.
mkcd() {
mkdir -p "$1" && cd "$1"
}
# Värviline prompt: kasutaja@host:kataloog.
PROMPT='%F{green}%n@%m%f:%F{blue}%~%f%# '
Tase 4: arendajale
See tase lisab projektitöö, Git-i, Pythoni, Dockeri ja tekstivormingute abikäsud. Kopeeri see alles siis, kui eelnevad tasemed tunduvad arusaadavad.
~/.bashrc
# ~/.bashrc
# Tase 4: arendajale suunatud bash'i seadistus.
# PATH: kasutaja enda käsud.
if [ -d "$HOME/bin" ]; then
PATH="$HOME/bin:$PATH"
fi
if [ -d "$HOME/.local/bin" ]; then
PATH="$HOME/.local/bin:$PATH"
fi
export PATH
# Ajalugu.
HISTSIZE=20000
HISTFILESIZE=50000
HISTCONTROL=ignoreboth:erasedups
shopt -s histappend
shopt -s checkwinsize
# Less, editor ja värvid.
export LESS='-R'
export EDITOR="${EDITOR:-nano}"
export CLICOLOR=1
# Elementaarsed käsud.
alias ll='ls -lh'
alias la='ls -la'
alias l='ls -CF'
alias lt='ls -lt | head'
alias ltr='ls -ltr | tail'
# Navigeerimine.
alias ..='cd ..'
alias ...='cd ../..'
alias c='clear'
alias home='cd "$HOME"'
alias proj='cd "$HOME/projects"'
# Failid, otsing ja kettaruum.
alias dus='du -sh * 2>/dev/null | sort -h'
alias dush='du -sh .[!.]* * 2>/dev/null | sort -h'
alias biggest='du -a . 2>/dev/null | sort -nr | head'
alias ff='find . -type f -name'
alias serve='python3 -m http.server 8000'
# Ajalugu ja PATH.
alias h='history | tail -n 40'
alias path='printf "%s\n" ${PATH//:/ }'
alias whichall='type -a'
# Git.
alias gs='git status --short'
alias gd='git diff'
alias gdc='git diff --cached'
alias ga='git add'
alias gc='git commit'
alias gl='git log --oneline --decorate -15'
alias gb='git branch'
alias gco='git checkout'
alias gsw='git switch'
# Python.
alias py='python3'
alias venv='python3 -m venv .venv'
alias va='source .venv/bin/activate'
alias pipup='python3 -m pip install --upgrade pip'
# Docker.
alias dps='docker ps'
alias di='docker images'
alias dc='docker compose'
alias dcu='docker compose up --build'
alias dcd='docker compose down'
alias dcl='docker compose logs -f'
# Tekstivormingud.
alias json='python3 -m json.tool'
alias csvlook='column -s, -t'
# Ohutumad vaikekujud.
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Abifunktsioon: tee kataloog ja mine sinna sisse.
mkcd() {
mkdir -p "$1" && cd "$1"
}
# Abifunktsioon: loo Python venv, kui seda veel ei ole.
venvup() {
if [ ! -d .venv ]; then
python3 -m venv .venv
fi
. .venv/bin/activate
}
# Git haru prompti jaoks.
git_branch() {
git branch --show-current 2>/dev/null
}
# Prompt: kasutaja@host:kataloog (git-haru).
PS1='\[\033[32m\]\u@\h\[\033[0m\]:\[\033[34m\]\w\[\033[0m\] \[\033[33m\]$(git_branch)\[\033[0m\]\$ '
~/.zshrc
# ~/.zshrc
# Tase 4: arendajale suunatud zsh seadistus.
# PATH: kasutaja enda käsud.
if [ -d "$HOME/bin" ]; then
path=("$HOME/bin" $path)
fi
if [ -d "$HOME/.local/bin" ]; then
path=("$HOME/.local/bin" $path)
fi
export PATH
# Ajalugu.
HISTFILE="$HOME/.zsh_history"
HISTSIZE=20000
SAVEHIST=50000
setopt APPEND_HISTORY
setopt SHARE_HISTORY
setopt HIST_IGNORE_DUPS
setopt HIST_REDUCE_BLANKS
# Less, editor ja värvid.
export LESS='-R'
export EDITOR="${EDITOR:-nano}"
export CLICOLOR=1
autoload -Uz colors && colors
# Elementaarsed käsud.
alias ll='ls -lh'
alias la='ls -la'
alias l='ls -CF'
alias lt='ls -lt | head'
alias ltr='ls -ltr | tail'
# Navigeerimine.
alias ..='cd ..'
alias ...='cd ../..'
alias c='clear'
alias home='cd "$HOME"'
alias proj='cd "$HOME/projects"'
# Failid, otsing ja kettaruum.
alias dus='du -sh * 2>/dev/null | sort -h'
alias dush='du -sh .[!.]* * 2>/dev/null | sort -h'
alias biggest='du -a . 2>/dev/null | sort -nr | head'
alias ff='find . -type f -name'
alias serve='python3 -m http.server 8000'
# Ajalugu ja PATH.
alias h='history | tail -n 40'
alias path='printf "%s\n" ${(ps.:.)PATH}'
alias whichall='type -a'
# Git.
alias gs='git status --short'
alias gd='git diff'
alias gdc='git diff --cached'
alias ga='git add'
alias gc='git commit'
alias gl='git log --oneline --decorate -15'
alias gb='git branch'
alias gco='git checkout'
alias gsw='git switch'
# Python.
alias py='python3'
alias venv='python3 -m venv .venv'
alias va='source .venv/bin/activate'
alias pipup='python3 -m pip install --upgrade pip'
# Docker.
alias dps='docker ps'
alias di='docker images'
alias dc='docker compose'
alias dcu='docker compose up --build'
alias dcd='docker compose down'
alias dcl='docker compose logs -f'
# Tekstivormingud.
alias json='python3 -m json.tool'
alias csvlook='column -s, -t'
# Ohutumad vaikekujud.
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Abifunktsioon: tee kataloog ja mine sinna sisse.
mkcd() {
mkdir -p "$1" && cd "$1"
}
# Abifunktsioon: loo Python venv, kui seda veel ei ole.
venvup() {
if [ ! -d .venv ]; then
python3 -m venv .venv
fi
. .venv/bin/activate
}
# Git haru prompti jaoks.
setopt PROMPT_SUBST
git_branch() {
git branch --show-current 2>/dev/null
}
# Prompt: kasutaja@host:kataloog (git-haru).
PROMPT='%F{green}%n@%m%f:%F{blue}%~%f %F{yellow}$(git_branch)%f%# '
Kuidas viga tagasi võtta
Kui pärast seadistusfaili muutmist terminal käitub valesti, ava uus terminal või käivita shell ilma seadistusfailita:
bash --noprofile --norc
zsh puhul saad ajutiselt käivitada:
zsh -f
Seejärel taasta varukoopia:
cp ~/.zshrc.backup ~/.zshrc
cp ~/.bashrc.backup ~/.bashrc
Kui varukoopiat ei olnud, ava fail redaktoris ja kommenteeri viimati lisatud read välja:
nano ~/.zshrc
nano ~/.bashrc
Kommentaar algab märgiga #. Shell ignoreerib sellist rida.
Minitest
- Vaata käsuga
echo "$SHELL", kas kasutad praegubash-i võizsh-i. - Tee oma seadistusfailist varukoopia.
- Lisa kõige lihtsam tase ja lae fail
sourcekäsuga uuesti sisse. - Proovi käske
ll,lajah. - Selgita oma sõnadega, miks ei tasu korraga kopeerida mitut taset samasse faili.
Peatüki täisspikker
Referents
Eesmärk
See lisa annab kopeeritavad algusfailid kahe levinud shelli jaoks:
Põhikujud
echo "$SHELL"prindi tekstls -la "$HOME"pikk + peidetudcp ~/.zshrc ~/.zshrc.backupkopeericp ~/.bashrc ~/.bashrc.backupkopeerialias ll='ls -lh'lühinimialias la='ls -la'lühinimimvliiguta/nimetarmkustuta
Olulisemad lipud, märgid ja kiirnupud
;järjest|toru edasi2>vead faili-hlühike abi&&ainult õnnestumisel