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?
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?
Odpowiedzi:
Ten określony w twojej linii w /etc/passwd(jest to :linia oddzielona, a powłoka jest ostatnią).
Na przykład mój:
chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash
Oto on /bin/bash(domyślny system Ubuntu)
Możesz także użyć chsh:
$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
To mówi mi, że moja skorupa jest /bin/bashi pozwala mi ją zmienić.
Wreszcie echo $SHELLzrobi to samo:
$ echo $SHELL
/bin/bash
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 idpierwszy (uruchamia idpolecenie jako root, ale nabywa również token „ użyj sudo bez hasła ”, który trwa (domyślnie) 15 minut.
chshwtedy 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 $SHELLterminal.
wpisanie następującego spowoduje wyświetlenie powłoki, którą otworzył terminal:
echo $SHELL
Jednak, aby dowiedzieć się, w jakiej aktualnie jesteś powłoce (mogłeś ją zmienić), wpisz
ps -p $$
np. zobaczysz, że powłoka jest bash na przykładowym wyjściu
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
Inną metodą jest użycie
echo $0
zwróci to po prostu nazwę bieżącej powłoki.
echo $0
Domyślnie jest to bash:
env | grep ^SHELL=
W większości przypadków będzie produkować
SHELL=/bin/bash
useradd, domyślnie jest to sh. $ useradd -D|grep SHELL SHELL=/bin/sh.
Aby uzyskać ścieżkę pliku bieżącego pliku wykonywalnego powłoki, można użyć
readlink -f /proc/$$/exe
Niektóre możliwe wyniki to:
/bin/bash/usr/bin/bash/usr/bin/zsh/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh