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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/1598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 安装openjdk-1.8

安装命令 yum install java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64查看安装路径 find / -name java 默认的安装路径 /usr/lib/jvm 查看到jre 以及java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 配置环境变量 vim /etc/profile 添加的内容 export JAVA_HOME/usr/li…

每日一题:地下城游戏

恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0…

基于非线性控制策略的电力电子电路——DC-DC电路的3种滑模控制器【MATLAB/simulink】

第一种&#xff0c;滞环滑模控制器Buck电路 在滑模控制系统中&#xff0c;采用滞环技术&#xff0c;直接将切换函数转换成开关控制信号&#xff0c;滞环技术被看做一种降低系统结构的切换频率的调制方法&#xff0c;业界也把基于滞环滑模技术实现的滑模控制称为直接滑模控制技…

分类网络总结

欢迎大家订阅我的专栏一起学习共同进步&#xff0c;主要针对25届应届毕业生 祝大家早日拿到offer&#xff01; lets go http://t.csdnimg.cn/dfcH3 目录 4. 经典分类网络与发展 4.1 AlexNet 4.2 VGGNet 4.3 GoogLeNet Inception 4.4 ResNet 4.5 DenseNet 4.6 MobileN…

Python基础04-操作系统中的文件与目录操作

在与操作系统交互时&#xff0c;我们经常需要执行文件和目录的操作。Python提供了丰富的库来帮助我们完成这些任务。以下是一些常见的操作&#xff0c;以及如何使用Python代码来实现它们。 1. 导航文件路径 在不同的操作系统中&#xff0c;文件路径的格式可能不同。Python的o…

提取出图像的感兴趣区域

这是我们的原图像 将图像的数值统计后进行条形图展示 import matplotlib.pyplot as plt from PIL import Image import numpy as np# 图像路径 image_path r"D:\My Data\Figure\OIP.jpg"# 打开图像 image Image.open(image_path)# 将图像转换为numpy数组 image_ar…

关于实验报告添加题注为0以及页面断层的解决办法

1.事情起源于最近在写实验报告和课设说明书时出现图的题注是图0-1等不遵循设置的章节标号&#xff0c;于是我在查询和个人尝试后发现必须设置多级编号并且自定义设置对应的样式为标题几 另外注意设置后必须题注也要设置对应的样式&#xff0c;否则还是0-1&#xff0c;不用编辑域…

鸿蒙应用开发之Web组件4

前面学习了Web组件加载本地的文件数据,这样很方便不需要网络的界面显示,或者提示类的界面,比如软件使用说明书,又比如软件使用协议,又或者固定显示的长文本数据。如果有多个文件,也可以通过按钮来切换不同的文件显示。 如果文本比较短小的HTML数据,放到文件里,再通过文…

全球30米100%水陆覆盖高程

数据是GIS的血液。 熟悉水经注的朋友都应该知道&#xff0c;我们可以为大家提供全球30米和全球12.5米的高程数据&#xff0c;但这两种数据都无法达到全球覆盖。 你可以从《40TB全球12.5米高程DEM原始数据》与《700G全球30米高程DEM原始数据》等文中了解这两种数据的详细说明。…

git简介及安装

Git | Git简介与安装 文章目录 Git | Git简介与安装一、Git简介二、Git安装Linux-centosLinux-ubuntu 一、Git简介 存在需求&#xff1a;对于一个文档&#xff0c;由于编写思路或者当前文档丢失&#xff0c;可能存在想要历史版本的需求&#xff0c;并且需要知道每个版本都修改了…

忘记宝塔账号密码 如何解决

cd /www/server/panel && btpython tools.py panel testpasswd参考 https://www.bt.cn/bbs/thread-1172-1-1.html

(C++) 树状数组

目录 一、介绍 二、一维树状数组 2.1 区间长度 2.2 前驱和后继 2.3 查询前缀和 2.4 点更新 三、一维数组的实现 3.1 区间长度函数 3.2 前缀和 3.3 插入/更新 3.4 封装成类 一、介绍 树状数组&#xff08;Binary Indexed Tree&#xff0c;BIT&#xff09;&#xff0c;又称为 …

39. UE5 RPG角色释放技能时转向目标方向

在上一篇&#xff0c;我们实现了火球术可以向目标方向发射&#xff0c;并且还可以按住Shift选择方向进行攻击。技能的问题解决&#xff0c;现在人物释放技能时&#xff0c;无法朝向目标方向&#xff0c;接下来我们解决人物的问题。 实现思路&#xff1a; 我们将使用一个官方的…

大一考核题解

在本篇中&#xff0c;将尽力使用多种解法&#xff0c;来达到一题多练的效果。 1&#xff1a; 1.原题链接&#xff1a; 238. 除自身以外数组的乘积 - 力扣&#xff08;LeetCode&#xff09; 这道题首先一眼肯定想到拿整体的积除以当前元素&#xff0c;将结果作为ans&#xff0c;…

Redis的主从复制

引入&#xff1a;分布是系统涉及到一个非常关键的问题&#xff1a;单点问题&#xff08;如果摸个服务器程序&#xff0c;只有一个节点&#xff08;只搞一个物理服务器&#xff0c;来部署这个服务器程序&#xff09;会出现&#xff1a; 1.可用性问题&#xff0c;如果这个机器挂…

轧铝机液压站比例阀控制器

轧铝机液压站是用于铝材轧制过程中提供动力和控制的系统&#xff0c;它对于确保铝材的质量至关重要。轧铝机液压站通常包含以下几个关键组成部分&#xff1a; 液压泵&#xff1a;为系统提供压力油&#xff0c;是液压系统的动力源。 控制阀组&#xff1a;包括方向控制阀、压力控…

由于磁盘空间不够导致服务无法访问的情况

昨天服务出现了一些“小状况”&#xff0c;这里做下记录&#xff0c;为了以后类似的问题&#xff0c;可以作为参考。 具体情况是&#xff0c;如下&#xff1a; 本来一直访问都好好的服务突然间访问不到了&#xff0c;首先确定了下服务器上的 docker 服务是否正常运行。确认正…

【触摸案例-触摸事件介绍 Objective-C语言】

一、触摸事件 1.接下来,我们来说这个,触摸事件, iOS当中的事件,可以分为三大类: 1)触摸事件 2)加速计事件 3)远程控制事件 事件呢,这个里面呢,使用app的过程当中呢,产生各种各样的事件,事件呢,分为三大类,在iOS里边儿啊,分为三大类,首先,有一个叫做触摸事…

MATLAB基础应用精讲-【数模应用】SPSS分类汇总(附MATLAB和python代码实现)

目录 SPSS分类汇总 spss分类汇总怎么操作 更多高级的分类汇总方法 SPSSRO分类汇总

MySQL中的“IS NULL”优化

MySQL中的“IS NULL”优化 在MySQL数据库中&#xff0c;查询性能的优化是保持应用高效运行的关键。一个常见的情况是处理空值&#xff08;NULL&#xff09;&#xff0c;尤其是在查询条件中使用IS NULL时。 理解IS NULL 在MySQL中&#xff0c;IS NULL运算符用于检查列中的值是…