Command-Line Shell

Posted by
This entry is part 9 of 14 in the series Arch Linux instalace

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+Up Pro 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 <user>
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

Důležité odkazy

Series Navigation<< Instalace XfceAwesomeWM Basics >>

Leave a Reply

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..