Digamos que abrí una terminal e ingresé / ejecuté algunos comandos de shell.
Pero no invoqué explícitamente a Bash ni a ningún otro shell.
¿Qué shell se usó por defecto?
Digamos que abrí una terminal e ingresé / ejecuté algunos comandos de shell.
Pero no invoqué explícitamente a Bash ni a ningún otro shell.
¿Qué shell se usó por defecto?
Respuestas:
El especificado en su línea en /etc/passwd(es una :línea separada y el shell es el final).
Por ejemplo el mío:
chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash
Aquí está /bin/bash(el valor predeterminado de Ubuntu)
También puedes usar chsh:
$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
Esto me dice que mi caparazón es /bin/bashy me permite cambiarlo.
Finalmente, echo $SHELLharemos lo mismo:
$ echo $SHELL
/bin/bash
sudo netstat -an | grep LISTEN | grep -v ^unix. No veo ninguna razón para encerrar eso en un subshell bash.
sudo bash -c "..."se aseguraría de que la tubería completa sea ejecutada por root.
commandA | sudo commandB | commandC, puede hacer un sudo idprimer (ejecuta el idcomando como root, pero también adquiere un token " usar sudo sin contraseña " que dura 15 minutos (predeterminado).
chsha continuación, debe cerrar la sesión y volver a iniciarla para ver este cambio.
GNU Bash es el shell utilizado por defecto en terminales en Ubuntu. Sin embargo, cuando las secuencias de comandos se ejecutan en el arranque del sistema, se utiliza el guión, ya que es / bin / sh.
Esto se define en la variable ambiental $ SHELL. Puede verificar escribiendo echo $SHELLen la terminal.
escribiendo lo siguiente mostrará con qué shell se abrió el terminal:
echo $SHELL
Sin embargo, para averiguar en qué shell se encuentra actualmente (puede haberlo cambiado) escriba
ps -p $$
por ejemplo, verá que el shell es bash en la salida de ejemplo
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
Otro método es usar
echo $0
esto simplemente devolverá el nombre del shell actual.
echo $0
Por defecto es bash:
env | grep ^SHELL=
En la mayoría de los casos producirá
SHELL=/bin/bash
useradd, el valor predeterminado es sh. $ useradd -D|grep SHELL SHELL=/bin/sh.
Para obtener la ruta del archivo del ejecutable de shell actual, se puede usar
readlink -f /proc/$$/exe
Algunas salidas posibles son:
/bin/bash/usr/bin/bash/usr/bin/zsh/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh