1. 程式人生 > >Linux中的變數, locale, read, declare,ulimit

Linux中的變數, locale, read, declare,ulimit

echo, 設定變數, 取消變數

  • 可以通過echo $var 的方式列印變數, 若系統中沒有變數, 則不會列印任何東西
  • 變數可以直接設定. 假設要設定myName的變數, 則可以這樣寫:
myName=Helloyong

myName就是新設定的變數, 其變數內容是Helloyong.

  • 可以使用unset 命令取消變數.

取消myName的變數:

unset myName

變數的設定規則

  • 變數和變數內容之間以等號連結, 且等號兩邊沒有空格
  • 變數名是不以數字開頭的英文或者數字.
  • 變數內容中的特殊字元, 若在單引號之間則為一般字元, 若在雙引號之間則保持原有特性.
  • 可以使用轉義字元()對特殊符號進行轉義.
  • 使用反引號和$(cmd)可以執行命令.

環境變數

在終端使用env命令檢視環境變數, envenvironment的縮寫. 使用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就是新設定的變

linuxlocale,LANG

內容 目錄 很多 code 安裝 出版物 數字 sage 文件名 Locale是根據計算機用戶所使用的語言,所在國家或者地區,以及當地的文化傳統所定義的一個軟件運行時的語言環境.? 可以發現locale命令中,可以顯示多個LC_*和LANG. 1 LANG LANG變量是

linuxwrite和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

Linuxulimit引數修改

   當伺服器在使用頻繁時,經常會遇到請求不響應,導致程式執行失敗,主要分兩大類:        1:系統達到最大程序數,再新建立程序時會爆出,fork程序失敗        2:當系統開啟檔

linuxmysql配置檔案和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

linuxPATH環境變數的作用和使用方法

關於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 ##輸出所有變數

linuxshell的變數的數值計算

1、expr命令 a=123 expr $a + 10 ##加法 expr $a - 10 ##減法 expr $a \*