Vim编辑器
commond安全模式的一些快捷键定义:
1. ZQ:强制退出不保存 ;ZZ:保存并退出
2. G:跳到最后一行 ;gg:跳到第一行
3. 数字+G:直接跳入指定行(或者使用“:数字 +回车键”)
4. Ctrl+f: 向文件尾部翻一屏;Ctrl+b: 向文件首部翻一屏
5. ~:转换大小写 ;r:单个字符的替换;dw 剪切一个单词
6. dd 剪切一行;p 在当前行的下一行粘贴;P 在当前行的上一行粘贴
7. yy 复制一行;yw 复制一个单词
8. o:光标向下插入一个新行并进入插入模式;
9. O:光标向上插入一个新行并进入插入模式
exit退出模式 :(退出模式使用“:”引出)
1. 退出模式下输入 set nu 会显示文本行数,取消则是输入 set nonu
2. 退出模式下输入“r文件”读取文件内容,将内容输入到当前文本的最后
3. 退出模式下输入“r! 命令”将命令的输出结果输入到当前光标所在行的下一行
=====================================================================
shell脚本(script)编程基础
基本了解
1. 脚本的第一行必须包括shell的声明序列:#!+调用语言(切记!!)
(本人使用的是bash语言)(这第一行通常叫做shebang)
2. 为了便于了解脚本的内容,一般都需要描写一些注释信息,以“#”开头
3. bash -n 检查脚本的语法是否错误
bash -x 调试执行脚本,每一步都会有信息描述,便于查看修改
一些特殊变量:
1.$? : 表示上一条命令执行的成功或失败;0是成功,非0是失败
2.$$ : 显示当前shell的进程号
3.()小括号相当于开启了一个子shell进程,将里面的命令执行结束后会回到当前shell,
当在小括号里赋值变量时,是临时性的,不会保留。
4.$# : 表示脚本命令后的参数个数
逻辑运算 :(Test和 []都是用来测试)
1.[ -z 文件 ] 判断文件是否为空 ,空 则$?=0 ,非空 则$?=1
[ -n 文件 ] 判断文件是否不空 ,不空则$?=0 ,空 则$?=1
2. -eq 表示两个整数是否相等(可以为负,不能为浮点数)
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
-ne 不等于
(都是以左边去比较右边)
4. 在脚本中可以使用read命令接受输入
read -p “描述信息:” +要输入的内容
read -s 表示静默输出,不会显示,一般用于密码的设置
read -n +数字表示输入到指定数字的字符后就会自动退出
read -d +指定字符 表示在输入到指定字符时就会退出
配置文件 :
1. export 设置环境变量,从而可以传递给子进程
2. bash的配置文件:
全局配置:/etc/profile、/etc/profile.d/*.sh、/etc/bashrc
个人配置:~/.bash_profile、~/.bashrc
一般“profile类”用于定义环境变量以及运行命令或脚本
一般“bashrc类”用于定义别名和函数以及本地变量
当对这些文件进行过编辑后,若要生效,则需要:
a. 重新启动shell进程
b. 利用source或者 .(点)执行以下被编辑文件
====================================================================
文件的查找和压缩
查找命令find :find + 路径 +条件 + 处理命令
1. 条件:
-maxdepth + 数字 指定被查找文件的目录等级
-name + 文件名 (结合文件通配符使用)(-iname 则是不区分大小写)
德·摩根定律:
(非 A) 或 (非 B) = 非(A 且 B)
(非 A) 且 (非 B) = 非(A 或 B)
其中 -a 表示且,-o 表示或,!或者-not表示非
-perm [/|-] MODE (“/”其实是“+”,不过从CentOS7开始淘汰)
MODE(r、w、x权限): 精确权限匹配
/MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可(或关系)
-MODE:每一类对象都必须同时拥有指定权限(与关系)
2.处理条件
-delete 将找到的文件删除
-ok COMMAND {} \; (固定格式,{}表示引用查找到的文件名称自身)
对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
若将“ok”换为“exec”则不会进行交互式确认(就是询问是否执行)
xargs 因为find命令有时不可以通过管道直接传递给下个命令,所以需要此命令进行参数替换
压缩工具的使用 :
1. gzip/bzip2/xz 这三种压缩工具的相同与不同如下
(另外zcat/bzcat/xzcat 三者都可以在不解压缩下查看对应压缩包)
相同:a. 都是直接加文件进行压缩(会生成后缀.gz/.bz2/.xz)
b. -d + 对应后缀的压缩包解压缩
c. -v 显示过程信息
d. –数字 指定压缩比,从1到9
不相同:bzip2 与 xz 多一个“-k”选项,会保留文件或压缩包
2. tar 归档文件工具
- 可以省略 、 -c 创建包 、-v 详细过程
-f 指定生成后的文件名 源文件可接多个
tar -cvf 归档文件
tar -tvf 预览归档文件
tar -r 文件 -f 往归档中增加文件
(其中在归档过程中,会自动将源文件的目录上的第一个“/”去除)
tar --delete 文件 –f 从归档中减少文件
tar -xv 文件 -f 从归档中解出指定的文件
tar -xvf 从归档中解出所有文件
tar xvf 归档文件 –C 解压到指定目录,默认为当前目录
-j 使用bzip2 压缩、 -J 使用xz 压缩、 -z 使用gzip 压缩
split -b 大小 -d “归档压缩文件”“指定文件名”
表示将归档文件分割成多个以指定大小存在的指定文件名文件
cat “指定大小文件” > 归档文件 把拆分的文件进行合并
3. cpio -tv < file.cpio 预览后缀名为.cpio的文件
cpio -idv < file.cpio解开后缀名为.cpio的文件
==================================================================
文本三剑客之二:sed
Sed + 选项参数 +编辑命令 + 需要编辑的文件
有模式空间:将需要处理行放入进行处理结束后在打印输出
保持空间:一些高级编辑命令使用
1. 常用选项(需要结合编辑命令一起使用)
-n 表示不会自动打印文件内容
-i.bak 备份文件并在原处编辑
-e 表示可以多命令编辑
-r 支持扩展正则表达式
2. 编辑命令
d 表示删除匹配到的行
p 表示将文件中的每行都进行重复打印
= 表示将匹配到的行打印上行号(在该行的上一行显示)
!取反(要和p一起使用)
s/// 表示进行查找替换,当在查找内容中存在“/”,则可以使用s@@@ 或者s###代替使用(默认替换每行的第一个匹配到的字符)
若末尾加上 g 表示匹配所有指定的字符
2. 一些高级编辑命令
随机记录的几个实用型如下:
sed -n 'n;p' 打印偶数行( sed -n '2~2p'同理 )
sed -n '1!G;h;$p' 倒序打印(sed '1!G;h;$!d' 同理)
sed 'N;D' 打印最后一行 (sed '$!d'同理)
sed 'n;d' 打印奇数行 (sed -n '1~2p'同理)