Close Menu
Datormagazin
    Facebook
    Senaste testerna
    • Test: Huawei Watch 5 & Fit 4 Pro
    • Test: Huawei Watch GT 3 SE
    • Test: Beoplay EX
    • Test: Sony Xperia 1 III
    • Test: Cooler Master Masterair MA624 Stealth och MA612 Stealth ARGB
    DatormagazinDatormagazin
    • Hem
    • Nyheter
    • Tester
      1. Toppklass
      2. DMZ Rekommenderar
      3. Gaming
      4. Jämförande test
      5. View All

      Test: OnePlus Pad 3 och Smart Keyboard

      10 juni, 2025

      Test: Huawei Watch 5 & Fit 4 Pro

      15 maj, 2025

      Motorola Razr 60 Ultra

      6 maj, 2025

      Test: Sennheiser HD 550

      7 april, 2025

      Test: Xiaomi POCO F7 Ultra

      6 juni, 2025

      Test: Kioxia Exceria Plus G4

      28 maj, 2025

      Test: AOC AGON PRO AG456UCZD

      21 maj, 2025

      Test: Asus ZenScreen Duo OLED MQ149CD

      18 maj, 2025

      Test: Kioxia Exceria Plus G4

      28 maj, 2025

      Test: AOC AGON PRO AG456UCZD

      21 maj, 2025

      Test: Cooler Master Masterliquid 360 ION & Hyper 612 APEX

      18 april, 2025

      Test: Sennheiser HD 550

      7 april, 2025

      Test: Logitech Ergo K860 vs. Microsoft Sculpt Ergonomic Keyboard

      19 augusti, 2021

      Vi utser den bästa multiskrivaren

      20 maj, 2021

      Test: Cooler Master Masterair MA624 Stealth och MA612 Stealth ARGB

      12 maj, 2021

      Test: Oneplus 9 Pro och Oneplus 9

      21 april, 2021

      Test: OnePlus Pad 3 och Smart Keyboard

      10 juni, 2025

      Test: Xiaomi POCO F7 Ultra

      6 juni, 2025

      Teknologin som driver e-sportturneringar: Hur allt hänger ihop

      2 juni, 2025

      Test: Asus NUC 15 Pro+

      1 juni, 2025
    • DMZ-riggen
    • Programtips
    • Gaming
    • Fråga experten
      • Hårdvara
      • Mjukvara
    • DMZ Retro
    • Shop
    • Om DMZ
      • Om Datormagazin
      • Annonsera
      • Nyhetsbrevet
      • Kundtjänst
      • Press & PR
    Facebook
    Datormagazin
    Hem » Artikel » Bash och Python blir Xonsh
    wizard
    Artikel

    Bash och Python blir Xonsh

    redaktionenBy redaktionen30 november, 20164 Mins Read

    Det handlar om ett kommandoskal för Windows, Mac och Linux som kombinerar det bästa med Bash och Python. Så om du gillar dessa båda kommer Xonsh att passa dig perfekt!

    Under slutet av 70-talet skapades  Bourne shell av en av upphovsmännen till Unix, och ungefär tio år senare kom Bash (eller Bourneagain shell). När det gäller Windows har vi sedan länge haft Kommandotolken och senare Powershell, och för inte så länge sedan fick Windows 10 Bash.

    Nu är det dags för Xonsh, som du hittar på http://xon.sh. Det är ett hopkok av Python och Bash och fungerar på alla plattformar. Gillar du Python är det här kanske kommandoskalet för dig.

    Installation på Windows 10

    Det är inte alls svårt att installera på Windows 10. Till att börja med måste Python 3.4 eller senare finnas på plats. Något som enklast görs genom att ladda ned distributionen som kallas för Anaconda. Du laddar ned 351 megabyte (64-bitversionen) och installerar som vanligt.

    Efter installationen startar du en Anaconda-prompt och skriver följande:

    > conda config –add channels  conda-forge

    > conda install xonsh

    Kommandona ovan installerar de paket som behövs och det slutar med att du kan skriva ”xonsh” för att starta kommandoskalet. Första gången får du frågan om du vill skapa konfigurationsfiler. Acceptera och konfigureringen påbörjas.

    Första frågan under konfigureringen är om du vill integrera med Bash, Zsh eller Fish. När detta accepteras innebär det att Xonsh kommer att ladda in deras miljöer, alias och funktioner. Miljövariabler kan läsas från en statisk fil och kommer att skrivas över av Xonsh.

    Du kan också bygga ut Xonsh med skript från tredje part. Dessa installeras med kommandot ”xontribs”. Därefter är det klart att sätta igång!

    Funktioner i Xonsh

    Kommandoskalet kombinerar Python med det bästa från Bash, Zsh och Fish. Då Xonsh inbegriper Python finns beroenden mot PLY, en lexikal analysator för Python.

    Den kommer att skapa AST (Abstract Syntax Tree) och använder Pythons inbyggda bibliotek för att göra detta, nämligen då ”ast.parse()”. Fast inget av det här behöver du bry dig om, utan du kan skriva följande på kommandoraden:

    import urllib.request r = urllib.request.urlopen( ’http://www.datormagazin.se’) print ( r.status )

    Ett extremt enkelt exempel, men du förstår principen med att kommandoskalet har stöd för Python.

    Då kommandoskalet både är en kommandotolk och en Pythonruntime uppstår det en del intressanta problem. Ett exempel är kommandot ”ls”, hur ska Xonsh tolka det? Frågan är om användaren vill visa en fillista eller om det är en variabel i Python.

    Det enkla svaret är att det beror på kontexten. Finns det en variabel med det namnet definierad, då används den, i annat fall listas filer och kataloger.

    För att undvika detta och explicit ange att det är ett kommando skriver du följande:

    !(ls -l)

    På tal om ”ls” kan kommandoraden innehålla reguljära uttryck, så du kan skriva ”ls -l `\w+?ci|ic).*”. Detta ger då träffar på ord innehållande de bokstäver som anges.

    När det gäller vanliga kommandoskal krävs att du sätter upp skiljetecken för att tolka strängar. Det sker via en miljövariabel. Fast med Xonsh är det betydligt enklare.

    # sh s = ”ett:tu:tre” OIFS=”$IFS” IFS=’:’ array=($s)

    # Xonsh s=”ett:tu:tre” array=s.split(’:’)

    Just blandningen av Python och ett kommandoskal är vad som gör detta så kraftfullt. När du ”ekar” ut ”$PATH” till konsolen med andra skal blir det bara en ström med tecken. Här får du istället en array av strängar som du kan använda i Python, som vilken annan array som helst.

    Det tål att upprepas, Xonsh är Python.

    Som avslutning och extra knorr får du här ett extra komplicerat sätt att göra en ”ls -l” i Xonsh:

    $[@($(echo ls).strip()) @(”.

    Av Patrik Hermansson

    mjukvara utveckling
    Share. Facebook Twitter LinkedIn Email WhatsApp

    Missa inte

    Tester

    Test: OnePlus Pad 3 och Smart Keyboard

    10 juni, 20257 Mins Read
    Artikel

    Test: Xiaomi POCO F7 Ultra

    6 juni, 20257 Mins Read
    Artikel

    Test: Asus NUC 15 Pro+

    1 juni, 20255 Mins Read
    Tester

    Test: Kioxia Exceria Plus G4

    28 maj, 20255 Mins Read
    Add A Comment

    Leave A Reply Cancel Reply

    Senaste kommentarerna
    • Andreas Rejbrand om Test: Samsung Galaxy watch 7
    • Petter om Test: Samsung Galaxy watch 7
    • Anders Öhman om Test: Samsung Galaxy watch 7
    • Tobias om Test: Samsung Galaxy watch 7
    • Anders om Test: HP Envy X360
    Fler nyheter

    Glorious Gamings Pro-möss lanseras i vit

    25 september, 2024

    Gen Z och kvinnor väljer mobilen framför sex

    25 september, 2024

    Många Svenska företag lever inte upp till sina visioner gällande hållbarhet.

    21 augusti, 2024

    Nya Philips 49B2U6903CH – en skärm för ”den moderna arbetsplatsen”

    28 juni, 2024

    Toppklass

    Test: Huawei Watch 5 & Fit 4 Pro

    15 maj, 2025

    Test: OnePlus 12

    23 februari, 2024

    Test: Philips Evnia 49M2C8900

    7 januari, 2024

    Test: Corsair Dominator Titanium DDR5

    28 september, 2023
      Kontaktinformation
      Kontaktinformation

      Omsoc Publishing AB
      Datormagazin
      Box 440 73
      100 73 Stockholm
      Sweden

      Telefonnummer: +46 8–208 118
      E-post: datormagazin@datormagazin.se

      Missa inte

      M.2 optimerad NAS-prestanda

      2 september, 2024

      WiFi 7 – När, var, hur & varför

      23 augusti, 2023

      TCS digitala tvillingar och deras prediktiva kraft.

      4 juli, 2023
      Datormagazin
      Facebook YouTube RSS
      • Om cookies
      • Hantering av personuppgifter
      • Köpvillkor www.datormagazin.se
      © 2025 Datormagazin/Omsoc Publishing AB, org-nr: 559034-9014 – Ansvarig utgivare: Anders Öhman

      Type above and press Enter to search. Press Esc to cancel.