Štíteknavody

"Moderní CLI nástroje: úvod do nové generace utilit"

Moderní CLI nástroje

Klasické Unix nástroje jako ls, cat, find a grep slouží desítky let. Jsou spolehlivé, jsou všude a v systému bez nich nešlápneš. Za tu dobu ale svět kolem nich pokročil – gitové repozitáře, .gitignore, obří monorepa, terminály s emoji a Nerd Fonts. Původní utility na tohle prostředí nebyly stavěné.

Poslední roky se objevila celá vlna nástrojů, které řeší stejný úkol, ale moderně: rychleji, hezčí výstup, chytré defaulty, integrace s gitem. Většina je napsaná v Rustu, takže jsou i bezpečnější a paralelní out-of-the-box.

Tahle série ti představí sadu, kterou používám denně a bez které si už terminál nedokážu představit.

Co budeme probírat

Sérii jsem rozdělil na pět praktických dílů plus bonus:

  1. Úvod – tenhle článek, kontext a filozofie
  2. eza – náhrada ls s ikonami a git statusem
  3. bat – náhrada cat se zvýrazněním syntaxe
  4. fd – rychlejší a přátelštější find
  5. ripgrep – bleskové hledání v souborech
  6. Bonus – kompletní setup, aliasy a integrace s fzf

Každý díl obsahuje instalaci na Archu, praktické příklady, srovnání s klasickou variantou a pár triků z praxe.

Proč zrovna Rust?

Většina těch nástrojů je psaná v Rustu a není to náhoda:

  • Rychlost – kompiluje se do nativního kódu, žádný interpret ani JIT
  • Paralelismus – Rust má silné garance okolo threadů, takže autoři nemají problém pouštět práci na víc jádrech
  • Bezpečná paměť – žádné segfaulty a buffer overflows jako v C
  • Ekosystémcargo a crates.io udělaly z distribuce knihoven příjemnou zkušenost

Když vidíš, že ripgrep je 10× rychlejší než grep, není to marketing – je to tím, jak je napsaný.

Přerušuju původní nástroje?

Ne. Klasické ls, cat, find a grep zůstávají v systému (jsou součást balíčků coreutils, findutils, grep). Aliasy je jen překryjí, když je zavoláš interaktivně.

Ve skriptech se pořád vyplatí sáhnout po originálech – jsou všude, chovají se předvídatelně a nemají volitelné závislosti. Když v aliasu máš alias grep='rg', uvnitř skriptu použij command grep nebo \grep – tím obejdeš alias.

Nainstalujme všechno najednou

Ať máš základ pro celou sérii, můžeš to udělat jedním příkazem:

sudo pacman -S eza bat fd ripgrep

Všechny nástroje jsou v oficiálním Arch repozitáři, žádný AUR není potřeba. Pár set kilobajtů, žádné komplikace.

V dalších dílech se na každý nástroj podíváme detailně. Začneme příště s eza – náhradou za ls, která ti ukáže git status u každého souboru přímo ve výpisu.

Číst dál

Hugo na OSCloud: Statický web bez kompromisů

Hugo na OSCloud

WordPress nám sloužil roky a pro spoustu projektů je skvělá volba. Pro náš technický blog o Arch Linuxu jsme ale hledali něco bližšího naší filozofii — psát články v Markdownu, verzovat v Gitu a mít web pod plnou kontrolou bez zbytečné komplexity.

Přešli jsme na Hugo — statický generátor napsaný v Go, který z Markdownu vytvoří kompletní web za zlomek sekundy. Žádné PHP, žádná databáze, žádné bezpečnostní díry. A celé to běží na OSCloud.

Co je Hugo?

Hugo je open-source generátor statických webů. Místo toho, aby server při každém požadavku tahal data z databáze a skládal stránku za běhu (jako WordPress), Hugo vygeneruje všechny HTML soubory předem. Výsledek je jednoduchá složka souborů, kterou hodíte na jakýkoliv webserver.

Co to znamená v praxi:

  • Rychlost — stránky se načítají okamžitě, protože server jen servíruje hotové soubory
  • Bezpečnost — žádný PHP interpret, žádná databáze = žádný útočný vektor
  • Jednoduchost — články píšete v Markdownu, verzujete v Gitu
  • Nulová údržba — žádné aktualizace pluginů, žádné padající databáze

Hugo má přes 88 000 hvězd na GitHubu a aktivní komunitu. Podporuje témata, vícejazyčnost, taxonomie, RSS, vyhledávání a spoustu dalšího.

Co je OSCloud?

OSCloud je česká cloudová platforma zaměřená na soukromí a open source. OSCloud nabízí hosting open-source aplikací jako alternativu ke komerčním cloudům. Najdete tu Nextcloud, Matrix, PeerTube, Gitea, GoToSocial,Mastodon, Pixelfed, VHSky a desítky dalších služeb. A taky hosting webů — WordPress, LAMP, Grav nebo Surfer pro statické weby.

Pro hosting Hugo webu máte na OSCloud dvě varianty: Surfer a LAMP. Každá se hodí na něco jiného.

Varianta 1: Surfer — jednoduchý statický hosting

Surfer je minimalistická Cloudron aplikace pro servírování statických souborů. Nic víc, nic míň. Nahrajete soubory a web běží — žádný Apache, žádný nginx config.

Surfer nabízí:

  • Webové rozhraní pro správu souborů na https://vasedomena.cz/_admin/
  • CLI nástroj pro nahrávání z terminálu
  • SFTP přístup pro nahrávání přes FileZilla nebo příkazovou řádku
  • WebDAV endpoint
  • Vlastní 404 stránka — stačí nahrát 404.html do kořene
  • Řízení přístupu — veřejný, heslem chráněný, nebo jen pro přihlášené uživatele

Surfer je ideální když: chcete prostě hodit Hugo web na server a nic víc neřešit.

Surfer nestačí když: potřebujete server-side redirecty (.htaccess), servírovat soubory z tečkových složek (.well-known) nebo třeba Fediverse webfinger identitu.

Varianta 2: LAMP — když potřebujete víc

