iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux下shell常用脚本命令及有关知识
  • 668
分享到

linux下shell常用脚本命令及有关知识

inux下shell脚本命令shell脚本命令相关知识 2022-06-04 23:06:14 668人浏览 安东尼
摘要

目录一、需要记住的一些知识点1、变量类型2、shell变量说明3、单引号和双引号和反引号的区别4、shell转义字符5、算术运算符列表6、关系运算符7、布尔运算符列表8、文件测试运算符列表二、常用脚本命令举例说明 一、需

目录
  • 一、需要记住的一些知识点
    • 1、变量类型
    • 2、shell变量说明
    • 3、单引号和双引号和反引号的区别
    • 4、shell转义字符
    • 5、算术运算符列表
    • 6、关系运算符
    • 7、布尔运算符列表
    • 8、文件测试运算符列表
  • 二、常用脚本命令举例说明

    linux下shell常用脚本命令及有关知识

    一、需要记住的一些知识点

    1、变量类型

    运行shell时,会同时存在三种变量:

    1) 局部变量

    局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

    2) 环境变量

    所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

    3) shell变量

    shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

    2、shell变量说明

    $$
    Shell本身的PID(ProcessID)
    $!
    Shell最后运行的后台Process的PID
    $?
    最后运行的命令的结束代码(返回值)
    $-
    使用Set命令设定的Flag一览
    $*
    所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
    $@
    所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
    $#
    添加到Shell的参数个数
    $0
    Shell本身的文件名
    $1~$n
    添加到Shell的各参数值。$1是第1参数、$2是第2参数…。

    3、单引号和双引号和反引号的区别

    以单引号' '包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。
    以双引号" "包围变量的值时,输出时会先解析里面的变量和命令,而不是把双引号中的变量名和命令原样输出。

    以反引号` `(在键盘esc下面),命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。可以用指定变量指定

    4、shell转义字符

    \\ 反斜杠
    \a 警报,响铃
    \b 退格(删除键)
    \f 换页(FF),将当前位置移到下页开头
    \n 换行
    \r 回车
    \t 水平制表符(tab键)
    \v 垂直制表符

    5、算术运算符列表

    运算符 说明 举例
    + 加法 `expr $a + $b` 结果为 30。
    - 减法 `expr $a - $b` 结果为 10。
    \* 乘法 `expr $a \* $b` 结果为 200。
    / 除法 `expr $b / $a` 结果为 2。
    % 取余 `expr $b % $a` 结果为 0。
    = 赋值 a=$b 将把变量 b 的值赋给 a。
    == 相等。用于比较两个数字,相同则返回 true。 [ $a == $b ] 返回 false。
    != 不相等。用于比较两个数字,不相同则返回 true。 [ $a != $b ] 返回 true。

    6、关系运算符

    关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

    运算符 说明 举例
    -eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 true。
    -ne 检测两个数是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。
    -gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。
    -lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。
    -ge 检测左边的数是否大等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。
    -le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。

    7、布尔运算符列表

    运算符 说明 举例
    ! 非运算,表达式为 true 则返回 false,否则返回 true。 [ ! false ] 返回 true。
    -o 或运算,有一个表达式为 true 则返回 true。 [ $a -lt 20 -o $b -gt 100 ] 返回 true。
    -a 与运算,两个表达式都为 true 才返回 true。 [ $a -lt 20 -a $b -gt 100 ] 返回 false。

    8、文件测试运算符列表

    操作符 说明 举例
    -b file 检测文件是否是块设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。
    -c file 检测文件是否是字符设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。
    -d file 检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。
    -f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。
    -g file 检测文件是否设置了 SGID 位,如果是,则返回 true。 [ -g $file ] 返回 false。
    -k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 [ -k $file ] 返回 false。
    -p file 检测文件是否是具名管道,如果是,则返回 true。 [ -p $file ] 返回 false。
    -u file 检测文件是否设置了 SUID 位,如果是,则返回 true。 [ -u $file ] 返回 false。
    -r file 检测文件是否可读,如果是,则返回 true。 [ -r $file ] 返回 true。
    -w file 检测文件是否可写,如果是,则返回 true。 [ -w $file ] 返回 true。
    -x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。
    -s file 检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。
    -e file 检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。

    二、常用脚本命令举例说明

    例子太长为了简写,只列举一个

    1、Nginx日志我们存储在nginx.log里,统计出2020年4月23号的访问ip次数,并且按照次数降序排序

    例:192.168.1.20 - - [21/Apr/2020:14:27:49 +0800] "GET /1/index.PHP Http/1.1" 404 490 "-" "Mozilla/5.0 (windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"

    
    cat nginx.log | grep 23/Apr/2020 | awk -F "-" '{print $1}'|sort|uniq -c | sort -r | awk '{print $1,$2}'

    2、nginx的日志我们存储在nginx.log里,统计2020年04月23日20-23点的去重IP访问量

    例:192.168.1.20 - - [21/Apr/2020:14:27:49 +0800] "GET /1/index.php HTTP/1.1" 404 490 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"

    
    cat nginx.log | grep 23/Apr/2020:2[0-3] | awk '{print $1}' | sort | uniq | wc -l

    3、nginx的日志我们存储在nginx.log里,写脚本统计访问3次以上的IP

    例:192.168.1.20 - - [21/Apr/2020:14:27:49 +0800] "GET /1/index.php HTTP/1.1" 404 490 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0"

    
    cat nginx.log | awk '{print $1}'| sort | uniq -c | awk '{if ($1 >3) print $0}' | sort -r | awk '{print $1,$2}'

    awk的数据字段变量
    $0表示整行文本
    $1表示文本中第一个数据字段
    $2表示文本中第二个数据字段
    $n表示文本中第n个数据字段

    4、netstat命令运行的结果放在netstat.txt,查看和本机3306端口建立连接并且状态是established的所有IP,按照连接数降序排序

    例:tcp 0 0 172.16.56.200:41856 172.16.34.144:3306 ESTABLISHED

    
    cat netstat.txt | grep ESTABLISHED | grep 3306 | awk '{print $5}' | awk -F ":" '{print  $1}' | sort  | uniq -c | sort -hr | awk '{print $1,$2}'

    5、统计网段内在用或者未用IP

    
    #!/bin/bash
    for ip in `seq 0 255`
     do
     ping -c 1 -i 0 192.168.2.$ip
    if [ $? -eq 0 ]
    then
     echo "192.168.2.$ip" >> /root/up.txt
    else
     echo "192.168.2.$ip" >> /root/down.txt
    fi
    done

    6、读取文件行数,一行行的循环读取

    例:cat http

    www.baidu.com

    www.cityhouse.cn

    www.cityre.cn

    vim htttp.sh

    
    cat /data/script/http | while read line
    do
      curl $line 
    done
    date=`date "+%Y-%m-%d-%H-%M-%S"`
    echo "sucessful$date" >> /data/script/http.txt

    到此这篇关于linux下shell常用脚本命令及有关知识的文章就介绍到这了,更多相关inux下shell脚本命令内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    --结束END--

    本文标题: linux下shell常用脚本命令及有关知识

    本文链接: https://www.lsjlt.com/news/21455.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Linux 脚本编写基础知识以及在shell脚本中可以使用三类命令介绍
      本篇内容主要讲解“Linux 脚本编写基础知识以及在shell脚本中可以使用三类命令介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux 脚本编写基础知识以及在shell脚本中可以使用三...
      99+
      2023-06-09
    • 有哪些常用的shell脚本命令
      有哪些常用的shell脚本命令?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。shell脚本基本命令:1、echo 命令1 基本使用Shell 的 echo 指令...
      99+
      2023-06-14
    • Linux脚本Shell命令有哪些
      这篇文章将为大家详细讲解有关Linux脚本Shell命令有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.开头程序必须以下面的行开始(必须方在文件的***行):#!/bin/sh符号#!用来告诉系统...
      99+
      2023-06-17
    • Linux命令相关的基本知识有哪些
      这篇文章给大家分享的是有关Linux命令相关的基本知识有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文约定对于每一个命令,大致分为如下三个部分功能简单介绍该命令功能。举例给出该命令最常使用的例子。描述详细...
      99+
      2023-06-05
    • 有哪些好用的Shell脚本常用命令
      这篇文章主要讲解了“有哪些好用的Shell脚本常用命令”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些好用的Shell脚本常用命令”吧!列出所有目录使用量,并按大小排序。代码如下:ls|...
      99+
      2023-06-09
    • 如何使用linux shell脚本xargs命令
      本篇内容主要讲解“如何使用linux shell脚本xargs命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用linux shell脚本xargs命令”吧!xargs是给命令传递参数的...
      99+
      2023-06-09
    • Git基础知识以及常用命令
      目录整体流程git三大区域回滚(一个功能一个功能提交 方便回滚)反回滚(回滚至之后版本)控制文件工作区和缓存区的转换BUG的修复分支的方法代码实现修复bug总结工作流模拟场景-在公司...
      99+
      2023-05-18
      Git Git基础知识
    • Shell脚本常用命令及如何通过shell脚本实现服务器上文件的上传和下载
      Shell脚本常用命令 简介 1、什么是shell: Shell 是一个用 C 语言编写的应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 脚本(shell script),是一种为 shell 编写...
      99+
      2023-08-23
      服务器 linux 自动化
    • Linux shell下常用命令是什么
      小编给大家分享一下Linux shell下常用命令是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!这些是我收集了多年的Linux shell的30个有趣的命令和提示。 监控命令(每2秒运行一次)watch "...
      99+
      2023-06-09
    • Linux下常用的shell命令总结
      这篇文章主要介绍“Linux下常用的shell命令总结”,在日常操作中,相信很多人在Linux下常用的shell命令总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下常用的shell命令总结”的疑...
      99+
      2023-06-16
    • linux常用脚本和命令分享
      这篇文章主要介绍“linux常用脚本和命令分享”,在日常操作中,相信很多人在linux常用脚本和命令分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux常用脚本和命令分享”的疑惑有所帮助!接下来,请跟...
      99+
      2023-06-13
    • node.js在Linux下执行shell命令、.sh脚本的问题
      首先,引入子进程模块 var process = require('child_process'); 执行shell命令 调用该模块暴露出来的方法exec process.exec(...
      99+
      2024-04-02
    • Linux系统运维常用命令及常识
      本篇内容介绍了“Linux系统运维常用命令及常识”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 文件管理2 软件管理3 系统管理4 服务管...
      99+
      2023-06-09
    • Linux下一些常用的Shell脚本总结
      这篇文章主要介绍“Linux下一些常用的Shell脚本总结”,在日常操作中,相信很多人在Linux下一些常用的Shell脚本总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux下一些常用的Shell脚...
      99+
      2023-06-09
    • Linux下Shell脚本中几种基本命令的替换区别有哪些
      这篇文章将为大家详细讲解有关Linux下Shell脚本中几种基本命令的替换区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Part 1 : ` command `这是 “命令标准输出作为函数标准输...
      99+
      2023-06-09
    • Linux环境shell脚本获取时间的常用命令总结
      本篇内容介绍了“Linux环境shell脚本获取时间的常用命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 相关概念Linux的系...
      99+
      2023-06-16
    • linux下正常关机命令有哪些
      这篇文章主要介绍了linux下正常关机命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。系统启动的时候生成一个文件,linux正常关机的时候会删除这个文件。网管员们则可...
      99+
      2023-06-17
    • Linux中常用Shell命令有哪些
      小编给大家分享一下Linux中常用Shell命令有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.whichwhich 用于查找一个文件,并返回绝对路径,查...
      99+
      2023-06-09
    • Linux shell常用的命令有哪些
      这篇文章主要介绍Linux shell常用的命令有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!检查远程端口是否对bash开放:echo >/dev/tcp/8.8.8.8/53 && ec...
      99+
      2023-06-09
    • Linux下常用文本处理命令有哪些
      这篇文章主要介绍了Linux下常用文本处理命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一. sort文件排序,通常用在管道中当过滤器来使用。这个命令可以依据指定的...
      99+
      2023-06-16
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作