Linux Shell腳本_學習筆記1_自動化運維基石_寫第一支Shell腳本程式




Shell在英文意思是指  貝殼、(椰子的)外殼

Linux Shell

A linux shell is a special-purpose program designed to read commands typed by a user and execute appropriate programs in response to those commands.

是用來提供一種命令列介面(CLI / Common Line Interface)
供我們做一系列與系統操作相關的命令。

最早起源  1960年代  路易斯.普讚(Louis Pouzin) 這位法國人
他寫了一種程式 叫  "RunCom"

60年代那時 計算機電腦 操作是非常繁瑣的
透過其開發的此程式去簡化這些繁瑣操作

截自:  http://www.bogotobogo.com/Linux/linux_tips2_bash.php


Linux Shell  歷史與版本

第一個 --> 1971年 Bell Lab   Thompson shell : Unix Shell
第二個 --> 1978年 Bell Lab   Bourne shell   :Standard Unix Shell
Linux發行版默認shell --> Bash Shell (Bourne Again shell)
其他版本shell : ash , korn , tcsh , zsh , dash(ubuntu )


我們可透過  Shell 腳本去編寫自定義的命令列集
將手動操作程式自動化
自動去執行日常例行事務操作
來達到所謂日常系統自動化管理

==============================================================
在此我是用  CentOS  7  作業系統來演示
可以用  virtual box 自行去搭建學習環境

PART 1.生成一支shell script

Step1. 建立
於當前使用者家目錄底下
首先建立一個目錄名為 shellscript

使用  touch 去新建空文檔



Step2. 撰寫 (使用 nano / vim / gedit)

這裡使用  vim 去進行  shell script 的撰寫



那  vim 文檔名  進去後
在輸入  i   切換至  insert 模式(下方會顯示  insert 字眼)

輸入  hello world

由於我們要生成的是shell腳本因此
請修改輸入
於開頭部分多增加
#!/bin/bash

echo 我們想顯示的字群


按下  esc  跳出  insert mode


之後我們要存檔
shift 按著不放 
敲打輸入  冒號 :  然後 wq  --> 代表先寫入再關閉跳出
:wq


此時用  cat 查看確實有寫進檔案中


PART 2.執行shell script

那這時你可能會覺得  我是不是可以直接輸入此檔案名稱
他就能執行了呢

結果

由於  此時環境變數並未設置因此根本還不認得此檔案(指令)
因此請改成
./myShellScript
於當前所在目錄下的這份檔案

此時我們發覺有權限問題阻擋


因此可以嘗試 ll


預設生成的檔案  於 Linux發行版 CentOS

被定義為


1
-rw-rw-r--


Linux檔案中基本權限共有九個

分別是owner/group/others三種身份

各有各自的read/write/execute權限
r:4   w:2   x:1

所以透過  ll指令所看到的這串資訊

-rw-rw-r--

也等於   權限數字群模式下此結果
owner(user)      group         others
[4+2+0]           [4+2+0]    [4+0+0]   ---->   664

代表此時   user部分可讀也可寫但是不能執行

因此下指令
chmode u+x

我們對  user部份多增設  可以執行的權限設置




此時就會發覺已經變為  綠色  則代表
已轉為擁有可執行之權限


即可執行我們所撰寫的第一支  shell腳本



總結:
第一步  創建腳本空文件並編寫所想執行相關的命令集(腳本)
第二步  要修改權限  多添加執行權獻給 user(owner)



藉由上述我們已經有經驗

再多寫加法的shell script

touch 生成一個addScript

用vim去撰寫如下內容


記得開頭需有  #!/bin/bash
才可定義此份文件  為 Bash腳本型態

一樣記得改執行權限






這樣子我們就完成簡單的  shell script 腳本撰寫

這個工作中十分常會用到的技能基礎了












留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

Architecture(架構) 和 Framework(框架) 有何不同?_軟體設計前的事前規劃的藍圖概念

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題