1. 程式人生 > >Linux基礎特性總結之二

Linux基礎特性總結之二

linux

計算機基礎

Linux歷史

文件管理(查看、處理)

目錄管理

LHS

時間戳、時間、關機

哲學思想

文件命名


Bash的基礎特性

命令行展開

命令補全

路徑補全

glob

快捷鍵

管道

I/O重定向

別名

hash


變量


grep,egrep,fgrep


變量

配置文件

算術運算表達式

測試表達式

退出狀態碼


變量:

定義

變量名

變量

數據類型

變量類型

變量類型作用(存儲數據的格式,範圍,參與的運算)

強類型

弱類型 1不用定義 2 直接賦值,默認存儲 為字符型 3 調用時隱式轉換


bash作用域的變量

本地, 環境 , 局部, 位置 , 特殊變量 的生效範圍

變量命令的法則

1 不能數字開頭,不能用關鍵字

2 見名知義

3 避免全大寫, _ 開頭

文件命名的法則

1 不能數字開頭,不能用特殊字符 (glob通配符)

2 區分大小寫

3 不能為/ [^/]

4 長度<255

5 .開頭為隱藏文件


哲學思想

文件/ 組合 小程序/ 文本實現配置 / 盡量不交互


grep . [] [^] * \+ \? \{m\} \{m,n\} \(\)

egerp . [] [^] * + ? {m} {m,n} () |

^,$


egrep 或 “grep並不支持”

[abcd] 字符級別的或

c|cat 左側整體或右側整體

(c|c)at 分組或


變量賦值

name=‘value‘

name將單個內存空間命名

= 賦值符號

賦值: 將值存儲在變量所表示的內存空間中


‘ ‘

“ ”

value 值

純文本引用賦值

name=obama

空格?

變量引用實現賦值 加載一個變量內存空間中存儲的值至CPU寄存器中,經過處理後,存加內存空間中.


name="obama jerry"

name=$name ##存回原處

var=$name ##存到另一處

命令引用實現賦值

name=`command`

name=$(command)


引用 強、弱

${name} $name 使用的場景


撤消: Unset


本地變量查看: set

環境變量查看: export env printenv

不要隨便給大寫字母賦值,可能會導致bash工作特性改變

PS1 命令提示符前面的字符

PATH 命令的搜索路徑

UID

SHELL


位置變量: 類似,正則表達式引擎將括號中模式所匹配到的內容記錄於內置變量中, \1,\2,\3

bash將傳遞給腳本的參數保存在內置變量中, $1,$2,$3,可供腳本中調用,如果,不存在,則為空。

特殊變量:

$0

$#

$@

$* 看做一個整體

$? 命令的執行狀態結果


換港操作符

shift #


算術運算

let 算術運算表達式

let var=$num1+$num2

變量引用賦值

var=$[算術運算表達式]

var=$((算術運算表達式))

命令引用賦值

var=$(expr 算術運算表達式)

var=$(expr $num1 + $num2)


生成隨機數

let $RANDOM%$VAR

$[$RANDOM%10]

$(($RANDOM%10))

$( expr $RANDOM % 10)


配置文件

全局: /etc/{profile,profile.d} /etc/bashrc

個人:~/.bashrc, ~/.bash_profile

功能

profile 環境 變量 , 腳本

bashrc 本地變量 別名

登陸方式,讀取配置順序

交互式登陸

需要輸入密碼的登陸 或 su -[l] user

/etc/profile /etc/profile.d ~/.bash_profile

~/.bashrc /etc/bashrc


非交互式登陸

不需要輸入密碼的登陸 或 su user 圖形終端

腳本運行在當前shell子shell進程中

~/.bashrc /etc/bashrc /etc/profile.d


測試表達式

數值測試

符號: -eq,-ne,-gt,-ge,-lt,-le

字符測試 (左右都需要 加 引號, 除了 pattern不能加引號,且只能用於 [[ ]] 中)

符號: == , != , >, < , -z "string" -n "string" A =~ pattern(正則表達式字符組合的模式)

文件測試

符號


退出狀態碼

exit [#]





本文出自 “Reading” 博客,謝絕轉載!

Linux基礎特性總結之二