我在linux中编写了一个基本shell,并且还使用了一些基本的命令,如pwd和chmod。
我想在终端打开时将我创建的shell(可执行文件)设置为默认shell。我尝试了chsh -s shellname,遗憾的是它什么都没做.echo $ SHELL仍然将/ bin / bash作为当前shell。我还编辑了/ etc / shells文件并在最后添加了我的shell。
请帮助..
答案 0 :(得分:6)
用户帐户的登录shell在不公平的/etc/passwd
文件中定义。只需使用纯文本编辑器进行更改(例如joe /etc/passwd
):
这是一个典型的示例条目:
john:x:1000:100:John Doe:/home/john:/bin/bash
最后,您可以看到配置为帐户登录shell的可执行文件的绝对路径。只需将其更改为您的自定义shell即可。
请注意,这会更改登录shell 。所以要看到你必须重新关注的效果,而不仅仅是打开一个新的终端。因此,要么通过使用ssh连接到localhost,要么使用logout / login到图形桌面来测试它。
答案 1 :(得分:2)
执行命令
usermod -s /usr/bin/newshell username
答案 2 :(得分:0)
正确的答案是更改/ etc / passwd,如@arkascha所解释的那样
你需要root并确保你的脚本有效。
另一种方法是在登录脚本$ HOME / .profile
的末尾添加脚本
当你完成并退出(或ctrl-d)后,你将返回默认的shell。
您可以提供其他命令或再次退出
在.profile末尾添加exit将阻止第二次退出。
不确定要退出吗?在最后一次退出之前放入睡眠2,可以使用ctrl-c。
我不知道为什么你创建了一个新的shellcript,当它仅用于练习时你可能需要在.profile中使用临时解决方案。