Narzędzia wiersza poleceń systemu Windows

Ponieważ deweloperzy spędzają większość czasu na kodowaniu w systemach OS X i Linux, byliśmy ciekawi, jak może wyglądać w systemie Windows nowoczesna konfiguracja wiersza poleceń.

Ankieta dla deweloperów na platformie StackOverflow przypomniała nam, że na Windowsa używa się więcej programistów niż innych systemów operacyjnych, więc byliśmy ciekawi, czy dostępne tam narzędzia są na równi z tym, do czego byliśmy przyzwyczajeni w całej krasie *nix.

Po poświęceniu czasu na ocenę środowiska narzędzi wiersza poleceń systemu Windows osiągnęliśmy zestaw narzędzi, który naszym zdaniem pozwolił na to w 95%.

Pod koniec dnia dotarliśmy do następujących wniosków:

  • PowerShell
  • ConEmu
  • PSReadLine
  • PSGet
  • Czekoladowy
  • babun (opcjonalnie)

Poniżej znajdziesz więcej informacji na temat zalet tych modeli.

PowerShell (powłoka)

  • Znacznie bliższa rzeczywistej „powłoki” niż cmd.exe, co zapewnia zaawansowane środowisko do tworzenia skryptów do automatyzacji zadań. Można go porównać do Bash lub zsh.
  • Automatycznie uzupełnia nazwy katalogów i plików
  • Autouzupełnianie nazw aplikacji
  • Ma zintegrowane aliasy i polecenia (zwane cmdletami – np.Select-String jest jak grep, Invoke-Elevated jest jak sudo, Sort-Object jak sort, Get-Process wyświetla wszystkie aktywne procesy. Jeśli przechodzisz z innej powłoki do PS, Set-Alias umożliwia mapowanie aliasów, które znasz, na ich odpowiedniki w systemie Windows. Na przykład: Set-Alias server python -m http.server 8000 uruchamia serwer Pythona z użyciem aliasu server.
  • Aliasy można przechowywać w profilu PowerShell
  • Obsługuje potoki, tak jak w systemie Unix. W przeciwieństwie do systemu Unix kreska pionowa oznacza obiekty, a nie strumienie tekstu. Wymaga to przyzwyczajenia, ale unikniesz ponownej operacji, gdy zechcesz opuścić usługę.
  • Obsługuje moduły. PSGet to menedżer pakietów dla PowerShell, który umożliwia jego łatwe rozszerzanie.
  • Opcjonalnie możesz użyć Posh-Git, skryptu PowerShell dla Gita, który umożliwia kontekstowe uzupełnianie za pomocą klawisza Tab.

Jeśli interesują Cię quizy, oto odpowiedź na pytanie, dlaczego MS utworzył PowerShell od głównego architekta.

PSReadLine (pomoce do edytowania w konsoli)

  • Znacznie usprawnia edytowanie konsoli
  • Wyróżnianie składni za każdym razem, gdy zaczynasz wpisywać polecenia. Wyraźnie wskazuje błędy składni oznaczone czerwonym znakiem „>”.
  • Łatwe w dostosowywaniu powiązania klawiszy
  • Autouzupełnianie w stylu Bash
  • Interaktywne wyszukiwanie w historii Bash/zsh (Ctrl + R). Zaawansowane narzędzie do przemierzania historii poleceń. Możesz w prosty sposób przeglądać wcześniejsze polecenia wielowierszowe za pomocą klawiszy strzałek, a nie tylko ostatniego wiersza polecenia.
  • Odpowiednia obsługa kopiowania, wklejania i wycinania (Ctrl+C/X/V działa prawidłowo).
  • Dobra obsługa cofania/ponawiania.
  • Zapisywanie historii jest automatyczne

Możesz też użyć aplikacji Clink, która ma podobny zestaw funkcji, ale nie została napisana wyłącznie dla PowerShell.

ConEmu (host w konsoli)

  • Zaawansowany emulator konsoli, w którym możesz uruchomić wybraną powłokę.
  • Umożliwia otwieranie wielu terminali na różnych kartach. Uruchamianie terminali jako różnych użytkowników jest proste.
  • Niesamowite możliwości dostosowania – można zmienić wszystko od skrótów po zaznaczenie tekstu i kolory paska stanu.
  • Obsługa widoku podzielonego ekranu
  • Proste aplikacje z GUI można uruchamiać na kartach
  • Obsługa list szybkiego dostępu w systemie Windows 7 lub nowszym
  • Obsługuje płynną zmianę rozmiaru okna.
  • Wygładzanie czcionek w systemie Windows
  • Karty początkowe można w pełni dostosować tak, aby rozpoczynały się w określonym katalogu.
  • Inteligentne kopiowanie i wklejanie

Część osób nadal korzysta z Console2, a Scott Hanselman napisał na ten temat post na blogu.

Cmd

Warto zapamiętać, że jest to Cmder – pakiet emulacji konsoli, który łączy ConEmu, Clink i msysgit. Zapewnia pomocników Git. Cmder domyślnie zapewnia ładniejsze środowisko ConEmu dzięki schematowi kolorów Monokai.

Cmder ma też kilka innych drobnych korzyści, takich jak integracja z aplikacjami GUI, takimi jak Sublime Text.

Czekoladki (menedżer pakietów)

  • To aplikacja do używania w systemie Windows, która pozwala wygodnie pobierać z niego ulubione aplikacje. Obecnie dostępnych jest ok. 3000 pakietów, które można zaktualizować bezpośrednio za pomocą Czekolady.
  • Różni się od Nuget. NuGet jest przeznaczony dla bibliotek programistycznych. Czekolada to menedżer pakietów maszyn binarnych oparty na infrastrukturze NuGet.
  • Oferuje efektywnie ciche kompilacje.

Może zainteresują Cię też informacje o OneGet, menedżerze pakietów..manager firmy Microsoft, który powinien działać z Chrome w systemie Windows 10.

Babun (wstępnie skonfigurowany Cygwin)

  • Cygwina (środowisko systemu Windows podobne do Linuxa) i pomija niektóre z jego nietypowych cech. Ogólna konfiguracja jest znacznie prostsza w przypadku użycia instalatora Babun. Jeśli masz szczególne doświadczenie z systemem Unix i nie chcesz używać PowerShella, wypróbuj kod Cygwin/Babun.
  • Zawiera menedżera pakietów o nazwie pact (nieco podobny do brew), który jest podobny do apt-get. To wielka sprawa, ponieważ podczas dodawania pakietów musisz jeszcze raz uruchomić instalatora Cygwina, a nie tylko przy użyciu pakietu pact.
  • Oprogramowanie Vim jest wstępnie zainstalowane i skonfigurowane
  • Zintegrowana obsługa oh-my-zsh
  • Automatyczne aktualizacje

Dalsza lektura