shell学习笔记01-0606

1、脚本的执行方法
[root@CENTOS8-2 data]# bash hello.sh 
Hello world!
[root@CENTOS8-2 data]# cat hello.sh |bash
Hello world!
[root@CENTOS8-2 data]# chmod +x hello.sh 
[root@CENTOS8-2 data]# /data/hello.sh 
Hello world!
[root@CENTOS8-2 data]# ./h
hanoi_tower_1.1.sh  hello.sh            hostping.sh         
[root@CENTOS8-2 data]# ./hello.sh 
Hello world!
远程执行
yum install httpd -y
systemctl httpd start
cp hello.sh /var/www/html/
curl -s http://127.0.0.1/hello.sh |bash
wget -qO - http://127.0.0.1/hello.sh |bash


2、备份脚本 #!/bin/bash COLOR="\033[1;32m" END="\033[0m" echo -e ${COLOR}Starting backup...${END} sleep 2 cp -av /etc/ /opt/etc`date +%F`/ echo -e ${COLOR}Starting fimished${END} 3、脚本检查
只检测脚本中的语法错误,无法检查出命令错误,但不执行脚本 bash
-n hello.sh 调试并执行 bash -x hello.sh 总结:脚本常见错误 语法错误:会导致后续的命令不继续执行,可以用bash -n检查错误 命令错误:默认后续的命令还会执行,用bash -n无法检查出来, 可以使用bash -x 进行观察 逻辑错误:只能用bash -x进行观察 4、变量的使用
变量赋值 直接引用:name
='root' 变量引用:name="$NAME" 命令引用:name=`COMMAND` 或 $(COMMAND) 变量引用 $name ${name} "$name" 弱引用 '$name' 强引用,变量不会被替换成变量值,保持原字符串 变量追加值 PATH+=":/data" [root@CENTOS8-2 data]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/data 利用变量实现动态命令 [root@CENTOS8-2 data]# CMD=hostname [root@CENTOS8-2 data]# $CMD CENTOS8-2 [root@CENTOS8-2 data]# echo $CMD hostname [root@CENTOS8-2 data]# CMD=`hostname` [root@CENTOS8-2 data]# echo $CMD CENTOS8-2 显示所有变量 set 删除变量 unset <name> 5、脚本练习
显示系统信息脚本 #
!/bin/bash RED="\e[1;31m" GREEN="echo -e \e[1;32m" END="\e[0m" $GREEN------------------------Host systeminfo----------------------$END echo -e "HOSENAME:$RED`hostname`$END" echo -e "IPADDR:$RED`ifconfig ens33 |grep -E "inet\b"|tr -s " " : |cut -d: -f3`$END"
#ifconfig ens33 |grep -Eo "([0-9]{1,3}.){3}[0-9]{1,3}" |head -n 1
echo -e "OSVERSION:$RED`cat /etc/redhat-release`$END" echo -e "KERNEL:$RED`uname -r`$END" echo -e "CPU:$RED`lscpu |grep "Model name" |tr -s " "|cut -d: -f2`$END" echo -e "MEMORY:$RED`free -h |grep "Mem" |tr -s " " :|cut -d: -f2`$END" echo -e "DISK:$RED`lsblk |grep -E "sda\b" |tr -s " " :|cut -d: -f5`$END" #lsblk |grep -E "^sda" |tr -s " " :|cut -d: -f5 $GREEN-------------------------------------------------------------$END [root@CENTOS8-2 data]# bash system_info.sh ------------------------Host systeminfo---------------------- HOSENAME:CENTOS8-2 IPADDR:10.0.0.204 OSVERSION:CentOS Linux release 8.1.1911 (Core) KERNEL:4.18.0-147.el8.x86_64 CPU: Intel(R) Core(TM) i5-9300H CPU @ 2.40GHz MEMORY:1.8Gi DISK:200G -------------------------------------------------------------

 

显示连接本机的每个远程主机的IP地址和连接数,并排序
[root@CENTOS8-2 ~]# last |grep -Eo "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}" |sort -nr |uniq -c 8 10.0.0.1 1 8 21:21:37 1 4.18.0-147

 

posted @ 2020-06-10 22:17  duanpeng123  阅读(114)  评论(0)    收藏  举报