我喜欢终端功能,它在我们的使用案例中非常好用。我希望学生们能够直接从终端进行一些工作,以此来体验这种环境。自动启动的shell是sh,但它没有选取我的bash默认设置。当我输入"bash"时,一切都完美运行。如何让"bash"成为默认值呢?
我喜欢终端功能,它在我们的使用案例中非常好用。我希望学生们能够直接从终端进行一些工作,以此来体验这种环境。自动启动的shell是sh,但它没有选取我的bash默认设置。当我输入"bash"时,一切都完美运行。如何让"bash"成为默认值呢?
Jupyter使用环境变量$SHELL
来决定要启动哪个shell。如果您使用init运行Jupyter,则在Ubuntu系统上将设置为dash。我的解决方法是在启动Jupyter的脚本中添加export SHELL=/bin/bash
。
SHELL=/bin/bash jupyter-lab ...
命令来启动Jupyter。 - Vladimir Vargas我尝试过最终的方式以便通过添加以下行到文件 /etc/environment 来切换系统范围内的 SHELL 环境变量:
SHELL=/bin/bash
@reboot source /home/USERNAME/.bashrc && \
export SHELL=/bin/bash && \
/SOMEWHERE/jupyter notebook --port=8888
通过这种方式,我可以通过远程Web浏览器(http://server-ip-address:8888/)登录Ubuntu服务器,并打开默认为Bash的jupyter笔记本终端,就像本地环境一样。
您可以将以下内容添加到您的jupyter_notebook_config.py文件中
c.NotebookApp.terminado_settings = {'shell_command': ['/bin/bash']}
c.ServerApp.terminado_settings
而不是 NotebookApp
。 - krassowskic.NotebookApp.terminado_settings
还是 c.ServerApp.terminado_settings
,我在 Posit Workbench 中都会遇到以下错误:rstudio-server.service: Failed with result 'exit-code'
。 - sharchaea自从Jupyter服务器2.0.0以来,--ServerApp.terminado_settings="shell_command=['/bin/bash']"
应该可以工作。
对于jupyterlab==3.6
,我可以确认它可以工作:
jupyter lab --ServerApp.terminado_settings="shell_command=['/bin/bash']"
rm /bin/sh
ln -s /bin/bash /bin/sh
那个修复让我Jupyter终端引导到了bash。