如何在亚马逊EC2 linux实例上更改shell

时间:2013-06-15 17:16:32

标签: linux amazon-ec2

我在我的全新amazon EC2实例上使用sudo yum install tcsh命令安装了c shell,但我不确定它是否真的有效,因为echo $SHELL命令始终返回/bin/bash。我不确定我做错了什么。

[ec2-user]$ which csh
/bin/csh
[ec2-user]$ sudo csh
[root]# echo $SHELL
/bin/bash
[root]# sudo chsh
Changing shell for root.
New shell [/bin/bash]: /bin/csh
Shell changed.
[root]# echo $SHELL
/bin/bash
[root]# 

2 个答案:

答案 0 :(得分:0)

这对我有用:

union gbm_bo_handle handleUnion = gbm_bo_get_handle(m_Fb->bo);
struct drm_omap_gem_info gemInfo;
char *gpuMmapFrame = NULL;
gemInfo.handle = handleUnion.s32;
int ret = drmCommandWriteRead(m_DRMController->m_Fd, DRM_OMAP_GEM_INFO,&gemInfo, sizeof(gemInfo));
if (ret) {
    qDebug() << "Cannot set write/read";
}
else {
    // Mmap the frame
    gpuMmapFrame = (char *)mmap(0, gemInfo.size, PROT_READ | PROT_WRITE, MAP_SHARED,m_DRMController->m_Fd, gemInfo.offset);

    if ( gpuMmapFrame != MAP_FAILED ) {

        QElapsedTimer timer;
        timer.restart();

        //m_OGLController->neonCopyRGBAtoRGBA((uchar*)gpuMmapFrame,  (uchar*)m_cpyFrame,dmaBuf.width * dmaBuf.height);
        memcpy(m_cpyFrame,gpuMmapFrame,dmaBuf.height * dmaBuf.width * 4);

        qDebug() << "Copy Performance: " << timer.elapsed();

我想从bash更改为zsh,但您可以使用sudo chsh -s $(which zsh) $(whoami) 代替。您可能需要在以后重新启动实例。

答案 1 :(得分:0)

Amazon Linux 2 未安装 chsh。因此,在运行 chsh 之前,您必须先安装它。

sudo yum install util-linux-user

如果您想更改您当前登录的帐户的外壳(例如,您登录时使用的 ec2-user 或其他非 root 用户),那么您可以运行 {{1} } 交互。没有必要使用 chsh(正如另一个答案所说)。

要为您以外的其他人(例如 root、其他用户)更改 shell,您确实需要使用 sudo

也不需要重启。更改将在您下次登录时生效。出于安全考虑,您可能希望从不同的窗口登录(即,在一个窗口中保持登录状态,同时在另一个窗口中测试 shell 更改),以防您输入错误而无法返回。< /p>