Linux shell PATH 路徑設定小結
近日,在搗鼓Linux下的PATH變數設定,起因是直接執行service命令不行,找不到這個命令,必須加上/sbin,不爽,顧解決之。這一弄,還真學了不少東西。
首先,Linux 下載入使用者的設定是有順序的,根據不同的shell 型別,讀取的檔名稱有所不同,下圖以bash shell為例:
到這裡有兩個概念:(1)shell 型別 (2)登陸/非登陸 互動/非互動shell
1 shell 型別
Linux Shell的種類很多,目前流行的Shell包括ash、bash、ksh、csh、zsh等,使用者可以通過檢視/etc/shells 檔案中的內容來檢視自己主機中當前有哪些種類的Shell,命令如下(下面是在筆者Linux 主機中檢視資訊的結果):
# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/bash2 /bin/ash /bin/bsh /bin/tcsh /bin/csh
使用下面的命令來檢視Linux 當前正在使用的Shell 型別:
# echo $SHELL
詳細的介紹可參考http://book.51cto.com/art/201106/271627.htm
2 登陸/非登陸 互動/非互動shell
首先,這是兩個不同的維度來劃分的,一個是是否互動式,另 一個是是否登入。互動式shell和非互動式shell
互動式模式就是shell等待你的輸入, 並且立即執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的:登入、執行一些命令、簽退。當你籤 退後,shell也終止了。
shell也可以執行在另外一種模式:非互動式模式,以shell script(非互動)方式執行。在這種模式 下,shell不與你進行互動,而是讀取存放在檔案中的命令,並且執行它們。當它讀到檔案的結尾,shell也就終止了。
chinaunix 論壇中關於登入shell與非登入shell、互動式shell與非互動式Shell的討論:
Login Shell:當init3時,mingetty spawn出登入提示符的時候,你輸入帳號和密碼進入了,出現了shell提示符,這個過程就是登入外殼;
Interactive Shell:接下來你得到了一個像
Non Interactive Shell:你可能需要學習寫一個bash script,用外部shell執行:bash script.sh,它(bash)從第一條命令執行到最後一條然後退出,不與你進行任何互動,它就是 非互動式外殼。
互動式非登入shell就是指你在Gnome圖形介面中開啟“終端”出來的那種視窗程式,
和登入shell 相比,它是“非登入”的,你並不需要輸入使用者名稱和密碼,
和非互動式shell相比,這是“互動式”的,就像你說的那它:你輸入什麼,它就解釋出什麼
執行exit退出非登入shell狀 態;
執行logout退出登入shell狀態。
在登入shell裡,確實只讀取/etc/profile和~ /.bash_profile, ~/.bash_login, and ~/.profile按順序最先的一個,並執行其中的命令。除非被 --noprofile選項禁止了;
在非登入shell裡,確實只讀取 /etc/bash.bashrc和~/.bashrc
根據shell 型別,如果是bash shell, 修改使用者主目錄下的$HOME/.bashrc(實際上.bash_profile呼叫的),
末尾加
PATH=$PATH:/sbin/
export PATH
如果是ksh shell,修改使用者主目錄下的$HOME/.profile,
末尾加
PATH=$PATH:/sbin/
export PATH
3 Linux 下的隱藏檔案
Linux 下的隱藏檔案,已"."開始,可通過ls -a 命令檢視;
建立隱藏檔案 vi .aaaa, 加許可權 和普通檔案沒區別,不過,要看檔案許可權等資訊,要轉成非隱藏檔案,通過命令 mv .aaaa aaaaa, ls -lrt aaaa,
mv aaaa .aaaa//再轉成隱藏檔案
4 Linux使用者環境變數
環境變數就是系統或軟體設定的一些引數,使用者環境變數就是使用者登入系統後,都有自已專用的執行環境。在Windows系統中使用者環境變數儲存在使用者家目錄,Linux也是同樣的。本文主要是講解Linux常用的環境變數和環境變數的設定。
一、環境變數相關操作(只應用於當前,要永久儲存需要寫入到相關檔案。)
#echo $PATH
顯示PATH設定。
#env
顯示當前使用者變數。
#set
顯示當前Shell變數。
#export
顯示當前匯出成使用者變數的shell變數。
#a=abc
定義一個Shell變數。
#export a=abc
定義一個Shell變數,並匯出成使用者變數。
#unset a
清除環境變數
#readonly a
設定只讀環境變數
二、常見的環境變數
PATH 決定了shell將到哪些目錄中尋找命令或程式
HOME 當前使用者主目錄
HISTSIZE 歷史記錄數
LOGNAME 當前使用者的登入名
HOSTNAME 指主機的名稱
SHELL 前使用者Shell型別
LANGUGE 語言相關的環境變數,多語言可以修改此環境變數
MAIL 當前使用者的郵件存放目錄
PS1 基本提示符,對於root使用者是#,對於普通使用者是$
PS2 附屬提示符,預設是“>”
三、Linux環境變數設定檔案
/etc/profile
全域性使用者,應用於所有的Shell。
/$HOME/.profile
當前使用者,應用於所有的Shell。
/etc/bash_bashrc
全域性使用者,應用於Bash Shell。
~/.bashrc
區域性當前,應用於Bash Sell。
參考自:
http://www.51testing.com/html/38/225738-216858.html
http://hi.baidu.com/inbi_/item/210fd6fd8b89471de3e3bd3d
http://www.2cto.com/os/201301/184129.html
相關推薦
Linux shell PATH 路徑設定小結
近日,在搗鼓Linux下的PATH變數設定,起因是直接執行service命令不行,找不到這個命令,必須加上/sbin,不爽,顧解決之。這一弄,還真學了不少東西。 首先,Linux 下載入使用者的設定是有順序的,根據不同的shell 型別,
Linux 之 PATH路徑簡單理解
PATHPATH路徑簡單理解 [root@localhost kang]# vi yy echo YY [root@localhost kang]# chmod +x yy [root@localhost kang]# ./yy YY [root@localhost kang]# pwd /root/kang
linux下關於環境變數的設定,及python中path路徑的優先匹配順序
關於PATH的作用:PATH說簡單點就是一個字串變數,當輸入命令的時候LINUX會去查詢PATH裡面記錄的路徑。比如在根目錄/下可以輸入命令ls,在/usr目錄下也可以輸入ls,但其實ls這個命令根本不在這個兩個目錄下,事實上當你輸入命令的時候LINUX會去/bin,/us
linux中設定PATH路徑
在linux中設定PATH的路徑總體來說有兩種方法,臨時型和長期型。 一.臨時型,用這種方法設定的PATH路徑,當系統登出後會消失。 #export PATH=$PATH:mypath 二、長期性
Linux Shell指令碼獲取當前路徑
shell指令碼獲取當前路徑 #方法一 #!/usr/bin/env bash Cur_Dir=$(pwd) echo $Cur_Dir #方法二 #!/usr/bin/env bash basedir=cd $(dirname $0); pwd
javascript新增、讀取、刪除cookie,判斷cookie是否有效,指定domain域下主路徑path下設定cookie,設定expires過期時間
有時我們需要用cookie儲存使用者名稱,記錄登入狀態,如何正確判斷該機使用者cookie是否存在呢?不能簡單使用a!=”這樣的寫法。 正確方法是:判斷是否存在名為username3的cookie,使用document.cookie.indexOf(“username3=”)來判斷,如果返回值是
linux下的ftp訪問路徑設定
假設你已經在linux上安裝並配置好了vsftpd伺服器,那麼有時我們想讓訪問者只能特定目錄下的檔案怎麼辦呢? 彆著急,看下面的設定,首先輸入命令 vim /etc/vsftpd.conf" 開啟配置檔案,新增下面一條語句: local_root=/home/xxx/x
【Python】sys.path.append動態新增搜尋路徑設定
如何將路徑“永久"新增到sys.path? sys.path是Python的搜尋模組的路徑集,是一個list 可以在python 環境下使用sys.path.append(path)新增相關的路徑,但在退出python環境後自己新增的路徑就會自動消失了! 可以使用以下命令輸入當前python 的搜尋
linux 環境變數的設定 PATH=:
Linux 環境變數(export命令) 環境變數啟動過程: 功能說明: 設定或顯示環境變數。(比如我們要用一個命令,但這個命令的執行檔案不在當前目錄,這樣我們每次用的時候必須指定執行檔案的目錄,麻煩,在程式碼中先執行export,這個相當於告訴程式,執行某某東西時,需要的檔案或什麼
Linux Shell指令碼設定lib*.jar
linux下批量遍歷lib下的jar包,預設讀取的是當前目錄下的lib資料夾下的jar包。你將需要的jar包放置lib下,並且指定下執行的類,就可以執行java命令。另外windows下的bat批量遍歷jar包,可以參見 bat 設定lib*.jar #!/bi
[轉]linux shell 獲取當前正在執行指令碼的絕對路徑
常見的一種誤區,是使用 pwd 命令,該命令的作用是“print name of current/working directory”,這才是此命令的真實含義,當前的工作目錄,這裡沒有任何意思說明,這個目錄就是指令碼存放的目錄。所以,這是不對的。你可以試試 bash shell/a.sh,a.sh 內
Linux生成core檔案、core檔案路徑設定
轉載自:http://www.nginx.cn/1521.html 在Linux下產生並除錯core檔案 先看看我用的是個什麼機器: $ uname -a Linux dev 2.4.21-9.30AXsmp #1 SMP Wed May 26 23:37:09 ED
Linux下的QT的庫路徑設定和連線
1 . 系統環境: Distributor ID: Ubuntu Description: Ubuntu 14.04.5 LTS Release: 14.04 Codename: trusty QT工程連結引用第三方庫暫時知道的有兩種方法: 一、在Makefi
linux上傳下載指令及路徑設定
先設定SecureCRT上傳下載檔案儲存路徑 options -> session -> Xmodem/Zmodem -> upload / download -> ok 然後確認一下系統中是否有 sz rz 這兩個命令(FreeBSD下
LINUX下多路徑(multi-path)介紹及使用
一、什麼是多路徑 普通的電腦主機都是一個硬碟掛接到一個總線上,這裡是一對一的關係。而到了有光纖組成的SAN環境,或者由iSCSI組成的IPSAN環境,由於主機和儲存通過了光纖交換機或者多塊網絡卡及IP來連線,這樣的話,就構成了多對多的關係。也就是說,主機到儲存可以有多條
linux shell 指令學習小結(一)
有必要總結一發shell指令了。不過我覺得網上的詳細教程還比較多,先知道每個指令幹啥,具體很詳細的引數可以在用的時候去查,用多了就熟了~~ 覺得還不錯的教程傳送門:每天一個linux命令目錄 裡面每個指令介紹的還算詳細,有什麼忘記的其實可以查這個~ ps:
Linux Shell——bash shell 腳本簡介
運行環境 linux 關鍵字 程序 單詞 bash shell 腳本簡介shell 運行環境如果你運行的是 Unix 或 Linux 系統,例如 Ubuntu,Red Hat,SUSE Linux,還有macOS,都是內置了 bash shell 的,所以你不需要額外配置所謂的開發
寫了一個簡單的Linux Shell用來下載文件
logs -- spi http col 內容 style bre shell #!/bin/sh for (( i=0; i<30; i=i+1 )); do # 利用spider來探測請求的資源是否存在,並把請求的結果寫入到一個文件 wget -
Linux Shell 腳本的小技巧——不定期更新
小技巧 linux shell 本文旨在積累平時寫 shell 腳本是遇到的小問題的解決方法。在這裏不定期的更新,以便以後查閱、沿用。 一,在shell 腳本中定義默認值 1. 對默認變量直接賦值 read -p "input>>:" nub nub=
殺死Linux Shell進程
shel china 命名 -name 登錄shell 方法 gin p s 進程 1、查找目標shell進程: 比如:我想要查找 odm_clean 腳本執行進程 ps -ef | grep "odm_clean" hadoop 3702 46809