Shell之基本用法

2022-09-07 08:15:13 字數 3132 閱讀 6726

一: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;pwd;echo 123;無論對錯,會一直執行到最後一條命令

"" 軟引 ''硬引

< 輸入重定向

> 輸出重定向

>> 追加

<< here document

>& 合併2和1輸出

, 列舉分隔符

. source ; 當前目錄

/ 目錄分隔符

? 單個字元

回車 命令執行

* 萬用字元:任意字元

? 萬用字元:任一字元

[abc] 列表項之一

[^abc] 對列表取非 也可以使用範圍 [a-z] 代表aabbcc...,[0-9]代表012345。。。

{} 迴圈列表

控制變數名的範圍 echo $c

\轉意

Shell基本用法 2

if condition then fi if condition then else fi if condition then elif fi 邏輯與 邏輯或 a b c a為true則執行b,a為false則執行c history 檢視歷史命令 crtl r 查詢命令 for c1 c2 c3 ...

shell介紹及基本用法

8.1 shell介紹 shell是乙個命令直譯器,提供使用者和機器之間的互動,支援特定語法,支援邏輯判斷 迴圈,並且每個使用者都可以有自己的shell centos預設的shell是bash bourne agin shell 其實為了紀念sh的創造者bourne這個使用者 常見的還有zsh po...

shell指令碼之printf用法

shell指令碼中的printf和c語言中的printf用法基本一致,只是在寫法上有些許區別 root algento 1 cat printf test.sh bin bash printf hello world root algento 1 sh printf test.sh hello wo...