当前位置: 欣欣网 > 码农

分享一份曾让我通宵刷完的shell总结~

2024-05-24码农

关注上方 浩道Linux ,回复 资料 ,即可获取海量 L inux Python 网络通信、网络安全 等学习资料!

前言

大家好,这里是 浩道Linux ,主要给大家分享 L inux P ython 网络通信、网络安全等 相关的IT知识平台。

好多私信我的朋友都问,能不能短时间内掌握shell编程,毕竟面试时还是经常会遇到相关笔试题。今天浩道跟大家分享一份关于shell知识硬核干货,这份资料包含shell编程相关知识点总结,同时又有几百条经典的shell脚本供大家练习,要我说认真肝3天,掌握shell自然不在话下! 有需要的朋友,可以看下文 免费领取

而且,这份资料不是扫描版的,都是清晰可见的,非常便于我们学习:

点击👆👆👆卡片,关注后回复【shell总结】,即可获取

这份资料非常全面且详细,包含诸多的shell经典实例 ,非常适合初学者入门! 多看、多练、多学,相信你一定能写出满意的脚本。

除此之外,还准备了一些Shell脚本的编写规范、入门手册、编写指南等资源,今天一并分享给大家。

  • 由于脚本案例太多,在此仅展示部分,完整版领取方式请见文末

  • 249个拿来即用的shell脚本!

    这249个Shell脚本共147页,目录清楚,一键搜索定位,代码清晰可复制,电子版可以随时拿来练习提升,是学习、提升、面试必备精品。

    1、通过位置变量创建Linux系统账户及密码

    #!/bin/bash

    # 通过位置变量创建 Linux 系统账户及密码
    #$1 是执行脚本的第一个参数,$2 是执行脚本的第二个参数
    useradd "$1"
    echo"$2" | passwd ‐‐stdin "$1"

    2、备份日志

    #!/bin/bash
    # 每周 5 使用 tar 命令备份/var/log 下的所有日志文件
    # vim /root/logbak.sh
    # 编写备份脚本,备份后的文件名包含日期标签,防止后面的备份将前面的备份数据覆盖
    # 注意 date 命令需要使用反引号括起来,反引号在键盘<tab>键上面
    tar -czf log-`date +%Y%m%d`.tar.gz /var/log
    # crontab ‐e #编写计划任务,执行备份脚本
    00 03 * * 5 /root/logbak.sh

    3、输入三个数并进行升序排序

    #!/bin/bash

    # 依次提示用户输入 3 个整数,脚本根据数字大小依次排序输出 3 个数字
    read -p "请输入一个整数:" num1
    read -p "请输入一个整数:" num2
    read -p "请输入一个整数:" num3
    # 不管谁大谁小,最后都打印 echo "$num1,$num2,$num3"
    # num1 中永远存最小的值,num2 中永远存中间值,num3 永远存最大值
    # 如果输入的不是这样的顺序,则改变数的存储顺序,如:可以将 num1 和 num2 的值对调
    tmp=0
    # 如果 num1 大于 num2,就把 num1 和和 num2 的值对调,确保 num1 变量中存的是最小值
    if [ $num1 -gt $num2 ];then
    tmp=$num1
    num1=$num2
    num2=$tmp
    fi
    # 如果 num1 大于 num3,就把 num1 和 num3 对调,确保 num1 变量中存的是最小值
    if [ $num1 -gt $num3 ];then
    tmp=$num1
    num1=$num3
    num3=$tmp
    fi
    # 如果 num2 大于 num3,就把 num2 和 num3 对标,确保 num2 变量中存的是小一点的值
    if [ $num2 -gt $num3 ];then
    tmp=$num2
    num2=$num3
    num3=$tmp
    fi
    echo"排序后数据(从小到大)为:$num1,$num2,$num3"

    4、点名器脚本

    #!/bin/bash

    # 编写一个点名器脚本
    # 该脚本,需要提前准备一个 user.txt 文件
    # 该文件中需要包含所有姓名的信息,一行一个姓名,脚本每次随机显示一个姓名
    while :
    do
    #统计 user 文件中有多少用户
    line=`cat user.txt |wc ‐l`
    num=$[RANDOM%line+1]
    sed -n "${num}p" user.txt
    sleep 0.2
    clear
    done

    5、对100以内的所有正整数相加求和(1+2+3.....+100)

    #!/bin/bash

    # 对 100 以内的所有正整数相加求和(1+2+3+4...+100)
    #seq 100 可以快速自动生成 100 个整数
    sum=0
    for i in `seq 100`
    do
    sum=$[sum+i]
    done
    echo"总和是:$sum"

    6、统计当前Linux系统中可以登录计算机的账户有多少个

    #!/bin/bash

    # 统计当前 Linux 系统中可以登录计算机的账户有多少个
    #方法 1:
    grep "bash$" /etc/passwd | wc -l
    #方法 2:
    awk -f: '/bash$/{x++}end{print x}' /etc/passwd

    8、打印各种格式的时间

    #!/bin/bash

    # 打印各种时间格式 
    echo"显示星期简称(如:Sun)"
    date +%a
    echo"显示星期全称(如:Sunday)"
    date +%A
    echo"显示月份简称(如:Jan)"
    date +%b
    echo"显示月份全称(如:January)"
    date +%B
    echo"显示数字月份(如:12)"
    date +%m
    echo"显示数字日期(如:01 号)"
    date +%d
    echo"显示数字年(如:01 号)"
    date +%Y echo"显示年‐月‐日"
    date +%F
    echo"显示小时(24 小时制)"
    date +%H
    echo"显示分钟(00..59)"
    date +%M
    echo"显示秒"
    date +%S
    echo"显示纳秒"
    date +%N
    echo"组合显示"
    date +"%Y%m%d %H:%M:%S"

    更多内容展示

    上下滚动查看更多,仅展示部分内容

    Shell脚本是自动化运维的关键组成部分,虽然简简单单几十行代码,但可是蕴藏着巨大的能量和智慧,还是很值得运维朋友学习的。

    所有资料已经打包好了,想要提升的同学请务必拿走学习!

    而且,这份资料不是扫描版的,都是清晰可见的,非常便于我们学习:

    点击👆👆👆卡片,关注后回复【shell总结】,即可获取

    更多精彩

    关注公众号 浩道Linux

    浩道Linux ,专注于 Linux系统 的相关知识、 网络通信 网络安全 Python相关 知识以及涵盖IT行业相关技能的学习, 理论与实战结合,真正让你在学习工作中真正去用到所学。同时也会分享一些面试经验,助你找到高薪offer,让我们一起去学习,一起去进步,一起去涨薪!期待您的加入~~~ 关注回复「资料」可 免费获取学习资料 (含有电子书籍、视频等)。

    喜欢的话,记得 点「赞」 「在看」