一.VIM
1.VIM的一些命令(请牢记wq)
1.1默认模式下
A:在光标这一行的末尾进入编辑模式
a:在光标的字节后面进入编辑模式
i:在光标出进入编辑模式
u:撤销
::进入命令模式
ZZ:保存并退出
ZQ:不保存并退出
1.2编辑模式
ESC:退出编辑模式进入默认模式
1.3命令模式
wq:保存并退出
w!:保存但不退出
set nu:显示行
二.CAT,TAIL,MORE
1.cat
可以查看文本内容
2.nl
显示行号
3.more
可以实现分页查看文件
4.head
显示最前面行
5.tail
与head相反,从尾开始
6.cut
提取文本
三.正则表达式
由一些特殊字符及文本字符组成,被很多程序和开发语言所广泛支持:vim,less,grep,sed,awk,nginx,mysql 等。
*:任意字符。
.*:任意长度的任意字符
四.GREP,SED,AWK
1.grep
查找文本
例:
2.sed
同样也是查找,但功能相比grep更丰富。
-r可以识别正则表达式
s//p可以查找特定内容
例:
和cut一起也可以查找特定的几行几列
例:
3.awk
awk文本处理,也可以执行算数运算。
4.练习
4.1删除文件每行的第一个字符。
4.2删除文件每行的第二个字符。
4.3删除文件每行的最后一个字符
4.4删除文件每行的倒数第二个字符
4.5删除文件每行的第二个单词
4.6删除文件每行的倒数第二个单词
4.7删除文件每行的最后一个单词
4.8交换每行的第一个字符和第二个字符
4.9交换每行的第一个字符和第二个单词
4.10交换每行的第一个单词和最后一个单词
4.11删除一个文件中所有的数字
4.12删除每行开头的所有空格
4.13用制表符替换文件中出现的所有空格
4.14把所有大写字母用括号()括起来
4.15打印每行3次
4.16隔行删除
4.17只显示每行的第一个单词
4.18打印每行的第一个单词和第三个单词
太难了!想不出求大佬!!!
4.19将格式为 mm/yy/dd 的日期格式换成 mm;yy
五.程序的组成
1.总结程序的组成相关知识点
1.1程序
一种计算机能识别和执行的指令,运行于计算机上,满足人们某种需求的信息化工具。以某些程 序设计语言编写,运行于某种目标结构体系上。
1.2算法
解题方案的准确而完整的描述,是一系列解决问题的清晰指令,代表着用系统的方法描述解决 问题的策略机制。
1.3数据结构
计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素 的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
1.4数据
程序的核心,程序为数据提供服务,也是互联网公司最重要的资产。
六.变量
1.总结变量命名规则
变量命名可以用字母和数字,但不能用数字开头,可以加入下划线,可以大写小写,一般对应的英语全拼或缩写,可以用驼峰式来命名。
2.不同类型变量(环境变量,位置变量,只读变量,局部变量,状态变量)如何使用
2.1探究变量
例:定义一个book变量赋值为mage
例:再定义个book2,将book2变量赋值为book的mage,再将book变量赋值改为danei,输出book2为mage。
//book2已写入book的mage,与book重新赋值danei没关系,book2一直为mage,除非book2=danei或再次执行book2=$book才book2为danei。
例:nums赋值为1到10
将echo {1..10}或者seq 1 10放入到``,才实现。
追加:
2.2环境变量
探究:
系统有的变量,再定义一个变量并写入:
执行并不会输出$test
加入export让test变成环境变量
2.3位置变量
$1,$2,$3...:对应第1个,第2个,第3个...的位置变量
$0:命令本身,包括路径
$*:传递给脚本的所有参数,全部参数合为一个字符串
$@:传递给脚本的所有参数,每个参数为独立字符串
$#:传递给脚本的参数的个数
例1:
例2:
利用vim的替换将color变量改为位置变量$1
同理将36m的36变为$2,方便自定义传参
位置变量传参测试
2.4只读变量
readonly
2.5局部变量
?
2.6状态变量
执行成功0为真,其余执行失败都为假。
七.练习题
1.编写一个脚本猜数字,每次提示用户比目标数字是大还是小,直到猜成功位置
思路
需要用户输入数字、跟目标数字大小、一直执行、直到猜对目标数字。
1.随机数:$RANDOM
2.大于:-gt、小于:-lt、等于:-eq
3.用read命令来接受输入
4.判断
if 判断条件1;
then 条件1为真的分支代码
elif 判断条件2;
then 条件2为真的分支代码
else
以上条件都为假的分支代码
fi
5.循环
until false; do
done
完善判断用户输入的数字在1-10内