Files

199 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Command-Line Shell"
date: 2022-04-01
author: "archos"
draft: false
categories: ['Návody']
tags: ['shell']
series: ['Arch Linux instalace']
---
V dalším díle seriálu [Tondy Fischera](https://github.com/raven2cz) 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](https://wiki.archlinux.org/title/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/](https://www.gnu.org/software/bash/)
- `Zsh` - Interaktivní používání, silný skriptovací jazyk. POSIX complient. [https://www.zsh.org/](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/](https://fishshell.com/)
# [](https://github.com/raven2cz/tux/tree/main/211112-shell-terminal#bash)
# 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](https://www.alza.cz/media/prikazovy-radek-v-linuxu-d2366810.htm) Dokumentace je zde [https://www.gnu.org/software/bash/manual/bash.html](https://www.gnu.org/software/bash/manual/bash.html)
# [](https://github.com/raven2cz/tux/tree/main/211112-shell-terminal#zsh)
# Zsh
## [](https://github.com/raven2cz/tux/tree/main/211112-shell-terminal#zsh-instalace)
## 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](https://ohmyz.sh/). Nebo [GitHub OhMyZsh](https://github.com/ohmyzsh/ohmyzsh).
```
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```
## [](https://github.com/raven2cz/tux/tree/main/211112-shell-terminal#zsh-prompt-themes)
## 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"
```
## [](https://github.com/raven2cz/tux/tree/main/211112-shell-terminal#instalace-zsh-plugins)
## 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
```
## [](https://github.com/raven2cz/tux/tree/main/211112-shell-terminal#instalace-colorscriptů)
## 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
```
# [](https://github.com/raven2cz/tux/tree/main/211112-shell-terminal#fish)
# Fish
Arch wiki [https://wiki.archlinux.org/title/Fish](https://wiki.archlinux.org/title/Fish)
## [](https://github.com/raven2cz/tux/tree/main/211112-shell-terminal#fish-instalace)
## 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/](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
```
## [](https://github.com/raven2cz/tux/tree/main/211112-shell-terminal#fish-raven2cz-dotfiles)
## Fish Raven2cz Dotfiles
Zkopírujte fish adresář do `~/.config/fish` z raven2cz dotfiles.
```
nvim ~/.config/fish/config.fish
```
# [](https://github.com/raven2cz/tux/tree/main/211112-shell-terminal#důležité-odkazy)
https://www.youtube.com/watch?v=_K4ESyYuzE0
# Důležité odkazy
- [Youtube Channel TUX: Svět Linuxu](https://www.youtube.com/user/tondafischer/featured)
- [archlinux.org](https://archlinux.org/)
- [wiki.achlinux.org](https://wiki.archlinux.org/)
- [fishlive.org/blog](https://fishlive.org/en/blog-tech-art/arch)
- [github/raven2cz/tux](https://github.com/raven2cz/tux)
- [github/raven2cz/dotfiles](https://github.com/raven2cz/dotfiles)
- [Peertube kanál Arch Linux Cz](https://peertube.arch-linux.cz/w/dnyPyhvscq4bBRb6zNSNUk)