OS, udvikling/programmering, og problematikker

Tags:    programmering

Hejsa MedUdviklere.

Jeg undre mig lidt, Windows skulle være så brugervenligt, og Linux så besværligt, men, når det kommer til programmering/udvikling, så er det næsten lettere på Linux/Unix, end det er hos Windows.
Tillige med, er det også lettere at finde martiale til at programmere hos Linux, frem for Windows, der har et slags kode biblotek hvor man kan hente sine informationer fra.

Er jeg den eneste der føler dette?

---

Dermed siger jeg ikke at det er det samme for en begynder.



Hvis jeg gad bruge versionskontrol fra kommandoprompten, ville jeg installere det, det samme med shh osv.

Grunden til at terminalen på Linux bliver brugt mere er at man (førhen) var nødt til det.

Noget af det jeg savner i terminalen på Linux er simple ting som en ordentlig dir kommando og noget der er blot tilnærmelsesvist så godt som findstr, uden jeg behøver skrive et 200 linjers shell script.



At kunne fyre en kommando af som:
dir /S *.cpp

Eller
findstr /S /C:"Hello World" *.cpp

Kræver den store maskinmester eksamen på Linux. For de inkarnerede Linux freaks er det ikke noget problem, men for almindelig dødelige, er det en belastning.



Med al den snak om terminal/kommandoprompt, har I så alle overset Microsoft's bud på et stærkere alternativ i form af PowerShell? Jeg spørger af ren nysgerrighed, for jeg skriver personligt så absolut få kommandoer i min dagligdag som muligt, som den inkarnerede og glade Windows bruger jeg er :). Jeg har dog hørt at PowerShell skulle være rimeligt stærk og scriptable med piping af .NET objekter osv. - er den ikke noget værd eller hvad?

Mvh.

Kasper (TSW)



Jeg ved ikke om jeg har "overset" powershell, men jeg har ikke brugt den.

Som jeg forstår det er powershell specielt velegnet når man skal arbejde sammen med de interne dele af Windows, fra et script sprog. Det kunne f.eks. være at læse eller skrive i registreringsdatabasen eller bruge COM objekter. Til mit brug er commandprompten sådan set ok, selv om syntaxen er noget alternativ. Skulle jeg bruge et mere avanceret sprog, ville jeg foretrække Python i stedet for powershell



Bertel...
Jeg troede vi snakkede om udviklere. Hele denne debat handler om for programmerer. Og som jeg selv siger syntes jeg Linux har en stor fordel med terminalen i forhold til udviklere og teknikere. Enig i at terminalen ikke er for alle. Og derfor findes der jo heldigvis næsten altid en GUI-mæssigt alternativ.

Men grunden til terminalen findes i Linux er IKKE fordi af historiske grunde. Terminalen er super, super populær og ekstrem avanceret. Kan meget mere end noget GUI tænkeligt kan tilbyde. Og så er det altså ultra sjældent at man skriver 200 linjer shell-kode.

Men fint at du bare vil installere ting fra 3. parter når du har brug for det. Men du kommer bare aldrig til at have så vel integrerede funktioner i cmpromt som i linux terminalen. Eksempelvis se på ssh. Hvad der findes fra 3. parter som bruger cmpromt er så dårligt at ssh-clienter såsom Putty er blandt de populæreste. Putty bruger ikke cmdos, og du vil derfor få noget rod med forskellige promter.

Har aldrig hørt til PowerShell, men ser ret lækkert ud. Interessant at Microsoft har gået væk fra dos-koder og har lavet det Unix-like. Men som jeg ser det er der endnu ikke så meget understøttet. Kikkede lidt på nettet, og syntes ikke engang at kunne finde noget ordenlig dokumentation omkring om MySQL understøtter PowerShell. Og hvis det er tilfældet for mange teknologier, syntes jeg PowerShell er ret uinteressant ind til det er lavet.



Theis, jeg snakker udelukkende om udvikling, jeg har stort set aldrig brugt Linux til andet.

Ja, terminalen er "populær" på Linux, Linux nørder elsker at strikke et Shell script sammen til at løse en eller anden opgave. Det sjove er bare at Windows brugere af en eller anden grund ikke har brug for at løse de opgaver...

Jeg har svært ved at se at PowerShell skulle være specielt "Unix-like". Jeg er ret sikker på at man kan tilgå MySql fra PowerShell, men det er næppe den typiske opgave for PowerShell.




