Terminal.app ha un'impostazione per selezionare con la shell che usa, e l'impostazione predefinita è "Default login shell (/ usr / bin / login)".
Quali sono le differenze tra / usr / bin / login e / usr / bin / bash?
Terminal.app ha un'impostazione per selezionare con la shell che usa, e l'impostazione predefinita è "Default login shell (/ usr / bin / login)".
Quali sono le differenze tra / usr / bin / login e / usr / bin / bash?
Griffo è corretto. Ora nel tuo scenario, la differenza si riduce a quanto segue:
/bin/login
, allora questo programma controllerà nel database utente qual è la tua shell predefinita ed eseguirà quella shell come shell di login, invocando così i file rc che vengono eseguiti solo quando la shell viene eseguita come login shell (in caso di bash quelli sono /etc/profile
, ~/.bash_profile
, ~/.bash_login and
e ~/.profile
. /bin/bash
, quella shell verrà eseguita come shell di login, indipendentemente da quale shell è impostata nel database utente. Questo può tornare utile quando la shell nel database utente non funziona correttamente, o vuoi essere in grado di usare shell differenti. Come da commento di pagina Chris , la shell viene eseguita come shell di login in entrambi i casi .
Se non hai cambiato la tua shell di login dal default, che è /bin/bash
, e non hai cambiato i file rc di questa shell, la differenza non sarà evidente.
/usr/bin/login
è un programma utilizzato per accedere al sistema e non è qualcosa che si invoca manualmente in circostanze normali. Dai un'occhiata alle pagine info / man emettendo uno dei seguenti comandi:
info login
o man login
/usr/bin/bash
è una shell e il suo lavoro è interpretare l'input dall'utente e richiamare i programmi. Puoi anche visualizzare maggiori informazioni su bash usando i comandi seguenti:
info bash
o man bash