如何在Jupyter中自动运行bash而不是sh

时间:2015-11-01 20:54:12

标签: jupyter

我喜欢终端功能,并且非常适合我们的用例,我希望学生直接从终端做一些工作,以便他们体验这种环境。自动启动的shell是sh并且不会获取我的所有bash默认值。我可以输入" bash"一切都很完美。我该如何制作" bash"默认?

4 个答案:

答案 0 :(得分:7)

Jupyter使用环境变量$SHELL来决定要启动哪个shell。如果你使用init运行jupyter,那么这将在Ubuntu系统上设置为dash。我的解决方案是在启动jupyter的脚本中export SHELL=/bin/bash

答案 1 :(得分:3)

我尝试了通过在文件 / etc / environment 中添加以下行来切换系统范围的SHELL环境变量的最终方法:

    SHELL=/bin/bash

这适用于Ubuntu环境。偶尔,SHELL变量在重新启动后始终指向终端中的 / bin / bash 而不是 / bin / sh

此外,在系统启动时设置CRON作业以启动 jupyter notebook 会在 jupyter notebook&#39> 终端上触发相同的问题。

事实证明,我需要在CRON作业语句中包含Bash init文件的变量设置和源语句,如〜/ .bashrc ,如下所示: $ crontab -e

    @reboot source /home/USERNAME/.bashrc && \
            export SHELL=/bin/bash && \
            /SOMEWHERE/jupyter notebook --port=8888

通过这种方式,我可以通过远程Web浏览器(http://server-ip-address:8888/)登录Ubuntu服务器,打开 jupyter notebook的终端默认为Bash,与本地环境相同

答案 2 :(得分:0)

随着Jupyter在Ubuntu 15.10上运行,Jupyter shell将默认为/ bin / sh,这是/ bin / dash的符号链接。

rm /bin/sh
ln -s /bin/bash /bin/sh

这个修复程序让Jupyter终端为我启动了bash。

答案 3 :(得分:0)

您可以将其添加到jupyter_notebook_config.py

c.NotebookApp.terminado_settings = {'shell_command': ['/bin/bash']}