嗯,这是第二天,吧

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. (Crack)SQL转Linq工具的使用——Linqer

    官方下载网站:http://www.sqltolinq.com/ 这是干什么用的         就是Sql语句转Linq  给不熟悉的小白用 再用Linq 转 Lambda      (用到Linq ...

  2. FAQ selenium无法click的一个案例分享(2)

    案例描述 https://www.healthsmart.com.hk/hs-home/#!/link/home 来着学员咨询 这个网页你手工打开的时候你会发现一直处于加载中,一定时间后才好. 我们的 ...

  3. 【KAWAKO】MobaXterm-使用MobaSSHTunnel进行端口映射

    目录 在Tools中打开MobaSSHTunnel(port forwarding) 点击New SSH tunnel 配置信息 点击运行 访问端口 在Tools中打开MobaSSHTunnel(po ...

  4. TrueNAS安装 一个厉害的nas系统

    转载: 戴俊财--个人学习网站 https://www.daijuncai.cn/?p=128

  5. Vulhub 漏洞学习之:Django

    Vulhub 漏洞学习之:Django 目录 Vulhub 漏洞学习之:Django 1 Django debug page XSS漏洞(CVE-2017-12794) 1.1 漏洞利用过程 2 Dj ...

  6. CF207C

    前言 学习 zzd 博客( 这题超级没有素质. 连个题解都搜不到. 好不容易搜到一个. 看了一下是 pascal. 不过还好我有办法. 树剖做 \(k\) 级祖先. 十万的俩老哥飘过. 三百毫秒优异成 ...

  7. Prometheus监控操作

    一.架构说明 ➢ Prometheus Server:Prometheus 生态最重要的组件,主要用于抓取和存储时间序列数据, 同时提供数据的查询和告警策略的配置管理: ➢  Alertmanager ...

  8. vue-element-admin框架连接yapi配置vue.config.js

    devServer: { host:'localhost', port:port, proxy:{ [process.env.VUE_APP_BASE_API + '/admin']: { //配置p ...

  9. vue 状态类展示使用红绿圆点

    vue 状态类展示使用红绿圆点通常对于一些在线.离线类的展示使用图标展示比使用文字描述会更加清晰直观.项目中使用的代码如下: HTML <el-table-column prop="s ...

  10. 了解ASP(二)

    变量 ASP中的变量有普通变量,Session变量,Application变量. 变量的生存期 在子程序外声明的变量可被 ASP 文件中的任何脚本访问和修改. 在子程序中声明的变量只有当子程序每次执行 ...