返回顶部
首页 > 资讯 > 操作系统 >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://lsjlt.com/news/21455.html(转载时请注明来源链接)

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

    猜你喜欢
    • linux下shell常用脚本命令及有关知识
      目录一、需要记住的一些知识点1、变量类型2、shell变量说明3、单引号和双引号和反引号的区别4、shell转义字符5、算术运算符列表6、关系运算符7、布尔运算符列表8、文件测试运算符列表二、常用脚本命令举例说明 一、需...
      99+
      2022-06-04
      inux下shell脚本命令 shell脚本命令相关知识
    • 有哪些常用的shell脚本命令
      有哪些常用的shell脚本命令?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。shell脚本基本命令:1、echo 命令1 基本使用Shell 的 echo 指令...
      99+
      2023-06-14
    • Linux 脚本编写基础知识以及在shell脚本中可以使用三类命令介绍
      本篇内容主要讲解“Linux 脚本编写基础知识以及在shell脚本中可以使用三类命令介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux 脚本编写基础知识以及在shell脚本中可以使用三...
      99+
      2023-06-09
    • 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
    • Git基础知识以及常用命令
      目录整体流程git三大区域回滚(一个功能一个功能提交 方便回滚)反回滚(回滚至之后版本)控制文件工作区和缓存区的转换BUG的修复分支的方法代码实现修复bug总结工作流模拟场景-在公司...
      99+
      2023-05-18
      Git Git基础知识
    • 如何使用linux shell脚本xargs命令
      本篇内容主要讲解“如何使用linux shell脚本xargs命令”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用linux shell脚本xargs命令”吧!xargs是给命令传递参数的...
      99+
      2023-06-09
    • 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
    • Shell脚本常用命令及如何通过shell脚本实现服务器上文件的上传和下载
      Shell脚本常用命令 简介 1、什么是shell: Shell 是一个用 C 语言编写的应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 脚本(shell script),是一种为 shell 编写...
      99+
      2023-08-23
      服务器 linux 自动化
    • linux常用脚本和命令分享
      这篇文章主要介绍“linux常用脚本和命令分享”,在日常操作中,相信很多人在linux常用脚本和命令分享问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux常用脚本和命令分享”的疑惑有所帮助!接下来,请跟...
      99+
      2023-06-13
    • Linux系统运维常用命令及常识
      本篇内容介绍了“Linux系统运维常用命令及常识”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 文件管理2 软件管理3 系统管理4 服务管...
      99+
      2023-06-09
    • Linux shell命令用法及常见用例之tar命令
      前言 tar命令用来归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用gzip或者bzip2等技术进行压缩。 命令格式 tar [OPTION...] [FILE]... 命令功能 Tar(Tap...
      99+
      2022-06-04
      linux shell tar shell tar 命令 linux压缩命令tar
    • Linux下Shell脚本中几种基本命令的替换区别有哪些
      这篇文章将为大家详细讲解有关Linux下Shell脚本中几种基本命令的替换区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Part 1 : ` command `这是 “命令标准输出作为函数标准输...
      99+
      2023-06-09
    • node.js在Linux下执行shell命令、.sh脚本的问题
      首先,引入子进程模块 var process = require('child_process'); 执行shell命令 调用该模块暴露出来的方法exec process.exec(...
      99+
      2024-04-02
    • linux下正常关机命令有哪些
      这篇文章主要介绍了linux下正常关机命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。系统启动的时候生成一个文件,linux正常关机的时候会删除这个文件。网管员们则可...
      99+
      2023-06-17
    • Linux环境shell脚本获取时间的常用命令总结
      本篇内容介绍了“Linux环境shell脚本获取时间的常用命令总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 相关概念Linux的系...
      99+
      2023-06-16
    • Linux下Shell脚本中几种基本命令的替换区别
      Part 1 : ` command ` 这是 “命令标准输出作为函数标准输入” 操作方法之一,有很大的弊端以及不安全的地方。 缺点一:比较陈旧。 缺点二:容易与单引号混淆。(其实它是你键盘“!”左边那个...
      99+
      2022-06-04
      几种 脚本 命令
    • Linux下一些常用的Shell脚本整理
      如何计算当前目录下的文件数和目录数 # ls -l * |grep "^-"|wc -l ---- to count files # ls -l * |grep "^d"|w...
      99+
      2022-06-04
      脚本 常用 Linux
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作