[ -d target ] target 是否是 目錄$*
輸入了什麼引數
$#
輸入了多少個引數
$1
輸入的第乙個引數,依此類推,直到 $9
$?
上一次的執行結果
$*
為」1 2 3」(一起被引號包住)
$@
為」1」 「2」 「3」(分別被包住)
$#
為3(引數數量)
[ -f target ] 是否是檔案
[ -e target ] 是否存在(目錄和檔案都適用)
[ -x target ] 可執行檔案
[ -n 「target」 ] 是否不為null(non-zero),用雙引號把變數名包起來[ -z 「target」 ] 字串是否為空(zero),用雙引號把變數名包起來
詳情 見man test
//變數賦值時,」=」 左右兩邊不能有空格
age=30
if [ $ -ge 20]
then
echo「age is bigger than 20」
else
echo「age is less than 20」
fi// ---others-----
–eq(equals)
–ne(not equal)
-gt( greater than)
-lt(lessthan)
-ge(greater or equal than)
-le(less than or equal )
eg:
bootpercent= df –ht | grep 「sda1」 | awk 「」 | cut –d "%" –f1
if [$bootpercent –ge 80 ];then
echo
"percent is bigger than 80,warning!!!"
else
echo
"percent is less than 80"
fi
```bash
# "=" 需要空格
[ str1= str2 ]
# str 是否為空
[ -z str ]
```
&& ||if
if [ $age–ge 30 ];then
echo
"great than 30"
elif [ $age –ge 40 ];then
echo 「great then
40」 else
echo 「50」
fi
case
#`` 裡面是命令:今天週幾
week= `date +%w`
case
$week
in :
start):
echo「start」
;;stop):
echo「stop」
;;*):
echo 「other」
;;esac
while
num=3
while [ $num –ge 0 ]
doecho
$num
num=$(($num-1)) # 『=』左邊的num不需要$ ?
done
echo
$num
for
for i in ` cat /var/user.txt`
doecho
$iecho123 | passwd –stdin $i
done
num=0
while [ $#
-gt0 ]
do num=$((num+ $1))
shift
done
echo
$num
find/etc/ -perm 755 –type f
# 跟find /etc –perm 755 | find –type f 不是一樣,切記
find /etc –user root
find /etc –iname 'user*' | xargs rm –f
# $0->整行,$1->第一列
# nr(number row):行號
# nf(number field):列號
cat/etc/passwd | awk –f ":"
'' ->列印第三行的第乙個和第四個字段
cat/etc/passwd | awk –f 'end' ->總共多少行
cat/etc/passwd | awk –f 『end』 ->總共多少列
cat/etc/passwd | awk –f 「:」 『}』
cat/etc/passwd | awk 『$1 ~/192.168.10.1/ 』 -> ~ 匹配,!~ 不匹配
# p -> print, d-> delete
cat/etc/passwd | sed –n '5'p –> 列印第五行
cat/etc/passwd | sed '3,6'd -> 列印刪除3-6行之後的內容
cat/etc/passwd | sed '/bash/' p -> 列印匹配bash 的行
cat/etc/passwd | sed –n '1,/sync/'p -> 列印第一行到匹配sync的行
cat/etc/passwd | sed –n '/root/,$'p -> 列印從匹配root 到結尾的所有行
cat/etc/passwd | sed –n '3'p | awk –f ":"
'' –> 39%
cat/etc/passwd | sed –n '3'p | awk –f ":"
'' –> 39
uniq–c #統計連續的次數
catfile | sort –t: -k1 –r # 以:為分隔符,取第一列,倒序排列
grub 引導介面
識別硬體
初始化驅動
進入歡迎介面
設定時鐘
設定主機名
掛載檔案系統
掛載光碟機
進入3級別
啟動虛擬記憶體
設定磁碟陣列
設定防火牆
檢測硬體變化
啟動網路服務
啟動3級別中允許啟動的程序(/etc/rc.d/rc3.d中以s開頭的服務名,s99以後就是登陸介面了)
進入登陸介面
檢視sshd 服務在所有級別下的開關狀態0
: halt
1
: singlemode user
2
: multiuser without nfs
3
: full multiuser
4
: unused
5
: x11 ( 3 with 圖形介面)
6
: reboot (所以,重啟的話reboot,還可以 init 6)檢視執行級別 runlevel
chkconfig –list sshd
sshd 在 3 級別下開啟/關閉
chkconfig –level 3 sshd on/off
將自己的服務指令碼改造成標準的rpm指令碼
cp sshd /etc/init.d
在 *** 中新增:
#chkconfig:2345 90 20
(90為開機的順序,20為關機的順序,數值越大,優先順序越高,自定義的指令碼開機應較晚5,關機較早)
#descrption: *** server daemon
通過service 把自定義指令碼進行開啟和關閉
service *** start|stop|restart
通過chkconfig把自定義指令碼設定為開機啟動
chkconfig *** on/off
menu.sh
# cat 的 heredoc使用方法
# cat << eof
aaaaaaaaaaaaaa
bbbbbbbbbbbbb
cccccccccccccccc
eof
# 引用 menu.sh
. menu.sh
# \033[ 設定顏色的標誌,30 前底色,47 背景色,0m 還原
echo –e "\033[30;47m $str \033[0m"
bash指令碼基礎
shell 指令碼 一 如何建立新shell指令碼?1.建立包含bash命令的文字檔案。檔案第一行應為 bin bash 2.使檔案可執行 使用chmod x scripts 3.將檔案放置在使用者的 path的目錄中 bin 用於使用者的私有程式 usr local bin 本地開發 系統上的其他...
Bash 指令碼除錯
大神 bash是unix linux作業系統最常用的shell之一,它非常靈活,和awk c 配合起來異常強大 以下使用乙個測試指令碼來說明使用bash除錯的方法 test.sh bin bash echo begin awk end test.sh max 3 for i 0 i max i do...
bash指令碼基礎
新建bash指令碼 vim hello.sh bin bash echo hello world bin bash 在 bash 中 第一行的 及後面的 bin bash 就表明該檔案是乙個 bash 程式,需要由 bin 目錄下的 bash 程式來解釋執行。bash 這個程式一般是存放在 bin ...