① linux中shell腳本的變數為什麼不能用數字
變數名和等號之間不能有空格,這可能和你熟悉的所有編程語言都不一樣。同時專,變數名的命名屬須遵循如下規則:
•首個字元必須為字母(a-z,A-Z)。
•中間不能有空格,可以使用下劃線(_)。
•不能使用標點符號。
•不能使用bash里的關鍵字(可用help命令查看保留關鍵字)。
② linux中的環境變數有什麼用
最直接的作用是可以簡化操作的過程,設置一些環境變數可以讓你不需要登錄目錄下直接運行程序,或者調用庫
③ linux中關於小括弧和變數的疑問
題主你好,
其實答案都寫在了你的提問中了.
關鍵就在於: "子shell".
啥叫"子shell"啊, "子shell"是fork自父shell的, 也就是說父shell中的變數子shell都可以用, 但子shell中的變數父shell不可用.
把上面的話理解一下, 然後再去套你提問中的代碼, 看看是不是邏輯就通了.
希望可以幫到題主, 歡迎追問.
④ linux非root許可權配置環境變數
Linux的變數種類
按變數的生存周期來劃分,Linux變數可分為兩類:
1 永久的:需要修改配置文件,變數永久生效。
2 臨時的:使用export命令聲明即可,變數在關閉shell時失效。
設置變數的三種方法
1 在/etc/profile文件中添加變數【對所有用戶生效(永久的)】
用VI在文件/etc/profile文件中增加變數,該變數將會對Linux下所有用戶有效,並且是「永久的」。
例如:編輯/etc/profile文件,添加CLASSPATH變數
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
註:修改文件後要想馬上生效還要運行# source /etc/profile不然只能在下次重進此用戶時生效。
2 在用戶目錄下的.bash_profile文件中增加變數【對單一用戶生效(永久的)】
用VI在用戶目錄下的.bash_profile文件中增加變數,改變數僅會對當前用戶有效,並且是「永久的」。
例如:編輯guok用戶目錄(/home/guok)下的.bash_profile
命令用法如下
$ cd (進入用戶登陸目錄)
$ls –al .bash_profile(.bash_profile為隱藏文件,因此要用ls –a命令查找)
$vi .bash_profile(用vi編輯.bash_profile)
vi/home/guok/.bash.profile添加如下內容:exportCLASSPATH=./JAVAHOME/lib;JAVA_HOME/jre/lib
註:修改文件後要想馬上生效還要運行$ source /home/guok/.bash_profile不然只能在下次重進此用戶時生效。
3 直接運行export命令定義變數【只對當前shell(BASH)有效(臨時的)】
在shell的命令行下直接使用[export 變數名=變數值] 定義變數,
該變數只在當前的shell(BASH)或其子shell(BASH)下是有效的,
shell關閉了,變數也就失效了,再打開新shell時就沒有這個變數,需要使用的話還需要重新定義。
環境變數的查看
1 使用echo命令查看單個環境變數。例如:
echo $PATH
2 使用env查看所有環境變數。例如:
env
3 使用set查看所有本地定義的環境變數。
使用unset刪除指定的環境變數
set可以設置某個環境變數的值。清除環境變數的值用unset命令。如果未指定值,則該變數值將被設為NULL。示例如下:
export TEST="Test..." #增加一個環境變數TEST env|grep TEST #此命令有輸入,證明環境變數TEST已經存在了
TEST=Test...
unset TEST #刪除環境變數TEST
$ env|grep TEST #此命令沒有輸出,證明環境變數TEST已經刪除
常用的環境變數
PATH 決定了shell將到哪些目錄中尋找命令或程序
HOME 當前用戶主目錄
HISTSIZE歷史記錄數
LOGNAME 當前用戶的登錄名
HOSTNAME指主機的名稱
SHELL 當前用戶Shell類型
LANGUGE 語言相關的環境變數,多語言可以修改此環境變數
MAIL當前用戶的郵件存放目錄
PS1基本提示符,對於root用戶是#,對於普通用戶是$
Linux下設置和查看環境變數
https://www.cnblogs.com/qiuhong10/p/7815943.html
Linux下修改.bash_profile 文件改變PATH變數的值
https://blog.csdn.net/u011323949/article/details/79045788
⑤ linux環境變數配置
Shell變數有局部變數、環境變數之分。局部變數就是指在某個Shell中生效的變數,只在此次登錄中有效。環境變數通常又稱「全局變數」,雖然在Shell中變數默認就是全局的,但是為了讓子Shall繼承當前Shell的變數,需要使用export內建命令將其導出為環境變數。
按變數的生存周期劃分:
永久的:需要修改配置文件,變數永久生效。
臨時的:使用export命令聲明即可,變數在關閉shell時失效。
在配置永久的環境變數時,又可以按照作用范圍分為:
用戶環境變數
系統環境變數。
系統環境變數對所有系統用戶都有效,用戶環境變數僅僅對當前的用戶有效。
全局(公有)配置,不管是哪個用戶,登錄時都會讀取該文件。
它也是全局(公有)的 bash執行時,不管是何種方式,都會讀取此文件。
不要輕易修改此文件
用戶環境變數通常被存儲在下面的文件中:
若bash是以login方式執行時,讀取 ~/.bash_profile ,若它不存在,則讀取 ~/.bash_login ,若前兩者不存在,讀取 ~/.profile 。
若bash是以login方式執行時,讀取 ~/.bash_profile ,若它不存,則讀取 ~/.bash_login ,若前兩者不存在,讀取 ~/.profile 。
只有bash是以login形式執行時,才會讀取.bash_profile,Unbutu默認沒有此文件,可新建。 通常該配置文件還會配置成去讀取 ~/.bashrc 。
當bash是以non-login形式執行時,讀取此文件。若是以login形式執行,則不會讀取此文件。
~/.bash_profile 是互動式、login 方式進入 bash 運行的
~/.bashrc 是互動式 non-login 方式進入 bash 運行的通常二者設置大致相同,所以通常前者會調用後者。
如想將一個路徑加入到環境變數(例如$PATH)中,可以像下面這樣做(修改/etc/profile):
你可以自己加上指定的路徑,中間用冒號隔開。環境變數更改後,在用戶下次登陸時生效,如果想立刻生效,則可執行下面的語句:
bash會在用戶登錄時,讀取下列四個環境配置文件:
全局環境變數設置文件: /etc/profile 、 /etc/bashrc 。 用戶環境變數設置文件: ~/.bash_profile 、 ~/.bashrc 。
讀取順序:① /etc/profile 、② ~/.bash_profile 、③ ~/.bashrc 、④ /etc/bashrc 。
2 .bashrc 和 .bash_profile 的區別
.bash_profile 會用在登陸shell, .bashrc 使用在互動式非登陸 shell 。簡單說來,它們的區別主要是 .bash_profile 是在你每次登錄的時候執行的; .bashrc 是在你新開了一個命令行窗口時執行的。
當通過控制台進行登錄(輸入用戶名和密碼):在初始化命令行提示符的時候會執行.bash_profile 來配置你的shell環境。但是如果已經登錄到機器,在Gnome或者是KDE也開了一個新的終端窗口(xterm),這時,.bashrc會在窗口命令行提示符出現前被執行。當你在終端敲入/bin/bash時.bashrc也會在這個新的bash實例啟動的時候執行。
所以對於我自己,我寫了一個 .pathrc 文件
然後在 .bashrc , .zshrc , .bash_profile , /etc/profile 中都加了
下面是 .pathrc 文件
現在,當你從控制台登錄機器的時候,.bashrc就會被執行。
四、常用的環境變數
BASH Bash Shell的全路徑
CDPATH 用於快速進入某個目錄。
PATH 決定了shell將到哪些目錄中尋找命令或程序
HOME 當前用戶主目錄
HISTSIZE 歷史記錄數
LOGNAME 當前用戶的登錄名
HOSTNAME 指主機的名稱
SHELL 當前用戶Shell類型
LANGUGE 語言相關的環境變數,多語言可以修改此環境變數
MAIL 當前用戶的郵件存放目錄
PS1 基本提示符,對於root用戶是#,對於普通用戶是$
Reference
[1] /etc/profile、/etc/bashrc、 /.bash_profile、 /.bashrc
http://blog.chinaunix.net/uid-26435987-id-3400127.html
[2] Linux如何修改env看到的環境變數? .bashrc和.bash_profile區別
http://blog.csdn.net/xifeijian/article/details/13355031
[3] linux環境變數,bashrc與bashprofile
http://blog.sina.com.cn/s/blog_43e5ad4e0101ei43.html
⑥ LINUX變數的定義
回答的基本上是完全正確的。
在補充說明一下。
在LINUX/UNIX中有本地變數,系統變數,環境變數,特定變數等
實際的意思就是
同一段代碼可在多處使用,但是效果不一樣。
例如
A為一個系統變數
這個A可以放在
用戶變數上面
針對用戶變數,同時也可以放在系統上面這個是針對全局的也就是所有用戶。
環境變數時針對軟體的,也等於特定變數。
而實際上變數只有2種。一是系統變數,二是環境變數。
系統變數主要是針對用戶,
環境變數主要是針對軟體。