shell 指令碼學習筆記(一)

2021-07-02 02:57:18 字數 2483 閱讀 1861

一、the first sh --hello.sh

shell指令碼能提高使用者操作和管理員進行系統管理的效率,一般步驟

1.編輯器編寫指令碼程式

2.shell做解釋程式,非互動地執行指令碼,兩種執行方式:

3.用sh命令執行指令碼檔案

4.給指令碼檔案新增執行許可權,用./命令執行

1、shell的基本元素

(1) #!/bin/bash 必須的,指出shell的型別

(2)# 注釋

(3)變數

(4)控制

一般步驟:

(1)編輯檔案

(2)儲存檔案

(3)將檔案賦予可執行的許可權  chmod 755 run.sh 、 chmod u+x run.sh

(4)執行及排錯   執行 ./hello.sh 、 sh hello.sh(不要求執行許可權)

乙個shell指令碼

vi hello.sh

i#!/bin/bash

# this is hello world

echo "hello world "

echo "my shell"

:wqsh hello.sh

二、vi 模式下操作命令

1.常用

從命令模式轉入編輯模式

o: 在游標所在行上方新增一列並進入輸入模式。

冒號進命令列模式  :

:q! 不存檔強制退出。

:w 儲存但不退出,w(rite)後可加所要存檔的文件名。

:wq 存檔後退出。

游標移動       o 、s  移動該行首\末

h、j、k、l(n) 左下上右(n)

ctrl+b\f         向前\後翻一頁

h、m、l      移到視窗第一行、中間行、最後一行

g、ng          移至檔案最後一行、移至檔案第n行

2.刪除與修改

x: 刪除游標所在字元   eg   x、3x

dw 刪除乙個單詞·                dw 、3dw

dd :刪除游標所在的行

s:刪除游標所在位元組,並進入輸入模式 s:刪除游標所在行

複製命令:y

yy: 複製整行

yw:複製游標所在的單詞

nyw:複製包括游標所在的n個單詞

nyy:複製包括當前行在內的n行

貼上命令p

3.查詢替換

set nu 『顯示行號

查詢且替換

:%s  /search /replace

把文件中所有search替換成replace;

:#,#  s /search /replace /g

#號表示數字,表示從多少行到多少行,把search替換成replace;

:s  /search /replace /g

把當前游標所在行中的search單詞,替換成replace,並把所有search高亮顯示

:/,? 取消選中顏色

eg  將 2 到 10 行之間的 is 改為 are    :2,10s/is/are/g

三、shell中的特殊符號

1、注釋符# 

除了#!/bin/bash裡的#特殊

2、美元符 $

變數符。與反斜槓轉義符相反,使其後的普通字元作為變數名,如$a表示變數a的值。變數字元長度超過1個時,用{}括起來

3、單引號

被引起的字元全部做普通字元,即全部原樣

echo 『my $shell』

4、雙引號

引號內的內容,除$、轉義符\、倒引號`這三個保留特殊功能,其他字元均做普通字元。

5、倒引號(數字1鍵旁邊的那個鍵)

引號內的字串當做shell命令列解釋執行,得到的結果取代整個倒引號括起來的部分

3、內部變數

內部變數是linux所提供的一種特殊型別的變數,這類變數在程式中用來作出判斷。在shell程式內這類變數的值是不能修改的。

部分內部變數是:

$# ——傳送給shell程式的位置引數的數量

$?——最後命令的完成碼或者在shell程式內部執行的shell程式(返回值)

$0——shell程式的名稱

$*——呼叫shell程式時所傳送的全部引數的單字串, 「引數1」「引數2」…形式儲存的引數

$@ 「引數1」「引數2」…形式儲存的引數

$n 第n個引數

$$ 本程式的pid

shell指令碼學習筆記

學習筆記 1,檔案名字命名為 sh,字尾sh表明這是乙個bash指令碼檔案 2,shell指令碼的第一行如下 bin sh bin sh告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的shell程式 3,寫完指令碼後儲存檔案,然後將檔案變成可執行檔案 chmod x test.sh 4,以下是乙個...

Shell指令碼學習筆記

find 命令 1.基於檔名或者正規表示式搜尋 例子 匹配多個條件 find name txt o name pdf print 找到當前目錄中所有txt pdf檔案輸出 加 o 表示or條件 將中間部分視為乙個整體 find regex py sh regex 基於正規表示式匹配 2.基於目錄深度...

Shell指令碼 學習筆記

編寫輸出hello world的程式是入門的第一步 1.vim helloworld.sh 2.輸入 i 進入插入模式 開始寫指令碼 bin sh echo hello world 3.執行shell指令碼 chmod 0777 helloworld.sh 賦予執行許可權 helloworld.sh...