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/bash
y me permite cambiarlo.
Finalmente, echo $SHELL
haremos 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 id
primer (ejecuta el id
comando como root
, pero también adquiere un token " usar sudo sin contraseña " que dura 15 minutos (predeterminado).
chsh
a 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 $SHELL
en 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