Linux

在 Linux 中登錄特定 TTYn 後如何更改(永久)預設 shell?

  • February 8, 2018

我知道該chsh命令用於在已安裝的 shell 之間為使用者切換登錄 shell,但無論登錄來自何處(tty1、tty2、ssh、…),它都可以工作。我想要實現的是例如csh在來自 tty7 的登錄上以及例如bash在所有其他登錄源上。

這完全可行嗎?

不,是的。

不,登錄 shell 與使用者相關聯,而不是與使用者登錄的 TTY 相關聯。使用者只能擁有一個特定的登錄 shell。

是的,使用者可以在登錄 shell 的初始化文件中,根據任何條件啟動任何其他程序或實用程序。

例如,目前登錄 shell 的使用者可以在他們的文件中bash添加如下內容,以便在虛擬終端 7 上登錄時執行:.bash_profile``csh

case $(tty) in
   */tty7) exec csh -l ;;
esac

exec csh -l將用 , 替換目前 shell csh,作為登錄 shell 啟動。

引用自:https://unix.stackexchange.com/questions/422871