Linux中的變數, locale, read, declare,ulimit
echo, 設定變數, 取消變數
- 可以通過
echo $var
的方式列印變數, 若系統中沒有變數, 則不會列印任何東西 - 變數可以直接設定. 假設要設定myName的變數, 則可以這樣寫:
myName=Helloyong
myName
就是新設定的變數, 其變數內容是Helloyong
.
- 可以使用
unset
命令取消變數.
取消myName
的變數:
unset myName
變數的設定規則
- 變數和變數內容之間以等號連結, 且等號兩邊沒有空格
- 變數名是不以數字開頭的英文或者數字.
- 變數內容中的特殊字元, 若在單引號之間則為一般字元, 若在雙引號之間則保持原有特性.
- 可以使用轉義字元()對特殊符號進行轉義.
- 使用反引號和
$(cmd)
可以執行命令.
環境變數
在終端使用env
命令檢視環境變數, env
是environment
的縮寫. 使用set命令檢視所有變數(包括自定義變數)
常見的變數有HOME
,PATH
,LANG
等.
語系變數locale
使用locale可用來查詢本機Linux支援的所有語系。加上引數a即可。
yw@yw-PC:~$ locale -a
C
C.UTF-8
en_US.utf8
POSIX
zh_CN.utf8
如果不加引數a, 可以檢視設定
yw@yw-PC:~$ locale
LANG=zh_CN.UTF -8
LANGUAGE=zh_CN
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION ="zh_CN.UTF-8"
LC_ALL=
當設定LANG或者LC_ALL時, 系統預設將其它未設定的語系變數被LANG或LC_ALL替代.
Linux中的語系檔案放置在/usr/lib/locale目錄中.
整體系統預設的語系定義在/etc/sysconfig/i18n中, 可以在這個檔案修改你想要的語系.
變數鍵盤讀取, 陣列與宣告, read, array, declare
read
使用read 可以讀取使用者的輸入, 用法
read var
在命令列打入這個命令並回車後, 輸入字串, 這個字串儲存於var 這個變數中.
read 還有兩個引數可以使用.
p: 後面可以接提示符
t: 等待使用者輸入的時間, 秒為單位
例如, 讓使用者在30s內輸入一個名字:
[email protected]-PC:~$ read -p "Please input a name: " -t 30 name
Please input a name: Join
之後執行echo $name 這個命令會打印出Join
注意: 當我們退出當前的命令列時, name變數就會銷燬.
在使用read時, 會進入子程序, 變數也就是定義在子程序中的. 當退出bash時, 子程序消失. 子程序中的變數也隨之銷燬. 如果想要稱為全域性變數, 則可以使用export命令.
declare/typeset
declare和typeset 的功能一樣, 都是宣告變數的型別. 系統預設宣告的變數時字串型別. 我們以declare為例. 用法如下:
declare var # 宣告變數var
有以下引數設定變數的型別.
a: 將變數var設定為array型別
i: var為integer型別
x: var為環境變數(全域性變數)
r: 只讀型別, 不可更改也不可重設.
限制使用者行為, ulimit
ulimit用於限制使用者的行為, 用法如下:
ulimit [-SHacdfltu] <配額>
引數分別代表不同的屬性, 配額就是屬性值.
如, t表示使用cpu的最長時間(秒), 設定其為30s:
ulimit -t 30
其他引數含義如下:
S: 警告設定, 超過此值會有警告資訊
H: 嚴格設定, 不能超過此值
a: 列出所有設定及其值
f: 此shell可以建立的最大檔案容量, 單位KB
d: 程序可以使用的最大斷裂記憶體容量
l: 可用於鎖定的記憶體量
u: 單一使用者可以使用的最大程序數量
變數的刪除, 替換
假設有變數var1, 如果想把var1的內容賦值給var2, 那麼我們可以這樣做:
var2=${var1}
再使用echo $var2命令會發現內容和var1的內容一樣.
假如沒有變數var1, 那麼var2就不會被設定. 如果我們想這樣做呢? 當設定了var1時, 就將var1的內容給var2, 如果沒有設定var1, 則個var2一個預設值. 可以使用減號-
. 形如var2=${var1-content}
var2=${var1-"var2"}
此時, 當var1沒有設定時, var2的值就是”var2”. 這會有一個小bug, 當我們的var1為空字串時""
, 我們再執行上面的命令, var2的值也就是空字串. 這並不是我們想要的. 如果我們想在var1為空時也將後面跟的內容賦值給var2, 可以在減號前面加上一個冒號:
var1=""
var2=${var1:-"var2"}
此時, var2的值為”var2”.
在var1和content之間還可以有其他符號, 如下表: (來源於鳥哥的linux私房菜)
變數內容的刪除與替換
注意這個是變數內容的刪除與替換.
變數內容的刪除與替換使用如下語法: (來源於 鳥哥的linux私房菜)
相關推薦
Linux中的變數, locale, read, declare,ulimit
echo, 設定變數, 取消變數 可以通過echo $var 的方式列印變數, 若系統中沒有變數, 則不會列印任何東西 變數可以直接設定. 假設要設定myName的變數, 則可以這樣寫: myName=Helloyong myName就是新設定的變
linux中的locale,LANG
內容 目錄 很多 code 安裝 出版物 數字 sage 文件名 Locale是根據計算機用戶所使用的語言,所在國家或者地區,以及當地的文化傳統所定義的一個軟件運行時的語言環境.? 可以發現locale命令中,可以顯示多個LC_*和LANG. 1 LANG LANG變量是
linux中write和read函式的阻塞試驗
剛剛接觸網路程式設計時,很容易被客戶端和伺服器之間的互動搞暈,例如各種函式的阻塞和非阻塞就讓人頭疼。例如在我的印象中 linux中用於用於對檔案描述符進行讀寫的write()函式和read()函式是非阻塞函式,但是在一次網路通訊的試驗中發現它們又是阻 塞的,後
Linux中通過locale來設定字符集
/******************************************************************************************************************** 轉載原因:在學習shell指令碼時,
linux 中出現 Read-only file system
linux 中出現 Read-only當linux操作系統啟動出現root用戶也無法進行任何的文件寫操作時,無論什麽用戶(包括root)寫文件保存或者刪除文件,且對操作文件或目錄都有寫權限時,還任然報錯:E212: Can‘t open file for writing 或者 Read-only file s
Linux中的ulimit引數修改
當伺服器在使用頻繁時,經常會遇到請求不響應,導致程式執行失敗,主要分兩大類: 1:系統達到最大程序數,再新建立程序時會爆出,fork程序失敗 2:當系統開啟檔
linux中mysql配置檔案和jdk環境變數
mysql配置檔案 [client]default-character-set = utf8mb4 [mysql]socket = /var/lib/mysql/mysql.sockdefault-character-set = utf8mb4 [mysqld]skip-name-resolveport
在linux中常用到的profile中的環境變數
關於yum使用的blog:https://blog.csdn.net/zengmingen/article/details/78225612 yum的安裝與解除安裝:https://blog.csdn.net/james_jr10/article/details/78357600 更
(轉)Linux 中/etc/profile、~/.bash_profile 環境變數配置及執行過程
環境變數是和Shell緊密相關的,使用者登入系統後就啟動了一個Shell。對於Linux來說一般是bash,但也可以重新設定或切換到其它的 Shell。對於UNIX,可能是CShelll。環境變數是通過Shell命令來設定的,設定好的環境變數又可以被所有當前使用者所執行的程式所使用。對於bash這個Shell
Linux中配置JDK的環境變數
一. 解壓安裝jdk 在shell終端下進入jdk-6u14-linux-i586.bin檔案所在目錄, 執行命令 ./jdk-6u14-linux-i586.bin 這時會出現一段協議,連繼敲回車,當詢問是否同意的時候,輸入yes,回車。之後會在當前目錄下生成一個jdk1.6.0_14目錄,你可以將它複製到
linux中的shell程式設計之變數
shell程式設計主要是為了簡化linux系統管理的。 shell中的變數是一種弱型別的變數,c,java等語言是一種強型別的語言。 linux中的所有的變數預設型別都是字元型別的 零、bash變數的分類 bash變數的型別 變數型別
Linux中修改環境變數及生效方法
檢視PATH:echo $PATH 以新增mongodb server為列 修改方法一: export PATH=/usr/local/mongodb/bin:$PATH //配置完後可以通過echo $PATH檢視配置結果。 生效方法:立即生效 有效期限:臨時改變,只能在當
一圖讓你理解Linux中的環境變數設定
本文首先介紹了環境變數的通俗理解,然後給出了幾種不同設定方式的詳細解釋,與其他部落格不同,本部落格通過一張圖總體描述不同設定方式的作用範圍,生效時間。最後通過一個具體的例子說明了環境變數的設定格式。 什麼是環境變數 所謂的環境變數有時候是一種“快捷方式”,有時候又是
linux中環境變數的設定
環境變數配置檔案 環境配置檔案有以下幾個: 1.etc/profile : 在登入時,作業系統定製使用者環境時使用的第一個檔案 ,此檔案為系統的每個使用者設定環境資訊,當用戶第一次登入時,該檔案被執行。 2./etc /environment : 在登入時作
windows linux中安裝python並設定為環境變數
windows 雙擊開啟後,選中Customize installaion, 要記得勾上add python to Path 選項,意思是把Python的安裝路徑新增到系統環境變數的Path變數中。 下一步按照預設的進行勾選 在下一步記得勾選第一項install
Linux 中/etc/profile、~/.bash_profile 環境變數配置及執行過程
環境變數是和Shell緊密相關的,使用者登入系統後就啟動了一個Shell。對於Linux來說一般是bash,但也可以重新設定或切換到其它的 Shell。對於UNIX,可能是CShelll。環境變數是通過Shell命令來設定的,設定好的環境變數又可以被所有當前使用者所執行的程式所使用。對於bash這個Shell
linux中PATH環境變數的作用和使用方法
關於PATH的作用: PATH說簡單點就是一個字串變數,當輸入命令的時候LINUX會去查詢PATH裡面記錄的路徑。比如在根目錄/下可以輸入命令ls,在/usr目錄下也可以輸入ls,但其實ls這個命令根本不在這個兩個目錄下,事實上當你輸入命令的時候LINUX會去/bin,/us
linux中安裝jdk,配置環境變數
1、將下載好的安裝包解壓到/usr/local下面 [[email protected] ~]# tar -xvf jdk-8u191-linux-x64.tar.gz -C /usr/local 2、進入/usr/local目錄下面檢視,確認解壓成
linux中的shell變數
1.環境變數 環境變數也可叫全域性變數,可以在建立他們的shell及派生出的子shell中使用(無需定義,直接可以使用,如:$UID) 相關命令: set ##輸出所有變數
linux中shell的變數的數值計算
1、expr命令 a=123 expr $a + 10 ##加法 expr $a - 10 ##減法 expr $a \*