Przykłady konfiguracji i skrypty

Przygotowanie do pracy okna terminala

Terminal do pracy musi być wygodny w uzyciu. Przede wszystkim należy zadbać o ustawienie czcionki przyjaznej dla oczu na konkretnym ("naszym") monitorze. Polecane czcionki to clean, fixed, monofur, inconsolata, monaco oraz consolas. Wybór czcionki to problem ważny i nie należy go bagatelizować. Już po kilkunastu minutach wpartywania się w tekst, często po angielsku, przy złym wyborze odczujemy boleśne skutki. Wielkość czcionki też jest ważną kwestią, lepiej nie przemęczać oczu i ustawić punkt więcej. Pewien dobór kolorów jest po prostu zawsze złym wyborem, np. niebieski na czarnym tle i odwrotnie. Jaskrawy zielony i czerwony - odpada. Najlepsze tło, to białe tło (ecrue) z czarną czcionką, a nie czarne tło z błałą czcionką, wbrew pozorom, więc jeśli to tylko możliwe - zmieniamy ustawienia z czarnego tła na jaśniejsze. Nic nie stoi na przeszkodzie skonfigurować sobie wyglądu terminala w managerze okien. Przykładowa konfiguracja pliku .Xdefaults w katalogu domowym każdego użytkownika wygląda następująco:


xterm*font: -*-clean-*-*-*-*-*-*-*-*-*-*-iso8859-2
xterm*faceName: monaco
xterm*faceSize: 12

Pliki konfiguracyjne

W czasie uruchomienia np. powłoki bash, odczytane zostają konfiguracje plików: /etc/bash.bashrc (gdzie ustawiamy np aliasy) i /etc/profile, a następnie z katalogu domowego użytkownika: .bash_profile i .bashrc – te pliki możemy dowolnie zmieniać. Nie zawsze jest tak, że konfiguracja jest odczytywana przy uruchomieniu programu, w przypadku konkretnych programów odświeżanie ustawień może trwać ustawiony czas. Edytując pliki konfiguracyjne, zmieniamy ustawienia: powłoki, programu itd. Każdy program przewaznie ma swój plik konfiguracyjny, jeden lub więcej. Możliwość kontroli nad programem, ustawienie mu opcji, doinstalowywanie rozszerzeń jest bardzo przydatna.

Globalne ustawienia dla całego systemu ustawiamy w pliku:

# sudo vi /etc/profile

Przykłady konfiguracji

Jeśli chodzi o zmianę powłoki, czyli „przesiadanie się z jednej na drugą”, odbywa się to bezboleśnie. Przeciętny użytkownik prawie w ogóle nie zauważa różnicy, w przeciwieństwie na przykład do zmiany np. klienta FTP czy edytora bez rozpoczęcia świętych wojen Vim kontra EMACS.

Konfiguracja na przykładzie powłoki ksh

Zsh – powłoka, która zyskuje na popularności

Wady:
- przyzwyczajamy się do wygód (bash zaczyna sprawiać wrażenie topornego, jak wcześniej sh),
- nie zawsze będzie dostępny (stare Uniksy),
- trzeba go samodzielnie zainstalować (ale zwykle jest w repozytorium systemu),
- aby zaczął być wygodny trzeba poświęcić kilka minut na konfigurację (ale wystarczy raz, a potem wystarczy kopiować plik konfiguracyjny) .

Zalety:
wygodna w używaniu,
do podstawowej konfiguracji zsh można użyć łatwego kreatora. Można też skonfigurować ją sobie samodzielnie, edytując plik konfiguracyjny w katalogu domowym.

Rozpoczynami zautomatyzowaną konfigurację:
%autoload -U zsh-newuser-install
%zsh-newuser-install -f

Efekt polecenia jest najstępujacy:

zshkonfiguracja

Poruszamy się po menu konfiguracji wciskając odpowiednie cyfry.

Dopełnianie.

Pojawiają się opcje kreatora do wyboru:

  • Basic Completion, czyli podstawowe dopełnianie. Jego działanie nie jest skomplikowane. Proponowane będą polecenia zaczynające się tak jak ciąg znaków który wpisaliśmy, tj. Po wpisaniu zs proponowane będą np. zsh, zsh4, zstyle.
  • Approximate Completion, czyli dopełnianie z poprawianiem błędów. Przykładowo, po wpisaniu zsh, na liście proponowanych znajdą się ksh, ssh, shutdown.
  • Correction, czyli poprawianie. Działa podobnie jak opisany wyżej dopełniacz, z tym że nie tyle dopełnia, co jedynie poprawia wpisane komendy. Tak więc na jego liście znajdą się ksh, ssh, rsh, rzsh, ale “shutdown” się na niej nie pojawi.
  • Expansion, czyli rozszerzanie, dzięki zaznaczeniu tej pozycji, po wpisaniu tekstu cd $PWD i naciśnięciu TAB, zostanie on zamieniony na cd /sciezka/do/obecnego/katalogu
  • Dodatkowo można dokładnie dostroić dopełniacze, ustalając np. ile maksymalnie błędów ma być poprawianych, jak ma działać rozszerzanie i co ma się dziać, kiedy dopełnianie się nie powiedzie. Warto dodać, że domyślnie zsh po pierwszym naciśnięciu wyświetla listę dopasowań, a każde następne wciśnięcie zamienia to co wpisaliśmy, na kolejną pozycję z listy. Osobiście uważam tę metodę za znacznie wygodniejszą niż w Bash. Dopełnianie w zsh jest bardzo rozbudowane, wystarczy powiedzieć że oprócz nazw katalogów i opcji programów dopełniać można nawet adresy URL.

