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
下一篇 2016-08-10

相关推荐

  • 0805随堂练习

    文本处理练习: 1.找出本机ip地址  [root@localhost ~]# ifconfig |head -2 |tail -1 |tr -s ' ' ':' |cut -d: -f3  10.1.252.221 2.查看本机分区最大的利用率  [root@localhost ~]# …

    Linux干货 2016-08-07
  • sed和vim

    1、如何设置tab缩进为4个字符? vi .vimrc //编辑用户家目录下的vim配置文件 set tabstop=4 2、复制/etc/rc.d/init.d/functions文件至/tmp 目录;替换/tmp/functions 文件中的/etc/sysconfig/init 为/var/log; ~]# cp /etc/rc.d/init.d/fu…

    Linux干货 2016-08-10
  • 第三次作业

    第三次作业 一、软链接与硬链接的区别    硬链接就是同一个文件使用了多个别名(他们有共同的 inode)。 硬链接可由命令 link 或 ln 创建,如: 1 2 #link oldfile newfile  #ln oldfile newfile   由于硬链接是有着相同 i…

    Linux干货 2016-08-03
  • rsyslog配置详解,结合mysql+loganalyzer展现

        环境:Centos7.2 前言:系统日日夜夜不停地运行着,有这么一个守护进程,兢兢业业地不断记录它运行产生的日志,有不起眼的闲言碎语,值得管理员撇一眼的系统报错,也默默地接收来自进程的严厉警告,甚至在内核崩溃前夕,同样不遗余力记录着当时发生的情形。他是无言的记录者,没有特别的修辞,但他的记录的文字却掷地有声。本…

    系统运维 2016-10-25
  • 网络管理基础

    什么是网络?    在计算机领域中,网络是信息传输,接受,共享的虚拟平台,通过它把各个点,面体的信息联系到一起, 从而实现这些资源的共享。 网路物理组件     终端:可发送和接受数据的,如计算机。移动设备,打印机,服务器….    互联设备:互联…

    Linux干货 2016-09-06
  • N22-第6周作业-冥界之王

    请详细总结vim编辑器的使用并完成以下练习题1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;    [root@CentOS6 /]# cp /etc/rc.d/rc.sysinit /tmp…

    Linux干货 2016-09-19