嗯,这是第二天,吧

wc

  word count 统计文本文件中的字符个数
  -l 查看行数
  -w 查看字符个数
  -c 查看文件大小(字节)

 

cut

  用来分割文件内容
  -d 指定分隔符,delimiter
  -f 指定提取那一列
  -f2 输出第二列
  -f1,3 输出第一列和第三列
  -f1-3 输出第一列到第三列
  --output-delimited=’xx' 替换分割符
  局限性:-d不能指定多个分隔符,不能做高级的格式化输出

 

sort

  -n 按数字大小排序
  -r 逆序
  -f 忽略大小写
  -t -k 指定分隔符以及指定按照哪一列进行排序
  -u  去重复

 

uniq

  去重复,连续且且相同的字符才是重复
  建议,先排序,后去重
  -c 统计重复次数
  sort filename|uniq -c   查看重复次数
 

编程介绍

  早期编程:
    驱动 硬件默认时不能使用的
    不用的厂商硬件设备之间需要进行指令沟通,我们需要驱动程序进行来进行“翻译”
    更趋近与硬件工程师,要学习“汇编语言”;而“汇编语言”被厂商所限制,CC++的底层就是汇编语言
  现在编程:
    基于高级语言以及超高级语言,更好的让程序员更够的实现编程功能;
  编程语言的分类:
    高级语言、超高级语言需要*翻译*成计算机可读的语言(二进制指令)
    解释型 -- 逐行翻译,逐行执行 shell python JAVA perl
    编译型 -- 一次编译,全部执行 C语言 C++ C# java
    面向对象 -- 侧重于数据的编程语言
    面向过程 -- 侧重于指令
  编程语言的执行方式:
    顺序执行
    循环执行--for while until
    选择执行--分支结构 if case

 

shell脚本语言介绍

    有点:调用os(操作系统)的命令行,来实现所有功能
    缺点:没有库调用(区分python)
  shell脚本包括:

    1、*命令* 2、变量(全局变量、局部变量、本地变量)3、逻辑关系
  shell的第一句话(必须写)
    #!/bin/bash 定义脚本解释器
    /etc/shells -- 查看当前系统支持的shell程序
    echo $SHELL --查看当前回话的shell程序
    /etc/passwd -- 指定了用户默认支持的shell程序

shell的执行

  1、bash命令来执行脚本
    -n 查看shell脚本的逻辑错误
    -x 逐行显示执行的脚本程序
  2、授权chmod u+x filename.sh
    使用全路径执行脚本即可

 

变量

  是一段未命名的内存空间
  环境变量
  局部变量 declare命令 -- 定义变量类型
  本地变量 local 在函数中使用

  变量类型:
    数值型:
      整形 int
      浮点型 float
      布尔型 0 1   (true false)
    字符串:
      1、普通字符及字符串
      2、数组
  编程语言的分类:
    强类型语言 -- 数值必须被定义,才能进行处理或运算
    弱类型语言 -- 编程语言可以自动识别变量类型
  多态 -- 一个数据具有多个属性,而最后使用的属性取决于和他进行运算的数据

传参

  $? 上一条命令的执行状态
  $1 ... ${10}命令后面传入脚本的数据,以空格为分隔符
  $# 统计传参数量${$#}
  $*表示所有传参
  $@表示所有传参

定义变量的格式

  NAME=VALUE
  通过declare 定义变量类型
  declare -i 整数
  declare -a 数组

test文件测试、条件判断

  在脚本中,我们需要进行语句分支(判断)
  判断就是使用test命令来实现;
  使用格式
    1、test [ option ] file
    2、[ 条件语句 ]
  常见的test选项:
    比较选项:
      -eq 等于
      -ne 不等于
      -gt 大于
      -ge 大于等于
      -lt 小于
      -le 小于等于
    判断选项:
      -e 文件是否存在
      -f 是否是文件
      -d 是否是目录
      -L 是否是链接
      -r -w -x
    关联选项:
      -o 或
      -a 且
      !非
    字符串判断
      = 判断两边的字符是否相同
      != 不等于
      -z 判断字符串是否存在
      -n 存在为假,不存在为真

逻辑运算

  与 &&
  或 ||
  非 != 

算术运算

  let 1+1
  expr 1*1
  $[$1+10] 
  $(($1/$2))
  + - * / % **

shell_Day03的更多相关文章

随机推荐

  1. ATM项目开发

    目录 一.项目开发流程 1.项目需求分析: 2.项目架构设计: 3.项目分组开发: 4.项目提交测试: 5.项目交付上线: 二.项目需求分析 1.主题 2.项目核心 3.项目需求: 4.从需求中提炼出 ...

  2. 【安全】漏洞复现及修复——CVE-2023-24055 keepass触发器注入获取明文密码

    write by homelander 如要转载请注明出处谢谢:https://www.cnblogs.com/vitalemontea/p/17104168.html 1.前言 [仅供学习使用,切勿 ...

  3. 借助 Flutter 跨平台特性连接 10 亿玩家 | Flutter 开发者故事

    由光子工作室及 Krafton 联合研发的 PUBG MOBILE 依然保持着极高的人气,目前全球有 10 亿玩家,日活跃 5,000 万 (不包括中国大陆地区).从游戏策划伊始,团队就打算为各个平台 ...

  4. 计算机网络基础02-Internet结构,网络核心的数据交换,计算机网络性能几个参数

    1 计算机网络的结构 1.1 网路边缘 主机.应用(软件.网站) 1.2 接入网络 1.3 网络核心 转发设备,路由器.交换机.关键功能就是路由+转发达到数据交换. 2 Internet的结构 2.1 ...

  5. 构建api gateway之 openresty 中如何使用 wasm

    openresty 中如何使用 wasm WASM 是什么? WebAssembly是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果.它设计的目的不是为了手写代码而是为诸如C.C++ ...

  6. .net core 删除指定路径下的所有文件以及文件夹(文件夹建议保留目录)

    1.服务层 /// <summary> /// 删除指定路径下的所有文件 /// </summary> /// <param name="filepath&qu ...

  7. [java安全基础 01]SQL+反序列化

    tomcat Servlet 什么是servlet Java Servlet是运行在 Web 服务器或应用服务器上的程序.它是作为来自Web浏览器或其他HTTP客户端的请求和HTTP服务器上的数据库或 ...

  8. 从零开始使用阿里云OSS服务(白嫖)

    阿里云对象存储服务OSS使用记录 1 新人免费开通OSS服务 访问 阿里云官网,登录账号(个人新用户账号),首页搜索 对象存储OSS,点击下方的直达. 点击立即开通,此时会在一个新网页中完成开通 完成 ...

  9. VueTSX 动态使用 element-plus 图标

    写 TSX 的目的 element-plus 图标集有很多,但有时需要动态使用某个图标,把所有可能用到的图标都列举出来,通过 v-if 在组件中决定到底渲染哪一个,很费时. .vue 单文件组件中做不 ...

  10. QFileDialog实现同时选择文件和文件夹,确认取消按钮英文问题解决方法

    如下图所示,需求是同时能够选择文件或者文件夹,但是QFileDialog文件窗口类要么只能选文件,要么只能选文件夹,无法同时去选择文件和文件夹: 要实现这样的需求,封装了一个类,实现同时选择文件和文件 ...