今日SSH连接测试机时,欢迎界面提示如下内容:
1
2
3
4
5
<code>Last login: Tue Jul 28 22:08:07 2015 from 10.241.10.7</code>
<code>欢迎回来</code>
<code>-bash: .bashrc: command not found</code>
<code>-bash: User: command not found</code>
<code>-bash: Source: command not found</code>
.bashrc前十行如下
6
7
8
9
10
11
<code>root@samba ~$cat -n .bashrc | head</code>
<code> </code><code>1 .bashrc</code>
<code> </code><code>2 </code>
<code> </code><code>3 User specific aliases and functions</code>
<code> </code><code>4 </code>
<code> </code><code>5 alias rm='rm -i'</code>
<code> </code><code>6 alias cp='cp -i'</code>
<code> </code><code>7 alias mv='mv -i'</code>
<code> </code><code>8 </code>
<code> </code><code>9 Source global definitions</code>
<code> </code><code>10 if [ -f /etc/bashrc ]; then</code>
经与另外一台机器对比后发现,第一、三、九行少了一个"#"号,添加完后上述错误提示即消失。
<code> </code><code>1 #.bashrc</code>
<code> </code><code>3 #User specific aliases and functions</code>
<code> </code><code>9 #Source global definitions</code>
<code>Connecting to 10.240.210.233:22...</code>
<code>Connection established.</code>
<code>To escape to local shell, press 'Ctrl+Alt+]'.</code>
<code>Last login: Tue Jul 28 22:19:30 2015 from 10.241.10.7</code>
<code>root@samba ~$</code>
远程连接登陆Linux服务器时,/etc/profile、~/.bash_profile、~/.bashrc的启动顺序如下
首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。因为在 ~/.bash_profile文件中一般会有下面的代码:
<code>if</code> <code>[ -f ~/.bashrc ] ; </code><code>then</code>
<code>. .</code><code>/bashrc</code>
<code>fi</code>
~/.bashrc中,一般还会有以下代码:
<code>if</code> <code>[ -f </code><code>/etc/bashrc</code> <code>] ; </code><code>then</code>
<code>. </code><code>/bashrc</code>
所以,~/.bashrc会调用 /etc/bashrc文件。最后,在退出shell时,还会执行 ~/.bash_logout文件。
执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout
PS:写这篇博客时房间已停电,吼吼吼,不过正好练习了下盲打。
本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1679412,如需转载请自行联系原作者