2022-02-23
CTRL+w s podział okna na 2 ułożone obok siebie – s jak split
CTRL+w v podział okna na 2 ułożone jedno pod drugim – v jak vertical
CTRL+w n otwarcie nowego okna, poniżej – n jak new
CTRL+w q wyjście z okna – q jak quit
CTRL+w i jeden z klawiszy hjkl lub strzałki – zmiana aktywnego okna na po lewej, prawej u góry lub na dole
CTRL+w w – zmiana aktywnego okna na kolejne (pętelka)
CTRL+w r – zmiana miejscami okien – r jak rotate
CTRL+w i jeden z klaiszy + – = – zmiana wielkości okna: powieksz, pomniejsz, ułóż równo
:ter – uruchomienie terminala (można dzięki temu symulować wygląd code)
:set cursorline cursorcolumn – bieżący wiersz i kolumna będą wyróżnione
:highlight CursorColumn ctermbg=Grey ctermfg=Black – zmiana koloru kolumny wyróżniającej
Jeśli w trakcie testowania klawiszy przypadkiem naciśniesz CTRL+s, to terminal się „zamrozi”. Odmrożenie można wykonać naciskając CTRL+q
Ustawienia, zwłaszcza te dotyczące kolorów, można na stałe zapisać w pliku .vimrc o tak:
cat .vimrc
set cursorline cursorcolumn
highlight CursorColumn ctermbg=Grey ctermfg=Black
Pełny help dotyczący również innych skrótów zobaczysz wpisując polecenie:
:help windows.txt
2022-02-19
Domyślne linki pozwalające na instalację przeglądarki MS Edge na Windows Server 2019 nie działają… dzięki Microsoft!
Ale ten link zadziała:
https://www.microsoft.com/en-us/edge/business/download
Co istotne, może być wymagana zmiana ustawień bezpieczeństwa w IE, żeby instalator edge dało się pobrać.
- Należy przejść do IE -> Internet Options
- Na zakładce Security wybrać Custom Level
- Przewinąć prawie na sam dół. Jest tam sekcja Scripting
- Upewnić się, że opcja Active Scripting jest ustawiona na „Enable”
Enjoy!
2022-02-09
Gdy skrypt, który przygotowujesz musi pracować z róznymi tenantami i subskrypcjami przyda się wiedza na temat tego jak wybrać właściwą subskrypcję z linii komend. A robi się to tak:
Logowanie poleceniem az do Azure:
az login
Sprawdzenie „a gdzie to ja się właściwie zalogowałem”:
az account show
{
"environmentName": "AzureCloud",
"homeTenantId": "7d*****-****-****-****-**********aa",
"id": "cc******-****-****-****-**********78",
"isDefault": true,
"managedByTenants": [],
"name": "Azure Pass - Sponsorship",
"state": "Enabled",
"tenantId": "7d*****-****-****-****-**********aa",
"user": {
"name": "m******@*****.pl",
"type": "user"
}
}
Identyfikator subskrypcji widać już właściwie powyżej w polu id.
Wyświetlenie dostępnych subskrypcji:
az account list --output table
Name CloudName SubscriptionId State IsDefault
------------------------ ----------- ------------------------------------ ------- -----------
Azure Pass - Sponsorship AzureCloud cce*****-****-****-****-**********78 Enabled True
MSDN Platforms AzureCloud b0f*****-****-****-****-**********56 Enabled False
Przełączenie się do innej subskrypcji:
az account set --subscription "MSDN Platforms"
To polecenie jest ciche, więc po wszystkim radziłbym ponownie wylistować konta i sprawdzić, czy aktywna jest właściwa subskrypcja
Więcej: https://docs.microsoft.com/pl-pl/cli/azure/manage-azure-subscriptions-azure-cli
2022-01-13
XXI wiek, a ciągle używamy haseł? Bez haseł jest prościej i hahahah… bezpieczniej! Wiem, wiem, koniec końców to hasło gdzieś się tam pojawi, ale…
Jeśli między systemami opartymi o Linux/Unix chcesz logować się bez podawania hasła w oparciu o uwierzytelnie kluczem prywatnym i publicznym to:
Zacznij od wygenerowania tych kluczy. Służy do tego polecenie ssh-keygen. Polecenie zaproponuje zapisanie klucza prywantego w katalogu domowym w .ssh/id_rsa, a publicznego w .ssh/id_rsa.pub.
Taka lokalizacja nie jest zła, jeśli ten prywatny klucz chcesz zachować lokalnie na swoim komputerze, a publiczny przegrać na zdalną maszynę, która powinna akceptować Twoje logowanie bez prośby o hasło:
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/boss/.ssh/id_rsa):
/home/boss/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/boss/.ssh/id_rsa
Your public key has been saved in /home/boss/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:tmvrlp4/kvgPulfa7Bl4qiD0bd2mNQwACtBLgi756gc boss@u20
The key's randomart image is:
+---[RSA 3072]----+
|=. . |
|o.o. . |
|.+.. . |
|o.. . |
|... S |
| E.. . o *. |
| .o o o.=BO |
|. o o..OX++ |
|... +XX*=. |
+----[SHA256]-----+
Tworząc te klucze można (i w sumie jest to zalecane), zabezpieczyć je hasłem. W takim przypadku przed skorzystaniem z klucza prywatnego będziemy musieli najpierw go otworzyć podając to hasło.
Polecenie ssh-keygen pozwala na określenie dodatkowych parametrów kluczy jak, ich algorytm, czy długość.
Gdy klucz już jest wygenerowany, to należy go rozdystrybuować na systemy, które powinny go akceptować i pozwalać logować się bez hasła. Zrobisz to poleceniem
ssh-copy-id username@host.address.com
Jeśli klucz publiczny miałby być wykorzystywany tylko na lokalnym serwerze, to należy go umieścić w pliku authorized_keys.
Jeśli masz więcej wygenerowanych kluczy, to możesz je przesyłać wybiórczo do zdalnego stystemu korzystając z opcji -i o tak:
ssh-copy-id -i ./servername username@host.address.com
gdzie servername to nazwa pliku z kluczem wygenerowanym wcześniej za pomocą ssh-keygen.
Od tej pory można się już łączyć do zdalnej maszyny przez
ssh username@host.address.com
Na docelowej maszynie plik powinien zostać umieszczony w katalogu domowym użytkownika w podkatalogu .ssh. Uwaga – ten podkatalog musi mieć w odpowiedni sposób zdefiniowane bezpieczeństwo: właścicielem musi być użytkownik, a uprawnienia powinny być odebrane dla grupy i innych (700)
Jeśli z jednego serwera chcesz łączyć się do większej liczby innych serwerów, możesz w katalogu ~/.ssh utworzyć plik config o zawartości podobnej jak ta:
# Control node
Host dbserv10
HostName dbserv11
PreferredAuthentications publickey
IdentityFile ~/.ssh/dbserv10
# Client node
Host dbserv11
HostName dbserv11
PreferredAuthentications publickey
IdentityFile ~/.ssh/dbserv11
Wykonując połączenie na konto user@hostname, zostanie pobrany od razu właściwy klucz.
2022-01-11
Jeśli do przetworzenia jest dużo danych tekstowych i trzeba je np przefiltrować (coś w stylu polecenia grep). W takim przypadku przetwarzanie pliku przez Import-CSV albo Get-Content może być nieoptymalne, wolelibyśmy przetwarzać plik linia po linijce i … z pomocą mogą przyjść metody .NET
Poniższy przykład pochodzi z Reading And Writing To Files · Powerstart to Powershell reference book (dewin.me)
$path = "c:\d\myfile.txt"
$stream = [System.IO.StreamReader]::new($path)
while( -not $stream.EndOfStream) {
$value = [int]($stream.ReadLine())
if (($value%10000) -eq 0) {
write-host $value
}
}
$stream.close()
Korzystając z klasy System.IO.StreamReader otwieramy plik, następnie przetwarzamy go aż do osiągnięcia końca pliku (while not end of stream) i przy każdym wykonaniu pobieramy jedną linijkę tekstu przez ReadLine(). Jeśli trzeba by było pobierać więcej danych w każdym kroku – można to zmienić.
Plik jest fizycznie odczytywany linia po linii z dysku, więc użycie pamięci przez program będzie zoptymalizowane.
2022-01-09
Jeśli znalazł się ktoś miły i zasponsorował Ci dostęp do subskrypcji Azure, wysyłając Ci tzw. Azure Pass, to możesz chcieć zweryfikować ile kasy zostało jeszcze w tej subskrypcji. Zrobisz to łatwo wchodząc na stronę:
https://www.microsoftazuresponsorships.com/Usage
Stronka pozwoli wybrać subskrypcję (jeśli jesteś naciągaczem i masz ich kilka),
a potem na ładnym grafie pokaże jak bardzo jesteś rozrzutny/a
2022-01-01
Objawy:
Bez specjalnego powodu Outlook przestal się uruchamiać. Po kliknięciu ikony pojawia sie ekran „przetwarzanie” i okienko wisi w nieskończoność
Obejście/rozwiązanie:
Podobno w pewnych wersjach tak się może zdarzyć… dlatego docelowym rozwiązaniem powinna być aktualizacja. Jeśli jednak chcesz, żeby po prostu Outlook wystartował, to spróbuj takiej sztuczki:
- Zamknij wszyskie procesy Outlooka (CTRL+Shift+Escape i w zakładce szczegóły pozamykaj wszystkie procesy outlook)
- Na pulpicie utwórz skrót do programu Outlook. We właściwościach skrótu ustaw, aby program startował w zmaksymalizowanym oknie.
- Gotowe – uruchom Outlooka – powinien się tym razem uruchomić 😉
A oto propozycje od Microsoft:
https://docs.microsoft.com/en-US/outlook/troubleshoot/performance/outlook-2016-hangs-at-processing