Powiedzmy, że otworzyłem terminal i wprowadziłem / wykonałem kilka poleceń powłoki.
Ale nie przywołałem wyraźnie Bash ani żadnej innej powłoki.
Jaka powłoka była domyślnie używana?
command-line
DrStrangeLove
źródło
źródło
sudo netstat -an | grep LISTEN | grep -v ^unix
. Nie widzę powodu, aby umieszczać to w podpowłoce bash.sudo bash -c "..."
upewni się, że cała rura jest wykonywana przez roota.commandA | sudo commandB | commandC
, możesz zrobićsudo id
pierwszy (uruchamiaid
polecenie jakoroot
, ale nabywa również token „ użyj sudo bez hasła ”, który trwa (domyślnie) 15 minut.chsh
wtedy należy się wylogować i zalogować ponownie, aby zobaczyć tę zmianę.GNU Bash jest powłoką używaną domyślnie w terminalach na Ubuntu. Jednak gdy skrypty są uruchamiane podczas uruchamiania systemu, używany jest myślnik, ponieważ jest to myślnik, czyli / bin / sh.
Jest to zdefiniowane w zmiennej środowiskowej $ SHELL. Możesz to sprawdzić, wpisując
echo $SHELL
terminal.źródło
wpisanie następującego spowoduje wyświetlenie powłoki, którą otworzył terminal:
Jednak, aby dowiedzieć się, w jakiej aktualnie jesteś powłoce (mogłeś ją zmienić), wpisz
np. zobaczysz, że powłoka jest bash na przykładowym wyjściu
Inną metodą jest użycie
zwróci to po prostu nazwę bieżącej powłoki.
źródło
echo $0
Domyślnie jest to bash:
W większości przypadków będzie produkować
źródło
useradd
, domyślnie jest tosh
.$ useradd -D|grep SHELL
SHELL=/bin/sh
.Aby uzyskać ścieżkę pliku bieżącego pliku wykonywalnego powłoki, można użyć
Niektóre możliwe wyniki to:
/bin/bash
/usr/bin/bash
/usr/bin/zsh
/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh
źródło