2009-07-12 12 views
4

La ligne de commande m'a échappé pendant des années. J'ai commencé en 1999 donc j'étais déjà gâté par l'interface graphique; en utilisant ma bonne vieille souris pour pointer et cliquer. Dix ans plus tard, j'ai quelques instructions de base en ligne de commande: cd, dir, rm, ipconfig, etc. En dehors de ça, pas grand-chose d'autre. Heck, même mes raccourcis clavier sont assez limités à: copier, coller, couper, rafraîchir le navigateur; mais je suppose que c'est un sujet tout à fait différent.Un développeur Windows doit-il connaître la ligne de commande?

Maintenant, je vois aussi quelque chose appelé "Windows Powershell". Il semble être plus puissant que le cmd.exe et est orienté vers les administrateurs système - cool. Cependant, je suis un développeur Web: tout ce qui concerne ASP.NET essentiellement. Je vis dans Visual Studio quand vient le temps de sortir du code.

Est-ce qu'un développeur comme moi profiterait de l'intégration du shell Windows dans mon flux de travail quotidien? En vieillissant, je m'intéresse plus à la fonction que la forme, c'est-à-dire que j'ai récemment acheté un ThinkPad et utilisé exclusivement le TrackPoint :) Je veux utiliser une ligne droite pour aller du point A au point B.

vous parler de ma situation et des développeurs Windows en général?

+2

Seulement si vous vous souciez de la productivité. –

Répondre

11

Les scripts de ligne de commande peuvent être très utiles, même dans l'environnement Windows. Les scripts peuvent être utiles pour les déploiements automatisés et à des fins de surveillance. Malheureusement, l'interface par défaut "cmd.exe" et les commandes sont un peu maladroites, donc ce n'est pas aussi amusant de travailler avec des shells basés sur Unix. Powershell est une énorme amélioration par rapport à cmd, donc je vous recommande d'apprendre les bases de Powershell, et voir si cela vous serait utile.

3

Il y a des avantages à chacun, donc je vous recommande d'apprendre Powershell, au moins assez pour avoir une idée de si cela peut aider dans votre situation. J'ai trouvé que si une interface graphique ne supporte pas bien les opérations répétitives, une interface utilisateur en ligne de commande riche comme Powershell peut vraiment les accélérer. Et parfois, c'est très rafraîchissant et éducatif de dépouiller tous les sorciers et de se familiariser avec la façon dont les choses fonctionnent à un niveau inférieur.

2

Dans certains cas, il peut être utile d'automatiser rapidement certaines petites tâches. Par exemple, j'utilise un fichier batch pour empaqueter les extensions Firefox en fichiers XPI. Mais à part ça, la seule fois où je l'utilise vraiment sur Windows du point de vue du développement, c'est de construire des bibliothèques tierces qui n'ont que des Makefiles. Du point de vue de sysadmin, cela peut être très utile, car vous pouvez accéder rapidement à un grand nombre de fonctions du système qui nécessiteraient autrement une longue navigation dans les fenêtres du Panneau de configuration. Démarrage/arrêt des services, la gestion du pare-feu et d'autres fonctions de sécurité, etc.

2

Si vous ...

a) travailler avec des fichiers

et

b) faire la même chose sur les fichiers plus d'une fois

... vous pouvez probablement gagner du temps en apprenant le batch ou la ligne de commande.

J'ai généralement 3 shells cmd.exe ouverts à tout moment. Un pour construire ('make release platform'), un pour les greps, un pour tout ce que je dois faire. Si vous supprimez en masse une ligne de commande, c'est beaucoup plus efficace, et tout ce que vous faites sur les fichiers devrait souvent être automatisé avec .bat autant que possible.

Je n'ai pas utilisé PowerShell mais cela semble être une bonne amélioration par batch, ce qui est assez limité. Quand j'ai besoin de plus de puissance, je passe en Python.

2

Cela dépend du type de travail que vous faites.

  • Si vous vous concentrez uniquement sur le développement, Powershell peut ne pas vous être utile.

  • Si vous devez également prendre soin de choses comme le déploiement ou le support utilisateur, cela peut vous aider beaucoup.

un coup d'œil à this question pour avoir une idée de ce que vous pouvez utiliser pour Powershell.

0

La ligne de commande est une arme très puissante. Dans Powershell, vous pouvez utiliser les langages .NET pour créer vos scripts.

Je recommande les outils cmd de Server 2003 Resource Kit (dans Windows Vista par défaut, je pense).

Windows Server 2003 Resource Kit Tools

Et j'utiliser la ligne cmd et PowerShell pour certaines opérations automatisation, quand je déployer mes applications.

5

Les développeurs Unix ont exploité la ligne de commande depuis des décennies. PowerShell avec son intégration profonde à la plate-forme Windows et aux produits (Excel et al) permettent l'automatisation de plusieurs de nos tâches quotidiennes. Andy White a souligné plusieurs domaines clés où PowerShell est plus que pratique.

Découvrez PowerBoots and some of its uses similaire à Tcl/Tk et inspiré par Ruby Shoes.

0

Si vous envisagez de tirer parti de Velocity (une solution de mise en cache distribuée de MS), vous devrez apprendre PowerShell, car c'est la seule façon de le configurer.

Configurer IIS de manière cohérente est un autre avantage de PowerShell.

3

En tant que développeur .NET, je trouve que PowerShell est très utile. Je l'utilise comme un .NET REPL interactif. Plutôt que d'écrire de petites applications console pour expérimenter avec les types .NET, je peux souvent essayer mon expérience à partir de l'invite PowerShell. Par exemple, dire que je veux savoir quelle chaîne de formatage particulier, je veux utiliser pour un objet DateTime:

PS> "{0:R}" -f [DateTime]::Now 
Mon, 13 Jul 2009 11:15:34 GMT 

Et comme d'autres l'ont déjà dit, si vous faites une sorte de tâches répétitives, il vaut bien l'effort de apprendre PowerShell afin que vous puissiez automatiser ces tâches. Les tâches répétitives sont sujettes à l'erreur et peuvent littéralement vous blesser (c.-à-d. Blessures de RS). Prenons, par exemple, le vélo à travers toute votre source et la suppression de tous les bin et obj dirs:

PS> dir . -r | 
    where {$_.PSIsContainer -and $_.Name -match '^(bin|obj)$'} | 
    remove-item -r -whatif 

PowerShell peut également couper facilement et XML dés et informations WMI à partir de votre PC.Vous voulez savoir vos informations du BIOS:

PS> Get-WmiObject Win32_BIOS 

Vous voulez voir le nombre d'emplacements de mémoire sont ouverts sur votre ordinateur (sans enlever le couvercle):

PS> gwmi Win32_PhysicalMemory | 
    Format-Table Description, DeviceLocator, Capacity -auto 

En outre, étant donné que le moteur PowerShell est facilement Hostable, il vaut la peine d'utiliser l'environnement de script de vos applications. Si ces applications ressemblent plus à des applications d'administration sys, cela a beaucoup de sens. OTOH pour les scripts plus traditionnels, j'hébergerais probablement le moteur IronPython.

Questions connexes