Długie nazwy katalogów.

Aby przejść do /home/natka/notatki, wystarczy wpisać /h/n/n (pod warunkiem, ze w /home/natka tylko jeden plik zaczyna się na literę n). Opcje:

  • AUTO_CD, automatyczne przechodzenie do katalogów. Dzięki temu ustawieniu wystarczy wpisać samą nazwę katalogu, a zsh, jeśli ją rozpozna, przeniesie nas tam bez konieczności wpisywania cd.
  • PRINT_EXIT_VALUE, jeśli program zakończy się kodem wyjścia innym niż 0, kod ten zostanie wyświetlony.
  • HIST_IGNORE_ALL_DUPS, jeśli wpiszesz jedno polecenie kilka razy, w historii zapisze się ono tylko raz. Opcja ta znacznie ułatwia nawigację w historii poleceń.
  • CORRECT, jeśli udało Ci się wpisać polecenie z błędem, zsh spróbuje je poprawić.
  • MENU_COMPLETE, przy dopełnianiu już pierwsze wciśnięcie zamieni wpisywany tekst na pierwszy element z listy dopełnień.
  • AUTO_PUSHD, po przejściu do katalogu automatycznie wywołuje pushd, co ułatwia powrót do poprzednio odwiedzanych katalogów. (skąd-dokąd)
  • CHECK_JOBS, jeśli spróbujesz wyłączyć konsolę, podczas gdy wykonywane są zadania w tle, za pierwszym razem zobaczysz ostrzeżenie.

Inne opcje:

inneopcje

Moduły

Zsh posiada system modułów, który może jeszcze bardziej zwiększyć funkcjonalność powłoki.

Pełna lista modułów:

%man zshmodules

Załadowanie modułu:

%autoload -U nazwa_modułu

Konfiguracja ręczna:

Pakiet usprawniający dopełnianie nosi nazwę 'zsh-completion'.
Moduł 'zsh-mime-setup' umożliwia otwieranie plików po wpisaniu jedynie ich nazwy. Każdy moduł można dowolnie skonfigurować. Przykładowo, aby pliki .txt otwierały się w vimie, należy dopisać w ~/.zshrc:

zstyle ':mime:.c:' handler vim %s zstyle ':mime:.avi' handler mplayer %s

W przypadku długich nazw katalogów chcąc dodac opcję np.: AUTO_PUSHD, w pliku ~/.zshrc dopisujemy:

setopt AUTO_PUSHD

Reakcję (kod) na klawisze klawisze klawiatury: przeczytasz poleceniem:

%read

Skrypty powłoki

Linux umożliwia pisanie skryptów w jego powłoce. Pisanie skryptów jest pożyteczną rzeczą, ułatwieniem, ponieważ zamiast wpisywania szeregu poleceń, możemy wywołać skrypt, który zrobi coś za nas - oszczędzamy czas. Skrypty mogą mieć na celu np. automatyczne montowanie dysków/partycji innych systemów operacyjnych/systemów plików.

Powłoki mają wbudowany język programowania. Skrypt to nic innego jak zwykły, możliwy od odczytania przez człowieka, nie skompilowany plik tekstowy zawierający różne instrukcje, polecenia systemowe, do wykonania przez zdefiniowany w skrypcie interpreter powłoki systemowej. Np. #!/bin/bash to odnosnik do powłoki, w której piszemy i wykonujemy. Powłoka obsługuje zmienne, instrukcje warunkowe, pętle, dane wejściowe i wyjściowe i inne elementy.

Pełna dokumentacja:

$info bash

Tworzenie i uruchamianie skryptów powłoki

Aby utworzyć skrypt powłoki, wystarczy wpisać do pliku polecenia tak, jakbyśmy wpisywali je w wierszu poleceń. #!/bin/bash musi być pierwszą linią pliku. Aby uruchomić skrypt, należy nadać plikowi prawa wykonywania, można dodać go do ścieżki przeszukiwania wykonywalnych programów PATH (ze względów bezpieczeństwa aktualny katalog zwykle nie jest umieszczany w ścieżce wyszukiwania) Uruchamiamy jednym z poleceń:

$ nazwa_skryptu
$ ./nazwa_skryptu
$ . nazwa_skryptu
$ source nazwa_skryptu
$ bash nazwa_skryptu