Shell编程(一)
案例子任务一、编写登录欢迎脚本welcome.sh
要求:在用户目录/root下编写存储welcome.sh脚本,赋予执行权限,并在~/.bash_profile中调用该脚本,使得在用户登录时显示欢迎信息
#!/bin/sh
#执行whoami命令获取当前登录用户名并保存到username中
username="$(whoami)"
#执行下面带有正则的嵌套语句获取当前登录的IP地址并保存到useip中
useip="$(ifconfig -a|grep -o -e 'inet
[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}'|grep -v "127.0.0"|awk '{print $2}')"
echo -e " "
echo -e "+----------------------------------------------------------------------------------+"
echo -e " Welcome $username"
echo -e "+----------------------------------------------------------------------------------+"
#由于得到的IP可能不唯一,要进行遍历显示
for i in $useip
do
echo -e "IP : $i"
done
#输出得出的用户名,日期,更新时间,版本信息
echo -e "User : $username"
echo -e "Date : "$(date)
echo -e "Update : "$(uptime)
echo -e "Version: "$(uname -a)
echo -e "+----------------------------------------------------------------------------------+"
echo -e " "
案例子任务二 编写status、 start、stop脚本管理系统服务
要求:在/root/bin目录下编写status、 start、stop脚本,可以根据脚本后面的服务名称分别显示服务状态、开启服务、停止服务
#!/bin/bash
#查看运行状态
#-f查看文件是否存在
if [ -f "/etc/init.d/$1" ]
then
echo "-----服务状态------"
systemctl status $1
echo "-----服务状态------"
else
echo "服务不存在!"
fi
---------------------------------------------------------------------------------------------------------
#!/bin/bash
#启动服务
#-f查看文件是否存在
if [ -f "/etc/init.d/$1" ]
then
echo "-----正在启动------"
systemctl start $1
echo "-----启动完成------"
else
echo "服务不存在!"
fi
---------------------------------------------------------------------------------------------------------
#!/bin/bash
#关闭服务
#-f查看文件是否存在
if [ -f "/etc/init.d/$1" ]
then
echo "-----正在关闭------"
systemctl stop $1
echo "-----关闭完成------"
else
echo "服务不存在!"
fi
This is end!
作者:Jace Jin
github地址:https://github.com/buxianghua
原创文章版权归作者所有.
欢迎转载,转载时请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
欢迎转载,转载时请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结