O que é shell padrão para terminal?

44

Digamos que eu abri um terminal e digitei / executei alguns comandos shell.

Mas não invoquei explicitamente o Bash ou qualquer outro shell.

Qual shell foi usado por padrão?

    
por DrStrangeLove 15.12.2011 / 00:13

5 respostas

43

O especificado em sua linha em /etc/passwd (é uma linha separada por : e o shell é o final).

Por exemplo, 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/bash e me permite alterá-lo.

Finalmente, echo $SHELL fará o mesmo:

$ echo $SHELL
/bin/bash
    
por Caesium 15.12.2011 / 00:21
17

GNU Bash é o shell usado por padrão em terminais no 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 $SHELL no terminal.

    
por Anonymous 15.12.2011 / 00:21
14

digitar o seguinte exibirá em qual shell o terminal foi aberto:

echo $SHELL

No entanto, para descobrir em qual shell você está atualmente (você pode ter mudado) 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.

    
por fossfreedom 15.12.2011 / 00:24
3

Por padrão, é o bash:

env | grep ^SHELL=

Na maioria dos casos, produzirá

SHELL=/bin/bash
    
por wojox 15.12.2011 / 00:24
2

Para obter o caminho do arquivo do executável shell atual, 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
por Victor Yarema 30.11.2016 / 09:39