首页 > 系统相关 >shell常用工具与脚本

shell常用工具与脚本

时间:2024-12-20 20:30:42浏览次数:5  
标签:脚本 输出 shell banana echo txt 常用工具 example

一、Shell 常用工具

1. grep

  • 功能:用于在文本文件中搜索指定的模式。可以是简单的字符串,也可以是复杂的正则表达式。
  • 示例
    • 假设我们有一个名为example.txt的文件,内容如下:
    apple
    banana
    cherry
    
     
    • 要查找包含an的行,可以使用命令grep an example.txt,输出结果为
    banana
    
  • 常用选项
    • -i:忽略大小写进行匹配。例如grep -i an example.txt会同时匹配AnAN等情况。
    • -v:反向匹配,输出不包含指定模式的行。如grep -v an example.txt会输出applecherry所在的行。
    • -n:显示匹配行的行号。例如grep -n an example.txt会输出类似2:banana的结果,表示banana在文件的第 2 行。

2. awk

  • 功能:一种强大的文本处理工具,主要用于从文本文件或者标准输入中按行读取内容,并进行分割、处理和输出。
  • 示例
    • 同样对于example.txt文件,我们可以使用awk来打印每一行的第一个字段(默认以空格或制表符分隔)。命令为awk '{print $1}' example.txt,输出结果为:
     
    apple
    banana
    cherry
    
  • 常用选项和操作
    • -F:指定分隔符。例如,如果文件是以逗号分隔的,我们可以使用awk -F, '{print $1}' file.csv来处理。
    • 条件判断:可以在awk中使用条件语句。比如awk '{if ($1 ~ /^a/) print $1}' example.txt,这个命令会打印以a开头的行的第一个字段,输出为apple

3. sed

  • 功能:用于对文本文件进行编辑操作,如替换、删除、插入等。
  • 示例
    • 对于example.txt文件,要将所有的banana替换为orange,可以使用命令sed 's/banana/orange/g' example.txt,输出结果为:
    apple
    orange
    cherry
    
  • 常用选项
    • -i:直接在原文件中进行修改。注意使用这个选项时要谨慎,因为会直接改变文件内容。例如sed -i 's/banana/orange/g' example.txt会直接修改example.txt的内容。
    • -n:取消默认的输出,只输出经过p(打印)命令处理的行。例如sed -n 'p' example.txt等同于cat example.txt,但可以结合其他命令使用来实现更复杂的输出控制。

二、Shell 脚本

1. 脚本基础

  • 定义:Shell 脚本是包含一系列命令的文本文件,这些命令按照一定的顺序执行,用于自动化完成系统管理、文本处理等任务。
  • 示例脚本(简单备份脚本)
    • 创建一个名为backup.sh的文件,内容如下:
    #!/bin/bash
    # 定义源文件和目标文件路径
    source_file="/home/user/data.txt"
    backup_file="/home/user/backup/data.txt.bak"
    # 检查源文件是否存在
    if [ -e $source_file ]; then
        cp $source_file $backup_file
        echo "备份完成。"
    else
        echo "源文件不存在。"
    fi
    
     
    • 这个脚本首先定义了源文件和目标文件的路径,然后检查源文件是否存在。如果存在,就将其复制到备份文件位置,并输出备份完成的消息;如果不存在,则输出源文件不存在的消息。
  • 脚本执行
    • 需要给脚本添加可执行权限,使用命令chmod +x backup.sh
    • 然后可以通过./backup.sh(在脚本所在目录下执行)或者指定完整路径来运行脚本。

2. 变量和参数

  • 变量定义:在 Shell 脚本中,变量可以使用变量名=变量值的方式定义,例如name="John"
  • 参数传递:Shell 脚本可以接收外部传递的参数。在脚本中,$1代表第一个参数,$2代表第二个参数,以此类推。例如,有一个脚本param.sh,内容如下:
     
    #!/bin/bash
    echo "第一个参数是:$1"
    echo "第二个参数是:$2"
    
     
    • 当我们使用./param.sh value1 value2来运行脚本时,会输出
     
    第一个参数是:value1
    第二个参数是:value2
    
  • 环境变量:系统环境变量在脚本中也可以使用。例如PATH变量用于指定命令的搜索路径。可以在脚本中使用echo $PATH来查看当前的PATH设置。

