2014 m. liepos 20 d., sekmadienis

Shell

Vartotojas gali pasirinkti skirtingas shells, shells sarašas paprastai buna /etc/shells kataloge.

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash

Kokią shell naudoja sistema?
Galime pasižiūrėti iškvietę aplinkos kintamuosius:

$ env| grep -i shell
SHELL=/bin/bash

Taip pat aplinkos kintamuosius galima iškviesti su 'echo' komanda.

$ echo $SHELL
/bin/bash

Arba atspausdinti visus aplikos kintamuosius ir prafiltuoti 'shell' su 'grep -i'

$ env|grep -i bash
SHELL=/bin/bash

Įvykdžius 'ps' komandą, be papildomų nustatymų, matome visus procesus. Taip pat matome, kad mųsų tty, naudoja bash shell.

$ ps
PID TTY TIME CMD
10219 pts/0 00:00:00 bash
11419 pts/0 00:00:00 ps

ps '-p' leidžia pasirinkti prosesus pagal id,
'$$' - atspausdins tik esamą procesą.

$ ps -p $$
PID TTY TIME CMD
11686 pts/0 00:00:00 bash

Taip pat galime sužinoti apie shell iš '/etc/passwd/' dokumento

$ cat /etc/passwd
....
sup:x:1000:1000:sup,,,:/home/sup:/bin/bash

Pakeisti shell galima įvedus shell pavadinimą.

$ sh
$ echo $0
sh
$ ps -p $$
PID TTY TIME CMD
13462 pts/2 00:00:00 sh
$ exit

Vienas įdomus failas tai  bash_completion.sh, randamas /etc/profile.d


Literatūra:

http://www.linfo.org/change_shell.html
http://www.softlab.ntua.gr/facilities/documentation/unix/shelldiff.html
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/shells.html