Jak skriptovat Bash ve Windows pomocí WSL

  • WSL integruje Linux do Windows s vysokým výkonem a kompatibilitou.
  • Bash skripty: shebang, oprávnění, I/O, smyčky, cron a ladění.
  • Interoperabilita systémů Windows a Linux, optimální úložiště a VS Code.

Vytváření Bash skriptů ve Windows pomocí WSL

Pokud pracujete ve Windows, ale potřebujete výkon linuxového terminálu, WSL je perfektním nástrojem pro vytváření a spouštění Bash skriptů bez nutnosti používat náročné virtuální stroje nebo dual-boot. V této komplexní příručce se naučíte, jak povolit WSL, nainstalovat Ubuntu, nakonfigurovat prostředí a vytvářet Bash skripty, které běží jako hodinky. Můžete také integrovat nástroje Windows, plánovat úlohy pomocí cronu a snadno ladit.

Cílem je dosáhnout elegantního a produktivního pracovního postupu: aktivujte WSL, nainstalujte si linuxovou distribuci, otevřete si svůj oblíbený editor (VS Code nebo Visual Studio), uložte si projekt na optimální místo pro dosažení nejlepšího výkonu a začněte psát Bash skripty, které automatizují reálné úlohy ve Windows s využitím výhod linuxového ekosystému.

Co je WSL a proč ho používat?

WSL (Windows Subsystem for Linux) je vrstva kompatibility od Microsoftu, která vám umožňuje spouštět skutečné linuxové prostředí v systému Windows . WSL 2 obsahuje odlehčené linuxové jádro, které poskytuje výrazně lepší výkon a kompatibilitu nástrojů ve srovnání s WSL 1. Budete moci používat Bash skripty, klasické utility jako grep, sed a awk a spouštět skripty stejně jako v nativní linuxové distribuci.

ubuntu
Související článek:
Jak odinstalovat program v Ubuntu

Integrace s Windows je hluboká: k souborům Windows můžete přistupovat z Linuxu a naopak, vyvolávat příkazy Linuxu z PowerShellu a spustitelné soubory Windows z Bash a dokonce i otevírat Průzkumníka souborů tak, že ukážete na aktuální adresář vaší relace WSL. Pokud pracujete ve smíšených prostředích, WSL vám ušetří neustálé přepínání mezi systémy.

Požadavky a aktivace WSL

Ve Windows 11 a novějších verzích Windows 10 je nejrychlejší způsob, jak povolit WSL, pomocí jediného příkazu . Otevřete PowerShell nebo CMD jako správce a spusťte:

wsl --install

Tento příkaz povolí potřebné komponenty, stáhne linuxové jádro, nastaví WSL 2 jako výchozí a nainstaluje distribuci (obvykle Ubuntu). Během tohoto procesu může být nutné restartovat počítač, aby se instalace dokončila.

Pokud dáváte přednost ruční metodě nebo váš tým vyžaduje předběžné kroky , můžete povolit funkce pomocí DISM z PowerShellu se zvýšenými oprávněními:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
>dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Dále nastavte WSL 2 jako výchozí a ujistěte se, že máte nejnovější jádro . Oprava WSL 2:

wsl --set-default-version 2

Zkontrolujte verzi Windows a případně sestavte systém (Win + R, zadejte 'winver'). V moderních sestavách funguje zjednodušený příkaz velmi dobře ; jinak postupujte podle manuálních kroků a restartujte.

Instalace a spuštění Ubuntu na WSL

Vytváření Bash skriptů ve Windows pomocí WSL

Z obchodu Microsoft Store si můžete vybrat libovolnou distribuci (Ubuntu, Debian, Fedora atd.) . Pro předvídatelné a dobře zdokumentované prostředí je Ubuntu obvykle nejpraktičtější volbou s širokou kompatibilitou balíčků a průvodci.

Po instalaci otevřete distribuci z nabídky Start a dokončete vytvoření uživatele a hesla pro systém UNIX. Vytvořený uživatel bude výchozí a bude moci používat příkaz sudo pro administrativní operace.

Aktualizujte balíčky při spuštění , abyste měli k dispozici aktuální záplaty a zabezpečení:

sudo apt update && sudo apt upgrade -y

Ověřte, zda používáte WSL 2 a stav vašich distribucí pomocí:

wsl --list --verbose

Pokud vaše distribuce není ve WSL 2, převeďte ji (upravte název podle velikosti písmen):

wsl --set-version Ubuntu-22.04 2

Začínáme: Navigace v systému a správa souborů

