Certaines des choses que j'aime dans Bash et j'aimerais savoir comment faire dans PowerShell:
Dans Bash, j'ai fait défiler l'historique pour qu'il ne fasse défiler que les commandes commençant par le même préfixe que la ligne actuelle. Si je veux voir mon dernier commit (par exemple pour réutiliser une partie du commentaire) j'écris 'git' puis ↑.
Bien sûr, la recherche d'historique avec Ctrl+R
Pour trouver autre chose, j'écris:
h | grep foo
Dans PowerShell, j'utilise:
h -c 1000 | where {$_.commandline.contains("foo")}
(évidemment je suis un débutant, il doit y avoir un chemin plus court)
Des choses comme:
mv file.txt{,.bak}
ou
mv file.txt !#$.bak
Espace magique (qui se dilate en
!$
ligne)
Quelles sont les alternatives dans PowerShell?
1 - Vous pouvez utiliser à F8partir de la console Windows pour parcourir les commandes correspondant au début de la ligne actuelle. Il s'agit d'une correspondance sensible à la casse.
2 - Vous pouvez utiliser
#
pour faire correspondre les commandes précédentes. L'utilisation#<partial match><tab>
n'est pas sensible à la casse et fera correspondre le texte à n'importe quelle position dans les commandes précédentes.Si vous avez l'historique des commandes suivant:
Taper
#pr
puis à tabplusieurs reprises fera défiler 1, 2 et 3.Taper
#st
ensuite à tabplusieurs reprises fera défiler les étapes 1 et 3.L'utilisation de # uniquement correspondra à toute l'histoire.
#
peut également être utilisé après avoir saisi une partie d'une commande. Si votre histoire est:Vous pouvez taper
Get-Process #n<tab>| #s<tab>
pour obtenirGet-Process 'notepad'| select *
3 - Vous pouvez utiliser
Select-String
. Créez un alias pour le rendre facile à utiliser (PowerShell v3 a ajouté l'aliassls
). Vous pourriez alors le faire.4 - Vous pouvez faire quelque chose comme:
5 -
$$
correspond au dernier jeton de la dernière commande, mais je ne connais pas de moyen de l'étendre en ligne.la source
Vous devriez consulter le module PSReadline d'Oisin Grehan: http://nivot.org/blog/post/2012/09/12/Emulating-Bash-GNU-Readline-with-PowerShell-30
Le code est disponible ici: https://bitbucket.org/oising/psreadline/overview
Cela rend PowerShell réellement utilisable en tant que CLI, du point de vue des administrateurs expérimentés * nix qui travaillent occasionnellement avec Windows, en ajoutant des liaisons EMACS de base pour l'édition de ligne, la recherche d'historique, etc.
la source