Linux下实现开机启动图形界面以及自动切换shell

做这件事的意义

最近在装linux的时候,了解到一款好用的shell--fish
然而在按照wiki教程把fish作为登录shell之后
我的linux登录不上了。
查了一下,网上有人建议不要将fish设置成默认的shell。。。
这显然不靠谱嘛
有了图形界面之后,每次登陆之后还要手敲一个startx进去
总之各种不方便

步骤

在第一次登录启动图形界面,其他时候启动fish

本例中默认shell是bash
如果使用的不是bash,请自行查找资料确定启动时调用的脚本。

修改~/.bashrc,在文件尾加入以下内容:

logged_count = `who | wc -l`  
if [ $logged_count == 1 ]
then exec startx
else exec fish
fi

其意义是在bash初始化时获取当前登录的用户数量,如果是1个,则启动图形界面(如果启动图形界面的命令不是startx,则替换成相应的命令即可)

如果登录用户多于1个,则启动fish。

实际测试结果比较理想,既可以达到自动启动图形界面的目的,又可以免去只能登陆一个终端的尴尬。

(不过判断方式比较简单粗暴,只适用于个人用户在自己的主机使用,如果需要远程登录的话得手动启动图形界面,相信了解远程登录的用户也可以解决这种问题。)

如果只需要启动fish

只需要在~/bashrc最后添加一句话:
exec fish
即可。

你可能感兴趣的:(Linux下实现开机启动图形界面以及自动切换shell)