Zvládnutí základních příkazů okamžitě zvýší vaši produktivitu . Můžete se pohybovat pomocí „cd“, vypisovat soubory pomocí „ls“, vytvářet adresáře pomocí „mkdir“ a spravovat soubory pomocí „cp“, „mv“ a „rm“.

  • cd /home změnit adresář
  • ls -la vypsat včetně skrytých
  • mkdir scripts vytvořit složku
  • touch notas.txt vytvořit prázdný soubor
  • nano archivo.sh o vim archivo.sh editovat z terminálu

Instalace běžných vývojářských utilit, jako jsou git, curl a kompilátory:

sudo apt install -y git curl build-essential

Nezapomeňte, že k disku C: se dostanete z WSL na adrese /mnt/c . Například pro přístup k uživatelské složce ve Windows :

cd /mnt/c/Users/tu_usuario

Správné postupy skladování a výkonu

Pro maximální rychlost uložte projekt do souborového systému Linux vaší distribuce WSL. při práci s linuxovými nástroji (Bash, GCC, Python atd.). Použijte svůj $HOME v WSL nebo standardních cestách Linuxu jak /home/tu_usuario/Proyecto.

Pokud chcete zvýšit výkon, vyhněte se práci přímo na discích připojených pomocí /mnt. Je to možné, ale přístup k C:\ pomocí /mnt/c může výrazně zpomalit určité operace náročné na I/O. Pokud potřebujete disk prozkoumat pomocí Průzkumníka Windows, spusťte:

explorer.exe .

Katalog souborového systému WSL můžete také otevřít v Průzkumníku. psaní do adresního řádku \\wsl$ a přístup k vaší distribuci. Pokud ve Windows preferujete explicitní cesty, příkladem by bylo \\wsl$\Ubuntu\home\tu_usuario\Proyecto.

Váš první Bash skript ve WSL

Bashský skript je textový soubor obsahující příkazy, které Bash provádí v pořadí . První řádek je obvykle shebang, což označuje interpret. V Bashu se používá toto :

#!/bin/bash

Vytvořte soubor skriptu a přidejte do něj minimální obsah pro otestování vašeho prostředí:

nano hola.sh
#!/bin/bash
echo '¡Hola, WSL!'

Udělte oprávnění ke spuštění a spusťte jej pomocí kterékoli z těchto metod:

chmod +x hola.sh
./hola.sh
bash hola.sh
sh hola.sh

Pokud používáte ./hola.sh a vidíte „Permission denied“ (Oprávnění odepřeno), chybí vám +x . Abyste se vyhnuli změně oprávnění během rychlých testů, můžete interpret zavolat přímo pomocí „bash script.sh“.

Proměnné, vstup a výstup

V Bashu neexistuje striktní typizace proměnných; vše je text, pokud nevyhodnocujete aritmetické operace.Můžete přiřadit pomocí nombre=valor a odkaz jako $nombre. Čtení od uživatele:

read -r nombre
echo "Hola, $nombre"

Přesměrování výstupu do souborů, používá > (přepíše) nebo >> (kachna):

echo 'Línea 1' > salida.txt
echo 'Línea 2' >> salida.txt
ls > listado.txt

Čtení ze souboru řádek po řádku (velmi užitečné v automatizaci):

while IFS= read -r linea; do
  echo "$linea"
done < input.txt

Oprávnění a další: jak vytvořit spustitelné skripty

Oprávnění r, wy a x řídí čtení, zápis a provádění.Skriptům musí být přiřazeno x, aby je bylo možné spustit. ./script.sh. Spojené státy americké:

chmod u+x script.sh

Příkaz `#!/bin/bash` zajišťuje, že skript běží s Bashem, i když je výchozí shell jiný. Pokud chcete být 100% explicitní, získejte cestu k Bashu :

which bash

Podmíněné výrazy a smyčky v Bash

Řídicí struktury vám umožňují činit rozhodnutí a opakovat akce.Pro kontrolu podmínek použijte bloky. if a testovací operátoři. Jednoduchý příklad klasifikace čísla:

Jak upravit soubor hosts ve Windows, Linuxu a macOS
Související článek:
Jak upravit soubor Hosts ve Windows, Linuxu a macOS: Kompletní a aktualizovaný průvodce
read -r n
if ; then
  echo 'Positivo'
elif ; then
  echo 'Negativo'
else
  echo 'Cero'
fi

Pro opakování pokrývají většinu případů příkazy `while` a `for` . Inkrementace pomocí aritmetiky v Bashi:

