shell 脚本基础练习

  1. 编写脚本 sysinfo.sh,显示当前主机系统信息,包括:主机名,IPv4地址,操作系统版本,内核版 本,CPU型号,内存大小,硬盘大小

tr命令用于替换或删除字符。

cut命令用于从文件或标准输入中提取列

复制代码
[root@admin ~]# vim sysinfo.sh 
echo  -e  "hostname  \c"    // -e 解释转义字符 \c不换行下一个命令的结果会接着这一行输出
hostname                 //主机名
echo -e  "ip  \c"
ifconfig ens160 | grep mask | tr -s " " | awk -F " " '{print $2}'  
//tr  -s " " 把连续的空格压缩为单个空格
echo -e "os  \c"
cat /etc/redhat-release | awk -F " " '{printf $6}'
echo -e "kernel \c"
uname -a | awk -F " " '{print $3}'
echo    -e "cpu \c"
cat /proc/cpuinfo  | grep   "model name"  | cut -d " " -f4-  
//-d" "表示使用空格作为字段分隔符。-f4-表示提取从第4个字段开始直到结束。
echo -e "RAM \c "
free -h | grep ^Mem 
echo -e "disk size \c"
lsblk  | grep "^nvme0n1" | awk -F " " '{print$4}'

2、编写脚本 backup.sh,可实现每日将 /etc/ 目录备份到 /backup/etcYYYY-mm-dd中

复制代码
root@admin ~]# vim backup.sh 
dateback=$(date +%F)   //变量今天日期
back_dir="/backup/etc$dateback"     
mkdir -p $back_dir
tar -cvzf  "$back_dir/etc_backup_$dateback.tar.gz" /etc/
echo     "save a backup" 

sort用于对文本文件的行进行排序

  • -n:按数字顺序排序。

  • -r:反向排序(即从大到小或从 Z 到 A)。

  • -f:忽略大小写。

  • -k:按指定字段排序。

  • -t:指定字段分隔符。

  • -u:去除重复行。

3、编写脚本 disk.sh,显示当前硬盘分区中空间利用率最大的值

复制代码
df -h | awk '$NF {print $5}' | sort -nr | head -n 1     

4、 编写脚本 links.sh,显示正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从大到小排序

复制代码
netstat -tn | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr

uniq 命令通常与 sort 命令结合使用,因为 uniq 需要输入数据是已排序的才能正确工作。

  • -c 或 --count:在每行前加上该行在文件中出现的次数。

  • -d 或 --repeated:仅显示重复的行。

  • -u 或 --unique:仅显示不重复的行。

  • -i 或 --ignore-case:在比较行时忽略大小写。

  • -f 或 --skip-fields=N:忽略每行的前 N 个字段。

  • -s 或 --skip-chars=N:忽略每行的前 N 个字符。

  • -w 或 --check-chars=N:仅比较每行的前 N 个字符。

5、编写脚本 repo.sh ,搭建本地yum仓库,并安装软件测试

复制代码
tar -czvf /repo.bak.tar.gz /etc/yum.repos.d/*   //备份
rm -rf /etc/yum.repos.d/*
mount /dev/sr0 /mnt/
touch /etc/yum.repos.d/server.repo
cat  >  /etc/yum.repos.d/server.repo  <<EOF
[aa]
name=a
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1
[bb]
name=b
baseurl=file:///mnt/BaseOS
gpgcheck=0
enabled=1
EOF
yum clean all >> /dev/null && yum makecache  >>/dev/null
yum -y install net-tools
相关推荐
xiaoliuliu1234518 分钟前
Linux 手动装毕昇 bisheng-jdk-8u432-linux-aarch64.tar.gz
linux
科技研学社29 分钟前
服装自动化产线品质管控:机器能降不良,但不能自动兜底
运维·自动化
wespaul31 分钟前
VeapAI 自然语言操作实战|第 07 篇:执行层——编排引擎与全局语义命令
服务器·人工智能·milvus
lambo mercy39 分钟前
Day4:流式传输
运维·服务器·网络
狂奔的sherry40 分钟前
JRuby 多线程反引号偶发 127:GC 提前释放了 posix_spawn 的 argv
java·linux·ruby·gc·jruby
I'm Jie1 小时前
Rhost v2.0.0 版本发布!!!不止 SSH 终端,内置 AI Agent 支持自然语言操作远程服务器
运维·服务器·rust·开源·ssh·tauri·finalshell
海宇服务1 小时前
零信任架构实战:基于海宇公安二要素认证即时版构建自动化跨境个人额度申报实名网关
运维·人工智能·架构·自动化
广州灵眸科技有限公司1 小时前
瑞芯微(EASY EAI)RV1126B DeepSeek R1部署教程
linux·数据库·yolo
Spatial3Ddddd1 小时前
2026空间三维重建服务商横向对比
java·服务器·人工智能
沙老师1 小时前
linux比windows死板的地方
linux·运维·windows