shell使用总结

1、shell的语法
  • shell 中的变量
    创建变量
    variable=value
    访问变量
    $variable、"hello"$variable"、"$variable"、'$variable'

    默认符号以空白符分隔,单引号中的’$‘符号不会展开变量,双引号中的’$'符号会对后续符号进行展开

  • shell中的环境变量

    环境变量说明
    $HOME当前用户的加目录
    $PATH以冒号分隔的用来搜索命令的目录列表
    $IFS输入分隔符,它们通常是空格、制表符和换行符
    $0shell脚本的名字
    $#shell脚本的参数个数
    $$shell脚本的进程号
    $1,$2,…脚本程序的参数
    $*所有参数,参数之间以$IFS的第一个字符分隔开
    $@所有参数,参数默认以空格分隔开
  • shell中的控制流

    • test 或 [ 判断语句
    • if…then…elif…fi判断语句
    • for语句
    • while语句
    • case语句
    • break命令
    • continue命令
  • shell中的与或非

    • &&
    • ||
    • !
  • shell中命令的执行

    • $(command)

    • `command`

    • 算术扩展

      x=2
      y=$(($x+1))
      

      两对圆括号用户算术替换

    • 参数扩展

      for i in 1 2
      do
      	process $(i)_tmp
      done
      //1_tmp  2_tmp
      
      说明
      param:-default}如果param为空,就把它设置为default值
      aram}给出param的长度
      ram%word}从param的尾部开始删除与word匹配的最小部分,然后返回剩余部分
      ram%%word}从param的尾部开始删除与word的最长部分,然后返回剩余部分
      ram#word}从param的头部开始删除与word匹配的最小部分,然后返回剩余部分}
      ram##word}从param的头部开始删除与word匹配的最长部分,然后返回剩余部分
  • shell中的函数

    • function定义函数
    • return 返回值
2、shell中的可执行程序
  • echo
  • read
  • .命令
    通常,当一个脚本执行一条外部命令时,它会创建一个新的环境,在命令执行完后,留下退出码返回给父shell
  • exec命令
    exec的典型用法, exec wall "hell world"
    ecec第二种用法是修改但钱文件的描述符exec 3< file,这使得文件描述符3被打开便从文件file中读取数据
  • exit
  • export
    export命令将作为它参数的变量导出到子shell中,并使之在子shell中有效
  • return
  • set
    set建立变量,影响$1、$2等变量
  • shift
    shift n 把所有参数左移指定n的次数
  • find
  • grep
  • eval
    foo=10
    x=foo
    y='$'$x
    echo $y
    >> $foo
    ------------------------
    foo=10
    x=foo
    y='$'$x
    eval $y
    >> 10
    
3、here文档

在shell脚本程序中向一条命令传递输入的一种特殊方法是使用here文档,它允许一条命令在获得输入数据时就好像在读取一个文件或键盘一样,而实际是从脚本程序中得到输入数据。

4、sed和awk命令

sed命令

sed是一个很好的文件处理工具,主要是以行为单位进行处理,可以将数据进行替换、删除、新增、选取等特定工作。

sed [-nefri] 'command' 输入文本

/*
 * -n:使用silent模式,在一般sed的用法中,一般输出都会列出到STDIN,加上此参数后,则只有经过**sed处理的那一行**才会被列出来。
 * -i:直接修改输入文本内容,而不是在屏幕输出
 * /
/*
 * a:追加,a得后面可以接字符串,而这些字符串出现在新一行(支持转义)
 * c:取代,c的后面接字符串,这些字符串取代n1,n2之间的行
 * d:删除,后面不接任何字符串
 * i:插入,同a
 * p:打印,
 * s:取代,参考vim
  • sed中的模式查询
//输出test.txt文件中包含关键字$的所在行
sed -n '/\$/p' test.txt  

//替换匹配行中的某个字符串
sed -n '/pattern/s/replacesrc/replacedst/g' test.txt

awk命令

awk是一个解释器,用法为awk pattern {action} input,它将文本的每一行作为输入来处理。

  • pattern的形式
BEGIN
END
expression
expression, expression
  • awk中的环境变量
变量名说明
ARGCnumber of command line arguments
ARGVarray of command line arguments
FILENAMEname of the current input file
NFnumber of fields in the current record
NRcurrent record number in the total input stream
FNRcurrent record number in FILENAME
RSinput record separator, initially = “\n”
FSsplit records into fileds as a regular expression
  • 用例
//读入有'\n'换行符分割的一条记录,将records按指定域分割符划分,$0表示所有域,$1表示第一个域,$n表示第n个域。
last -n 5 | awk '{print $1}'

cat /etc/passwd | awk -F ':' '{print $1}'

cat /etc/passwd | awk -F ':' '{print $1"\t"$7}'

//先执行BEGIN(仅执行一个{}),然后读入文件,接着输出BEGIN后面的花括号,最后执行END后面的语句
cat /etc/passwd | awk -F':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'

//awk的模式匹配
awk -F: '/root/{print $7}' /etc/passwd
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值