Digamos, eu abri um terminal e digitei / executei alguns comandos do shell.
Mas não invoquei explicitamente o Bash ou qualquer outro shell.
Qual shell foi usado por padrão?
Digamos, eu abri um terminal e digitei / executei alguns comandos do shell.
Mas não invoquei explicitamente o Bash ou qualquer outro shell.
Qual shell foi usado por padrão?
Respostas:
O especificado na sua linha /etc/passwd(é uma :linha separada e o shell é o final).
Por exemplo o meu:
chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash
Aqui está /bin/bash(o padrão do Ubuntu)
Você também pode usar chsh:
$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Isso está me dizendo que meu shell é /bin/bashe me deixa mudar isso.
Por fim, echo $SHELLfará o mesmo:
$ echo $SHELL
/bin/bash
sudo netstat -an | grep LISTEN | grep -v ^unix. Não vejo razão para colocar isso em um subshell do bash.
sudo bash -c "..."garantiria que todo o canal fosse executado pela raiz.
commandA | sudo commandB | commandC, você pode fazer o sudo idprimeiro (executa o idcomando como root, mas também adquire um token " use sudo without prompt de senha " que dura (por padrão) 15 minutos.
chsh, deverá sair e fazer login novamente para ver esta alteração.
GNU Bash é o shell usado por padrão nos terminais do Ubuntu. No entanto, quando os scripts são executados na inicialização do sistema, o traço é usado, pois é o traço que é / bin / sh.
Isso é definido na variável ambiental $ SHELL. Você pode verificar digitando echo $SHELLno terminal.
digitar o seguinte exibirá com qual shell o terminal foi aberto:
echo $SHELL
No entanto, para descobrir em que shell você está atualmente (você pode ter alterado), digite
ps -p $$
por exemplo, você verá que o shell é bash no exemplo de saída
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
Outro método é usar
echo $0
isso simplesmente retornará o nome do shell atual.
echo $0
Por padrão, é bash:
env | grep ^SHELL=
Na maioria dos casos, produzirá
SHELL=/bin/bash
useradd, o padrão será sh. $ useradd -D|grep SHELL SHELL=/bin/sh.
Para obter o caminho do arquivo do atual executável do shell, pode-se usar
readlink -f /proc/$$/exe
Algumas saídas possíveis são:
/bin/bash/usr/bin/bash/usr/bin/zsh/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh