Press "Enter" to skip to content

Stand alone SH wygenerowane przez OO, czas 2010-06-26 23:41:45

SASH- Stand alone sh

 

Dlaczego zdecydowałam się opisać tą powłokę? Bo żaden ze znanych mi „łbów” jej nie zna. Przykre co? Ale nie ma załamki. Widocznie jest mało znana, a mimo wszystko moim zdaniem warto jej się przyjrzeć. Na stronie autora projektu oprócz binarki nie ma o nim dosłownie nic. Wikipedia mówi niewiele, tylko cytuje manuala i nic więcej. W polskiej nic ciekawego nie ma tym bardziej. Sieć tak samo milczy. Czy moje synapticowe wykopalisko (znalazłam program jak czytałam opisy w synapticu) na prawde nie jest używane?

Sash jest bardzo okraszoną powłoką, ale nie odwołuje się do żadnych programów. Ma swoje własne, wbudowane polecenia. Nazwy takie jak we wszystkich innych powłokach, więc nie powinno być problemu z obsługą. Domyślnie powinien być kompilowany statycznie, i gdy instalujemy z paczki, tak się właśnie dzieje. Jest niewielka. Około 400 kilo ma, więc spokojnie można zasssać z sieci (w repo debiana jest, nie wiem jak w innych dystrybucjach) i poeksperymentować. Wbudowane komendy w sasha (nie wypisałam tych wewnętrznych, co są tylko w niej. Pełna lista po wpisaniu help):

-ar, -chattr, -chgrp, -chmod, -chown, -cmp, -cp,

-dd, -echo, -ed, -grep, -file, -find, -gunzip,

-gzip, -kill, -ln, -ls, -lsattr, -mkdir, -mknod,

-more, -mount, -mv, -printenv, -pwd, -rm, -rmdir,

-sum, -sync, -tar, -touch, -umount, -where

 

Przy sash-plus-patches lista komend nam się powiększa o -chroot, -pivot_root, i

-losetup

Jaką to daje przewagę dla nas, przeciętnych zjadaczy chleba?

Ano wystarczy wrzucić ją na kompa będąc w gościach, i mamy wystarczające środowisko, które nie zostawi po sobie śmieci, nie użyje żadnej biblioteki, całość wraz z każdą słabością dokładnie znamy więc…

Ale nie tylko w gościach się przydaje. Wyobraźmy sobie sytuację, że system nam padł na amen. Nie działa nic (na przykład, po wykonaniu rm -Rf / tylko po to żeby sprawdzić czy linux zabije samego siebie, okazuje się że tak, skasowało się już nawet rm, ale jajo jeszcze jest, jako jedyne, bo zdążyliśmy w którymś miejscu anulować operację). No i ups… gruba zjadło, mamy tylko napis boot: no i wtedy wystarczy wpisać:

Linux init=/bin/sash (konkretnie ścieżka sasha) i będzie tykać. Nooo tykać a tykać. Generalnie, sash powstał właśnie jako shell ratunkowy. Może dlatego nie ma w nim takich udogodnień, jak tab-completion. Nie znajdziemy w nim też polecenia fsck, ponieważ jest trochę za duże, a z założenia sash miał być malutki, wszędzie się zmieścić i szybko dać się zassać z sieci. Jak widać, jest w nim komenda mounth, wystarczy więc podmontować /bin i używać aplikacji normalnie.

Gdy odpalimy sasha, powita nas taki ekran (rysunek 1). Po wpisaniu help, mówi nam o swej zawartości. Nie zrobiłam screena, gdyż jest tego trochę więcej niż rozmiar okna. Ale w skrócie pokazuje komendę i sposób wywołania. Uwaga o wywoływaniu komend w programie. Jeżeli wywołamy samo „ls”, wywołany zostanie rzeczywisty ls, o ile jest dostępny. Jeżeli mają zostać wywołane komendy wbudowane w program, należy poprzedzić je myślnikiem, na przykład „-ls”. Oczywiście wpisujemy bez cudzysłowiów. Aby korzystać „normalnie” z wbudowanych komend, należy wpisać aliasall.

Niech was nie zmartwi skromna ilość komend. Można spokojnie odpalać wszystko pozostałe, ale już z wykorzystaniem zewnętrznych libów. Oczywiście nie za bardzo da się w niej pisać skrypty. Lepiej do tego użyć sh. Co do komendy help- nie pokazuje ona wszystkiego co można w niej odpalić (i ani grama więcej) a tylko to, co jest w niej wbudowane. Więcej informacji uzyskacie po wywołaniu man sash. Jeśli są jakieś niejasności, wal na gg: 12704498 lub piatkosia@jabber.org

Dzięki za uwagę.

Piatkosia
Tak się nam przedstawia sash
Rysunek1: Tak się nam przedstawia sash.