一、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...