Linux

Shell的内建命令

上周笔者在使用Linux服务器时频繁遇到以下问题,大概能猜测到问题的原因,也知道如何解决。可一直无法找到相对官方和详细的解释。可最近书上看到了详细的说明,便记录一下。 问题: 在Windows上使用Putty连接Linux云服务器,输入命令 $ export PATH=$PATH:/opt/gradle-5.2/bin 按下回车后gradle命令能正常使用,但将Putty关闭后再打开,服务器会提示找不到gradle命令。再次输入以上命令仅能暂时解决问题,除非修改~/.bashrc(针对当前登录用户)或者/etc/profile(针对所有用户)。 原因: export属于shell的内建命令,像cd和exit命令都内建与bash shell。可以用过type命令来了解某个命令是否是内建的。 $ type cdcd is a shell builtin $ type exportexport is a shell builtin 使用内建命令设置的环境变量仅在当前的shell进程中才有效。 放在笔者的例子上,简单点来说,使用内建命令所产生的作用范围仅仅在当前的Putty的图形输入框中。当关掉当前Putty图形输入框,内建命令所产生的“效果”就会消失。...

Continue reading...