- 目錄:
- 前言:
- 1、直接在命令行中設置PATH
- 2、在profile中設置PATH
- 3、在當前用戶的profile中設置PATH
目錄:
前言:
這應該算是一個常識吧,但是對于許多像我們這樣的新手來說,一旦你出點小差錯,整個過程就會很曲折。碰巧今天就遇到了這樣的問題。
下面是查過資料后總結的解決方法:
簡單說PATH就是一組路徑的字符串變量,當你輸入的命令不帶任何路徑時,LINUX會在PATH記錄的路徑中查找該命令。有的話則執行,不存在則提示命令找不到,也就是我們經常看到的-bash: ***: command not found
。比如在根目錄/下可以輸入命令ls,在/usr目錄下也可以輸入ls,但其實ls命令根本不在這個兩個目錄下,當你輸入ls命令時LINUX會去/bin,/usr/bin,/sbin等目錄尋找該命令。而PATH就是定義/bin:/sbin:/usr/bin等這些路勁的變量,其中冒號為目錄間的分割符。使用export $PATH
命令可以查看環境變量的內容。
如何自定義路徑:
假設你新編譯安裝了一個apache在/usr/local/apache下,你希望每次啟動的時候不用敲一大串字符(# /usr/local/apache/bin/apachectl start)才能使用它,而是直接像ls一樣在任何地方都直接輸入類似這樣(# apachectl start)的簡短命令。這時,你就需要修改環境變量PATH了,準確的說就是給PATH增加一個值/usr/local/apache/bin。將/usr/local/apache/bin添加到PATH中有三種方法:
1、直接在命令行中設置PATH
# PATH=$PATH:/usr/local/apache/bin
使用這種方法,只對當前會話有效,也就是說每當登出或注銷系統以后,PATH設置就會失效。
2、在profile中設置PATH
# vi /etc/profile
找到export行,在下面新增加一行,內容為:
export PATH=$PATH:/usr/local/apache/bin。
注:= 等號兩邊不能有任何空格。這種方法最好,除非手動強制修改PATH的值,否則將不會被改變。
編輯/etc/profile后PATH的修改不會立馬生效,如果需要立即生效的話,可以執行# source profile
命令。
其次對于profile來說一定要注意整個編輯的過程,一旦你輸入一些格式不正確的文本(如把windows編碼的文本復制過來),就會造成profile文件無法正常解析等錯誤。
3、在當前用戶的profile中設置PATH
vi ~/.bash_profile
修改PATH行,把/usr/local/apache/bin添加進去,如:
PATH=$PATH:$HOME/bin:/usr/local/apache/bin。
# source ~/.bash_profile
讓這次的修改生效。
注:這種方法只對當前用戶起作用的,其他用戶該修改無效。
去除自定義路徑:
當你發現新增路徑/usr/local/apache/bin沒用或不需要時,你可以在以前修改的/etc/profile或~/.bash_profile文件中刪除你曾今自定義的路徑。
除此之外,打開prifile文件,你會發現內部邏輯是先對幾個路徑下的變量進行檢索如/bin:/sbin:/usr/bin,如下圖所示
但是一旦你在編輯profile文件的時候,一不小心,你就會發現很多“可怕”的錯誤,比如linux的基本指令都用不了等等。 所以對于有些你已經配置了Path變量,執行相關命令卻未生效時,你就需要留意下,是不是你的profile文件出了問題,今天就莫名中招了,如下圖所示:
在PATH下聲明了HIVE,但是最后輸出環境變量的時候卻發現沒有包含對應的Hive的地址,導致最終執行hive命令時無效,最后將Hive單獨聲明出來問題就解決了,我也是很郁悶這是什么情況…
參考:https://www.cnblogs.com/leibg/p/4479921.html