Jupyter中的终端如何自动运行bash而不是sh

问题描述:

我喜欢终端功能,对于我们希望学生直接从终端进行一些工作以便体验该环境的用例很有效。自动启动的shell是sh,并没有提供我所有的bash默认值。我可以输入“bash”,一切都完美。我怎样才能使“bash”成为默认值?Jupyter中的终端如何自动运行bash而不是sh

+0

我想它应该拿起你的默认外壳。如果你打开一个普通的终端,你会得到什么外壳? – cel

+0

用ssh,我得到了bash。我应该追查下来。 –

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

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

该修复得到Jupyter终端引导到bash为我。

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

我试图通过添加以下行到文件的/ etc /环境交换系统范围内的SHELL环境变量的最终出路:

SHELL=/bin/bash 

这工作在Ubuntu环境。在重新启动后,SHELL变量总是指向/bin/bash而不是/bin/sh

此外,设置cron作业发射jupyter笔记本在系统启动时触发jupyter笔记本的终端同样的问题。

事实证明,我需要包括猛砸init文件像的〜/ .bashrc在cron作业声明变量设置和采购报表通过命令$ crontab -e命令如下:

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

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