Linux的学习路程--3

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'同理)

猜你喜欢

转载自blog.csdn.net/Ruixycowboy/article/details/80555302