Z shell auf dem Raspberry Pi
Die Standardshell Bash kann auf einem Raspberry Pi durch die modernere Z shell ersetzt werden. Damit lässt sich der Funktionsumfang durch Plugins erweitern und das Aussehen durch diverse Themes sehr einfach anpassen.
Installiert wird Z shell ganz einfach aus den Repositories:
sudo apt install zsh
Zum Abschließen der Installation wird die Konfigurationsdatei .zshrc
benötigt. Die kann entweder manuell vom Benutzer in das Home-Verzeichnis kopiert oder angelegt werden oder die einfachste Variante, die Installationsroutine erstellt die Datei.
Ich habe die Option 2 gewählt, also das Anlegen der Standarddatei durch den Installer.
This is the Z Shell configuration function for new users,
zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~). This function can help you with a few settings that should
make your use of the shell easier.
You can:
(q) Quit and do nothing. The function will be run again next time.
(0) Exit, creating the file ~/.zshrc containing just a comment.
That will prevent this function being run again.
(1) Continue to the main menu.
(2) Populate your ~/.zshrc with the configuration recommended
by the system administrator and exit (you will need to edit
the file by hand, if so desired).
--- Type one of the keys in parentheses --- 2
zsh als Standardshell festlegen
Mit diesem Befehl wird die Standardshell von Bash auf Z shell festgelegt.
Zsh als Standardshell für den Raspberry definieren.
chsh -s $(which zsh)
Anschließend ist der Raspberry Pi neu zu starten.
sudo reboot
zsh optisch aufmotzen
Spaceship Theme installieren
Die Z shell lässt sich mit unterschiedlichen Themes sehr einfach aufhübschen. Auf meinem Mac habe ich bereits das Theme "Spaceship" installiert, das nun auch auf dem Raspberry installiert wird.
Für Mac OS habe ich das bereits in diesem Beitrag beschrieben.
git clone https://github.com/spaceship-prompt/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
In der Datei .zshrc
ist Spaceship zu aktivieren.
#ZSH_THEME="robbyrussell"
ZSH_THEME="spaceship"
Nach einem Neustart der Shell wird Spaceship als Theme genutzt.
Spaceship kann noch weiter angepasst werden. Die Zeilen sind in der Datei .zshrc
einzufügen.
### SPACESHIP Configuration
# SPACESHIP Config
SPACESHIP_PROMPT_ADD_NEWLINE=false
SPACESHIP_PROMPT_SEPERATE_LINE=false
SPACESHIP_CHAR_PREFIX=" "
SPACESHIP_CHAR_SUFFIX=" "
SPACESHIP_CHAR_SYMBOL=?
# TIME Section
SPACESHIP_TIME_SHOW=true
SPACESHIP_TIME_PREFIX="at "
SPACESHIP_TIME_SUFFIX=$SPACESHIP_PROMPT_DEFAULT_SUFFIX
# USER Section
SPACESHIP_USER_SHOW=always
SPACESHIP_USER_PREFIX="with "
SPACESHIP_USER_COLOR="yellow"
SPACESHIP_USER_COLOR_ROOT="red"
SPACESHIP_HOST_SHOW=true
SPACESHIP_HOST_COLOR_SSH=green
# DIR
SPACESHIP_DIR_SHOW=true
SPACESHIP_DIR_PREFIX="in "
# BATTERY
SPACESHIP_BATTERY_SHOW=true
SPACESHIP_BATTERY_PREFIX="Battery Status "
SPACESHIP_BATTERY_THRESHOLD=10
SPACESHIP_EXEC_TIME_PREFIX="it took "
# GIT
SPACESHIP_GIT_STATUS_SHOW=true
SPACESHIP_PROMPT_ORDER=(
time # Time stamps section
user # Username section
dir # Current directory section
host # Hostname section
git # Git section (git_branch + git_status)
hg # Mercurial section (hg_branch + hg_status)
package # Package version
gradle # Gradle section
maven # Maven section
node # Node.js section
ruby # Ruby section
elixir # Elixir section
xcode # Xcode section
swift # Swift section
golang # Go section
php # PHP section
rust # Rust section
haskell # Haskell Stack section
julia # Julia section
docker # Docker section
aws # Amazon Web Services section
gcloud # Google Cloud Platform section
venv # virtualenv section
conda # conda virtualenv section
pyenv # Pyenv section
dotnet # .NET section
ember # Ember.js section
kubectl # Kubectl context section
terraform # Terraform workspace section
ibmcloud # IBM Cloud section
exec_time # Execution time
line_sep # Line break
battery # Battery level and status
vi_mode # Vi-mode indicator
jobs # Background jobs indicator
exit_code # Exit code section
char # Prompt character
)
Neofetch
Info
Die Entwicklung von neofetch
wurde eingestellt!
Einen guten Überblick an Alternativen gibt es auf 🔗 Neofetch is Dead! Here are 7 Alternatives for Your Linux System
Mit Neofetch werden beim Login auf der Shell Systeminformationen angezeigt. Das Paket kann aus den Repositories installiert werden:
sudo apt install neofetch
Dami Neofetch auch bei jedem Login in der Shell aufgerufen wird, ist am Ende der .zshrc
die Zeile einzufügen:
### NEOFETCH Settings
neofetch
Die Konfigurationsdatei von Neofetch ist config.conf
im Verzeichnis ~/.config/neofetch
. Dort kann festgelegt werden was Neofetch für Informationen anzeigen soll.
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
zsh mit Plugins erweitern
Der Funktionsumfang der Z shell lässt sich mit oh-my-zsh sehr einfach erweitern. Das Vorgehen ist vergleichbar mit dem bei einem Apple Rechner.
Für Mac OS habe ich das bereits in diesem Beitrag beschrieben.
Oh-my-zsh bietet drei Installationsvarianten an. Ich habe die wget-Option gewählt, die auf der GitHub-Seite aufgeführt sind:
sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Die Aktivierung der oh-my-zsh-Plugins funktioniert ganz einfach in der Datei .zshrc
im Home-Verzeichnis eines jeden Benutzers. Dort gibt es einen Plugin Abschnitt. Zwischen die beiden runden Klammern werden einfach die Plugins geschrieben, die genutzt werden sollen.
plugins=(
git
)
Die Liste der verfügbaren Plugins ist auf GitHub einsehbar
Weitere Anpassungen
Die Sprache und die Formatierung lassen sich in der Zeile umstellen:
# You may need to manually set your language environment
export LANG=en_US.UTF-8
wird zu
export LANG=de_DE.UTF-8
Am Ende der Datei werden die Farben definiert:
# Colors
LS_COLORS=$LS_COLORS:'di=0;32:' ; export LS_COLOR
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️
Source
Photo by Mohammad Rahmani on Unsplash