shell的簡單編寫及執行

2021-09-21 00:07:15 字數 2342 閱讀 3958

sell指令碼:

1.新建檔案(副檔名.sh)

2.寫**

3.給許可權,執行(x執行,絕對路徑,相對路徑<./test.sh /root/test.sh>)

vim a.sh

#!/bin/bash(直譯器是誰)

例:

vima

.sh

#!/bin/bash(hello word)

echo "hello word"

chmod +x a.sh 

bash a.sh

hello word

yum自動搭建的指令碼:

#!/bin/bash(搭建yum倉庫)

echo "正在配置yum源..."

rm -rf /etc/yum.repos.d/*

echo "[***]

name=***

enabled=1

gpgcheck=0

baseurl=" >/etc/yum.reopos.d/***.repo

yum clean all &> /dev/null

echo "yum源配置完成"

echo "yum源軟體包數量:"

yum repolist | tail -1

裝ftp

#!/bin/bash(安裝vsftpd軟體包)

yum -y install vsftpd

systemctl restart vsftpd

systemctl enable vsftpd

執行方式 ./1.sh /root/1.sh 

指令碼沒有許可權直接利用直譯器 (ksh、sh)bash 1.sh 也是可以執行的 (以上執行的都是開啟子程序的執行指令碼)

指令碼沒有許可權source 1.sh 也可以執行指令碼(但是不開啟子程序)《一般很少用特例如exit>

shell變數定義/賦值/檢視:

自定義變數: 由數字、字母、符號組成不能以數字開頭

a="值" 

echo $變數

呼叫變數有時候存在歧義需要加{}

a=11

echo $armb (輸出沒有,沒有該變數)

echo $rmb

unset $a 撤銷變數a(一般用不到)

系統定義變數

pash,home,user,uid,hostname

ps1一級提示符,ps2二級提示符

#!/bin/bash

echo $0輸出指令碼名稱

echo $1在執行指令碼輸出後面的第乙個引數

echo $2在執行指令碼輸出後面的第二個引數

echo $3在執行指令碼輸出後面的第三個引數

(..............)

echo $*輸出所有的引數

echo $#輸出所有的綜合引數的個數

echo $$輸出pid數值

echo $?檢視上一命令執行成功沒有輸出為0執行成功其他數字都錯

$! chakanzuihou de yige jincheng de pid hao

例:(建立使用者與設定密碼)

#!/bin/bash

useradd $1

echo $2 | passwd --stdin $1

#!/bin/bash

read -p 「請輸入使用者名稱:」 name

stty -echo

read -p 「請輸入密碼:」 pass

stty echo

uaseradd $name

echo $pass | passwd --stdin $name

stty (-)echo 回顯 (關閉)開啟

在shell中三種引號對賦值的影響(雙引號」 」、單引號』 』、反撇號`)

雙引號 」 」 可以界定乙個完整的字串

echo a b

echo 「a b」

單引號 『 』 界定乙個完整的字串,遮蔽特殊符號即取消特殊符號的含義

echo $a

echo 『$a』

反撇號、 $( ) 其中只可以放命令,提取的是命令的結果

每週五備份/var/log,使用tar ,備份到root

crontab -e

03 03 * * 5 tar -czf /root/logdate +%f`.tar.gz /var/log 

每週五三點三分

export 把變數發布為全域性模式的變數

變數分為: 區域性變數(自定義預設)

全域性變數(系統變數)

a=11

export a (a變數成為全域性變數所有程序下都可以輸出a的值)

簡單的shell指令碼編寫和執行

vi shell.sh 1 bin bash 這裡不是注釋,這句話的作用是標註接下來寫的內容是shell指令碼,不可省略 2 author pingfanzzz 3 4 5 echo this is my first shell script wq儲存退出後修改許可權 chmod 755 shell...

簡單的shell指令碼及執行

which命令 查詢命令的完整路徑 具體功能 which命令用於查詢並顯示給定命令的絕對路徑,環境變數 path中儲存了查詢命令時需要遍歷的目錄。which指令會在環境變數 path設定的目錄裡查詢符合條件的檔案。使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪乙個位置的命令。...

編寫簡單shell

shell英文翻譯為外殼,殼的意思 而在linux作業系統中,我們將它作為作業系統的外殼來理解。對shell工作原理的感性認識,shell在執行指令時,看似執行指令,實際是建立了shell的子程序來代替父程序shell來執行指令,此時子程序執行指令並不是shell的指令,而是乙個全新的指令。這裡就運...