Linux: Vim: praca z oknami

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
By Rafał Kraik in Linuxy

Windows Server 2019: Jak zainstalować Edge?

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ć.

  1. Należy przejść do IE -> Internet Options
  2. Na zakładce Security wybrać Custom Level
  3. Przewinąć prawie na sam dół. Jest tam sekcja Scripting
  4. Upewnić się,  że opcja Active Scripting jest ustawiona na „Enable”

Enjoy!

Azure: AzCli: Wybór subskrypcji z linii komend polenia az

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

By Rafał Kraik in Azure

Linux: Generowanie klucza SSH do logowania bez hasła

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.

 

 

By Rafał Kraik in Linuxy

Powershell: Odczyt dużego pliku z wykorzystaniem metod .Net

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.

 

By Rafał Kraik in Power Shell

Azure: Sprawdzenie stanu subskrypcji sponsorowanej (Azure Pass)

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

 

 

By Rafał Kraik in Azure

Outlook zawiesza się z ekranem „przetwarzanie” / „processing”

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:

  1. Zamknij wszyskie procesy Outlooka (CTRL+Shift+Escape i w zakładce szczegóły pozamykaj wszystkie procesy outlook)
  2. Na pulpicie utwórz skrót do programu Outlook. We właściwościach skrótu ustaw, aby program startował w zmaksymalizowanym oknie.
  3. 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

By Rafał Kraik in Helpdesk