i=0
while ; do
  echo "Iteración $i"
  (( i+=1 ))
done

Klasická smyčka for iteruje seznamy s velmi pohodlnou syntaxí :

for f in *.txt; do
  echo "Procesando $f"
done

Pokud potřebujete více větví na jeden vzor, ​​velká a malá písmena zjednodušují kód :

read -r fruta
case "$fruta" in
  manzana) echo 'Roja';;
  banana)  echo 'Amarilla';;
  *)       echo 'Desconocida';;
esac

Základní příkazy a vestavěná nápověda

Pro hladkou navigaci mějte po ruce základní sadu příkazů : cd, ls, mkdir, touch, rm, cp, mv, echo, cat, grep, chmod, sudo, df, history, ps. Pro nalezení možností a příkladů a rychlé zrychlení si prostudujte manuál s použitím příkazu „man“ .

Automatizace úloh: cron ve WSL

Cron umožňuje naplánovat pravidelné spouštění skriptů na systémech podobných UNIXu. Otevřete crontab pomocí:

crontab -e

Syntaxe se skládá z pěti časových polí a příkazu . Užitečné příklady:

# Cada 5 minutos
*/5 * * * * /home/tu_usuario/scripts/tarea.sh
# A medianoche todos los días
0 0 * * * /home/tu_usuario/scripts/backup.sh
# A las 6:00 de lunes a viernes
0 6 * * 1-5 /home/tu_usuario/scripts/reporte.sh

Nezapomeňte dát skriptům oprávnění ke spuštění a použít absolutní cesty.Pokud něco nefunguje, Zkontrolujte systémové protokoly vaší distribuce; v Ubuntu se obvykle zaměřují na /var/log/syslog.

Ladění a ošetřování chyb v Bash

Chcete-li vidět, co skript dělá v reálném čase, aktivujte režim trasování při spuštění nebo během běhu:

# Dentro del script
set -x
# O al ejecutar
bash -x script.sh

Pokud chcete, aby se skript ukončil při selhání jakéhokoli příkazu, použijte 'set -e' . To je velmi užitečné v CI pipeline a kritických úlohách.

set -e
# tu código aquí

Pro provedení rozhodnutí a zaznamenání chyb zkontrolujte výstupní kód posledního příkazu pomocí znaku '$?' . Nula znamená úspěch a nenulové hodnoty označují chybu.

comando
if ; then
  echo 'Hubo un error'
  exit 1
fi

Interoperabilita: kombinace příkazů Windows a Linuxu

WSL umožňuje spouštět příkazy Linuxu z PowerShellu/CMD pomocí 'wsl' a spustitelné soubory Windows z Bash s příponou .exe . To otevírá řadu velmi praktických kombinací pro smíšené pracovní postupy.

  • Z PowerShellu, seznam s Linuxem: wsl ls -la
  • Filtrovat kombinaci Linuxu/Windows: wsl ls -la | findstr 'git' o dir | wsl grep git
  • Z Bash otevřete Poznámkový blok: notepad.exe .bashrc
  • Extrahujte IPv4 pomocí smíšených nástrojů: ipconfig.exe | grep IPv4 | cut -d: -f2

Binární soubory Windows, které spouštíte ze skriptů Bash, respektují váš aktuální adresář. ve většině případů se zobrazují ve Správci úloh, jako by byly otevřeny z CMD. Pokud potřebujete nativní příkazy CMD, použijte je přes 'cmd.exe /C' (například cmd.exe /C dir).

Pro sdílení proměnných prostředí mezi Windows a WSL existuje funkce WSLENV . Můžete určit, zda je proměnná cesta (/p), seznam cest (/l) nebo zda má být předána pouze z Win32→WSL (/u) nebo z WSL→Win32 (/w). Tato funkce usnadňuje čisté meziplatformní zpracování dat.

Úpravy a ladění pomocí VS Code a Visual Studia

Visual Studio Code nabízí bezproblémovou integraci s WSL díky rozšíření Remote Development. V terminálu WSL otevřete projekt a vzdálený server pomocí :

code .

Můžete ladit, instalovat rozšíření specifická pro WSL a pracovat, jako by se jednalo o nativní prostředí Linuxu . Pokud pracujete s C/C++, Visual Studio 2022 vám umožňuje kompilovat a ladit projekty CMake tak, že je nasměrujete na WSL nebo SSH ze stejné instance.

Kontejnery, databáze a akcelerace GPU

