linux基础学习-第八天

2016-08-08

授课内容:

处理文本的工具sed

vim编辑器

Shell脚本编程基础介绍

sed:sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),

    接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。默认不编辑原文件,仅对模式空间的文件副本进行处理

sed [option] ‘addresscommand‘ file….

-n:静默模式(不输出模式空间内容的自动打印)

-r:支持扩展正则表达式

-i:原文编辑

-e:多点编辑

‘addresscommand‘:

address:

#:第几行

n,m:第n到第m行

n,$:第n行到最后一行

/pattern/:被此处模式所能够匹配到的每一行(正则表达式)

command:

d:删除 

p:打印显示

a \text:在行后面追加文本;支持使用\n实现多行追加

i \text:在行前面追加文本,同样支持使用\n实现多行追加 

s///:查找替换,支持使用其它分隔符,s@@@,s###

替换标记:

g: 行内全局替换

p: 显示替换成功的行

w /PATH/TO/SOMEFILE:将替换成功的行保存至文件中

vim编辑器:

visual edit improved

vim [OPTION]… FILE…

+:打开文件时定位在最尾一行

+#:打开文件时定位在第#行内

+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首

–d file1 file2… 比较多个文件

vim编辑多个文件

vim FILE1 FILE2 FILE3

:next 切换至下一个文件

:prev 切换至前一个文件

:last 切换至最后一个文件

:first 切换至第一个文件

vim的模式:

命令模式(command mode):打开文件时的默认模式

编辑模式(edit mode):输入i,I,a,A,o,O时进入的文本编辑模式

扩展命令模式(extended command mode):输入:时的模式

命令模式–>编辑模式:

I:在当前光标所在的行首输入

i:在当前光标所在处输入

A:在光标所在行的行尾处

a:在光标后面处输入

O:在光标的上一行开始处

o: 在光标的下一行开始处

插入模式—-> 命令模式

ESC

命令模式—-> 扩展模式

:

扩展模式—-> 命令模式

ESC

关闭文件:

扩展命令模式下

:q  没有更改文件时退出

:wq 保存退出

:q! 强制不保存退出

:wq! 强制保存退出

命令模式:

ZZ:保存退出

ZQ:不保存退出

命令模式下的光标跳转:

  字符间跳转:

h: 左l: 右j: 下k: 上

#COMMAND:跳转由#指定的个数的字符;

  单词间跳转:

w:下一个单词的词首

e:当前或下一单词的词尾

b:当前或前一个单词的词首

#COMMAND:由#指定一次跳转的单词数

  当前页跳转:

H:页首M:页中间行L:页底

  行首行尾跳转:

^: 跳转至行首的第一个非空白字符;

0: 跳转至行首

$: 跳转至行尾

  行间移动:

#G、扩展模式:# :跳转至由#指定行

G:最后一行