LAMP aplikace na Cloudronu dává plný Apache s podporou .htaccess. Hugo web na něm běží úplně stejně — Apache servíruje statické soubory bez problémů — ale navíc můžete:

  • Nastavit redirecty a rewrite pravidla přes .htaccess
  • Servírovat obsah z .well-known složky (webfinger, Let's Encrypt verifikace)
  • Propojit web s Fediverse — například redirect @arch@arch-linux.cz na GoToSocial instanci

Právě proto tento web (arch-linux.cz) běží na LAMP — potřebujeme webfinger redirect pro naši Fediverse identitu @arch@arch-linux.cz.

LAMP zvolte když: potřebujete cokoliv nad rámec prostého servírování souborů.

Krok za krokem: Hugo web na OSCloud

1. Instalace Hugo

Na Arch Linuxu:

sudo pacman -S hugo
hugo version

Na Ubuntu/Debianu:

sudo apt install hugo

Nebo stáhněte nejnovější verzi z GitHubu.

2. Vytvoření projektu

hugo new site muj-web
cd muj-web
git init

3. Přidání tématu

Můžete použít libovolné téma z themes.gohugo.io. My používáme Blowfish, ale pro začátek je dobré třeba Ananke:

git submodule add https://github.com/gohugo-ananke/ananke themes/ananke
echo 'theme = "ananke"' >> hugo.toml

4. Základní konfigurace

Upravte hugo.toml:

baseURL = "https://vasedomena.cz/"
languageCode = "cs"
title = "Můj web"
theme = "ananke"

5. První článek

hugo new posts/prvni-clanek/index.md

Otevřete content/posts/prvni-clanek/index.md a napište obsah v Markdownu:

---
title: "Můj první článek"
date: 2026-07-04
draft: false
description: "Zkušební článek na Hugo webu"
tags: ["hugo", "test"]
---

Tady je obsah článku v **Markdownu**.

## Podnadpis

- položka jedna
- položka dvě

Obrázky k článku umístěte do stejné složky (content/posts/prvni-clanek/) a v textu je vložte:

![Popis obrázku](obrazek.jpg)

6. Lokální náhled

hugo server -D

Otevřete http://localhost:1313 v prohlížeči. Hugo sleduje změny a automaticky stránku obnovuje.

7. Build

hugo --minify

Výsledné soubory najdete ve složce public/. To je váš kompletní web — čisté HTML, CSS a JavaScript.

8. Nasazení na OSCloud

Deploy záleží na tom, kterou aplikaci jste si zvolili.

Pro Surfer — CLI:

# instalace CLI
npm -g install cloudron-surfer

# konfigurace
surfer config --server https://vasedomena.cz --token VAS_API_TOKEN

# nahrání souborů
surfer put public/* /

API token vytvoříte v Surfer admin rozhraní (https://vasedomena.cz/_admin/) v sekci Settings.

Pro Surfer — SFTP:

lftp -p 222 -u "vas_uzivatel" sftp://vas-server.oscloud.cz
> mirror -R public/ /
> quit

Pro Surfer — webové rozhraní:

Přetáhněte soubory do správce na https://vasedomena.cz/_admin/.

Pro LAMP — SFTP:

lftp -p 222 -u "vas_uzivatel" sftp://vas-server.oscloud.cz
> mirror -R public/ /public/
> quit

U LAMP aplikace je SFTP root /app/data/, takže cílová složka je /public/.

Pokud potřebujete .htaccess, nahrajte ho do složky static/ v Hugo projektu — Hugo ho zkopíruje do public/ při buildu a SFTP ho nahraje na server.

9. Automatizace (volitelné)

Celý deploy se dá zabalit do jednoho skriptu:

#!/bin/bash
# deploy.sh
hugo --minify
surfer put public/* /
echo "Nasazeno!"
sudo bash ./deploy.sh

Pro LAMP variantu nahraďte surfer put za odpovídající lftp příkaz.

WordPress vs Hugo

WordPress i Hugo mají své místo. Tady je srovnání, proč jsme se pro náš konkrétní případ rozhodli jinak:

WordPressHugo
Načítánízávisí na cachinguokamžité
Bezpečnostpravidelné záplatyžádný vektor
Údržbapluginy, jádrožádná
ZálohyDB + souboryGit repo
ObsahWYSIWYG editorMarkdown
VerzovánínepraktickéGit nativně
ServerPHP + MySQLstatický

WordPress je výborný pro weby s e-shopem, členskou sekcí nebo tam, kde obsah spravují netechničtí uživatelé přes přehledné admin rozhraní. Pro blog, kde články píšeme v terminálu a verzujeme v Gitu, nám Hugo prostě sedl líp.

Závěr

Hugo na OSCloud je kombinace, která dává smysl. Rychlý, bezpečný a jednoduchý web bez zbytečné komplexity. Články píšete v Markdownu, verzujete v Gitu a nasadíte jedním příkazem.

Pro jednoduchý statický web sáhněte po Surferu. Pokud potřebujete redirecty, .well-known nebo Fediverse integraci, zvolte LAMP — obojí na OSCloud funguje skvěle.

Pokud vás zajímá self-hosting a chcete mít svá data pod kontrolou, mrkněte na OSCloud — českou platformu postavenou na open-source technologiích. Kromě hostingu webů nabízí Nextcloud, Matrix chat, PeerTube, Gitea a další služby.

Zdrojový kód tohoto webu je veřejně dostupný na naší Gitea — pull requesty vítány.


Máte otázky? Napište nám na Fediverse, Matrix nebo na fórum.

Číst dál

Shelly-ALPM – Moderní správce balíčků pro Arch Linux

1. Co je Shelly?

Shelly-ALPM

Shelly je grafický i příkazový správce balíčků pro Arch Linux. Na rozdíl od většiny alternativ (octopi, pamac) není wrapper nad pacmanem – komunikuje přímo s knihovnou libalpm, tedy se stejným jádrem, které používá samotný pacman.

Projekt vyvíjí Zoey Bauer pod hlavičkou Seafoam Labs. Je psaný v C# (.NET 10), GUI běží na GTK 4 s nativní podporou Waylandu. Licence je GPL-3.0.


2. Proč by tě to mělo zajímat?

Pacman je skvělý nástroj, ale jeho syntaxe není zrovna intuitivní. Porovnej:

# pacman
sudo pacman -Syu firefox
sudo pacman -Rns firefox
pacman -Ss firefox

# shelly
shelly install firefox
shelly remove firefox
shelly search firefox

Shelly nabízí jednotnou, čitelnou syntaxi a k tomu moderní GUI, kde na jednom místě zvládneš oficiální repozitáře, AUR i Flatpak.


3. Hlavní vlastnosti

  • CLI + GUIshelly pro terminál, shelly-ui pro grafické rozhraní
  • Přímá integrace s libalpm – žádný wrapper, žádná mezivrstva
  • AUR podpora – vyhledávání, instalace i aktualizace AUR balíčků
  • Flatpak podpora – správa Flatpak aplikací včetně instalace z FlatpakRef souborů
  • Notifikaceshelly-notifications běží v tray a upozorní na dostupné aktualizace
  • Nativní Wayland – GUI postavené na GTK 4
  • Themování – Shelly používá čisté GTK bez libadwaita, takže respektuje tvoje systémové téma

4. Instalace

CachyOS (v oficiálních repozitářích)

sudo pacman -Syu shelly

AUR (pro čistý Arch a další deriváty)

yay -S shelly

nebo

paru -S shelly

Ruční build z GitHubu

git clone https://github.com/Seafoam-Labs/Shelly-ALPM.git
cd Shelly-ALPM
makepkg -si

Po instalaci máš k dispozici tři binárky:

shelly          # CLI
shelly-ui       # GUI
shelly-notifications  # tray notifikace

5. Základní použití – CLI

Synchronizace databáze

shelly sync
shelly sync --force    # vynutí refresh i když je DB aktuální

Aktualizace systému

shelly upgrade
shelly upgrade --no-confirm   # bez potvrzení

Instalace a odebírání balíčků

shelly install firefox vim
shelly remove firefox

Hledání balíčků

shelly list-installed     # nainstalované balíčky
shelly list-available     # dostupné balíčky
shelly list-updates       # balíčky s dostupnou aktualizací

Instalace lokálního balíčku

shelly install-local /cesta/k/balicku.pkg.tar.zst

6. AUR příkazy

shelly aur search neovim       # hledání v AUR
shelly aur install neovim-git  # instalace z AUR
shelly aur list                # nainstalované AUR balíčky
shelly aur list-updates        # AUR balíčky s aktualizací
shelly aur upgrade             # aktualizace všech AUR balíčků
shelly aur remove neovim-git   # odebrání AUR balíčku

7. Flatpak příkazy

shelly flatpak search signal         # hledání na Flathubu
shelly flatpak install org.signal.Signal  # instalace
shelly flatpak list                   # nainstalované Flatpak aplikace
shelly flatpak upgrade               # aktualizace všech
shelly flatpak uninstall org.signal.Signal  # odebrání
shelly flatpak run org.signal.Signal  # spuštění

8. Konfigurace

Při prvním spuštění se vytvoří konfigurační soubor:

~/.config/shelly/config.json

Příklad obsahu:

{
  "FileSizeDisplay": "Megabytes",
  "DefaultExecution": "UpgradeAll"
}
  • FileSizeDisplay – formát velikosti souborů: Bytes, Megabytes, Gigabytes
  • DefaultExecution – co se stane při spuštění shelly bez parametrů: UpgradeAll, UpgradeStandard, UpgradeFlatpak, UpgradeAur, Sync, SyncForce, ListInstalled

9. Srovnání s pacmanem

Akcepacmanshelly
Aktualizace systémusudo pacman -Syushelly upgrade
Instalace balíčkusudo pacman -Syu balíčekshelly install balíček
Odebrání balíčkusudo pacman -Rns balíčekshelly remove balíček
Hledání balíčkupacman -Ss balíčekshelly list-available
Nainstalované balíčkypacman -Qshelly list-installed
Dostupné aktualizacecheckupdatesshelly list-updates
Synchronizace DBsudo pacman -Syshelly sync
AUR instalaceyay -S balíčekshelly aur install balíček

10. Co je v plánu?

Podle roadmapy projektu se chystá:

  • Správa repozitářů přímo z GUI
  • Podpora AppImage (ve stylu GearLever)
  • Vylepšená Flatpak integrace
  • Import seznamu balíčků – obnovení systému do uloženého stavu
  • Ikony pro standardní balíčky při vyhledávání
  • Spouštění aktualizací přímo z notifikací

11. Pro koho je Shelly?

Shelly se hodí hlavně pro:

  • Začátečníky na Archu – GUI + čitelné příkazy snižují bariéru vstupu
  • Uživatele CachyOS – Shelly je součástí oficiálních repozitářů
  • Kohokoliv, kdo chce AUR + Flatpak + pacman na jednom místě

Pro zkušené uživatele, kteří mají pacman v krvi a nepotřebují GUI, je Shelly spíš doplněk než náhrada. Ale ta CLI syntaxe je fakt příjemnější.


Cheat sheet

╔══════════════════╦════════════════════════════════════════════════╗
║ KATEGORIE        ║ PŘÍKAZ                                        ║
╠══════════════════╬════════════════════════════════════════════════╣
║ SYSTÉM           ║                                                ║
║                  ║ shelly sync           → synchronizace DB       ║
║                  ║ shelly upgrade        → aktualizace systému    ║
║                  ║ shelly list-updates   → dostupné aktualizace   ║
╠══════════════════╬════════════════════════════════════════════════╣
║ BALÍČKY          ║                                                ║
║                  ║ shelly install pkg    → instalace              ║
║                  ║ shelly remove pkg     → odebrání               ║
║                  ║ shelly list-installed → nainstalované           ║
║                  ║ shelly install-local  → lokální balíček        ║
╠══════════════════╬════════════════════════════════════════════════╣
║ AUR              ║                                                ║
║                  ║ shelly aur search     → hledání v AUR          ║
║                  ║ shelly aur install    → instalace z AUR        ║
║                  ║ shelly aur upgrade    → aktualizace AUR        ║
║                  ║ shelly aur list       → nainstalované AUR      ║
╠══════════════════╬════════════════════════════════════════════════╣
║ FLATPAK          ║                                                ║
║                  ║ shelly flatpak search → hledání na Flathubu    ║
║                  ║ shelly flatpak install→ instalace              ║
║                  ║ shelly flatpak upgrade→ aktualizace všech      ║
║                  ║ shelly flatpak list   → nainstalované          ║
╠══════════════════╬════════════════════════════════════════════════╣
║ GUI              ║                                                ║
║                  ║ shelly-ui             → grafické rozhraní      ║
║                  ║ shelly-notifications  → tray notifikace        ║
╚══════════════════╩════════════════════════════════════════════════╝

Odkazy:

Číst dál

Arch Linux – Základní příkazy

Arch Linux – Základní příkazy

Praktický průvodce pro začátečníky a mírně pokročilé uživatele

1. Úvod

Arch Linux je minimalistická rolling-release distribuce – dostaneš čistý systém bez zbytečností a sám si ho postavíš podle sebe. Žádný GUI instalátor, žádné předinstalované haraburdí.

Proč znát příkazy? Protože na Archu neexistuje klikací záchranný kruh. Když se něco rozbije (a rozbije), terminal je jediná cesta ven. A taky je to prostě rychlejší než jakékoliv GUI.

2. Práce se systémem

uname -a — informace o jádře

uname -a
# Linux mujpc 6.8.1-arch1-1 #1 SMP PREEMPT_DYNAMIC ...

Zobrazí jméno počítače, verzi kernelu a architekturu. Hodí se při hlášení bugů nebo kontrole kernelu po aktualizaci.

uptime — jak dlouho běží systém

uptime
# 14:32:01 up 3 days, 2:14, 2 users, load average: 0.45, 0.60, 0.55

Ukazuje dobu běhu + průměrnou zátěž za 1, 5 a 15 minut.

htop / top — sledování procesů

htop        # přehledná TUI verze (doporučeno)
top         # základní, vždy dostupný

htop umí kill procesu přímo z rozhraní – stiskni F9. Nainstaluj přes sudo pacman -Syu htop, pokud chybí.

3. Správa balíčků – pacman

Pacman je správce balíčků Arch Linuxu. Rychlý, jednoduchý, žádná magie.

Aktualizace celého systému

sudo pacman -Syu

-S = synchronizace, -y = refresh databáze, -u = upgrade. Dělej pravidelně – Arch je rolling release.

Instalace balíčku

sudo pacman -Syu firefox
sudo pacman -Syu git neovim htop   # více balíčků najednou

Odstranění balíčku (včetně závislostí a config souborů)

sudo pacman -Rns firefox

-R = remove, -n = smaž config soubory, -s = smaž osiřelé závislosti. Vždy používej -Rns, ne jen -R.

Hledání balíčku v repozitáři

pacman -Ss neovim
# extra/neovim 0.9.5-1
#     Vim-fork focused on extensibility and usability

Hledání v nainstalovaných balíčcích

pacman -Qs neovim
# local/neovim 0.9.5-1

4. Práce se soubory a adresáři

Orientace v systému

pwd             # kde jsem
ls -lah         # výpis adresáře (long, all, human-readable)
cd /etc/nginx   # přejít do adresáře
cd ..           # o úroveň výš
cd ~            # domovský adresář

Kopírování, přesun, mazání

cp soubor.txt /tmp/soubor_backup.txt     # kopírování
cp -r slozka/ /tmp/slozka_backup/        # kopírování adresáře

mv soubor.txt novy_nazev.txt             # přejmenování
mv soubor.txt /home/user/dokumenty/      # přesun

rm soubor.txt                            # smazání souboru
rm -rf slozka/                           # smazání adresáře (POZOR, nevratné)

> ⚠️ rm -rf se neptá. Dvakrát zkontroluj cestu.

Vytváření adresářů

mkdir novy_adresar
mkdir -p projekty/web/css    # vytvoří celou cestu najednou
rmdir prazdny_adresar        # smaže jen prázdný adresář

tree — stromové zobrazení

tree /etc/nginx
# Nainstaluj: sudo pacman -Syu tree

5. Práce s obsahem souborů

Zobrazení obsahu

cat /etc/hostname                  # vypíše celý soubor
less /var/log/pacman.log           # stránkování, q = konec
bat /etc/fstab                     # zvýrazňování syntaxe (sudo pacman -Syu bat)

Editory

nano /etc/hosts                    # jednoduchý, pro začátečníky
vim /etc/pacman.conf               # mocný, strmá učební křivka
nvim ~/.config/nvim/init.lua       # neovim – modernější vim

Základní vim survival kit:

i         → insert mode (psaní)
Esc       → zpět do normal mode
:w        → uložit
:q        → zavřít
:wq       → uložit a zavřít
:q!       → zavřít bez uložení

grep — hledání v souborech

grep "error" /var/log/syslog                  # hledá "error" v souboru
grep -r "ServerName" /etc/nginx/              # rekurzivně v adresáři
grep -n "Port" /etc/ssh/sshd_config           # ukáže číslo řádku
journalctl | grep "failed"                    # filtrování výstupu

6. Oprávnění a vlastnictví

chmod — práva souborů

chmod +x skript.sh               # přidej právo spuštění
chmod 644 soubor.txt             # rw-r--r--
chmod 755 /usr/local/bin/skript  # rwxr-xr-x (typické pro spustitelné soubory)
chmod -R 755 slozka/             # rekurzivně

Orientace v číslech:

4 = čtení (r)
2 = zápis (w)
1 = spuštění (x)

644 = vlastník rw, skupina r, ostatní r
755 = vlastník rwx, skupina rx, ostatní rx

chown — změna vlastníka

chown user:group soubor.txt          # změna vlastníka i skupiny
chown -R www-data:www-data /var/www  # rekurzivně (typické pro web server)

7. Systémové služby – systemd

Stav služby

systemctl status nginx
systemctl status sshd

Start / stop / restart

sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx     # znovu načte config bez restartu

Povolení při startu systému

sudo systemctl enable nginx          # povolí autostart
sudo systemctl enable --now nginx    # povolí + hned spustí (doporučeno)
sudo systemctl disable nginx         # zakáže autostart

Logy – journalctl

journalctl -xe                        # posledních X záznamů s kontextem chyb
journalctl -u nginx                   # logy konkrétní služby
journalctl -u nginx -f                # živý výstup (follow)
journalctl --since "1 hour ago"       # logy za poslední hodinu
journalctl -p err -b                  # jen chyby od posledního bootu

8. Síťové příkazy

ip a — zobrazení síťových rozhraní

ip a                    # všechna rozhraní + IP adresy
ip a show eth0          # konkrétní rozhraní
ip r                    # routovací tabulka

ping — test dostupnosti

ping archlinux.org
ping -c 4 8.8.8.8       # pošle jen 4 pakety

curl — HTTP požadavky

curl https://archlinux.org                    # stáhni obsah stránky
curl -I https://archlinux.org                 # jen hlavičky (HTTP status atd.)
curl -O https://example.com/soubor.tar.gz     # stáhni soubor
curl -s https://api.ipify.org                 # zjisti svoji veřejnou IP

ss — síťová spojení a porty

ss -tuln                  # všechny naslouchající TCP/UDP porty
ss -tulnp                 # + zobrazí proces
ss -s                     # souhrn statistik

9. Užitečné nástroje

yay — správce AUR balíčků

AUR obsahuje tisíce balíčků mimo oficiální repozitáře.

# Instalace yay (jednorázově):
sudo pacman -Syu --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay && makepkg -si

# Použití:
yay -Syu                        # aktualizace včetně AUR
yay -S visual-studio-code-bin   # instalace z AUR
yay -Ss spotify                 # hledání v AUR

rsync — synchronizace a zálohy

rsync -avh ~/dokumenty/ /mnt/backup/dokumenty/         # lokální záloha
rsync -avh ~/dokumenty/ user@server:/backup/           # na vzdálený server
rsync -avh --delete ~/web/ user@server:/var/www/web/   # zrcadlení
rsync -n -avh ~/dokumenty/ /mnt/backup/                # dry run

-a = archivní mód, -v = verbose, -h = human-readable

du a df — místo na disku

df -h                           # místo na všech připojených discích
df -h /home                     # konkrétní oddíl

du -sh ~/dokumenty              # velikost adresáře
du -sh /var/cache/pacman/pkg    # kolik zabírá cache pacmanu
du -h --max-depth=1 /var        # přehled velikostí podadresářů

10. Tipy na závěr

Aliasy – zkratky pro časté příkazy

Přidej do ~/.bashrc nebo ~/.zshrc:

alias update='sudo pacman -Syu'
alias ll='ls -lah'
alias ..='cd ..'
alias ...='cd ../..'
alias grep='grep --color=auto'
alias df='df -h'
alias du='du -h'
alias syslog='journalctl -xe'

Po úpravě:

source ~/.bashrc

Historie příkazů

history                   # zobrazí historii
history | grep pacman     # hledej v historii
!!                        # zopakuj poslední příkaz
!ssh                      # zopakuj poslední příkaz začínající na "ssh"

Klávesové zkratky:

Ctrl+R   → interaktivní hledání v historii
         → piš část příkazu, Enter = spustí, Ctrl+R znovu = starší shoda

Cheat Sheet

╔══════════════════════════════════════════════════════════════════╗
║                   ARCH LINUX — CHEAT SHEET                       ║
╠══════════════════╦═══════════════════════════════════════════════╣
║ SYSTÉM           ║ uname -a          → info o kernelu            ║
║                  ║ uptime            → jak dlouho běží           ║
║                  ║ htop              → procesy a zátěž           ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ PACMAN           ║ pacman -Syu       → aktualizace               ║
║                  ║ pacman -Syu  → instalace                 ║
║                  ║ pacman -Rns  → odebrání                  ║
║                  ║ pacman -Ss   → hledání v repozitáři      ║
║                  ║ pacman -Qs   → hledání v instalovaných   ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ SOUBORY          ║ ls -lah           → výpis adresáře            ║
║                  ║ cp -r src/ dst/   → kopírování                ║
║                  ║ mv src dst        → přesun / přejmenování     ║
║                  ║ rm -rf slozka/    → smazání (POZOR!)          ║
║                  ║ mkdir -p a/b/c    → vytvoření cesty           ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ OBSAH SOUBORŮ    ║ cat soubor        → výpis                     ║
║                  ║ less soubor       → stránkování               ║
║                  ║ grep "text" soubor→ hledání                   ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ SYSTEMD          ║ systemctl status  → stav služby               ║
║                  ║ systemctl enable  ║                           ║
║                  ║   --now      → povol + spusť             ║
║                  ║ journalctl -xe    → logy s chybami            ║
║                  ║ journalctl -u svc → logy služby               ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ SÍŤ              ║ ip a              → síťová rozhraní           ║
║                  ║ ss -tuln          → otevřené porty            ║
║                  ║ curl -s URL       → HTTP požadavek            ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ DISK             ║ df -h             → místo na discích          ║
║                  ║ du -sh /cesta     → velikost adresáře         ║
╠══════════════════╬═══════════════════════════════════════════════╣
║ HISTORY          ║ Ctrl+R            → hledání v historii        ║
║                  ║ !!                → zopakuj poslední příkaz   ║
╚══════════════════╩═══════════════════════════════════════════════╝
Číst dál

IVPN: Soukromá VPN služba pro Arch Linux a Android

IVPN patří mezi VPN služby, které berou soukromí vážně. Na rozdíl od většiny komerčních VPN poskytovatelů, IVPN funguje bez logování, podporuje anonymní platby a má otevřený zdrojový kód svých aplikací. Pro uživatele Arch Linuxu a mobilních zařízení nabízí solidní řešení s důrazem na bezpečnost.

Proč IVPN?

Žádné logování: IVPN nemá co logovat - nesbírají IP adresy, DNS dotazy ani metadata o připojení.

Anonymní registrace: Účet si vygeneruješ bez osobních údajů, e-mail není potřeba. Můžete platit i kryptoměnami nebo hotovostí.

Open source klienti: Všechny aplikace mají otevřený zdrojový kód, takže můžete ověřit, co skutečně dělají.

WireGuard a OpenVPN: Podporují moderní WireGuard protokol i klasické OpenVPN.

Multihop: Možnost směrování přes dva VPN servery pro extra ochranu.

Instalace na Arch Linux

Oficiální aplikace

yay -S ivpn-ui

Nebo z AUR ručně:

git clone https://aur.archlinux.org/ivpn-ui.git
cd ivpn-ui
makepkg -si

Spuštění a přihlášení

# Spustit daemon
sudo systemctl enable --now ivpn-daemon

# Spustit GUI
ivpn-ui

V aplikaci se přihlásíte pomocí Account ID, který dostanete po registraci na webu IVPN.

Ruční konfigurace WireGuard

Pokud preferujete čistý WireGuard bez GUI:

# Instalace WireGuard
sudo pacman -S wireguard-tools

# Stáhnout konfiguraci z IVPN účtu
# Uložit jako /etc/wireguard/ivpn.conf

Příklad konfigurace:

[Interface]
PrivateKey = YOUR_PRIVATE_KEY
Address = 10.0.0.2/32
DNS = 172.16.0.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_IP:2049
AllowedIPs = 0.0.0.0/0

Spuštění:

sudo wg-quick up ivpn
sudo wg-quick down ivpn

Automatické spuštění

sudo systemctl enable wg-quick@ivpn

Nastavení na Android

Instalace aplikace

IVPN aplikaci najdete v Google Play Store nebo F-Droid:

F-Droid: https://f-droid.org/packages/net.ivpn.client/
Google Play: IVPN

Konfigurace

  • Otevřete aplikaci a přihlaste se pomocí Account ID
  • Vyberte server (doporučuji nejbližší pro rychlost)
  • Zapněte VPN přepínačem
  • V nastavení můžete povolit:

Auto-connect při startu - Kill switch (přeruší internet při výpadku VPN) - Custom DNS servery

WireGuard konfigurace

Alternativně můžete použít oficiální WireGuard aplikaci:

  • Stáhněte si konfigurační soubor z IVPN účtu
  • Importujte do WireGuard aplikace
  • Aktivujte profil

Tipy pro maximální soukromí

DNS leak protection

# Ověření DNS úniku
dig +short myip.opendns.com @resolver1.opendns.com

Firewall pravidla

# Blokovat provoz mimo VPN interface
sudo iptables -A OUTPUT ! -o tun0 -m owner --uid-owner $(id -u) -j DROP

Kill switch pro systemd

Vytvořte službu, která vypne internet při odpojení VPN:

# /etc/systemd/system/vpn-killswitch.service
[Unit]
Description=VPN Kill Switch
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/killswitch-on
ExecStop=/usr/local/bin/killswitch-off

[Install]
WantedBy=multi-user.target

Rychlost a výkon

IVPN servery jsou obvykle rychlé, ale výkon závisí na:

  • Vzdálenosti k serveru
  • Vytížení serveru
  • Vaší rychlosti internetu

Pro testování rychlosti:

speedtest-cli --secure

Nebo pokud nemáš speedtest-cli nainstalovaný:

# Instalace
sudo pacman -S speedtest-cli

Cena a plány

IVPN má dva plány:

  • Standard: $6/měsíc (2 současná zařízení)
  • Pro: $10/měsíc (7 zařízení + multihop)

Platit můžete kartou, PayPal, kryptoměnami nebo hotovostí poštou.

Alternativy

Pokud IVPN nevyhovuje, zvažte:

  • Mullvad VPN: Podobná filozofie, €5/měsíc
  • ProtonVPN: Free tier dostupný, Swiss privacy
  • Vlastní VPN: WireGuard na VPS serveru

Závěr

IVPN je solidní volba pro uživatele, kteří chtějí skutečné soukromí bez kompromisů. Open source aplikace, žádné logování a možnost anonymní registrace z něj dělají jednu z nejdůvěryhodnějších VPN služeb na trhu.

Pro Arch Linux uživatele je integrace bezproblémová díky AUR balíčku, a na Androidu funguje spolehlivě s pokročilými funkcemi jako kill switch.

Jestli bereš soukromí vážně a nechceš řešit složitou konfiguraci vlastního VPN serveru, IVPN stojí za zvážení.

Odkazy

Číst dál

Jak zálohovat pomocí BorgBackup

Co je Borg

Borg je open-source nástroj pro zálohování souborů a složek, který je k dispozici pro operační systémy Linux, macOS. Tento program je navržen tak, aby byl jednoduchý k použití, ale zároveň poskytoval robustní a spolehlivou zálohovací funkci pro ukládání důležitých dat.

Borg používá jedinečnou technologii komprese dat, což umožňuje ukládat velké objemy dat v menších souborech, což zase znamená, že je možné ušetřit místo na disku. Další výhodou Borg Backupu je jeho rychlost - rychle zálohuje a obnovuje data, což je užitečné pro uživatele, kteří potřebují často měnit a ukládat data.

Borg poskytuje uživateli možnost zálohovat data do lokálního úložiště, jako jsou pevné disky, nebo do vzdáleného úložiště, jako jsou cloudové služby nebo FTP servery. Soubory a složky jsou zašifrovány pomocí AES-256, což zajišťuje bezpečnost a ochranu před neoprávněným přístupem.

V Borgu lze nastavit pravidelné zálohování, což znamená, že se data automaticky zálohují v určených intervalech. Tato funkce je užitečná pro uživatele, kteří chtějí mít neustále aktuální zálohu svých dat.

Další výhodou BorgBackup je jednoduchost. Pro zálohování stačí pouze několik příkazů v příkazovém řádku, což umožňuje uživatelům rychle a snadno zálohovat a obnovovat svá data.

Jak Borg funguje

Borg je to, čemu se říká „deduplikační zálohovací program“. Podobně jako u přírůstkových záloh jsou v následných zálohách archivována pouze data, která se skutečně změní na souborovém systému po provedení úplné zálohy, ale podobnosti jsou pouze koncepční. Borg funguje tak, že každý soubor rozdělí na části, které jsou identifikovány jejich hash součtem. Do „úložiště“ jsou přidány pouze bloky, které aplikace nerozpoznají. Tato technika deduplikace je skutečně účinná, protože mimo jiné nám umožňuje přesunout soubor nebo adresář, aniž by to bylo považováno za změnu, a proto vyžaduje další místo. Totéž platí pro časová razítka souborů. To, na čem skutečně záleží, jsou pouze části souborů, které se ukládají pouze jednou. V Linuxu Borg podporuje zachování všech standardních a rozšířených atributů souborového systému, jako jsou ACL a xattrs.

Instalace Borga

Nejprve si musíte nainstalovat Borg. To lze provést pomocí správce balíčků, nebo si můžete stáhnout instalační soubory z oficiálních stránek.

sudo pacman -S borgbackup

Vytvoření repozitáře

Předtím, než začnete zálohovat svá data, musíte vytvořit repozitář, kde se budou data ukládat. Můžete to udělat pomocí následujícího příkazu:

borg init -e repokey-blake2 /cesta/k/repozitari

Tento příkaz vytvoří nový Borg Backup repozitář v zadané cestě.

Vytvoření zálohy

Nyní můžete vytvořit zálohu svých dat pomocí následujícího příkazu:

borg create /cesta/k/repozitari::jmeno-zalohy /cesta/k/slozkam-k-zalohovani

Tento příkaz vytvoří novou zálohu s názvem "jmeno-zalohy" a uloží ji do vašeho Borg Backup repozitáře. Data, která chcete zálohovat, musí být umístěna v adresáři uvedeném po druhém lomítku.

Pravidelné zálohování

Pro pravidelné zálohování můžete použít nástroje jako Cron nebo Systemd timer. Pro příklad zálohování každý den v 2 ráno pomocí Cronu, můžete přidat následující řádek do svého Crontab souboru:

0 2 * * * /usr/bin/borg create /cesta/k/repozitari::`date +\%Y-\%m-\%d` /cesta/k/slozkam-k-zalohovani

Tento příkaz vytvoří zálohu každý den v 2 ráno s aktuálním datem jako název zálohy.

Obnovení zálohy

Pokud potřebujete obnovit data ze zálohy, můžete to udělat pomocí následujícího příkazu:

borg extract /cesta/k/repozitari::jmeno-zalohy /cesta/k/kam-se-data-obnovi

Základní příkazy

  • **borg init**: Tento příkaz vytváří nový záložní repozitář.
  • **borg create**: Tento příkaz vytváří novou zálohu vašich souborů nebo složek.
  • borg list: Tento příkaz vypisuje seznam záloh v záložním repozitáři.
  • **borg info**: Tento příkaz poskytuje informace o záložním repozitáři, jako je například jeho velikost a počet záloh.
  • **borg extract**: Tento příkaz obnovuje soubory ze zálohy.
  • **borg delete**: Tento příkaz odstraňuje zálohy z repozitáře.
  • **borg mount**: Tento příkaz umožňuje přístup k obsahu záložního repozitáře jako ke složce, což umožňuje snadnější obnovu souborů.
  • **borg prune**: Tento příkaz odstraňuje staré zálohy z repozitáře, aby se uvolnilo místo na disku

To jsou základní kroky pro použití Borg Backup pro zálohování vašich souborů a složek. Samozřejmě existuje mnoho dalších pokročilých funkcí, které můžete použít, abyste co nejlépe využili tohoto nástroje.

Číst dál

Unixový správce hesel Pass

Co je správce hesel PASS

Pass je správce hesel příkazového řádku vytvořený s ohledem na filozofii Unixu. Umožňuje vám pracovat s vašimi hesly pomocí běžných unixových příkazů. Přihlašovací údaje jsou uloženy v souborech zašifrovaných GPG.

PASS je komplikovaný! Jen pro geeky!

Toto je typická odpověď mnoha uživatelů, kteří pláčou na fórech. Ale není to pravda. Jakákoli technologie potřebuje znát některé základy používání. Pokud chcete řídit auto nebo hrát World of Warcraft, musíte se nejprve naučit základy. Abyste byli PRO, potřebujete víc. Pro základní a standardní uživatelské použití je pass jednoduchý a efektivní nástroj .

Základy GnuPG

Prvním základním know-how pro *nix je použití pgp klíčů a možnost šifrovat/dešifrovat a podepisovat vaši práci a soubory.

https://wiki.archlinux.org/title/GnuPG

sudo pacman -S gnupg
nvim ~/.gnupg/gpg-agent.conf 
  pinentry-program /usr/bin/pinentry-curses
  pinentry-program /usr/bin/pinentry-gnome3
  max-cache-ttl 60480000
  default-cache-ttl 60480000

# create new key-pair, follow questions, select master password reasonably
gpg --full-gen-key

# export/import your keys
gpg --export --armor --output public.key user-id
gpg --import public.key
gpg --export-secret-keys --armor --output privkey.asc user-id
gpg --import privkey.asc

# make your key ultimate and default
gpg --edit-key user-id/key
type in cli: trust, choice 5, save, quit

# search your keys
gpg --search-keys user-id

# optional upload your gpg public key to key servers
https://keys.openpgp.org
https://keyserver.ubuntu.com/

# encrypt/decrypt files example - asymmetric
gpg --recipient user-id --encrypt doc
gpg --output doc --decrypt doc.gpg

Pass základy

Hierarchie adresářů

Adresářová struktura závisí na vás. Preferuji používání passu nejen pro správu přihlašivacích hesel!

Moje hierarchie je následující

  • credit-cards
  • finance
  • local
  • login
  • ssid
  • token

Podsložky v loginsyntaxe složky

  • url/uživatelské jméno (pokud je více uživatelů nebo účtů)
  • url (pouze jednoduchá adresa URL bez názvu účtu)

Podsložky v loginpříklady složek

├── logitech.com
   ├── mail.plzen-edu.cz
   ├── malirskeplatna.cz
   ├── mall.cz
   ├── mastodon.arch-linux.cz
   ├── jira.cloud.cz
   │   ├── andrew
   │   ├── antfis
   │   └── petr

Syntaxe uvnitř zašifrovaného souboru gpg

První řádek patří heslu podle pass syntax. Všechny další řádky jsou volitelné dle vašeho přání. U kreditních karet můžete pro podrobnosti potřebovat mnohem více řádků. Můžete si uložit vše, co potřebujete. Je to pouze textový soubor.

Je tu jeden důležitý bod!

Pokud chcete použít passff nebo jiná rozšíření, musíte použít login: řádek s názvem vašeho účtu, do kterého bude automaticky vložen login field v přihlašovacím formuláři webové stránky.

password
login: account

Základní příkazy

# initialize the password store
pass init gpg-id_or_email

# insert new password for archlinux.org with defined username
# this insert is optional, I'm using mainly 'generate' and 'edit' command
pass insert login/archilinux.org
pass insert login/archlinux.org/username

# generate password with N symbols, example with length 20
pass generate archlinux.org/wiki/username -n 20

# edit file to fill additional details - 'login:' row, etc.
# edit command will use your $EDITOR, nvim, emacs etc.
pass edit archlinux.org/wiki/username

# publish changes directly to git private repo, no commit needed!
# needs linkage with git first, see next chapters...
pass git push

# direct copy to clipboard
pass -c login/archlinux.org
# or integration with rofi, dmenu
rofi-pass
passmenu

# pass fulltext search
pass search archlinux

Integrace soukromého Git repozitáře

Nastavení na straně serveru

Nejprve vytvořte git bare private-repo na vašem serveru, soukromém domácím cloudu nebo soukromém cloudovém úložišti git (tato poslední volba není z mé strany preferována). Je to standardní git repozitář, který bude ukládat vaše zakódované soubory gpg a adresářovou strukturu.

Pokud nevíte nic o git nebo git serverech. Postupujte podle předchozího článku git-bare-repo nebo si jen přečtěte články o GitHubu a základní tutoriály git.

Nastavení na straně klienta

# create local password store
pass init 
# Enable management of local changes through Git
pass git init
# Add the the remote git repository as 'origin'
pass git remote add origin user@server:~/.password-store
# Push your local pass history
pass git push -u --all

# just work with pass and git
pass git pull
pass generate ...
pass edit ...
pass git push
# DONE.

# all git operations work normally just with prefix 'pass'

Projděte kroky instalace nové stanice

Pokud máte nový počítač a potřebujete pass a vaše úložiště na nové stanici. Můžete vytvořit nějaký malý skript, nebo stačí napsat těchto pár příkazů.

# install software
sudo pacman -S gnupg pass rofi-pass git

# import public and private keys
gpg --import gpg-public.key
gpg --import privkey.asc

# ultimate access for your gpg key for new station
gpg --edit-key user-idOrkey-id
type in cli: trust, choice 5, save, quit 

# clone your git repostiory to .password-store
git clone gitlab@server:repo/pass-store.git ~/.password-store

# configure your pass git
pass git config --global user.email "email" 
pass git config --global user.name "name"
pass git config --global user.signingkey 

# gpg and pinetry check or add
nvim ~/.gnupg/gpg-agent.conf 
	pinentry-program /usr/bin/pinentry-gnome3

Integrace Rofi/dmenu

pass-zx2c4-rofi

Rofi a dmenu má rychlé a výkonné použití s ​​passem

sudo pacman -S rofi-pass 
rofi-pass
passmenu
# example integration with awesomewm
awful.key({modkey, altkey},"p",function() awful.spawn.with_shell("rofi-pass -t") end,
          {description="types password from pass", group="launcher"}),
awful.key({modkey, ctrlkey},"p", function() awful.spawn.with_shell("rofi-pass") end,
          {description="copy password from pass", group="launcher"}),

Passff - integrace do Firefoxu

Nainstalujte passffrozšíření do vašeho Firefoxu z Firefox Extension Storage.

Vytvořit hostspojení, komunikační protokol mezi systémem a rozšířením passff. To se nazývá passff-host; tato aplikace má implementaci pro každou distribuci. Pro Arch můžete použít balíček AUR.

% git clone https://aur.archlinux.org/passff-host.git/
% cd passff-host
% makepkg -si

browserpass – integrace Brave, Chromium, Firefox

Nainstalujte browserpass z úložiště rozšíření prohlížeče. O projektu zde .

Integrace s vaším systémem, podobně jako passff-host

paru -S browserpass
Nainstalujte browserpass úložiště rozšíření prohlížeče.

Integrace s vaším systémem, podobně jako passff-host

paru -S browserpass

Password Store, OpenKeychain – integrace se systémem Android

Stačí nainstalovat obě aplikace pro Android. První PasswordStore aplikace musí být v telefonu prohozena s výchozím správcem hesel nebo pouze v nastavení prohlížeče. Druhý OpenKeychain aplikace je úložiště pro vaše soukromé a veřejné klíče gpg a poskytuje API pro PasswordStore.

PasswordStore má plnou podporu pro soukromé repozitáře git, git pull a push funguje z nabídky.

S tímto řešením nemám žádné chyby a toto úložiště a správce hesel používám několik let.

Integrace Windows - WSL2

Integrace MS Windows a WSL2 je pokročilé téma. Napsal jsem o tom jiný článek .

Další Aplikace a možnosti

Sledujte domovskou stránku pass dole!

  • Kompatibilní klienti
  • Migrace z jiných klientů

Například Gopass .

https://github.com/gopasspw/gopass

Pass - Credit & License

pass was written by Jason A. Donenfeld of zx2c4.com and is licensed under the GPLv2+.

https://www.youtube.com/watch?v=MrvWrBaYTyI

Důležité odkazy:

Závisí na:

Číst dál