WSL 2 se bezproblémově integruje s Docker Desktop pro Windows , což vám umožňuje transparentně používat kontejnery připojené k vašemu prostředí WSL. Je to ideální řešení pro izolaci nástrojů a replikaci prostředí.

V rámci WSL můžete také spouštět běžné databáze, jako například MySQL, PostgreSQL, MongoDB nebo Redis, které jsou ideální pro lokální vývoj. Dokumentace ke každému enginu podrobně popisuje, jak tyto služby nainstalovat a spravovat pomocí systemd nebo ekvivalentních systémů ve vaší distribuci.

Pokud se věnujete strojovému učení nebo náročným úlohám, nakonfigurujte akceleraci GPU v WSL s potřebnými ovladači a komponentami. To může zkrátit dobu trénování a výrazně zlepšit výkon při práci s velkými datovými toky.

Připojení disků a desktopových aplikací pro Linux

WSL umožňuje připojovat disky a externí jednotky pomocí příslušného příkazu, což je užitečné pro přístup k dalším datům z Linuxu. Navíc je možné v moderním WSL spouštět linuxové aplikace s grafickým rozhraním bez složitých konfigurací a bezproblémově je integrovat s pracovní plochou Windows.

Upravujte pomocí Nano nebo Vimu a spravujte balíčky pomocí APT

Pro rychlé úpravy je Nano jednoduchý a dostačující (uložení pomocí Ctrl+O a ukončení pomocí Ctrl+X). Pokud dáváte přednost něčemu výkonnějšímu, Vim je váš přítel (ukončení pomocí :qo, uložení a ukončení pomocí :wq). V obou případech udržujte své prostředí aktuální pomocí apt.

sudo apt update
sudo apt upgrade -y
sudo apt install htop -y

Pokud si všimnete poškozených balíčků nebo zaseknutých závislostí, pamatovat si sudo apt -f install y sudo dpkg --configure -a, dva zástupné znaky pro nouzové situace s balíky.

Rychlé příklady užitečných skriptů

Kontextový výpis s datem (zobrazuje substituci příkazů a proměnných):

#!/bin/bash
echo "Hoy es $(date)"
echo 'Introduce una ruta:'
read -r ruta
echo 'Contenido:'
ls -la "$ruta"

Skript s argumenty (první a druhý argument):

#!/bin/bash
echo "Hola, $1"
echo "Has pasado también: $2"

Modulární skript s funkcí (čistá a znovu použitelná struktura):

#!/bin/bash
saluda() {
  echo "¡Hola desde la función!"
}
saluda

Alternativa: Git Bash, pokud nechcete WSL

Instalace a konfigurace subsystému Windows pro Linux 2 (WSL2)
Související článek:
Jak obnovit původní bootloader systému Windows po instalaci Linuxu

Pokud nemůžete používat WSL nebo potřebujete pouze minimální prostředí Bash, Git pro Windows obsahuje Git Bash , 64bitové prostředí, které poskytuje Bash a základní nástroje. Není tak kompletní ani rychlé v I/O jako WSL 2, ale pro jednoduché skripty a instalaci během několika minut je naprosto dostačující.

Zabezpečení, oprávnění a malé triky

Nespouštějte skripty jako root, pokud to není nezbytně nutné ; v případě pochybností použijte sudo. Před spuštěním skriptu s oprávněními root si jeho obsah zkontrolujte , abyste předešli vzniku problémů.

Pokud budete někdy potřebovat dočasně zakázat interoperabilitu systému Windows v WSL , abyste izolovali určité chování, můžete tak učinit zadáním jako root:

echo 0 > /proc/sys/fs/binfmt_misc/WSLInterop

Chcete-li jej znovu aktivovat, změňte hodnotu 0 na 1 nebo restartujte relaci WSL . Tato akce není mezi relacemi trvalá , takže je bezpečná pro omezené testování.

Jak vidíte, vytváření Bash skriptů ve Windows s WSL je nejen možné, ale také neuvěřitelně pohodlné. Díky dobře nakonfigurovanému prostředí, optimalizovanému úložišti v souborovém systému distribuce, integrovaným editorům, jako je VS Code, a interoperabilitě mezi Windows a Linuxem můžete úlohy automatizovat, plánovat je pomocí cronu, snadno je ladit a kombinovat je s Dockerem, databázemi a GPU.

Tento přístup vám nabízí to nejlepší z obou světů pro rychlejší a bezproblémový vývoj. Sdílejte tyto informace, aby se více uživatelů mohlo naučit, jak vytvářet Bash skripty pro Windows.


Přidat jako preferovaný zdroj v Googlu