|
ot acidmax(17-10-2003)
reiting (29)
[ dobre ]
[ zle ]
Variant za otpechatvane
Sudurzhanie:
----------------------------------------------------
1. Obshta informatsiia.
2. Izpolzvane na avtomatichnoto dopulvane na komandi.
3. Dopulvane chrez menyu.
4. Drugi vuzmozhnosti.
5. Konfiguratsionni failove
6. Komanden red.
7. Finalni dumi.
8. Resursi.
9. Primeren .zshrc konfiguratsionen fail.
-----------------------------------------------------
[1. Obshta informatsiia]
Sushtestvuva goliamo raznoobrazie ot shell-ove (komandni
interpretatori za konzola). Niakoi sa dobri za skriptirane,
drugi za interaktivna rabota i tochno zsh spada kum vtorite
(koeto ne mu prechi sushtevremenno da e dobur za skriptirane).
Demonstriraneto na moshtta na zsh ostavia zakoravelite bash
potrebiteli sus otvorena usta, taka che reshih da vi zapoznaia
nakratko sus vuzmozhnostite mu.
Ako niamate zsh instaliran na mashinata si, mozhete da go
vzemete ot http://www.zsh.org/ ili ot
instalatsionnoto CD na distributsiiata vi.
Nezavisimo ot tova kolko moshten e zsh, toi ne e shiroko
razprostranen. Osnovnata prichina za tova e, che toi ne e
podrazbirashtiia se shell za Linuks distributsiite. Tazi chest se
pada na GNU bash i ne e iznenadvashto, che povecheto Linuks
potrebiteli izpolzvat edinstveno nego.
Edin ot problemite pri zapoznavane sus zsh e che trudno da
se reshi otkude da se zapochne. Rukovodstvoto e dostupno na http://zsh.sunsite.dk/Doc/ , sushto
taka ima i Rukovodstvo na Potrebitelia, namirashto se na http://zsh.sunsite.dk/Guide/, no
te sa prepulneni s informatsiia i ne e napulno iasno kak da se
izpolzvat edni ot nai-interesnite funktsii na shell-a. Za
shtastie, i bash i zsh vzaimstvat osnovnite idei ot sh, taka
che prehvurlianeto na vashata bash konfiguratsiia na zsh ne e
trudno.
[2. Izpolzvane na avtomatichnoto dopulvane na komandi]
Zsh ima udivitelno moshtni vuzmozhnosti za dopulvane na
komandi s [Tab] no povecheto potrebiteli greshno predpolagat,
che tova e neshto koeto otnema mnogo vreme za konfigurirane i
ne si struva. Viarvate ili ne, neobhodimi sa samo dva reda
vuv vashiiat .zshrc fail za da zaredite tsialata biblioteka za
dopulvane:
-- [~/.zshrc] -----------------------------
autoload -U compinit
compinit
-------------------------------------------
Fukntsiiata "compinit" zadeistva tsialata sistema za
dopulvane, kato zarezhda dopulvashta funktsiia za vsiako Linuks
prilozhenie koeto zsh mozhe da startira. Tui kato niamame nuzhda
da dopulvame vsiaka komanda v Linuks po vreme na sesiiata,
triabva da optimizirame vremeto za startirane na zsh i
izpolzvaneto na pametta. Za da stane tova, compinit
deklarira vsiaka funktsiia za dopulvane da bude avtomatichno
zarezhdana (autoload). Autoload ukazva, che funktsiiata
sushtestvuva, no definitsiiata i ne biva prochetena, dokato
komandata ne bude izpolzvana. Vsiaka funktsiia, definirashta
vuzmozhnostite za dopulvane na dadena Linuks komanda se
namira vuv fail sus imeto na komandata, namirasht se v
direktoriia, ukazana ot promenlivata na obkruzhenieto FPATH.
Optsiiata "-U" na autoload ukazva, che za che za
funktsiiata compinit niama da se izpolzvat sukrateni imena
(aliases). Vsushtnost, pri zarezhdane na compinit, autoload
vinagi izpolzva "-U" zaradi vuzmozhni problemi
kogato funktsiia zavisi ot alias.
Krainiiat rezultat ot vsichko tova e, che klavisha Tab ima
otgovor za vsichko:
* ls -[Tab] vi dava spisuk sus vsichki optsii na ls;
* man ip[Tab] pokazva vsichki man stranitsi, zapochvashti sus
"ip";
* mutt -f=[Tab] preglezhda direktoriiata ~/Mail i vrushta
spisuk sus vsichki direktorii za da izberete;
* w3m [Tab] pokazva vsichki naskoro poseteni adresi ot
brauzura (ot faila history);
Za finna nastroika na avtomatichnoto dopulvane mozhete da
izpolzvate sredstvoto "compinstall". To predostavia
upravliavan chrez menyu interfeis kum niakoi ot po-ekzotichnite
vuzmozhnosti na sistemata za dopulvane. Mozhete da nastroite
vuzmozhnosti kato proverka na pravopisa, otsvetiavane na
spisuka s vuzmozhnosti, pokazani sled natiskane na [Tab],
chuvstvitelnost kum malki/golemi bukvi i drugi.
[3. Dopulvane chrez menyu]
Edna ot nai-vpechatliavashtite vuzmozhnosti na avtomatichnoto
dopulvane na zsh e izbiraneto chrez menyu izmezhdu rezultatite,
pokazani sled [Tab]. Sled kato veche imate spisuka,
natiskaneto oshte vednuzh na [Tab] vklyuchva menyuto v pokazanite
rezultati i mozhete da izbirate sus strelkite na
klaviaturata. Niakoi shte kazhat: Nali moga da se napisha oshte
edna-dve bukvi i da se dopulni zhelanoto, vmesto da se
razhozhdam iz menyuta... Otgovora na tozi razumen dovod e, che
mozhete da zadavate pri kolko rezultata da se poiaviava menyuto
i taka ako imate ednotipni po ime failove i ukazhete che pri
poveche ot 10 rezultata iskate menyu, shte vi e po-lesno da
izberete faila, koito vi triabva. Nuzhdaete se ot slednite
redove vuv .zshrc:
--- [~/.zshrc]
--------------------------------------------
# zarezhdame bibliotekata za dopulvane s menyuta
zmodload -i zsh/complist
# iskam menyu pri dve ili poveche vuzmozhnosti za
dopulvane
zstyle ':completion:*' menu select=2
# tova e interesno, zatova e obiasneno po-dolu
bindkey -M menuselect '^x'
accept-and-infer-next-history
# GNU ls tsvetove v rezultatite ot dopulvaneto
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
-----------------------------------------------------------
Redut "bindkey -M menuselect '^x'
accept-and-infer-next-history" dobavia edna mnogo udobna
funktsiia. Dokato ste v menyuto za izbor i ste nad direktoriia,
mozhete da natisnete Ctl+X i shte vlezete v neia. Taka imate
maluk failov menidzhur na vashe razpolozhenie. Oshte - po tozi
nachin mozhete da vlizate v razlichni arhivi (GNU tar, zip) i
da razgledate sudurzhanieto im. Mozhete sushto i da
razkompresirate chasti ot tezi arhivi ako dopulvate s menyu
"tar zxvf fail.tar.gz [Tab][Tab]".
[4. Drugi vuzmozhnosti]
Silata na zsh ne e samo v avtomatichnoto dopulvane. Ima nad
150 optsii, koito se zadavat sus setopt i sa dokumentirani v
man stranitsata zshoptions.
Naprimer, sledniiat red ulesniava rabotata sus
direktorii:
setopt autocd autopushd \ pushdignoredups
Autocd vi pozvoliava da napishete imeto na direktoriiata, za
da vlezete v neia. Sled tova, vseki put kato vlezete v
direktoriia, autopushd ia dobavia kum vremennata pamet za imena
na direktorii, a pushdignoredups predotvratiava nalichieto na
dublikati tam.
V rezultat na tova, sled kato se razhodite malko iz
direktoriite, sus komandata "dirs -v" preglezhdate
sudurzhanieto na pametta, primerno:
-------------------------------------
acidmax@support:~/> dirs -v
0 /var/log
1 /opt/kde
2 /etc/rc.d
3 /etc
4 /usr/bin
-------------------------------------
Ako iskate da se vurnete v /usr/bin , prosto triabva da
napishete "~4" i ste tam.
[5. Konfiguratsionni failove]
Pri startiraneto si, zsh chete niakolko konfiguratsionni
faila. Koi shte sa te zavisi ot nachina po koito e startiran
shell-a. Ima dva osnovni tipa shell-ove - interaktivni i
ne-interaktivni. Poslednite chetat komandite si ot fail,
izvikan ili chrez "zsh fail" ili chrez shebang reda
v nachaloto mu - #!/bin/zsh.
Interaktivniia shell poluchava komandi ot terminala, na koito
raboti potrebitelia. Shell-a za vlizane vuv sistemata e
spetsialen tip interaktiven shell - izvikva se ot programata
login.
Vseki ot goreizbroenite tipove shell izpolzva spetsifichna
grupa ot konfiguratsionni failove. Vsichki promeni, svurzani s
konfiguratsiiata na zsh triabva da budat otrazeni v pravilnite
failove. Eto koi failove se izpolzvat ot vseki tip shell,
podredeni po reda na izpulnenieto si:
* Login shell: /etc/zshenv ; $ZDOTDIR/.zshenv ;
/etc/zprofile ; $ZDOTDIR/.zprofile ; /etc/zshrc ;
$ZDOTDIR/.zshrc ; /etc/zlogin ; $ZDOTDIR/.zlogin ;
* Interaktiven: /etc/zshenv ; $ZDOTDIR/.zshenv ; /etc/zshrc
; $ZDOTDIR/.zshrc ;
* Ne-interaktiven: /etc/zshenv ; $ZDOTDIR/.zshenv ;
Ako ne e definirana promenlivata na obkruzhenieto $ZDOTDIR
se izpolzva $HOME, a zprofile (ksh-stil) i zlogin (csh-stil)
sa tuk samo po istoricheski prichini. Tui kato zshenv se
prochita pri vsiako startirane na kakuvto ida e tip shell,
stremezha e razmerut mu da e minimalen. Obiknovenno se
izpolzva za definirane na promenlivite na obkruzhenieto.
[6. Komanden red]
Komandniiat red e oshte neshto, koeto obiknovenno se nastroiva
po vkusa na potrebitelia. Ako ste sviknali da nastroivate
prompt-a sus v bash sus promenlivata $PS1 tuk tia niama da
raboti, tui kato tam se izpolzvat za razdeliteli
"\", a zsh izpolzva "%". Nalaga se da
prenapishete promenlivata v zsh-stil. Poglednete v sektsiiata
"Prompt extension" na man stranitsata zshmisc za
poveche informatsiia.
Ako niamate namerenie da modifitsirate komandniia red po vash
vkus, mozhete da probvate gotovite, koito idvat sus zsh.
Dobavete kum .zshrc slednite redove:
--- [~/.zshrc] -----------------------
autoload -U promptinit
promptinit
prompt vid_na_komandniia_red
--------------------------------------
Mozhete da vidite vashite nalichni komandni redove sus
komandata "prompt -l", a ako iskate da vidite kak
izglezhdat, izpolzvaite "prompt -p". Za da
pregledate i modifitsirate promenlivata PS1 (kakto i vsiaka
druga promenliva) napishete "vared PS1". Eto kakvo
pokazva tia v moia sluchai (izpolzvam gotov prompt
"suse" :
--------------------------------------
acidmax@support:~/> vared PS1
%n@%m:%~/>
--------------------------------------
Kursorut e na dolniia red i vi pozvoliava lesno redaktirane
na prompt-a sus strelkite.
[7. Finalni dumi]
Kakto vidiahte, mezhdu bash i zsh ima dosta razliki. Vupreki
tova dvata shell-a imat mnogo obshto. Goliama chast ot vashata
bash konfiguratsiia mozhete da prehvurlite na zsh bez ili sus
malko promeni. Naprimer sukratenite imena na komandi i
deklariraneto na promenlivite na obkruzhenieto sa napulno
suvmestimi. Vse pak ako izpolzvate niakoi ot spetsifichnite za
bash funktsii, shte se nalozhi da prekarate izvestno vreme,
prehvurliaiki gi na zsh.
Ako uspiah da vi sublaznia, startiraite chsh i izberete zsh
za vash shell (ne zabraviaite da napishete pulniia put do zsh).
Sledvashtiia put kogato vlezete v sistemata, shte budete
posreshtnati ot zsh prompt .
[8. Resursi]
* Domashna stranitsa na proekta Z Shell: http://www.zsh.org/ (ogledalno
kopie na http://zsh.sunsite.dk/ ).
* CHesto Zadavani Vuprosi (FAQ): http://zsh.sunsite.dk/FAQ/
* Arhiv na poshtenskite spisutsi: http://www.zsh.org/mla/
[9. Primeren .zshrc konfiguratsionen fail]
--- [~/.zshrc]
---------------------------------------------
#!/bin/zsh
### Zarezhdane na funktsiite za dopulvane
autoload -U compinit
compinit
### Zarezhdane na funktsiite za promiana na komandniia red
autoload -U promptinit
promptinit
### Tip na komandniia red
prompt suse
### Nastroiki za dopulvane chrez menyu
zmodload -i zsh/complist
zstyle ':completion:*' menu select=2
bindkey -M menuselect '^x'
accept-and-infer-next-history
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
### Drugi nastroiki
setopt ALWAYS_LAST_PROMPT # neobhodimo za dopulvaneto chrez
menyu
setopt NO_BEEP # spirane na dosadnite beeps
setopt NO_LIST_BEEP
---------------------------------------------------------------
<< Postfix - burz, siguren i lesen za upravlenie | Lynx - sila, kogato znaesh kak da ia polzvash ;) >>
|
|