歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 解決Linux命令行為什麼變成-bash-3.2$

解決Linux命令行為什麼變成-bash-3.2$

日期:2017/2/28 16:15:31   编辑:Linux教程

在安裝部署Linux下的Oracle環境時,發現了一個命令行突變的問題,其實早在之前使用Linux操作的時候也曾碰到過,但是一直都沒有理會,而且咨詢過相關專業的Linux開發人員,也說沒什麼問題,所以就一直沒有去尋找原因。這次因為部署Oracle環境,在Linux下部署了幾次,都是因為環境配置沒有ok,導致我重復了幾次,雖然配置失敗了幾次,但是我想這個過程還是很享受,畢竟遇到問題不是什麼壞事,就如同我們平時工作中一樣,如果總是一帆風順,我們的水平永遠就這樣,所以得出的總結是要想不斷提高自己,就需要通過發現和解決問題的過程來學習,最後你會發現你就水漲船高了,呵呵。

下面看看這個Linux下命令行為什麼會變成-bash-3.2$:,先根據oracle的基本安裝步驟來,如下命令:

[root@localhost ~]# groupadd oinstall
[root@localhost ~]# groupadd dba
[root@localhost ~]# cd /
[root@localhost /]# mkdir -p /u01/oracle
[root@localhost /]# useradd -g oinstall -G dba -d /u01/oracle oracle

[root@localhost ~]# passwd oracle
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# su - oracle
-bash-3.2$ :

這個時候我發現在oracle切換用戶之後就出現了-bash-3.2$ :,這表明什麼呢,也就是說缺少bash的環境配置,這裡需要注意的是當我在創建oracle用戶時,是改變了oracle的默認指定目錄,useradd -g oinstall -G dba -d /u01/oracle oracle,也就是說如果沒有改變這個目錄的話,通常情況下,新增用戶默認指定目錄應該是/home/oracle/,在看看默認目錄下有哪些文件,我們來看看root,如下所示:

[root@localhost ~]# ll -a
total 2562348
drwxr-x--- 14 root root 4096 Feb 15 18:06 .
drwxr-xr-x 24 root root 4096 Feb 15 21:28 ..
-rw------- 1 root root 1224 Feb 15 21:26 .bash_history
-rw-r--r-- 1 root root 24 Jan 6 2007 .bash_logout
-rw-r--r-- 1 root root 191 Jan 6 2007 .bash_profile
-rw-r--r-- 1 root root 176 Jan 6 2007 .bashrc
-rw-r--r-- 1 root root 100 Jan 6 2007 .cshrc

再來看oracle更改後的默認目錄下,如下所示:

[root@localhost ~]# su - oracle
[oracle@localhost ~]$ ls -a
此時該目錄下為空,那麼問題就找到了,就是缺少用戶環境配置文件,,那麼為什麼需要這樣文件,這就是跟Linux的機制有關聯了,因為在Linux下每次通過 useradd創建新的用戶時,都會將所有的配置文件從/etc/skel復制到新用戶的主目錄下,一般默認在home下面的新用戶主目錄,而關於 /etc/skel這個目錄,是主要被useradd所用到。

  通過如上的解析,我們不難發現要解決命令在用戶切換之後為什麼會變成bash格式,就需要將 /etc/skel的用戶環境配置文件復制到指定的默認目錄下即可,如下所示:

[root@localhost ~]# su - oracle
[oracle@localhost ~]$ ls -a
. .. .bash_history .bash_logout .bash_profile .bashrc
[oracle@localhost ~]$
此時的命令行就正常了。

Copyright © Linux教程網 All Rights Reserved