Shell入門程式設計(一)

2021-09-28 19:30:44 字數 3117 閱讀 2255

class=「creativecommons」>

href=「

rel=「license」>

class=「article-source-link2222」>

href=「>

class=「markdown_views prism-github-gist」

id=「content_views」>

shell 有多個版本:bourne shell,c shell,korn shell,bash shell。現在廣泛使用的是bash shell,也就是 linux 中缺省內嵌的 shell。

互動模式

當我們通過遠端連線工具連線到了 linux 伺服器或者是虛擬機器上時,就是進入了 shell 互動模式:

指令碼模式

將要執行的一系列命令都存放在乙個檔案中,然後由 bash shell 讀取並執行,這就是 shell 的指令碼模式:

解釋一下上面的 test.sh 檔案的內容:

第一行:#!/bin/bash#!標示這是乙個可以執行的指令碼(最好寫上),/bin/bash標示這個指令碼是用該直譯器來進行的解釋。

第二行:# this is test,以#開頭的一般是注釋。

第三行:echo "hello world",向控制台輸出 hello world。

當前目錄下:bash test.sh

其他目錄下:bash /root/test.sh(絕對路徑)

在指令碼第一行新增#!/bin/bash

給指令碼的擁有者新增x可執行) 許可權chmod 744

直接在命令列輸入:./test.sh

以字母或下劃線開頭,後可以跟字母數字下劃線,區分大小寫。

直接「變數名=變數值」即可。

在 shell 中,直接通過變數名是獲取不到變數值的,需要在變數前加$符號,更加嚴謹的做法是加${}

在某個 shell 中宣告的變數,在其他的 shell 中獲取不到。(不同的 shell 就是不同的命令列視窗

作用於所有 shell(命令列視窗)的變數。

一些預設的環境變數如下:

bash:使用的 shell 直譯器的位置。

bash_version:shell 直譯器的版本。

uid:當前使用者的 id。

hostname:主機名。

lang:系統使用的語言。

path:該變數裡配置的路徑下的檔案可以直接執行。

unset aa:取消定義好的 aa 變數。

shell中有一些預先定義的特殊唯讀變數,他們的值只有在指令碼執行時才能確定,位置引數就是其中的一種,$0代表指令碼本身,$1代表第乙個引數,依次類推。

在shell中,任何乙個命令執行過後都會有乙個返回值,這個返回值會指示上個命令的執行狀態,通過返回值就可以知道上乙個命令是否正確執行。

命令分兩種:可執行檔案+內建命令

shell內建命令,就是由 bash 自身提供的命令,而不是其他地方提供的可執行檔案。

常用的一些內建命令:

type:判斷乙個命令是不是內建命令。

alias:為命令起別名。

unalias:刪除別名。

jobs:檢視後台的任務。

bg:把任務放在後台繼續執行。

fg:把任務放到前台執行。

ctrl + z:把任務暫停,放到後台。

echo:顯示某個變數的值。

exit:當前使用者退出系統。

export:將某個變數匯出為環境變數。

kill:殺掉某個程序。

pwd:列印當前所在的目錄。

shell程式設計入門(一)

shell程式設計簡介 在linux系統中,雖然有各種各樣的圖形化介面工具,但是shell仍然是乙個非常靈活的工具。shell不僅僅是命令的收集,而且是一門非常棒的程式語言。我們可以通過使用shell使大量的任務自動化,shell特別擅長系統管理任務,尤其適合那些易用性 可維護性和便攜性比效率更重要...

Shell指令碼程式設計入門(一)

最近在學shell,記錄一下。if語句的使用 1.判斷兩個引數大小 bin sh a test about if statement a 10 b 20 if a eq b then echo parameter a is equal to parameter b elif a le b then ...

shell程式設計入門

shell指令碼程式不是複雜的程式,它是按行解釋的。指令碼程式總是以 bin sh 開始,它通知shell使用系統上的bourne shell直譯器。其中 符號是注釋。指令碼程式是從上到下執行的,執行指令碼前需要改變該指令碼程式的執行許可權。確保正確建立指令碼例徑,只有 這樣,指令碼程式才能正確執行...