1. 程式人生 > >解決linux命令列為什麼變成-bash-3.2$

解決linux命令列為什麼變成-bash-3.2$

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

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

[[email protected] ~]# groupadd oinstall
[[email protected] ~]# groupadd dba
[[email protected] ~]# cd /
[[email protected] /]# mkdir -p /u01/oracle
[[email protected] /]# useradd -g oinstall -G dba -d /u01/oracle oracle

[[email protected] ~]# 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.
[

[email protected] ~]# su - oracle
-bash-3.2$ :

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

[[email protected]

~]# 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更改後的預設目錄下,如下所示:

[[email protected] ~]# su - oracle
[[email protected] ~]$ ls -a
此時該 目錄下為空,那麼問題就找到了,就是缺少使用者環境配置檔案,,那麼為什麼需要這樣檔案,這就是跟linux的機制有關聯了,因為在linux下每次通過 useradd建立新的使用者時,都會將所有的配置檔案從/etc/skel複製到新使用者的主目錄下,一般預設在home下面的新使用者主目錄,而關於 /etc/skel這個目錄,是主要被useradd所用到。

  通過如上的解析,我們不難發現要解決命令在使用者切換之後為什麼會變成bash格式,就需要將 /etc/skel的使用者環境配置檔案複製到指定的預設目錄下即可,如下所示:

[[email protected] ~]# su - oracle
[[email protected] ~]$ ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc
[[email protected] ~]$
此時的命令列就正常了。

相關推薦

解決linux命令列為什麼變成-bash-3.2$

  今天在安裝部署linux下的Oracle環境時,發現了一個命令列突變的問題,其實早在之前使用linux操作的時候也曾碰到過,但是一直都 沒有理會,而且諮詢過相關專業的linux開發人員,也說沒什麼問題,所以就一直沒有去尋找原因。這次因為部署Oracle環境,在linux下

linux 切換使用者之後變成 -bash-3.2$ :

    今天新建立一個DB2使用者,切換使用者的時候出現 -bash-3.2$ : 下面是建立步驟: 1)新建使用者db2inst3 [[email protected] ~]# cd /home/ [[email protected] home]# l

原版英文書籍《Linux命令》閱讀記錄2 | 在檔案系統中翱翔

背景: 閱讀英文原作只為了更好地理解書中的精髓,當然也是為了更好地掌握書中的技巧。我們會堅持閱讀全書,並記錄書中的精髓。 The first thing we need to learn is how to navigate the filesystem on our linux s

linux 命令不顯示路徑了,而顯示為-bash-4.1#的兩種解決辦法

問題描述: linux的命令列介面顯示的不是路徑,而是-bash-4.1#: 原因分析: 出現這個問題的原因是因為沒有配置.bash_profile的問題,或者是我們不小心清空或刪除了.bash_profile檔案。 解決方法 方法一:修改 ~/.bash_profile檔案 1、修改~/.bas

Linux 命令報錯:-bash:XXX: command not found ,解決方法參考

相關錯誤 我的錯誤 在CentOS中安裝jdk時, 修改配置檔案,輸入命令 : vim /etc/profile 修改完後重新編譯,輸入命令 : source /etc/profile 我的CentOS錯誤資訊是:-bash:UNset: command no

Linux命令使用matplotlib,報錯_tkinter.TclError: no display name and no $DISPLAY environment variable問題解決

問題 我在Linux命令列使用Python的matplotlib,報錯 File "/usr/lib/python3/dist-packages/matplotlib/pyplot.py", line 1466, in title return gca().set_titl

服務計算 - 3 Golang開發Linux命令實用程式 - selpg

文章目錄 Golang開發Linux命令列實用程式 - selpg 1. 介紹 2. 設計與實現 2.1 設計思路 2.2 功能模組劃分與實現 4 參考文獻

服務計算3 開發 Linux 命令實用程式

文章目錄 概述 1.解析引數 2.命令列的'<','>','|'符號 3.執行命令列的命令 4.總結 概述 本次作業參考潘老師的部落格 https://pmlpml.github.io/ServiceComput

Linux 命令關閉開啟顯示器及xset: unable to open display ""解決方法

在遠端連線Linux等時,基本用不到顯示器,所以希望能遠端將顯示屏關閉 xset -display :0.0 dpms force off這個命令讓顯示屏進入休眠狀態 xset -display :0.0 dpms force on開啟顯示屏 sleep 1 && xse

Linux命令與shell指令碼程式設計大全》讀書筆記————第三章 基本的bash shell命令

本章內容 1、使用shell 2、bash手冊 3、瀏覽檔案系統 4、檔案和目錄列表 5、管理檔案和目錄 6、檢視檔案內容   3.3 bash手冊 命令: man  xterm  作用:檢視檢視xterm使用者手冊 man命

Linux 桌面玩家指南:06. 優雅地使用命令Bash 指令碼程式語言中的美學與哲學

特別說明:要在我的隨筆後寫評論的小夥伴們請注意了,我的部落格開啟了 MathJax 數學公式支援,MathJax 使用$標記數學公式的開始和結束。如果某條評論中出現了兩個$,MathJax 會將兩個$之間的內容按照數學公式進行排版,從而導致評論區格式混亂。如果大家的評論中用到了$,但是又不是為了使用數學公式

3 Golang開發Linux命令實用程式

構建命令列引數的結構體,由於引數使用的比較多,可以使用一個結構體儲存起來,使用起來比較方便 type selpg_args struct { startPage int endPage int inFile string pageLen int

linux備忘筆記】Linux root 從bash-3.2回到[email 

1.進入目錄 cd /etc/skel 2.顯示隱藏檔案 ls -a   .bash_logout  .bash_profile  .bashrc  拷貝這些隱藏檔案到/home  接

Centos命令bash:.....:command not found的解決辦法

原文連結:http://www.cnblogs.com/therunningfish/p/6106553.html 命令列報bash:.....:command not found的解決辦法(幾乎所有命令) 命令列輸入命令執行後報“bash:....:comman

Linux命令安裝weblogic10.3.6

先建立weblogic賬戶 groupadd weblogic useradd -g weblogic weblogic passwd weblogic mkdir /home/weblogicchown weblogic:weblogic /home/w

Linux命令輸入命令執行後報bash:vi:command not found

Linux命令列輸入命令執行後報“bash:vi:command not found”這是由於系統PATH設定問題,PATH沒有設定對,系統就無法找到精確命令了。            1、在命令列中輸入:export PATH=/usr/bin:/usr/sbin:/bi

linux 命令補全 -- bash-completion

tab 安裝過程 centos7 yum linux中 登錄 install bsp blog 默認情況下,linux中可用tab鍵補全命令名和文件名。 安裝 bash-completion 後,可用tab鍵補齊幾乎任何內容,包括參數、文件、目錄甚至包名等。 1、cento

linux 登錄異常--bash-4.2$故障

linux登錄故障第1章 顯示故障為: 登錄系統顯示為: -bash-4.2$故障第2章 如何解決:故障原因:當前用戶的環境變量文件丟失或者損壞、 解決方案:復制正確的文件到用戶的家目錄下, 用戶家目錄模板路徑/etc/skel/##復制變量到加家目錄-bas

linux命令學習

awk ~ 匹配符 在pattern部分進行欄位匹配操作。文中包含bin的很多,但要找到以:分割後,第五個匹配bin的使用者名稱,相當於用:將每行分割成陣列,索引5值匹配,則將第一個打印出來 awk -F: '$5 ~ /bin/{print $1}' /etc/passwd awk NR條件語