Linux $HOME和波浪号~
在Linux中当前用户的主目录可以有三种表示方法,都是等效的[正常不改配置情况下]
例如用户名为lutigers,进入当前用户的主目录/home/lutigers
输入cd ~
或输入cd $HOME
或输入cd /home/lutigers
这是因为源于1970年代流行的Lear-Siegler ADM-3A终端机
其键盘的“Home”键波浪号“~”键在同一个键上
Linux下~、/home与/root的区别:
1、在root用户下,~等同于/root
2、在普通用户下,~等同于/home/当前的普通用户名
坑人的情况下:
~指向的目录已经不是当前用户的主目录了
案例:问题是在安装完rabbitmq之后出现的,原来,是我在启动rabbitmq是,出现了一个错误,然后改变了HOME环境变量导致的,
随便,这里提一下,在启动rabbitmq是,报了个异常:erlexec: HOME must be set
这个是说HOME环境变量没有设置,然后我就在/etc/profile里面添加了HOME变量:export HOME=/opt/rabbitmq
之后source /etc/profile之后,问题还存在,找了半天,发现在rabbitmq的sbin目录下有一个rabbitmq-env文件,一看就是环境变量的配置文件,然后我就在加上HOME变量,然后rabbitmq启动成功
然而,/etc/profile里面的HOME忘了取消掉,导致~指向问题
经验:1、登录后,默认进入用户主目录,用户主目录配置在/etc/passwd中,如果要修改用户主目录,只需要修改对应用户的主目录即可
2、我们一般使用~用作用户主目录,而~其实是指向环境变量中的HOME目录,登录之后,HOME变量默认指向用户主目录,查看环境变量,可使用env命令