1G, gg: 第一行

  句间移动:

):下一句(:上一句

段落间移动:

}:下一段{:上一段

命令模式操作

  字符编辑:

x: 删除光标处的字符;

#x: 删除光标处起始的#个字符

xp: 交换光标所在处的字符及其后面字符的位置

~:转换大小写

  删除命令:

d: 删除命令,可结合光标跳转字符,实现范围删除;

dd:删除整行

#dd:shanchu#行 

d$: 删除到行尾

d^:删除到非空行首

d0:删除到行首

  复制命令(y, yank):

y: 复制,行为相似于d命令

yy:复制整行

y$

y0

y^

  粘贴命令(p, paste):

p:缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面

P:缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面

扩展模式:查找

/PATTERN:从当前光标所在处向文件尾部查找

?PATTERN:从当前光标所在处向文件首部查找

n:与命令同方向

N:与命令反方向

s: 在扩展模式下完成查找替换操作

格式:s/要查找的内容/替换为的内容/修饰符

地址定界:

#: 具体第#行,例如2表示第2行;

#,#: 从左侧#表示行起始,到右侧#表示行结尾

#,+#: 从左侧#表示的行起始,加上右侧#表示的行数

:2,+3 表示2到5行

.: 当前行

$: 最后一行

.,$-1 当前行到倒数第二行

%:全文, 相当于1,$

命令模式:撤消更改

u撤销最近的更改

. 重复前一个操作

使用多个窗口浏览

  多文件:

vim -o|-O FILE1 FILE2 …

-o: 水平分割

-O: 垂直分割

在窗口间切换:Ctrl+w, Arrow

  单文件:

Ctrl+w,s: split, 水平分割

Ctrl+w,v: vertical, 垂直分割

ctrl+w,q:取消相邻窗口

ctrl+w,o:取消全部窗口

:wqall退出

shell脚本基础:

shell脚本是包含一些命令或声明,并符合一定格式的文本文件

格式要求:首行shebang机制

#!/bin/bash

创建shell脚本的规范:

shell脚本的开头最好写上作者、日期、描述等基本信息,一方面可以方便别人阅读,另一方面也方便自己回顾

#!/bin/bash
#author: 
#Version: 1.0
#Description:This script displays some information about your environment

创建脚本步骤:

第一步:使用文本编辑器来创建文本文件

第一行必须包括shell声明序列:#!

#!/bin/bash

添加注释

注释以#开头

第二步:运行脚本

给予执行权限,在命令行上指定脚本的绝对或相对路径

直接运行解释器,将脚本作为解释器程序的参数运行

#!/bin/bash
#created by:
#date:2016-08-09
#ver:1.0
#DES:test script
echo `date`
echo `cal 08 2016`

[root@Centos7 ~]# sh first.sh 
Tue Aug 9 09:03:38 CST 2016
August 2016 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

原创文章,作者:麦德良,如若转载,请注明出处:http://www.178linux.com/31997

(0)
上一篇 2016-08-10 13:58
下一篇 2016-08-10 13:59

相关推荐

  • N22第六周作业

    VIM编辑器介绍 什么是VIM? Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是纯粹的自由软件。 Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。 VIM的使用 &nbsp…

    Linux干货 2016-10-24
  • 26期全程班-第五周博客作业

      1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; # grep “^[[:space:]]\+” /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; # grep “^…

    Linux干货 2017-03-09
  • btrfs文件系统及管理

      什么是btrfs? Btrfs(B-tree文件系统,通常念成Butter FS,Better FS或B-tree FS),linux文件系统,具有写时复制COW(copy-on-write),改善ext3文件系统单文件大小限制,并加入其他特性,如可写快照,快照的快照,内建RAID,子卷(subvloume),专注于容错,修复和易于管理。单文件…

    系统运维 2016-05-13
  • 网络概念简述和Linux网络管理命令

    网络概念简述和Linux网络管理命令 1. 网络分类 我们通常接触到的网络通常是广域网、局域网 局域网(Local Area Network,LAN)是指在某一区域内由多台计算机互联成的计算机组。 广域网(Wide Area Network,WAN):网络跨越国界、洲界,甚至全球范围。  因特网(Internet)是世界范围内最大的广域网。 2. …

    Linux干货 2016-04-19
  • Bash1

    做语法测试,没有消息就是最好的消息 加权限 单个语句的错误并不妨碍之后的语句,但是逻辑错误会导致后续语句执行不了 bash:     -n:语法测试     -x:模拟单步执行 变量类别:     本地变量   &nbs…

    Linux干货 2016-09-17
  • linux之netfilter与 iptables学习

    Linux之netfilter与iptables学习 一、为什么我们的主机需要防火墙 二、Linux下防火墙如何实现 三、四表五链学习 四、主机防火墙 五、网络防火墙 六、iptables命令学习 七、主机防火墙规则备份与恢复 ====================================== 一、为什么我们的主机需要防火墙?  &nbs…

    Linux干货 2016-06-23