一:shell簡介
1.什么是shell
shell的中文意思是“外殼”,通俗地講,shell是一個交互編程接口,通過獲得用戶輸入來驅動操作系統內核完成指定工作。shell除了作為命令解釋程序以外,還是一種高級程序設計語音,它有變量、關鍵字、有各種控制語句、支持函數模塊,有自己的語法結構。shell最重要的功能是命令解釋,從這種意義上說,shell是一個命令解釋器。
2.Linux系統上可執行的文件分類如下:
Linux命令:存放在/bin,/sbin目錄下的命令
內置命令:出於效率的考慮,將一些常用命令的解釋程序構造在shell內部
實用程序:存放在/usr/bin,/usr/sbin,/usr/local/bin等目錄下的實用程序或工具
用戶程序:用戶程序經過編譯生成可執行文件后,也可作為shell命令運行
shell腳本:由shell語音編寫的批處理文件
二:shell變量
1.變量命名規則
以字母或下划線開頭,剩下的部分可以是:字母、數字、下划線
最好遵循下述規范:
1)以字母開頭
2)使用中划線或者下划線做單詞的連接
3)同類型的用數字區分
4)對於文件最好加上拓展名
例如:aa、aa1、a_b.tar.gz
2.系統變量
set和env區別:set:顯示所有變量,env:環境變量
3.變量賦值
name=shenbuer
echo $name
刪除變量 unset name
(shell變量為小寫;環境變量為大寫)
4.常用系統變量
PATH:命令的搜索路徑
PWD:顯示整個路徑名
LANG:解壓或釋放程序
HOME:用戶根目錄的路徑名
HISTSIZE:保存在歷史列表中的最大項數
PS1:提示符1,主提示符(默認為“\s-\v\$”)
IFS:內部字段分隔符,用於分詞
三、運算符
1.算術運算符
+、-、*、/、%
2、關系操作
與(())連用
< 小於
> 大於
<= 小於等於
>= 大於等於
== 等於
!= 不等於
&& 按位與
|| 按位或
3.賦值運算符
= 等於賦值
+= 加等於
*= 乘等於
/+ 除等於
%= 取模賦值
四、元字符
`` 命令替換 取命令的執行結果
$()同上,但它彌補了``的嵌套缺陷
~ 家目錄
! 取非
! 歷史命令調用
! 匹配最近一次歷史命令
! ls 帶空格 將命令的返回值取反
@ 無特殊含義
# 注釋
$ 變量取值
$() 同``
${} 變量名的范圍
$[] 整數計算 echo $[2+3] - * / % 浮點數用 echo "scale=3; 10/3" | bc -l
% 殺后台進程 jobs號; 取模
^ 取非 和 ! 雷同
^ 替換
& 后台執行;&& 邏輯與
* 匹配任意長度字符串;計算乘法
() 在子進程中執行
- 減號;區間;cd -;
_ 無特殊含義
+ 加號 ;
= 賦值
| 管道; || 邏輯或
\ 轉義;
{} 命令列表 ,注意括號內的開頭和結尾必須是空格{ ls; cd /; }
[] 字符通配,匹配括號內之一;
: 空命令 真值
; 可以接多個命令:ls;pwd;echo 123;無論對錯,會一直執行到最后一條命令
"" 軟引 ''硬引
< 輸入重定向
> 輸出重定向
>> 追加
<< here document
>& 合並2和1輸出
, 枚舉分隔符
. source ; 當前目錄
/ 目錄分隔符
? 單個字符
回車 命令執行
* 通配符:任意字符
? 通配符:任一字符
[abc] 列表項之一
[^abc] 對列表取非 也可以使用范圍 [a-z] 代表aAbBcC...,[0-9]代表012345。。。
{} 循環列表
控制變量名的范圍 echo ${AB}C
\轉意