shell_Day03
嗯,这是第二天,吧
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脚本包括:
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的更多相关文章
随机推荐
- 12月8日内容总结——Django推导流程,Django模块的下载和基本使用、Django的应用和目录结构讲解、Django三板斧
目录 一.纯手撸web框架 二.基于wsgiref模块 三.代码封装优化 四.动静态网页 五.jinja2模块 六.前端.后端.数据库三者联动 七.python主流web框架 八.django简介 1 ...
- javaweb-LoginDemo在JdbcTemp的登录实现及总结+进阶javabean改进
刚开始发现- -我好像忘记了JdbcTemp的知识了,以为自己学漏了,重新回去看了一下,还好还记得,所以今天做一个案例: 案例分析: 登录的实现 步骤: 先导入jar包,然后写一个简单的html页面 ...
- 2023 年 dotnet 仓库社区年度调查已经开始
准备好今年对 dotnet 指手画脚了吗,平常在群里我忍气吞声,今天我必须重拳出击,快来参与吧. 我直接一个参的加 .NET 是一个跨平台的开发框架,支持多种语言和应用场景,如 C#.F#.VB.NE ...
- 使用nvm时报错:exit status 1: ļ Ѵ ʱ ļ 的解决办法
1.出现问题 如图,安装完nvm后,使用[nvm use 版本号]命令切换版本,出现如题错误,具体截图如下 2.分析原因 1)安装路径是否包含中文 2)安装路径有空格 3)cmd使用是否是管理员方式打 ...
- LM算法详解
1. 高斯牛顿法 残差函数f(x)为非线性函数,对其一阶泰勒近似有: 这里的J是残差函数f的雅可比矩阵,带入损失函数的: 令其一阶导等于0,得: 这就是论文里常看到的normal equation. ...
- 2021级《JAVA语言程序设计》上机考试试题1
昨天进行了期末考试,考的不够理想,看见题没思路,到了10点半刚刚进入状态,11点半结束....... 这是学生的试题要求(按照评分卡上的来,卷子上要求和评分卡不一致(.......)) 这是登录页面 ...
- OWASP 靶机下载
OWASP靶机下载安装详细过程一. OWASP靶机下载二. VM虚拟机三. OWASP安装四. OWASP启动运行一. OWASP靶机下载下载地址:https://sourceforge.net/pr ...
- 【白话科普】聊聊网络架构变革的关键——SDN
最近二狗子在网上冲浪的时候,不小心将 CDN 搜索成了 SDN,结果跳出来了一大堆相关的知识点. 好学的二狗子当然不会随随便便糊弄过去,于是认认真真学习了好久,终于了解了 SDN 是什么. 原来,SD ...
- socket.io实现简易聊天室功能
本文简单介绍使用websocket实现一个简单的聊天室功能,我这里是用vite初始化的vue3项目. 在线体验地址:http://chat.lb0125.com/chat 需要安装的库: socket ...
- 【KAWAKO】将conda虚拟环境设置进jupyter-notebook
目录 进入虚拟环境 安装ipykernel 将虚拟环境加入notebook的kernel 打开jupyter-notebook并使用 进入虚拟环境 conda activate audio 安装ipy ...