linux系統shell基礎知識入門

2022-01-22 02:53:31 字數 1808 閱讀 6503

什麼是shell

shell就是我們常說的命令列程式,它是乙個作為使用者與linux系統間介面的程式,它允許使用者向作業系統輸入要執行的命令。在linux中安裝多個shell是可行的,一般系統有預設的shell,linux中預設的為bash

檢視系統所有shell及當前起作用shell
[liangc@ip-10-30-20-114 ~]$ cat /etc/shells

/bin/sh

/bin/bash

/usr/bin/sh

/usr/bin/bash

檢視當前shell,通過shell變數檢視

[liangc@ip-10-30-20-114 ~]$ echo $shell

/bin/bash

如何編寫shell
使用文字編輯工具,將命令組合到乙個檔案中即可,在linux中,副檔名無特別意義,它只是為了更清楚標識這個檔案而已,所以你的shell指令碼檔案可以無副檔名。但是一般都會加上.sh作標識

vi first

敲入如下命令

#!/bin/sh

echo "hello world"

exit 0

以上是乙個簡單的shell指令碼

第一行#!是一種特殊注釋,後面的/bin/sh表示這個指令碼將使用此shell來解析執行,需使用絕對路徑

exit的使用確保指令碼返回乙個有意義的狀態碼,如果其它指令碼需要呼叫這個指令碼程式,那麼返回乙個有意義的狀態碼是很有必要的。但建議時,即使這個程式不會被其它程式呼叫,還是返回乙個狀態碼吧。一般用0表示成功。

執行shell

兩種執行方式

1 呼叫shell,把指令碼名當成乙個引數

/bin/sh first
2 使用chmod賦予可執行許可權

chmd +x first

./first

shell語法
變數,在shell裡,變數可以不先宣告,只是通過使用它們(比如賦初值時)來建立它們。所有變數被看作字串並以字串儲存,即使值為數字時也如此。linux區分大小寫,所以hello和hello是不同的哦。

在變數面前加上「$"可訪問該變數。

hello="hello world"

echo $hello

echo "$hello"

echo '$hello'

echo \$hello

輸出hello world

$hello

$hello

注意,如果字串裡面包含空格,必須用引號把它們括起來。此外,等號兩邊不能有空格

使用單引號和反斜線不會進行變數的替換

環境變數

環境變數

說明$home

當前使用者家目錄

$path

以冒號分隔的用來搜尋命令的目錄列表

$0shell指令碼的名字

$#傳遞級指令碼的引數個數

$$shell指令碼的程序號,指令碼通常用它來生成乙個唯一的臨時檔案,如/tmp/tmpfile_$$

引數變數

引數變數

說明$1 ,$2....

指令碼程式的引數

$*在乙個變數中列出所有引數,各引數之間用環境變數ifs中第乙個字元分隔開

$@是$*的變體,它不使用ifs變數,即使ifs為空,引數也不會擠在一起

Linux 基礎學習篇筆記 Linux基礎知識

1.1根據書上寫的,原來linux的核心是被linus torvalds將unix核心刪減後改寫出來的呀。1.2kernel 核心,即控制硬體的東西。顯示影像的硬體時顯示卡和螢幕,連線internet的硬體組成時網絡卡,發出聲音的硬體時音效卡。控制這些硬體資源的工作狀態就是這個作業系統最底層的東西 ...

linux基礎 shell基礎程式設計

以檔案形式存放批量的linux命令集合,該檔案能被shell解釋執行,這種檔案就是shell指令碼程式。通常由一些linux命令,shell命令,注釋和控制語句構成 第一行 指定用哪個程式來編譯和執行指令碼 bin bush 或 bin sh注釋行 使用 號 變數名必須以字母或下劃線開頭,後面跟數字...

Linux系統基礎學習之shell及常用命令(二)

匹配 0 或多個字元 a b a與b之間可以有任意長度的任意字元,也可以乙個也沒有,如aabcb,axyzb,a012b,ab。匹配任意乙個字元 a?b a與b之間必須也只能有乙個字元,可以是任意字元,如aab,abb,acb,a0b。list 匹配 list 中的任意單一字元 a xyz b a與...