Testowane na: [FreeBSD] [OpenBSD] [Linux]

The C Shell, czyli pow�oka tcsh

Witam, w niniejszym artykule postaram si� opisa� konfiguracj� i u�ywanie pow�oki tcsh.
Tcsh jest pow�ok� o edytowalnej i dope�niaj�cej nazw� pliku linii komend.
Jest to pow�oka kompatybilna z C shell, czyli csh. Posiada w sobie m.i.n:

Pliki konfiguracyjne znajduj� si� w katalogu /etc, s� to:

Oczywi�cie pliki te mog� by� umieszczone w katalogach u�ytkownik�w systemu.
Wtedy ka�dy user mo�e mie� w�asne ustawienia pow�oki:



Przyk�adowa konfiguracja

Tcsh posiada mi�� funkcj� dope�niania naszego polecenia, dzi�ki temu nie musimy pami�ta� jaki� d�ugich polece� czy te� �cie�ek. np:

ls -l /usr/bi

tu wciskamy TAB, kt�ry dope�ni nam polecenie do postaci:

ls -l /usr/bin

R�wnie� gdy chcemy wyda� jakie� polecenie (np: ls | grep plik_tekstowy)
i wpiszemy:

ls | grep plik

tu wciskamy TAB pow�oka wtedy nam wy�wietli wszystkie pliki zaczynaj�ce si� na 'plik' (o ile takowe istniej�).
Przyk�ad:

> ls | grep plik(TAB)
plik_1  plik_2  plik_3
plik_4  plik_5  plik_6



A co z aliasami?
Wystarczy tylko wpisa� je do pliku konfiguracyjnego pow�oki (mo�emy wpisa� to te� z poziomu samej pow�oki, jako polecenie). Zasada dodawania aliasu wygl�da nast�puj�co:

<nazwa aliasu> <nasze_nowe_polecenie> '<polecenie_kt�re_ma_zosta�_wywo�ane>'

Czyli np:

alias dysk 'du -sh /home/karol'

Testujemy:

> alias dysk 'du -sh /home/karol'
> rehash
> dysk
1.5G /home/karol

A mo�e by tak to upi�kszy�?
Tak.. Dlaczego by nie pokusi� si� o upi�kszenie i polepszenie funkcjonalno�ci naszego znaku zach�ty (czyli promptu)?

Zanim przejd� do omawiania mo�liwo�ci troszk� jeszcze popisz�. Ot� pewnie zauwa�yli�cie, �e podczas pierwszego zalogowania si� w �wie�o zainstalowanym systemie nasz znak wygl�da jak ... zza krzaka, czyli nijak. Wed�ug mnie prompt powinien spe�nia� takie warunki:

Zak�adam nast�puj�cy wz�r:

login@host # sciezka # >


Jak spe�ni� te warunki?
W pliku konfiguracyjnym pow�oki musimy wpisa� ustawienie naszego prompta.
Wpis wygl�da nast�puj�co:

set prompt = "tu nasze zmienne"

A co mo�emy wpisa� w zmiennych?
Oto lista podstawowych zmiennych i opcji (dla uzyskania wszystkich opcji polecam 'man tcsh' lub google).

Ju� tyle powinno nam kompletnie starczy�.
Pe�n� list� mo�na znale�� na stronie tcsh.org.

Dla przyk�adu pos�u�� si� wpisem, kt�ry nam zapewni wy�wietlanie w znaku zach�ty nast�puj�cych informacji:

nazwa zalogowanego usera, host komputera, aktualn� godzin�, aktualn� �cie�k�.

Oto kod:

set prompt = "[%n@%M]~[%T]~[%C]# "

Po przelogowaniu si� otrzymamy:

[login@host.pl]~[15:41]~[tmp]>>

Fajnie to wygl�da prawda ? :)
Mo�emy te� da� w tek�cie '\n' co przeniesie nam wiersz ni�ej, np:

set prompt = "[%n(at)%M] [%T]\n[%C]%}# "

Otrzymujemy:

[login@host.pl] [15:47]
[tmp]#

No tak, wygl�da �adnie, ale co z obiecanymi kolorami?
Ot� do naszego prompta dodamy kod ascii koloru :) Wtedy nam tcsh b�dzie barwi� prompta.
Ja do kolorowania u�ywam edytora 'ee'

> cd /usr/ports/editors/ee
> make install clean
> rehash
> ee ~/.cshrc


W 'ee' kolor ascii uzyskamy wpisuj�c: Ctrl+o (w linuxie i np OpenBSD bodaj�e ctrl+a).
Wtedy edytor prosi nas o podanie kodu ascii, wpisujemy '27'.
W tek�cie pojawi sie symbol '^['. teraz dopisujemy kod koloru w formacie [Xm.
(Gdzie X jest kodem koloru). I tak je�eli chcemy uzyska� kolor zielony (imho pasuj�cy do czerni terminala),
wpisujemy: ctrl+o -> 27 potem dopisujemy [32m.
Dzi�ki temu otrzymamy: ^[[32m.
Kod koloru w prompcie umieszczamy w zmiennej tekstu, czyli:

%{^[[32m%}

I tak nasz prompt b�dzie wygl�da� nast�puj�co:

set prompt = "%{^[[32m%}[%n@%M] [%T] [%C]%{^[[0m%}# "

(^[[0m to kod kt�ry wy��cza kolor i ustawia domy�lny).
Warto te� dopisa� ^[[1m na pocz�tku, co nam zapewni pogrubienie prompta.
czyli ko�cowy prompt ma taki ci�g:

set prompt = "%{^[[1m^[[32m%}[%n@%M] [%T] [%C]%{^[[0m%}# "

Oczywi�cie nie wpisuj ^[[Xm z klawiatury :) bo nie zadzia�a :).
^[ uzyskujesz po wklepaniu ctrl+o lub a -> 27.
I to by by�o chyba na tyle je�eli chodzi o TCSH. Mam nadziej�, �e sam/a
dojdziesz do reszty opcji promptu tcsha i kod�w koloru.
Gwoli �cis�o�ci dodam ze kolory z t�em maj� pocz�tek '4', czyli np: '41m'.

Powodzenia....
Dodatek: Ma�y spis kod�w kolor�w...

Podzi�kowania: - Cepa (za liste kolor�w) - harvester (za wyprowadzenie mnie z b��du co do %{x%} :) )


Oryginalny artyku� znajduje si� w serwisie BSD4U.
Autor: Karol 'lofix' Gogiel.
Powr�t na g�r� strony...