圖形化界面的Shell
幼稚園的小孩,可以面對圖形化界面的電腦,手持滑鼠,愉快的上網沖浪
字元型界面的Shell
計算機專業的新生面對的無界面的Linux,用vi編寫一個簡單的 Hello World
,都會感到吃力
什麼是Shell?
Shell是指使用者與計算機互動的界面,分為"圖形化Shell"與"字元型Shell",個人計算機主要使用圖形化的Shell,伺服器主要使用字元型的Shell
Linux的shell可以碾壓windows的指令行
為什麼有了圖形化界面,還要使用字元型界面?
- 對于鍵盤敲得賊6的程式員而言,字元型shell和圖形化shell差别不大
- 圖形化界面會消耗更多的資源,對伺服器而言,每一分資源都非常寶貴
- 伺服器要求穩定性高,圖形化界面更容易造成卡頓,會降低伺服器的穩定性
- 為了極緻的性能,專業的伺服器軟體,大多是沒有圖形化界面的
程式員眼中Shell的"三六九等"...
等級 | Shell分類 |
---|---|
第一梯隊 | zsh |
第二梯隊 | bash, sh |
第三梯隊 | Windows指令行 |
第四梯隊 | Ubuntu, Mac, Windows中的圖形化界面 |
Shell變量
系統變量(在系統環境中有效)
在,
zsh
中檢視系統變量
base
不同shell-檢視系統變量
env
内置變量(隻在特定Shell中有效)
在zsh的配置檔案中設定
.zshrc
export my_name=export zhaozhaoli="把快樂放大!"
shell配置檔案變量.jpg
重新開機zsh,檢視剛設定好的變量
本地變量
- 指令變量
- 普通變量
變量運算(100除以50等于2)
變量占位
Shell腳本
Shell腳本就是把指令按順序放到一起,然後一起執行.執行腳本的解釋器就是Shell,由于bash是大多數機器的标配,是以在腳本的首行一般加上來指明bash所在的位置,同時腳本用
#!/bin/base
作為字尾來表名自己的身份
.sh
- 以求1至1000内奇數和為例
奇數和
#!/bin/bash
# 求1000以内奇數之和
# 聲明求和的值
let sum=0
# 擷取1至1000的值并循環
for n in $(seq 1 1000)
do
# 如果為奇數則執行累加操作
if [ $((n%2)) == 1 ]
then
let sum=sum+n
fi
done
echo "1至1000以内奇數之和為:${sum}"
Shell注釋
#!/bin/bash
# shell腳本注釋的第一種方式:在行前加 --> # (單行注釋)
echo "shell腳本可以單行注釋"
:<<!
這裡是shell注釋的第二種方式!
Shell幾乎是和Unix作業系統一起誕生,第一個Unix Shell是肯·湯普遜(Ken Thompson)以Multics上的Shell為模範在1971年改寫而成,并命名Thompson sh。即便是後來流行的bash(shell的一種變體),它的年齡實際上比目前流行的所有的Linux kernel都大,可謂在Linux系統上是先有Shell再有Kernel
!
echo "shell腳本可以多行注釋"
Shell判斷
#!/bin/bash
echo "經典小程式:"
echo "---求三個數的最大值---"
read -p "請輸入第一個數:" n1
read -p "請輸入第二個數:" n2
read -p "請輸入第三個數:" n3
# 預設第一個值為最大值
let MAX=${n1}
# 将第一個值與第二個值判斷
if [ ${n2} -ge ${MAX} ]
then
# 如果第二個值大于等于最大值則第二值為最大值
MAX=${n2}
fi
# 将最大值與第三個值對比
if [ ${n3} -ge ${MAX} ]
then
# 如果第三個值大于等于最大值則第三個值為最大值
MAX=${n3}
fi
# 輸出最大值
echo "最大值為:${MAX}"
Shell循環
#!/bin/bash
# 暴力解高斯問題,求1至100以内的所有數和
let sum=0
for i in $(seq 1 100)
do
sum=$((sum+i))
done
echo "1至100以内所有數和${sum}"
Shell函數
#!/bin/bash
# 将三個數相加
three_add(){
let res=0
echo "腳本的名稱為$0"
echo "第一個參數為$1"
echo "第二個參數為$2"
echo "第三個參數為$3"
let res=$1+$2
let res=${res}+$3
echo "三個數之和為${res}"
}
# 調用函數
three_add 23 45 89