30个实例带你从零开始玩转Linux Shell脚本编程,成为Shell大神!

50ef4e4df71e63e2f8a76265c52655bd.png

引言

大家好,我是一位永远怀着学习的心态的Linux和Python技术持续学习者,在今天的文章中,我将向大家分享一些有趣而实用的Linux Shell脚本编程例子,通过这些例子,你可以系统地学习和掌握Shell脚本编程,从入门到精通。让我们开始这个令人兴奋的编程之旅吧!

要求环境

在跟随本教程的过程中,你需要准备以下环境:

  • 一台运行Linux操作系统的计算机

  • 任何一种基本的文本编辑器,如Vim、Nano等

实战案例

  1. 初识Shell脚本:Hello World!

#!/bin/bash
echo "Hello World!"
  1. 打印当前用户信息:

#!/bin/bash
echo "当前用户:$USER"
echo "主目录:$HOME"
echo "当前工作目录:$PWD"
  1. 计算两个数的和:

#!/bin/bash
echo "请输入第一个数:"
read num1
echo "请输入第二个数:"
read num2
sum=$((num1 + num2))
echo "两个数的和为:$sum"
  1. 列出当前目录下的所有文件:

#!/bin/bash
for file in $(ls); do
   echo "$file"
done
  1. 列出当前目录下的所有文件夹:

#!/bin/bash
for dir in $(ls -d */); do
   echo "$dir"
done
  1. 获取当前日期和时间:

#!/bin/bash
now=$(date +"%Y-%m-%d %H:%M:%S")
echo "当前时间为:$now"
  1. 循环输出数字1到10:

#!/bin/bash
for (( i=1; i<=10; i++ )); do
   echo "$i"
done
  1. 提示用户输入姓名并打印出来:

#!/bin/bash
echo -n "请输入您的姓名:"
read name
echo "您的姓名是:$name"
  1. 模拟一个简单的计算器:

#!/bin/bash
echo "请输入第一个数:"
read num1
echo "请输入第二个数:"
read num2
echo "请输入要执行的运算符(+、-、*、/):"
read operator
result=$(echo "$num1 $operator $num2" | bc)
echo "结果为:$result"
  1. 拷贝当前目录下所有文件到另一个目录:

#!/bin/bash
echo "请输入要拷贝的目录:"
read source_dir
echo "请输入目标目录:"
read target_dir
cp -r "$source_dir"/* "$target_dir"
echo "拷贝完成!"
  1. 判断一个文件是否存在:

#!/bin/bash
echo -n "请输入要查询的文件名:"
read filename
if [ -e "$filename" ]; then
    echo "$filename 存在"
else
    echo "$filename 不存在"
fi
  1. 判断当前用户是否是root:

#!/bin/bash
if [ $(id -u) = 0 ]; then
    echo "当前用户是root"
else
    echo "当前用户不是root"
fi
  1. 计算一个目录下所有文件的总大小:

#!/bin/bash
echo "请输入目录路径:"
read dirpath
size=$(du -sh "$dirpath" | cut -f1)
echo "$dirpath 目录大小为:$size"
  1. 随机生成一个6位数字的验证码:

#!/bin/bash
code=$(shuf -i 100000-999999 -n 1)
echo "随机验证码为:$code"
  1. 查找一个目录下所有拥有写权限的文件:

#!/bin/bash
echo "请输入目录路径:"
read dirpath
find "$dirpath" -type f -writable

16.使用alias命令设置一个自定义命令:

#!/bin/bash
alias ll='ls -alh'
  1. 统计一个文本文件中指定字符串的出现次数:

#!/bin/bash
echo "请输入文件路径:"
read filepath
echo "请输入要统计的字符串:"
read searchstr
count=$(grep -o "$searchstr" "$filepath" | wc -l)
echo "$filepath 中 $searchstr 出现的次数为:$count"
  1. 计算一个数组元素的和:

#!/bin/bash
array=(1 2 3 4 5)
sum=0
for i in ${array[@]}
do
  sum=$(($sum + $i))
done
echo "数组元素的和为:$sum"
  1. 批量重命名当前目录下的所有文件:

#!/bin/bash
echo "请输入文件名的前缀:"
read prefix
echo "请输入文件名的后缀:"
read suffix
for file in *
do
  mv "$file" "$prefix$file$suffix"
done
echo "文件重命名完成!"
  1. 查找一个目录下最后修改时间超过7天的文件:

#!/bin/bash
echo "请输入目录路径:"
read dirpath
find "$dirpath" -type f -mtime +7
  1. 获取当前日期和时间:

#!/bin/bash
current_date=$(date +%Y-%m-%d)
current_time=$(date +%H:%M:%S)
echo "当前日期:$current_date"
echo "当前时间:$current_time"
  1. 判断一个数是否为素数:

#!/bin/bash
echo "请输入一个正整数:"
read num
is_prime=1
for ((i=2; i<$num; i++))
do
  if (( $num % $i == 0 ))
  then
    is_prime=0
    break
  fi
done
if (( $is_prime == 1 ))
then
  echo "$num 是素数"
else
  echo "$num 不是素数"
fi
  1. 获取当前机器的CPU信息:

#!/bin/bash
cpu_info=$(cat /proc/cpuinfo)
echo "$cpu_info"
  1. 获取当前机器的内存信息:

#!/bin/bash
mem_info=$(free -h)
echo "$mem_info"
  1. 统计一个目录下所有.c文件的代码行数:

#!/bin/bash
echo "请输入目录路径:"
read dirpath
find "$dirpath" -name "*.c" | xargs wc -l

26.下载一个网页并将其转换为PDF文件:

#!/bin/bash
echo "请输入网页链接:"
read webpage
filename=$(echo "$webpage" | awk -F/ '{print $NF}')
wget "$webpage" -O "$filename".html
wkhtmltopdf "$filename".html "$filename".pdf

27.查找一个目录下文件名包含指定字符串的文件:

#!/bin/bash
echo "请输入目录路径:"
read dirpath
echo "请输入要查找的字符串:"
read searchstr
find "$dirpath" -name "*$searchstr*"

28.备份指定目录并打包成tar.gz格式:

#!/bin/bash
echo "请输入要备份的目录:"
read sourcedir
echo "请输入备份存放位置:"
read targetdir
backupfile=$(date +%Y%m%d_%H%M%S)_backup.tar.gz
tar -czvf "$targetdir/$backupfile" "$sourcedir"
echo "备份完成!"

29.批量添加用户并设置初始密码

#!/bin/bash
for i in {1..5}; do
    username="user$i"
    useradd -m -s /bin/bash "$username"
    echo "设置 $username 的密码为:password$i"
    echo "password$i" | passwd --stdin "$username"
done

30.统计一个文本文件中的单词数:

#!/bin/bash
echo "请输入文件路径:"
read filepath
wordcount=$(grep -o '\w\+' "$filepath" | wc -l)
echo "该文件中的单词数量为:$wordcount"

文章总结

通过这篇文章,我们带你从零开始玩转Linux Shell脚本编程,并且给出了30个丰富多样的实例,涵盖了Shell脚本编程的基础知识和常见应用场景。希望这些例子能够帮助你系统地学习和掌握Shell脚本编程,成为Shell大神!

如果你对Linux和Python技术感兴趣,欢迎关注并分享我们的微信公众号"运维家"(搜索"运维家"或扫描下方二维码),我们将持续为大家带来更多有趣、实用的技术文章。

d0755e3a77b6bbb8757842173a29bdc8.jpeg


欢迎分享、留言、提问,我将竭诚为你解答。让我们一起在技术的世界里探索前行!

  • 6
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值