7.0 KiB
title, date, author, draft, categories, tags, series
| title | date | author | draft | categories | tags | series | |||
|---|---|---|---|---|---|---|---|---|---|
| Command-Line Shell | 2022-04-01 | archos | false |
|
|
|
V dalším díle seriálu Tondy Fischera se podíváme na prostředí příkazového řádku. Představíme si postupně 3 nejrozšířenější shelly v GNU/Linux (sh nepočítám). Shells si postupně nakonfigurujeme a přizpůsobíme opět pro nejlepší efektivitu svojí práce. Terminálové aplikace se tak dostanou na zcela jinou úroveň, se kterou se často nemohou měřit ani normální aplikace s tlačítky. Batch processing je nenahraditelnou součástí pokročilého používání počítačů, historie příkazů a fuzzy processing je něco, co se jiným operačním systémům ani nesnilo.
Popis shellů je uveden na arch wiki Command-Line Shell.
Základní shelly, které si ukážeme:
-
Bash- nejzákladnější shell v GNU/Linux. POSIX complient. Nutný znát v každém případě.https://www.gnu.org/software/bash/ -
Zsh- Interaktivní používání, silný skriptovací jazyk. POSIX complient. https://www.zsh.org/ -
Fish- Není POSIX, jde vlastní cestou. Inteligentní a uživatelsky přívětivý shell příkazového řádku. Fish provádí plnobarevné zvýraznění syntaxe příkazového řádku, stejně jako zvýraznění a dokončení příkazů a jejich argumentů, existence souboru a historie. Podporuje kompletní, jak píšete pro historii a příkazy. Fish je schopen analyzovat manuálové stránky systému, aby určil platné argumenty pro příkazy, což mu umožňuje zvýraznit a dokončit příkazy. Snadnou revizi posledního příkazu lze provést pomocíAlt+UpPro další info https://fishshell.com/
Bash
Bash byl prezentován po celou dobu instalace a používání až do této nahrávky. Pro bash existuje bezpočet návodů, příkladů, psaní skriptů. Určitě doporučuji českou knihu pro shell https://www.alza.cz/media/prikazovy-radek-v-linuxu-d2366810.htm Dokumentace je zde https://www.gnu.org/software/bash/manual/bash.html
Zsh
Zsh Instalace
My použijeme jako náš systémový shell ZSH.
sudo pacman -S zsh
chsh -s /usr/bin/zsh
nvim ~/.zshrc
Použijeme Oh My Zsh. Nebo GitHub OhMyZsh.
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Zsh Prompt Themes
# Change theme
ZSH_THEME="robbyrussell"
ZSH_THEME="agnoster"
ZSH_THEME="dst"
ZSH_THEME_RANDOM_CANDIDATES=(
"robbyrussell"
"agnoster"
"dst"
)
# Need install p10k!
ZSH_THEME="powerlevel10k/powerlevel10k"
Instalace Zsh plugins
plugins=(git zsh-autosuggestions zsh-syntax-highlighting z fzf sudo pass)
# Instalace plginu
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
#fzf
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
Instalace Colorscriptů
Colorscripty zkrášlují shell a uvozují danou instanci terminálu.
# DT Colorscript
git clone https://gitlab.com/dwt1/shell-color-scripts.git
makepkg -cf
sudo pacman -U *.pkg.tar.zst
# pokemon-colorscript
paru -S pokemon-colorscripts-git
Fish
Arch wiki https://wiki.archlinux.org/title/Fish
Fish Instalace
sudo pacman -S fish
# plugin manager - nutno spoustet z fish shell
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
fisher list
fisher update jorgebucaran/fisher
fisher remove jorgebucaran/nvm.fish@2.1.0
fisher list | fisher remove
# next useful scripts
paru -S lolcat exa fd bat timg p7zip glow
STARSHIP Cross-Shell Prompt Instalace
Hlavní stránka https://starship.rs/
sh -c "$(curl -fsSL https://starship.rs/install.sh)"
# add last line to your config.fish
starship init fish | source
Personal Starship Settings
Moje osobní nastavení starship je v dotfiles uloženo v ~/.config/starship.toml Toto moje nastavení nepoužívá dvě prompt řádky, ale pouze jednu, plus změnu symbolu. Nejprve zkuste defaultní nastavení a teprve potom můžete testovat tyto změny.
# Don't print a new line at the start of the prompt
add_newline = false
# Make prompt a single line instead of two lines
[line_break]
disabled = true
# Replace the "❯" symbol in the prompt with "➜"
[character] # The name of the module we are configuring is "character"
success_symbol = "[➜](bold green)" # The "success_symbol" is set to "➜" with color "bold green"
# Use custom format
# format = """
# [┌───────────────────>](bold green)
# [│](bold green)$directory$rust$package
# [└─>](bold green) """
# Disable the package module, hiding it from the prompt completely
[package]
disabled = false
Fish jako uživatelský interaktivní shell
Fish budeme používat jako uživatelský interaktivní shell, nikoliv jako systémový (pro init si ponecháme POSIX support). Do našeho .zshrc vložíme na konec toto
# jump from zsh to fish
if [[ $(ps --no-header --pid=$PPID --format=cmd) != "fish" ]]
then
exec fish
fi
Fish Raven2cz Dotfiles
Zkopírujte fish adresář do ~/.config/fish z raven2cz dotfiles.
nvim ~/.config/fish/config.fish
https://www.youtube.com/watch?v=_K4ESyYuzE0