13 Jun 2007

GNU Screen - najczesciej uzywane opcje

Program screen jest jednym z najprostszych menadżerów okien (wg wikipedii) pozwala dzielić jeden fizyczny terminal pomiędzy parę programów konsolowych, ale jego główną zaletą jest to że po schowaniu (detach) nasze programy działają wciąż tak samo jakbyśmy byli zalogowani w systemie. Program ten ma wiele opcji, ja postanowiłem zapisać sobie tu parę najważniejszych, żeby nie przeglądać obszernego manuala jak coś się zepsuje (np jakiś miś pośle wiadomość przez polecenie wall, to robimy ctrl+shift+l co nam odświeża wszystkie okienka w screenie (redraw)).

Dla tych co się nie orientują by polecenia działały każde trzeba poprzedzić sekwencją klawiszy ^a, czyli ctrla + a. No to jedziemy ...
Wiele programów na jednym screenie:
  • c - tworzenie kolejnego okna
  • A - nazywanie okien
  • <TAB> - przechodzenie pomiędzy podzielonymi oknami
  • n, <spacja> - następne okno
  • p, <backspace> - poprzednie okno
  • " - lista screenów z nazwami

Podział okienek:
  • S - dzielenie
  • :resize - pozwala zmienić proporcje podziału
  • W - przejście do drugiego okna
  • X - niweluje podział

Bezpieczeństwo:
  • :password - pozwala założyć hasło na przywrócenie screena (atach)
  • x - "wygaszenie" terminala, po powrocie trzeba się autentykować - zupełnie tak jakbyśmy się ponownie logowali

Takie tam ;)
  • Jeśli screen został zablokowany posiada zmieniony flow control kombinacją ^a s (ctrl + a s) - nie otrzymuje żadnego zdarzenia reaguje na żadne zdarzenie z klawiatury, należy go odblokować kombinacją ^a q (ctrl + a q) - więcej informacji znajduje się w komentarzach.
  • Monitorowanie zdarzeń: ^a M
  • ^a g - przełączanie visual/audiable bell

Kopiowanie tekstu: Za kopiowanie tekstu jest odpowiedzialna następująca sekwencja: ^a [, ustawienie kursora przy tekście do skopiowania, <spacja>, zaznaczenie tekstu, <spacja> (teraz mamy tekst w buforze ;)), ^a ] - wklejenie tekstu
Screen uruchamiany od razu po połączeniu się ze zdalnym hostem. - Porada bardzo przydatna gdy musimy wykonać jakieś ważne zadania administracyjne kltórych nie powinniśmy przerywać, gdy chcemy by screen uruchomił się od razu z połączeniem do serwera ssh powinniśmy wydać polecenie: ssh uzytkownik@zdalnyhost -t screen -RD.
Screen, polskie znaki - Niektóre konsolowe programy (ekg) nie wspierają utf8, który jest już pewnym standardem jeśli chodzi o lokalizację systemu. Ale na szczęście jest na to rozwiązanie, program screen potrafi zamieniać sekwencje znaków zapisanych w jednym kodowaniu na inne bez jakiejkolwiek dodatkowej ingerencji użytkownika, by móc pisać i oglądać śliczne polskie znaki w utf8 (w ekg) polecam je startować z poniższego skryptu: cat ukg8
#!/bin/bash
##
## Skrypt uruchomieniowy ekg - screen translation ;)
## (c) Michał Górny
## src: http://mgorny.jogger.pl/2006/05/21/ekg2-tips-and-tricks/
export LC_ALL="pl_PL.iso-8859-2"
screen -dmS ekg ekg
export LC_ALL="pl_PL.UTF-8"
sleep 3
screen -r ekg

NIE polecam attachowania screena ze screena, ale jeśli już trzeba to sekcja "Control a Screen within a Screen" dokumentu http://gentoo-wiki.com/TIP_Using_screen jest właśnie temu poświęcona.
Dodatkowe materiały:
http://jakilinux.org/aplikacje/konsola/screen-sztuczki/

11 Jun 2007

The PI at login manager

Weekend, jak zwykle chce coś zrobic z komputerem. Niestety jak często braakuje mi jakieś biblioteki, manuala, helpa czy czegoś w tym rodzaju (a najbardziej połączenia z internetem), podczas zabaw z gdm (Gnome Display Manager) odnalazlem program gdmflexiserver pozwalajacy zalogowac sie jako inny uzytkownik w już uruchomionym środowisku Gnome (cos jak vnc, tylko na tej samej maszynie), niestety nie mialem do niego manuala, wiec wykonałem gdmflexiserver --help, terminal radośnie odpowiedział:
johny@moped ~ $ gdmflexiserver --help
Usage:
  gdmflexiserver [OPTION...] - New gdm login
.
Help Options:
  -?, --help                Show help options
.
Application Options:
  -c, --command=COMMAND     Send the specified protocol command to GDM
  -n, --xnest               Xnest mode
  -l, --no-lock             Do not lock current screen
  -d, --debug               Debugging output
  -a, --authenticate        Authenticate before running --command
  -s, --startnew            Start new flexible session; do not show popup
  --monte-carlo-pi

W ten sposób znalazłem opcję --monte-carlo-pi, nie służy ona bynajmniej logowania sie, jest to żart autora programu. Wspomniana wyżej opcja liczy PI metodą Monte Carlo (kolejnych losowań) - algorytm obliczeń nie jest specjalnie skomplikowany :).