Med al den snak om terminal/kommandoprompt, har I så alle overset Microsoft's bud på et stærkere alternativ i form af PowerShell? Jeg spørger af ren nysgerrighed, for jeg skriver personligt så absolut få kommandoer i min dagligdag som muligt, som den inkarnerede og glade Windows bruger jeg er :). Jeg har dog hørt at PowerShell skulle være rimeligt stærk og scriptable med piping af .NET objekter osv. - er den ikke noget værd eller hvad

Nu er piping af .NET objekter ikke så interessant for mig, men jo, jeg har længe gået og overvejet at give PowerShell et skud. Det er bare sparsomt med snak omkring det derude, så jeg var af det indtryk at det var et flop. Men det kan godt ske, jeg skal se på det :)


Ja, terminalen er "populær" på Linux, Linux nørder elsker at strikke et Shell script sammen til at løse en eller anden opgave. Det sjove er bare at Windows brugere af en eller anden grund ikke har brug for at løse de opgaver...

Bertel, du er mere intelligent end det her. Jeg har ofte brug for at løse opgaver med avancerede shellscripts i Windows, men det kan jeg ikke fordi CMD er en svagpisser -- det er det, der er hele humlen :) At CMD er for svag til at akkommodere behovet for avancerede scripts er ikke en feature.

Du savner kommandoer i Linux' terminal? Du har ikke engang prøvet, ser det ud til.

dir /S ?

prøv med ls -R

findstr?

prøv med grep

ikke videre akrobatik der.


Min tur.

Fortæl mig hvordan jeg i CMD kan outputte indholdet af en fil, pipe det igennem et script som stdin og viderelede eventuelt fejloutput fra scriptets stderr til systemets bitbucket.

Fortæl mig hvordan jeg på Microsoft's kommandolinie kan lave rekursive cronjobs der via et script modificerer sig selv efter behov ved hver kørsel.

Fortæl mig hvordan jeg gør noget så simpelt som at få en farvet prompt der indeholder data om mit nuværende git repository's branch, som fx her: http://peecee.dk/uploads/112010/prompt.png




Kræver den store maskinmester eksamen på Linux. For de inkarnerede Linux freaks er det ikke noget problem, men for almindelig dødelige, er det en belastning.


Bertel. Jo du ævler jo alt muligt om den almindelige bruger! Læs det citat jeg henviser til. Det ved vi alle godt at terminalen ikke er til. Men igen og igen siger jeg der at vi snakker om udviklere og teknikere.

Jeg tror frygtelig gerne at folk vil bruge et shell i Windows, hvis det var muligt. Men det er det IKKE på samme måde som i Linux. Du kan mere end du kan i GUI på Linux, og kræver ingen specielle grafiske drivers osv. Derfor er den ekstrem populær. Det er ren og skær et valg fra Microsofts side som gør at folk ikke bruger prompt til mere i Windows.


Omkring PowerShell minder om unix-like. Altså de har hvert fald begyndt at undersøtte nogle af de kommandoer som unix bruger. Ofte har Powershell nu vist flere kommandoer fra det samme, hvor en er lig bash-koden og en lig cmd-koden, Men se her:

Powershell | cmd.exe | Unix/bash
ls | dir | ls
cat | type | cat
mv | move | mv
clear | cls | clear

Hvis du forstår



Indlæg senest redigeret d. 30.11.2010 10:22 af Bruger #5097




Indlæg senest redigeret d. 30.11.2010 12:06 af Bruger #5789
At kunne fyre en kommando af som:
(snip)
Kræver den store maskinmester eksamen på Linux. For de inkarnerede Linux freaks er det ikke noget problem, men for almindelig dødelige, er det en belastning.


Nu synes jeg måske nok du forveksler din egen uvidenhed med sværhedsgraden på de to platforme.

Fx syndes jeg ikke at
Fold kodeboks ind/udKode 

er meget mere kompliceret end
Fold kodeboks ind/udKode 


Eller at
Fold kodeboks ind/udKode 

eler meget anderledes end
Fold kodeboks ind/udKode 


Tilgengæld giver find fx masser af mulighed for at eksekvere kommandoer på fundne filer, søge efter filer med bestemt ændringsdato og sådan også. De giver mulighed for at lave de avancerede ting også, og ikke mindst at pipe output fra en kommando til en anden, hvad hvis du fx ville gemme output af din søgning efter .cpp filer?

Ja, på *nix ville det såmen bare være at tilføje > filnavn.txt efter find kommandoen.



t