Linux Shell程式設計一

2021-09-08 15:07:21 字數 3047 閱讀 2212

互動模式

--當shell收到使用者輸入命令後,就開始執行這項命令,並把結果顯示到螢幕上,結束後shell又會顯示系統提示符,等待使用者輸入下一條命令。

後台執行

--後台執行的符號為"

&",在命令後面加上"

&"符號,就可以將程式放到後台執行。例如:"

top&

"--在後台執行的程式怎麼使它恢復到前台來執行呢?執行fg命令,注意當有多個程式在後台的時候,fg只能將最近開啟的程式恢復到前台。

--程式已經在前台執行,執行ctrl+z就可以放入後台。

--如果有多個程序在後台執行,執行jobs命令,能夠列出所有在後台執行的程序,那個中括號()裡面的數字就是jobs的代號,

通過fg %number 就可以恢復指定的後台程序,

注意:命令列

"fg 1"和命令列"fg %1"都可以將編號為1的shell程式恢復到前台 。

輸入輸出重定向

--通過重定向符"

>""

<

"將標準輸入輸出重定向

--例如:"

ls > a.txt

"將ls命令列的結果重定向到a.txt檔案中。

管道--通過管道符號"|"

完成一系列命令的順序處理。

--例如:"

ls -l |grep s

" 將"

ls -l

"輸出的結果作為命令"

grep s

"的輸入

--管道的輸入,如果是c語言程式,那麼管道會以c語言函式的printf()的輸出作為管道下乙個命令的輸入

萬用字元--萬用字元的作用是在處理檔案的時候用萬用字元模糊匹配乙個或多個字元

環境變數

--shell是個龐大的程式,為了使用工作環境符合使用者的習慣或者應用的需要,可以讓使用者自行設定shell使用環境。

shell script(shell 指令碼)

--shell最重要也是最負責的就是shell script 。shell除了解釋命令以外還有重要的功能就是程式語言,

可以通過shell script進行程式設計,完成更加複雜的功能。

shell變數

變數分為預定義變數和環境變數

--預定義變數:通常是使用者自行定義的特殊使用者變數,有效返回限於定義變數的script中。

定義預定義變數的方法

語法:varname=value

在shell中定義變數很簡單,不需要定義變數型別,只需要用"=

"給變數賦值即可。

變數名稱與等號之間不能有空格,不要以

";"結尾,否則shell會認為是錯誤的命令

使用變數的值,只需要在變數前加"$

",一般用於將變數輸出為字串,在shell中賦值操作仍然可以使用varname=

value,shell中的變數都是全域性變數,不屬於單個函式或者語句。

set:檢視那所有已經設定的變數

unset varname:刪除設定的變數

設定環境變數使用export命令

語法:export varname=value

env:顯示當前環境變數

export -n var name :刪除設定的環境變數

環境變數的作用域

--在.bash_profile中定義的變數在使用者登入後一直有效。

--在普通指令碼檔案中定義的變數只在指令碼內有效。

幾個常用的環境變數

pwd 顯示當前路徑

uid 使用者id

bash_version bash的版本

hosttype 顯示計算機平台

ostype 顯示作業系統種類

path 系統命令,檔案查詢路徑

home 使用者的home目錄

bash設定檔案

--/etc/profile

這是系統的shell設定檔案,使用者可以將系統做重要的環境變數定義到這個檔案中。

每次登陸的時候bash都會讀這個檔案

--~/.bash_profile

是使用者個人的bash設定檔案,使用者登入的時候bash就會讀取該使用者目錄下的.bash_file檔案

--~/.bashrc

每次啟動shell時候都會讀取這個檔案

shell檔案中,以"

#"開頭的行代表注釋,但是第一行的"#!"

表示指定乙個解析shell命令的程式

字串前面加"$

"代表他是乙個變數的值,不可以做賦值用。

--如果"$"

後面是數字,表示是第幾個引數(引數可以是使用者輸入,或者通過管道獲取,或者函式傳參)

--$1代表第乙個引數,$2代表第二個引數,$0代表命令本身

引數詳細說明

$i 代表第i個引數

$# 代表引數個數

$*代表所有引數

$?上乙個命令的返回值

關鍵字echo後面**是執行語句,也會當字串處理,除非使用``兩個反單引號括起來。

shell語法中,變數間的賦值語句必須這麼寫 a

=$b; 錯誤寫法 a=

b;shell語法中,只有變數的賦值語句中間不可以加空格,其他的語句中間必須加空格

shift語句

$i只能提供0到9這10個資料引數,那麼超過10個怎麼辦呢?

shift能使引用數移位,如果就可以將引用過的引數移掉,把位置留給下乙個引數。

linux shell程式設計一

一 shell 是linux核心與使用者應用的溝通介面,相當於下面的ui部分 二 shell有很多種,常用的是bash sh,csh,ksh,bash,三 shell指令碼就是shell命令的集合 四 變數賦值中不能有空格,如 bin bash 1 2 3 100 sum 0 for i 1 i 1...

Linux Shell程式設計 一

bin bash echo hello world 定義自己的環境變數 tomecat home opt tomcat 輸出變數 export tomcat home echo 程序號 後台方式執行positionpara.sh positionpara.sh echo 最後乙個程序號 echo 執...

linux shell程式設計(一)

如果直接使用檔案路徑,如果沒有x許可權會提示許可權不夠 test.sh 使用bash或者sh直譯器不需要獲取執行許可權 bash test.sh sh test.sh 上面幾種方式都是通過開啟子程序的方式來啟動的bash 通過pstree命令可以檢視到程序樹 都是在bash終端下開啟了乙個子程序 b...