Systemy uniksowe dość długo wyróżniały się znacznie lepszym wsparciem dla trybu wiersza poleceń niż Windows. To się w pewnym sensie zmieniło po powstaniu PowerShella, będącego co najmniej równie dobrą powłoką tekstową co bash czy zsh. Jednak przynajmniej w jednym aspekcie Linuksy wciąż mają tutaj wyraźną przewagę. Chodzi o graficzną otoczkę tekstowej konsoli.
W Windows programy konsole uruchamiane są wciąż w starym, w gruncie rzeczy obleśnym i w dodatku bardzo słabo i trudno konfigurowalnym oknie. Nie da się płynnie zmienić jego rozmiaru, zmaksymalizować, nie wspominając już nawet o otwieraniu kilku konsol w zakładkach tego samego okna. Możliwość modyfikacji czcionki czy też kolorów tekstu i tła też jest ograniczona i niewygodna. Dla porównania, okienka konsoli w systemach linuksowych są pod tym względem o wiele elastyczniejsze, zapewniając wszystkie te feature‘y i jeszcze sporo innych. W rezultacie interfejs tekstowy jest tam przyjemniejszy w obsłudze, nawet jeśli obiektywnie ustępuje możliwościami temu windowsowemu.
Czy da się coś na to poradzić, czyniąc windowsowe okienko konsoli bardziej znośnym?… Otóż można w pewnym – może nawet zadowalającym – stopniu to uczynić, lecz w tym celu trzeba się posłużyć zewnętrzną aplikacją. Chodzi mianowicie o open-source‘owy projekt Console2, będący okienkowym środowiskiem uruchamiania programów konsolowych. Technicznie działa on zapewne w podobny sposób, jak mój eksperyment sprzed prawie trzech lat, z tym że oczywiście robi to znacznie lepiej :) W międzyczasie zapewnia też sporą część funkcjonalności okienek terminala pracujących w X-Window, a mianowicie:
cmd
, cygwin
albo powershell
), a także możliwość skonfigurowania kilku powłok uruchamianych automatycznie w osobnych zakładkachi jeszcze kilka innych, w gruncie rzeczy naturalnych funkcji, których w tajemniczy sposób zabrakło w standardowym oknie konsoli w Windows. Jeżeli chodzi o stabilność i szybkość działania, to również prezentuje się nie najgorzej, chociaż zdarzają się problemy, np. z przesłaniem sygnału Ctrl+C w celu przerwania spamującego polecenia w rodzaju ls -r /
. Małą wadą jest też konfiguracja, która może zająć trochę czasu i kłopotów, jeśli umieścimy program w standardowy folderze Program Files (wskazówka: należy wtedy poinstruować go, by zapisywał ustawienia w katalogu użytkownika).
Ogólnie jednak moje wrażenia co do tej aplikacji są w miarę pozytywne, lecz pamiętajmy, że rywal jest godny pożałowania ;) Tym niemniej polecam zapoznanie się z tym programem, jeśli dużo pracujemy z tekstowym shellem pod Windows.
Tyaaa, Console jest naprawdę fajnym rozwiązaniem ;)
Co do technikaliów, to nie wiem jak 2.0, ale 1.5 działało inaczej niż Twój projekt – miało ukryte okno prawdziwej konsoli i sobie z niego zczytywało dane i je pokazywało w ładniejszy sposób.
Niestety w Console & konsoli standardowej pod Windowsem nadal mi brakuje jednej rzeczy która jest niesamowicie dobrze supportowana na *nixach – ANSI escape codes aka terminal control sequences. Pomijając rzeczy tak podstawowe jak kolorki, to np. raportowanie pozycji i kliknięć myszki brzmi jak przydatna rzecz (szczególnie jeśli nie trzeba by odwoływać się do WinAPI, tylko można to zrobić raz w escape codes i tyle).
Prawdę mówiąc liczę na wysyp konsol pod Windowsa 7 z uwagi na zmianę architektury (przeniesienie subsystemu konsoli z csrss.exe działającego na SYSTEM, na conhost.exe działającego z prawami usera). (zainteresowanych odsyłam do artykułu j00ru w HITB Magazine: http://magazine.hitb.org/issues/HITB-Ezine-Issue-004.pdf )
Jest dostepny klon Putty’ego z obsluga Cygwina. A bez Cygwina uzywanie konsoli (i Windowsa samego w sobie) jest bez sensu. :)
@Dab
s/Cygwin/GNUWin32/ i się z Tobą zgadzam ;D
Miałem nadzieje, że ruszą pod nią escape codes, nie ruszyły… szkoda.
Myślisz, że ktoś używa konsoli w Windows do czegoś bardziej zaawansowanego niż ewentualne wywołanie jakiegoś kompilatora, dla którego z niewiadomych przyczyn jeszcze nie powstała powłoka graficzna? ;)
Z moich doświadczeń z konsolą Windows wynika, że w sumie nadaje się do uruchamiania programów ale i tak w Linux jest fajniej bo TAB uzupełnia/podpowiada nazwę programu ;)
A ten projekcik ciekawy, jak kiedyś włączę system MSowy to koniecznie muszę to sprawdzić :)
Myślisz, że ktoś używa konsoli w Windows do czegoś bardziej zaawansowanego niż ewentualne wywołanie jakiegoś kompilatora, dla którego z niewiadomych przyczyn jeszcze nie powstała powłoka graficzna? ;)
Jeżeli ta konsola to wciąż cmd.exe, to faktycznie mogę się zgodzić ;P
3x Tak! życia sobie bez Console2 nie wyobrażam, czy to do cmd, czy do pysh.
A tak poza tym, to nie wiem, co w samym cmd (shellu, nie oknie) konsola windowsowa też podpowiada tabem.. i chyba zawsze podpowiadała.
No i po co komu Cygwin, skoro jest MSys? :)