3. 流程控制

  • 条件判断(if - else)
    • 示例脚本用于判断一个数字是否大于 10:
    #!/bin/bash
    number=15
    if [ $number -gt 10 ]; then
        echo "$number大于10"
    else
        echo "$number小于等于10"
    fi
    
     
    • 其中-gt是用于比较数字大小的操作符,-eq用于判断是否相等,-lt用于判断是否小于等。
  • 循环(for 循环和 while 循环)
    • for 循环示例
      • 脚本用于打印 1 到 5 的数字:
      #!/bin/bash
      for i in {1..5}
      do
          echo $i
      done
      
    • while 循环示例
      • 脚本用于计算 1 到 10 的数字之和:
      #!/bin/bash
      sum=0
      i=1
      while [ $i -le 10 ]
      do
          sum=$((sum + i))
          i=$((i + 1))
      done
      echo "1到10的和为:$sum"

标签:脚本,输出,shell,banana,echo,txt,常用工具,example
From: https://blog.csdn.net/pxyxyxy/article/details/144594819

相关文章

  • [免费]SpringBoot公司财务管理系统【论文+源码+SQL脚本】
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot公司财务管理系统,分享下哈。项目视频演示【免费】SpringBoot公司财务管理系统Java毕业设计_哔哩哔哩_bilibili项目介绍现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中......
  • PowerShell(一)
    PowerShell篇声明B站泷羽sec笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。✍......
  • .sh 脚本来检索指定文件夹下的所有 Excel 文件
    编写一个 .sh 脚本来检索指定文件夹下的所有Excel文件,并根据关键字进行处理。以下是一个详细的示例脚本,包括查找文件、转换为CSV、搜索关键字、记录结果,并将符合条件的文件移动到指定目录。脚本示例#!/bin/bash#定义要搜索的文件夹和关键字FOLDER_PATH="/path/to/your......
  • 工具分享 | TPscan - 一键ThinkPHP漏洞检测getshell
    0x00工具介绍TPscan是一款基于Python3的ThinkPHP漏洞检测工具。0x01下载链接TPscan下载链接:Tpscan下载0x02功能介绍thinkphp_checkcode_time_sqli_verifythinkphp_construct_code_exec_verifythinkphp_construct_debug_rce_verifythinkphp_debug_index_ids_sqli_v......
  • Linux SSH远程连接工具FinalShell下载及基本使用
     1.FinalShell下载安装官网:FinalShell官网1.1.FinalShell软件下载1.点击官网带有系统及版本的信息行到下载地址列表页面。2.选择自我系统匹配的版本,点击下方链接进行下载。1.2.FinalShell软件安装1.下载文件为exe(finalshell_windows_x64.exe)Windows可执行文件,直接......
  • shell脚本-实现程序意外退出后自重启
    为了确保在服务器中运行的jar包项目能够自动重启,防止因为程序崩溃、机器重启、人为误操作或其他原因导致进程挂掉,我们可以编写一个脚本,定期检查该jar包是否正在运行。如果进程未启动,脚本会自动重新启动该jar包。shell脚本#!/bin/bashJAVA_HOME=/usr/local/jdk1.8.0_1......
  • kotlin编译脚本默认设置build.gradle.kts
    /**ThisfilewasgeneratedbytheGradle'init'task.**ThisgeneratedfilecontainsasampleKotlinapplicationprojecttogetyoustarted.*FormoredetailsonbuildingJava&JVMprojects,pleaserefertohttps://docs.gradle.org/......
  • 一文学会powshell使用及功能
    声明!原文来自微信公众号泷羽Sec-track认识powsehllPowerShell(通常称作PowerShell或WindowsPowerShell)是由微软开发的一种任务自动化和配置管理框架,与linux命令相似,它结合了命令行外壳和脚本语言功能,使得系统管理员和用户能够更高效地管理系统和自动化任务。打开方式win+r......
  • js workder 如何导入其他脚本,importScripts使用
    在JavaScript中,WebWorkers提供了一种在后台线程中执行脚本的方法,而不会影响主线程的性能。WebWorkers本身不支持直接导入其他脚本,但你可以通过几种方式来间接实现这一点。使用importScriptsimportScripts是WebWorkers提供的一个方法,用于导入一个或多个JavaScript文......
  • 【bWAPP】XSS跨站脚本攻击实战
    别低头,皇冠会掉;别流泪,贱人会笑。0x01、XSS-Reflected(GET)Low输入的内容直接输出到页面中:后台服务端没有对输入的参数进行过滤,构造一个注入xsspayload即可:<script>alert(1)</script>成功弹窗Medium审查源码可以发现服务端进行了过滤,但只是addslashes()......