嗯,这是第二天,吧

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. LeetCode_804. 唯一摩尔斯密码词

    题目 难度:简单 原文:https://leetcode-cn.com/problems/unique-morse-code-words/ 题目 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一 ...

  2. 前端-jQuery 查找标签 事件 Bootstrap页面框架

    1.查找标签 1.基本选择器: $('#d1'):id选择器 $('.c1'):class选择器 $('div'):标签选择器 2.组合选择器: $('div#d1'):查找id为d1的div标签 $ ...

  3. rust 网上资料记录(自用)

    最近要学嵌入式的rust,记录一些资料的url,方便自己查阅 书籍 常用的: rust圣经(不是权威指南那本)https://course.rs/ 中文 rust 参考手册 https://rustw ...

  4. 如何查看库函数实现的某些函数(strlen,strcmp,strcpy等)

    我们拿strlen()作为举例(编译环境为:VS2022) strlen()引用的头文件为 string.h,如下进行操作 ps:打开strlen.c文件 便可以看到库函数对于strlen()的实现, ...

  5. SRE:如何提高报警有效性?

    为什么要提升<报警有效性> 过多的报警会让负责人麻木 过多的报警会增加短信和电话的成本 提升根因定位效率 如何定义<报警有效性> 不漏报 不误报 不重报 不延报 如何量化 MT ...

  6. P3387 缩点

    \(Tarjan\) 模板 #include<cstdio> #include<queue> #include<iostream> #define re regis ...

  7. cpu功耗排行_常见NAS CPU处理器性能排行榜(简单天梯图)

    转载csdn: (35条消息) cpu功耗排行_常见NAS CPU处理器性能排行榜(简单天梯图)_weixin_39618173的博客-CSDN博客

  8. 跳板攻击之:dns2tcp

    跳板攻击之:dns2tcp 目录 跳板攻击之:dns2tcp 1 dns2tcp简介 2 dns2tcp 食用说明 2.1 dns2tcpd 服务端 2.1.1 服务端参数说明 2.1.2 配置文件 ...

  9. input type = file 在部分安卓手机上无法调起相册

    移动端H5web 用input type = file 在部分安卓手机上无法调起摄像头拍照,有的也无法访问相册而是直接访问了文档,解决办法是: 加上 accept = "image/*&qu ...

  10. idea代码格式xml

    <code_scheme name="Default copy" version="173"> <option name="LINE ...