用Shell需要掌握的基本语法:入参、变量、循环、判断、简单的文本操作写了一些demo,用于练手。
1、用Shell写一个简单的任务管理系统
2、用户管理脚本
3、备份文件脚本
用Shell写一个简单的任务管理系统
#!/bin/bash`` ``# 任务文件``TASK_FILE="tasks.txt"`` ``# 检查任务文件是否存在,不存在则创建``if [ ! -f $TASK_FILE ]; then` `touch $TASK_FILE``fi`` ``# 显示菜单``display_menu() {` `echo "=========================="` `echo " 任务管理系统 "` `echo "=========================="` `echo "1. 添加任务"` `echo "2. 查看任务"` `echo "3. 标记任务为完成"` `echo "4. 删除任务"` `echo "5. 退出"` `echo "=========================="` `echo "请选择一个选项: "``}`` ``# 添加任务``add_task() {` `echo "输入任务描述: "` `read task_description` `echo "未完成: $task_description" >> $TASK_FILE` `echo "任务已添加!"``}`` ``# 查看任务``view_tasks() {` `echo "任务列表:"` `if [ ! -s $TASK_FILE ]; then` `echo "暂无任务."` `else` `while IFS= read -r line` `do` `echo $line` `done < $TASK_FILE` `fi``}`` ``# 标记任务为完成``mark_task_complete() {` `echo "输入要标记为完成的任务编号: "` `read task_number` `if [ ! -s $TASK_FILE ]; then` `echo "暂无任务可标记."` `else` `sed -i "${task_number}s/^未完成/完成/" $TASK_FILE` `echo "任务已标记为完成!"` `fi``}`` ``# 删除任务``delete_task() {` `echo "输入要删除的任务编号: "` `read task_number` `if [ ! -s $TASK_FILE ]; then` `echo "暂无任务可删除."` `else` `sed -i "${task_number}d" $TASK_FILE` `echo "任务已删除!"` `fi``}`` ``# 主循环``while true; do` `display_menu` `read choice` `case $choice in` `1)` `add_task` `;;` `2)` `view_tasks` `;;` `3)` `mark_task_complete` `;;` `4)` `delete_task` `;;` `5)` `echo "退出系统"` `exit 0` `;;` `*)` `echo "无效选项,请重新选择"` `;;` `esac``done``
代码解释:
- 任务文件的创建和检查:
- 如果tasks.txt文件不存在,脚本将创建一个新的文件。
- 显示菜单:
- display_menu函数显示任务管理系统的菜单,用户可以选择不同的操作。
- 添加任务:
- add_task函数让用户输入任务描述,并将任务添加到tasks.txt文件中,任务初始状态为“未完成”。
- 查看任务:
- view_tasks函数读取并显示tasks.txt中的所有任务。如果文件为空,则显示“暂无任务”。
- 标记任务为完成:
- mark_task_complete函数让用户输入要标记为完成的任务编号,并将该任务的状态从“未完成”改为“完成”。
- 删除任务:
- delete_task函数让用户输入要删除的任务编号,并删除该任务。
- 主循环:
- while true循环用于不断显示菜单并处理用户输入的选项。
这个脚本综合了入参、循环、判断等多个Shell编程的基本概念,并且提供了一个简单的任务管理系统。
用户管理脚本
#!/bin/bash`` ``# 显示菜单``display_menu() {` `echo "=========================="` `echo " 用户管理系统 "` `echo "=========================="` `echo "1. 添加用户"` `echo "2. 删除用户"` `echo "3. 列出用户"` `echo "4. 退出"` `echo "=========================="` `echo "请选择一个选项: "``}`` ``# 添加用户``add_user() {` `echo "输入要添加的用户名: "` `read username` `sudo useradd "$username"` `echo "用户 $username 已添加!"``}`` ``# 删除用户``delete_user() {` `echo "输入要删除的用户名: "` `read username` `sudo userdel "$username"` `echo "用户 $username 已删除!"``}`` ``# 列出用户``list_users() {` `echo "系统用户列表:"` `cut -d: -f1 /etc/passwd``}`` ``# 主循环``while true; do` `display_menu` `read choice` `case $choice in` `1)` `add_user` `;;` `2)` `delete_user` `;;` `3)` `list_users` `;;` `4)` `echo "退出系统"` `exit 0` `;;` `*)` `echo "无效选项,请重新选择"` `;;` `esac``done``
add_user 函数用于添加新用户
- 使用 read 命令读取输入的用户名
delete_user 函数用于删除用户
list_users 函数用于列出系统中的所有用户
- 使用 cut -d: -f1 /etc/passwd 命令从 /etc/passwd 文件中提取用户名并显示出来。/etc/passwd 文件保存了所有系统用户的信息,cut 命令用来分割文件内容,-d: 表示以冒号为分隔符,-f1 表示提取第一个字段(即用户名)。
备份文件脚本
#!/bin/bash`` ``# 检查参数``if [ "$#" -ne 2 ]; then` `echo "Usage: $0 source_file target_directory"` `exit 1``fi`` ``SOURCE_FILE=$1``TARGET_DIR=$2`` ``# 检查源文件是否存在``if [ ! -f "$SOURCE_FILE" ]; then` `echo "Source file does not exist."` `exit 1``fi`` ``# 检查目标目录是否存在,不存在则创建``if [ ! -d "$TARGET_DIR" ]; then` `mkdir -p "$TARGET_DIR"``fi`` ``# 备份文件``cp "$SOURCE_FILE" "$TARGET_DIR"``echo "File $SOURCE_FILE backed up to $TARGET_DIR"
将一个源文件备份到目标目录。它会先进行参数检查,然后确认源文件和目标目录的存在性,必要时创建目标目录,最后执行文件的备份操作。
首先是入参的判断:
判断是否接收了两个参数,即源文件和目标目录。
“$#” 是一个特殊变量,表示传递给脚本的参数个数。
如果参数个数不等于2,脚本会输出用法提示 Usage: $0 source_file target_directory 并退出,$0 代表脚本的名字。
—
判断源文件是否存在:[ ! -f “$SOURCE_FILE” ] ,如不存在则报出错误且退出脚本。
判断备份目录是否存在:[ ! -d “$TARGET_DIR” ] 表示如果目标目录不存在创建
Shell脚本已上传到gitee
https://gitee.com/yeweijie-raul/weijie_linux_shell/tree/master/shell_exercises
黑客&网络安全如何学习
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取