CentOS8系統shell程式設計基礎

2021-10-07 05:56:50 字數 1987 閱讀 4153

1. 變數定義

name='user1'  #等號左右不能有空格
2. 輸出變數

echo $name

echo "my name is $" 

#在雙引號中,用${}來準確的指定變數名,這裡必須使用雙引號,因為單引號會將字串原封不動輸出。

3. 檔案測試

-d 測試是否為目錄(directory)

-e 測試目錄或檔案是否存在(exist)

-f 測試是否為檔案(file)

-l 測試是否為符合連線檔案(link)

4. 字串測試

= 字串內容相同

!= 字串內容不同

-z 字串為空

5. 數學測試

-eq 等於(equal)

-ne 不等於(not equal)

-gt 大於(greater than)

-lt 小於(less than)

-ge 大於或等於(greater or equal)

-le 小於或等於(less or equal)

6. 邏輯測試

&& 邏輯與

|| 邏輯或

!  邏輯否

7. 使用者互動

read -p 'please inpurt your name: ' name

echo $name

8. bash重定向

1)正確輸出 >

2)正確追加輸出 >>

3)錯誤輸出 2>

4)錯誤追加輸出 2>>

5)正確和錯誤輸出 &>

6)正確和錯誤追加輸出 &>>

7)將正確和錯誤資訊全部銷毀 &>/dev/null

shell程式設計案例

1)光碟掛載

#!/bin/bash

if [ ! -e /media/baseos ] #注意空格

then

mount /dev/cdrom /media &> /dev/null

echo 'cdrom is ok'

else

echo 'cdrom is ok'

fi

2)建立使用者

#!/bin/bash

read -p 'please input your name : ' name #最後乙個name是乙個變數名

if [ ! -z $name ]

then

read -p 'please input your password: ' pass

if [ ! -z $pass ]

then

useradd $name

echo $pass | passwd --stdin $name &> /dev/null

echo "your name is $, your password is $,create is ok"

else

echo 'pass is empty'

fielse

echo 'name is empty'

fi

3)記憶體判斷

#!/bin/bash

mem=`free -mh |grep 'mem'|awk ''`

if [ $mem -lt 400 ]

then

echo "mem is $, it < 400m"

else

echo "mem is $, it >= 400m"

fi

4)迴圈輸出

#!/bin/bash

for name in `cat /etc/passwd | awk -f: ''`

do    echo $name

sleep 1

done

CentOS 8系統時間校準

最近發現我的centos8總是出現時間不對勁,於是乎,去yum install ntpdate,發現竟然沒有這個包,如下圖一所示。以為自己忘了安裝epel源,奈何安裝後還是這樣,莫不是centos又公升級了?改了什麼東西?去了神通廣大的某搜尋平台萬里挑一發現了一篇可行的文章,告知centos8去掉了...

CentOS8系統目錄結構介紹

root ywops tree l 1 根目錄 bin usr bin 系統常用命令,如ls,mv,cat等 boot 系統啟動檔案 dev 裝置檔案 etc 系統配置檔案 home 普通使用者家目錄 lib usr lib 系統共享庫檔案,服務程式等 lib64 usr lib64 64位系統庫檔...

LINUX系統centos8搭建samba伺服器

實驗手冊 samba是在linux和unix系統上實現smb協議的乙個免費軟體,由伺服器及客戶端程式構成。smb server messages block,資訊服務塊 是一種在區域網上共享檔案和印表機的一種通訊協議,它為區域網內的不同計算機之間提供檔案及印表機等資源的共享服務。smb協議是客戶機 ...