Kommando(linje)soldat

Kommando(linje)soldat

Jeg bruger fra tid til anden meget krudt i Powershell (eller gode gamle cmd for den sags skyld), og jeg tilegner mig nogle små "nice to know" tricks, som jeg egentlig gerne vil videregive, for: hvorfor ikke?

Det første trick er noget jeg gør fra tid til anden, når jeg har bruger for File Explorer UI'ens (u)overskuelighed, af en eller anden grund. Forstil dem, at du er godt igang med at cd dig langt ned i et hieraki via Powershell. Man kan nu bruge ii . for at åbne nuværende folder i File Explorer, og lave det man skal fra File Explorer. Nemt og bekvemt! Hvad nu hvis man vil den anden vej rundt, og åbne powershell, fra nuværende folder i File Explorer? Kan man det? Ja! Det er endda nemt, man skriver blot powershell i lokations baren i File Explorer, og trykker enter. Man får derved en powershell spundet op i nuværende folder

Åbn Visual Studio sln filer

Mange står jeg og har lavet et clone af et projekt fra github, men jeg orker ikke at cd path/to/sln/file && ii . for derefter at dobbeltklikke på sln filen. Heldigvis er der en gennemvej: start dinsolutionfil.sln. start kommandoen vil finde det korrekte program, her Visual Studio, og åbne filen. SMART! Men kan det gøres nemmere? Hvordan skal vi kunne cd /sti/til/sln/fil && start dinsolutionfil.sln når

  1. vi ikke kender stien til solution filen (selvom mange har en vis standard på github)

  2. vi ike ved hvad solution filen hedder

Men det findes der heldigvis scripting imod!!

Python to the rescue

Da jeg, udover at dykke ned i de mørkeste afkrog af ARM templating og .NET Core, også kigger på Python (og Rust, men det kommer der et nogle andre indlæg om), hvor jeg har lavet verdens mest simple script(jeg er lige gået igang med med det sprog), som meget behændigt kan hjælpe med at åbne solution filen uden du egentlig ved hvor den befinder sig (du skal blot stå i roden af det klonede repository).

Klon repositoriet til en folder du selv bestemmer, og tilføj følgende til din Powershell profile:

    function starter {py "[X:\path\to\location\of\cloned\repo]\src\Starter.py"} 
    set-item -Path alias:s -value starter

Du kan nu klone et hvilken som helst Visual Studio baseret repository ned, og i roden af projektet blot taste s og scriptet vil finde den første sln fil i det klonede repository og køre =start=på den.

Jeg er godt klar over at opsætnings guiden, og forklaringen til hvordan scriptet virker, er mere end selve scriptet

    import glob
    import os

    sln_files = glob.glob("./**/*.sln",recursive=True)

    os.system("start " + sln_files[0])

Men det er også selve integrationen jeg er mest stolt af. Jeg kan nu udvide mit powershell miljø med mange scripts blot ved at følge overstående opskrift. Jeg har valgt at lave det i python, da jeg derved kan genbruge (og andre kan bruge) scriptet på deres operativ system. Om =start=er understøttet på Linux, ved jeg ikke, men det kan man nemt opdatere scriptet med efterfølgende. Jeg har valgt ikke at lave det i Powershell script, da jeg derved binder mig for meget til selve terminalen, og det vil jeg ikke. Desuden kan python også bruges andre steder, og til mange andre ting. At have andre stykker værktøj i kassen er altid godt, og hvorfor ikke vælge et stykke værktøj der kan lidt af hvert: scripting, web, applikationsudvikling.

Pt åbner scriptet den første solution fil den finder, da jeg ikke har brug for andet. Jeg vil dog helt sikker udvide scriptet, hvis jeg finder at jeg har brug for det. Du er også meget velkommen til at smide en PR, hvis du gerne vil udvide scriptet, eller fortælle mig om dine ændringer! Jeg er altid klar på lidt ekstra spice til min kommandolinje oplevelse.

En gennemvej til Git root

Hvis jeg starter en ny powershell op, har jeg en gennemvej til at tilgå min git folder: cws. Jeg har et alias i min profile, som mapper cws=til min git folder, i mit tilfælde =d:\git

    function cws { Set-Location d:\git }

Meget behændigt, da jeg 9/10 gange altid vil noget med mit kode, når jeg starter en terminal op.

Posh-git og oh-my-posh

Hvis I lagde mærke til det i mine screenshots, så ændrede themet sig undervejs. Jeg bruger min egen version af honukai, dog uden tidsstemplet. Du kan finde både themet og det som skal til for at sætte det i din profile her.

    Set-Alias k kubectl

Så skal du blot skrive =k=i stedet for =kubectl=hvilket hurtigt sparer dig for tastetryk.

Sidst men ikke mindst

Installer Windows Terminal. Eneste terminal jeg kender til, som har en reklame video, som må få alle i Apples marketing til at savle

Vi mangler kun et overlay speak af Jonathan Ive hviske: "Right in the palm of your hands. Magic."

Hvis I kunne bruge disse tips til noget, og gerne vil høre næste gang jeg smider et indlæg ud i æteren, så bookmark siden, og følg mig på Twitter, eller LinkedIn.

comments powered by Disqus