You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Amazon SageMaker Studio中用zsh替代bash终端?

解决Amazon SageMaker Studio终端回退到bash的问题

核心原因

SageMaker Studio启动终端时,会通过内部启动流程覆盖镜像默认入口点,强制调用bash,导致zsh配置未生效。以下是具体解决步骤:


1. 确保镜像中zsh为目标用户的默认shell

在Dockerfile中添加命令,将zsh设为SageMaker Studio默认用户(通常为sagemaker-user)的默认shell:

# 基于Debian/Ubuntu镜像安装zsh,其他系统替换对应包管理器命令
RUN apt-get update && apt-get install -y zsh

# 设置sagemaker-user的默认shell为zsh
RUN chsh -s /usr/bin/zsh sagemaker-user

若镜像以root用户运行,替换为RUN chsh -s /usr/bin/zsh root。

2. 自定义启动脚本覆盖Studio默认启动流程

创建启动脚本确保终端直接调用zsh:

  1. 在镜像构建上下文创建start-zsh.sh文件:
#!/bin/bash
# 直接执行zsh,忽略Studio的bash启动指令
exec zsh
  1. 在Dockerfile中复制并配置该脚本为入口点:
COPY start-zsh.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/start-zsh.sh
ENTRYPOINT ["/usr/local/bin/start-zsh.sh"]

3. 验证镜像并更新SageMaker Studio

  • 本地重新构建镜像并测试:docker run -it your-image-name,确认zsh正常启动。
  • 将更新后的镜像推送到ECR仓库,在SageMaker Studio控制台更新Domain的UserProfile关联的自定义镜像。
  • 重启Studio应用:点击右上角用户名 -> "Shutdown App",重新打开终端并选择你的自定义镜像。

4. 检查终端启动配置

打开终端时,确保在"Image"下拉菜单中选择你创建的自定义镜像,而非默认SageMaker镜像。若下拉菜单无目标镜像,确认镜像已正确附加到Domain的UserProfile。


内容的提问来源于stack exchange,提问作者duff18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:05:42