完全重置/重新加载bash(别名和功能)

4wk*_*wk_ 4 unix bash exec

我想重置shell,因为我从头开始注册/登录,重新加载别名,函数.

但是不要谈论source ~/.bashrc也不. ~/.bashrc!

为什么?因为source.只是丰富了当前的shell,使用了新的函数,别名等等.


仅供参考,你可以把这个功能放在你的bashrc中:

function foo {
  echo "foo";
}
Run Code Online (Sandbox Code Playgroud)

然后做source ~/.bashrc. ~/.bashrc.是的,foo正在工作.那么现在,edityour .bashrc,并更换FOO酒吧,有:

function bar {
  echo "bar";
}
Run Code Online (Sandbox Code Playgroud)

您现在可以键入foo,并看到函数foo仍在工作,尽管它在.bashrc文件中不再存在.这就是我想表达的观点.


exec bash;试过了,但它没有加载.bashrc文件.并且exec bash;source ~/.bashrc;显然不起作用,因为exec杀死当前进程(source从未被调用).

Big*_*ike 7

作为OP的愿望

bash --login 
Run Code Online (Sandbox Code Playgroud)

注意:如果你在终端(xterm或类似)中运行bash,你还需要为-ls终端提供参数(或等效的).(例如xterm -ls)

  • 所以`exec bash --login`会杀死当前的bash,然后开始一个新的吧?为了避免@Michal Trybus通知. (3认同)