這應該算是乙個常識吧,但是對於許多像我們這樣的新手來說,一旦你出點小差錯,整個過程就會很曲折。碰巧今天就遇到了這樣的問題。
下面是查過資料後總結的解決方法:
簡單說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中有三種方法:
# path=$path:/usr/local/apache/bin
使用這種方法,只對當前會話有效,也就是說每當登出或登出系統以後,path設定就會失效。
# vi /etc/profile
找到export行,在下面新增加一行,內容為:
export path=$path
:/usr/local/apache/bin。
注:= 等號兩邊不能有任何空格。這種方法最好,除非手動強制修改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單獨宣告出來問題就解決了,我也是很鬱悶這是什麼情況…
參考:
linux用命令列快速切換目錄
和很多人一樣,我也是在電腦前度過一天的大部分時間。為了提高效率 並且不讓我的身體有太多的抱怨 我試著建立乙個優化的環境。例如,我使用vim寫 使用vimperator瀏覽網頁,使用 i3 視窗管理器。其他日常事情就是檔案系統導航 從乙個目錄切換到另乙個目錄 譯者注 我更喜歡使用命令列來,但是一遍又一...
Linux命令列批量刪除檔案(目錄)
快速 批量刪除檔案或目錄 1 1.快速刪除大資料夾 注意目錄後的結束符 對於含有海量檔案的目錄,不能直接rm rf刪除,這樣效率很慢 rsync a delete blank test 使用空資料夾 blank 覆蓋原資料夾 test mkdir empty dir rsync a delete e...
Linux 命令列獲取檔案或目錄的大小
可以使用du命令獲取檔案和目錄的大小,用法為 du sb file name 其中 s summarize,總大小,例如目錄的總大小 b bytes 例如 ll umount nfs rwxr xr x.1 lanyang lanyang 188 feb 12 2017 umount nfs du ...