Shell 指令碼 程式設計基礎 01

2021-10-06 11:41:23 字數 1961 閱讀 9154

1、編寫指令碼 systeminfo.sh,顯示當前主機系統資訊,包括主機名、ipv4 位址、作業系統版本、核心版本、cpu 型號、記憶體大小、硬碟大小;

#!/bin/bash

echo -e "hostname:\t `

hostname`"

echo -e "ipv4 address:\t `

hostname -i`

"echo -e "os version:\t `

cat /etc/redhat-release`

"echo -e "kernel version:\t `

uname -r`

"echo -e "cpu model:\t`lscpu |

grep

"model name"

|tr -s ' '

|cut -d : -f 2`

"echo -e "memory size:\t`lsmem |

grep

"total online"

|tr -s ' '

|cut -d: -f 2`

"echo -e "disk size:\t `lsblk |

sed -nr 's/^(sd[:alpha:]) .* ([0-9]+g) .*?/\1: \2/p'

`"

[yinxd@centos7 ~]$ ./systeminfo.sh

hostname: centos7

ipv4 address: 10.10.10.10

os version: centos linux release 7.7.1908 (core)

kernel version: 3.10.0-1062.el7.x86_64

cpu model: intel(r) pentium(r) cpu g3250 @ 3.20ghz

memory size: 2g

disk size: sda: 100g

2、編寫指令碼 backup.sh,可實現每日將/etc/目錄備份到 /backup/etcyyyy-mm-dd 中;
#!/bin/bash

date=

`date +%f`

sudo

mkdir -p /backup/etc$date

sudo

cp -a /etc/ /backup/etc$date

[yinxd@centos7 ~]$ ./backup.sh

[yinxd@centos7 ~]$ ls /backup/etc2020-05-25/

etc[yinxd@centos7 ~]$ sudo

du -sh /backup/etc2020-05-25/

42m /backup/etc2020-05-25/

3、編寫指令碼 disk.sh,顯示當前硬碟分割槽中空間利用率最大的值;
#!/bin/bashdf|

grep

'^/dev/'

|tr -s ' '

|cut -d' ' -f5 |

sort -nr |

head -1

[yinxd@centos7 ~]$ ./disk.sh

19%

4、編寫指令碼 links.sh,顯示正連線本主機的每個遠端主機的ipv4位址和連線數,並按連線數從大到小排序。
#!/bin/bash

netstat -nt |

sed -nr "s/^.* ([0-9.]):.*?/\1/p"

|sort

|uniq -c |

sort -nr

[yinxd@centos7 ~]$ ./links.sh

2 10.10.10.1

Shell指令碼程式設計01 基礎知識

shell指令碼與windows dos下的批處理相似,就是將各類命令預先放入到乙個檔案中,然後執行該檔案,便可以達到與批處理類似的功能,主要是方便管理員進行設定或者管理用的。換句話來說,shell指令碼是利用shell的功能所寫的乙個程式,這個程式使用純文字檔案,將一些shell的語法與指令寫在裡...

shell 程式設計 shell 指令碼基礎

shell 是乙個命令直譯器,它在作業系統的最外層,負責直接與使用者進行對話,把使用者的輸入解釋給作業系統,並處理各種各樣的作業系統的輸出結果,輸出到螢幕反饋給使用者。把 linux 命令或語句放在乙個檔案中,通過這個程式檔案去執行,這個程式為 shell 指令碼或 shell 程式 可以在指令碼中...

shell指令碼程式設計基礎

1.使用多個命令 2.建立shell指令碼檔案 shell指令碼中注釋一般以 開頭,shell指令碼不會處理注釋的行。但是,shell指令碼的第一行是例外。後的 會告訴shell用哪個shell來執行指令碼,shell會根據命令在檔案 現的先後順序進行處理。下面是建立指令碼名為demo的檔案。bin...