马哥教育网络班N22期+第6周课程练习

一、总结vim编辑器的使用方法

vim文本编辑器

全屏编辑器,模式化编辑器

vim的教程文件命令:vimtutor

vim pathtosomefile

vim模式:

编辑模式(命令模式),默认模式

输入模式

末行模式

内置的命令行接口;

模式转换:

编辑模式—>输入模式:

iinsert, 在光标所在处前方输入,转为输入模式

aappend,在光标在处后方输入,转为输入模式

o:在当前光标所在行的下方,新建一行,并转为输入模式

I:在当前光标所在行的行首,转换为输入模式

A:在当前光标所在行的行尾,转换为输入模式

O:在当前光标所在行的上方,新建一行,并转为输入模式

输入模式—>编辑模式

esc

编辑模式—>末行模式

末行模式—>编辑模式

esc

vim编辑的打开和关闭操作

打开文件

语法格式:vim [options] [file ..]

技巧:

vim :打开文件,并定位与文本最后一行

vim + 文件路径;直接光标出现在#行

vim+/pattern:打开文件,定位至第一次被pattern匹配到的行的行首

关闭文件

1.末行模式下关闭文件

q,退出

wq,保存并退出

q!,不保存并退出

w,保存

w /PATH/TO/SOMEFILE:另存为

w!,强行保存

x:保存并退出

2.编辑模式下关闭文件

ZZ:保存并退出

使用vim编辑多个文件

vim file1 file2 file3

next 切换至下一个文件

prev:切换至前一个文件

last 切换至最后一个文件

first 切换至第一个文件

qa,表示全部退出

:wqall 保存所有文件并退出;

:wall                  

:qall

分窗口显示多个文件

vim o file…:水平分隔显示,vim o file1 file2

vim O file…:垂直分割显示

ctrlw进行文档切换

窗口拆分显示同一个文件

ctrlws:水平拆分窗口

ctrlwv:垂直拆分窗口

在窗口间切换光标:ctrlwarrow(键盘左右键)

vim编辑模式操作

移动光标(编辑模式下)

1、逐字符移动:

h:左

l:右

j:下

k:上

command:移动#个字符

2、以单词为单位移动

w:移至下一个单词的词首

e:跳至当前或下一个单词的词尾

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

command:支持添加数字组合,实现跳#个单词

3、行内跳转

0:绝对行首

^:行首的第一个非空白字符

$:绝对行尾

4、行间跳转

G:直接跳转至第#行

1G, gg:跳转至第一行;

G:最后一行

末行模式下,直接给出行号即可

5、句间跳转

6、段间跳转

{

}

翻屏操作:

编辑模式下:

ctrl f:向下翻一屏

ctrlb:向上翻一屏幕

ctrld:向下翻半屏

ctrlu:向上翻半屏

Enter:按行向后翻

删除单个字符

x:编辑模式下,删除光标所在处的单个字符

x:删除光标所在处及向后的共#个字符

删除命令:d

d命令根跳转命令组合使用

dw

de

db

d$

d^

dd:删除当前光标所在行

dd:删除光标所处的行起始的共#行;

末行模式下:

started,endadd

.:表示当前行

$:最后一行

+#:向下的#行

交换光标所在处的字符与其后面的字符的位置

xp

替换字符

替换光标所在处的字符;:r CHAR

R:替换模式

复制命令y

用法同d命令

y$          

y^

y0

ye

yw

yb

#COMMAND

yy:复制一整行

#yy:复制#

粘贴命令p

p:小写p表示如果删除或复制的为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容非整行,则粘贴至光标所在字符的后面

P:大写p表示,如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面

修改c:先删除内容,再转换为输入模式

编辑模式 –> 输入模式,实现删除操作

用法同d

c$                    

c^

c0          

cb

ce

cw

#COMMAND

cc:删除光标所在的行,并转换为输出模式;

#cc

撤销命令,u

u:撤销前一次的操作,可以撤销此前的n次操作,最多50

撤销前一次撤销的操作:ctrlr

重复前一次编辑操作

.

可视化模式:实现自由选取的操作

v:按字符选取

V:按行选取

vim末行模式操作

1.快速框选内容段

start_pos[,end_pos]

#:特定的第#行,例如5即第5行;

.:当前行;

$:最后一行;

#,#:指定行范围,左侧为起始行,右侧为结束行;

#,+#:指定行范围,左侧为超始行绝对编号,右侧为相对左侧行号的偏移量;

示例:3,+7   #表示第3行,框选之后的7

%:全文

/pattern/:从光标所在处起始向文件尾部第一次被模式所匹配到的行;

示例:/first/,$   #第一匹配frist的内容直到最后一行

/pat1/,/pat2/:从光标所在处起始,第一次由pat1匹配到的行开始,至第一次由pat2匹配到的行结束之间的所有行;

2.可同编辑命令一同使用,实现编辑操作:

y

c      

w /PATH/TO/SOMEFILE:将范围内的文本保存至指定的文件中;

r  /PATH/FROM/SOMEFILE:将指定的文件中的文本读取并插入至指定位置;

示例:/if/,/fi/d    #用来删除匹配出的iffi的框定的内容删除

3.查找

/PATTERN:从当前光标所在处向文件尾部查找能够被当前模式匹配到的所有字符串;

?PATTERN:从当前光标所在处向文件首部查找能够被当前模式匹配到的所有字符串;

n:下一个,与命令方向相同;

N:上一个,与命令方向相反;

4.查找并替换

使用格式:

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

可把分隔符替换为其它非常用字符:

s@要查找的内容@替换为的内容@修饰符

s#要查找的内容#替换为的内容#修饰符

使用方法:

要查找的内容:可使用正则表达式;

替换为的内容:不能使用正则表达式,但可以引用匹配结果;\1,\2…(可以查看正则表达式)

如果要查找的内容部分在模式中使用分组符号:在替换为的内容中使用后向引用;

直接引用查找模式匹配到的全部文本,要使用&符号;

修饰符:

i:忽略大小写;

g:全局替换,意味着一行中如果匹配到多次,则均替换;

&:引用模式匹配整个串添加字符串

示例:

%s@\<t\([[:alpha:]]\+\)\>@T\1@g 

解释:%表示快速框选的全文,s表示末行模式下的替换功能,@为内容段的分隔符

\<t\([[:alpha:]]\+\)\> :正则表达式,匹配锚定以t为词首的单词

T\1  :将前面匹配到的内容后向引用替换为T

g:表示全局替换

示例:%s@\<t[[:alpha:]]\+\>@&er@g

示例:%s@\<t[[:alpha:]]\+\>@&er@g

讲当前文件中部分内容另存为另外一个文件

末行模式下使用w命令

adder,adder /patch/to/somefile

将另外一个文件的内容填充在当前文件中

r patchto/somefile

shell交互,不用退出执行命令

:!command

高级进阶设定(末行模式,当前有效)

1.显示或取消显示行号

set nu

set nonu

2、显示忽略或区分字符大小写

ignorecase

set ic

3、设定自动缩进

set autoindent

简写为:set ai

取消:set noai

4、查找到的文件高亮显示或取消

set hlsearch

set nohlsearch

5、语法高亮

syntax on

syntax off

6、获取帮助

help

:help subject

vim配置文件,实现高价进阶配置永久有效

etc/vimrc,全局配置

~/.vimrc,家目录下个人配置文件

vim tutor教程命令

    习题:

1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;

cp /etc/rc.d/rc.sysinit /tmp

vim 末行模式下

:%s@^[[:space:]]\+@#@g

2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;

cp /boot/grub/grub.conf /tmp

vim 末行模式下

:%s@^[[:space:]]\+@@g

3、删除/tmp/rc.sysinit文件中的以#开头,且后面跟了至少一个空白字符的行行的#和空白字符;

vim 末行模式下

:%s@^[#][[:space:]]\+@@g

4、为/tmp/grub.conf文件中前三行的行首加#号;

:1,3s@^@#@g

5、将/etc/yum.repos.d/CentOS-Media.repo文件中所有的enabled=0或gpgcheck=0的最后的0修改为1;

:%s@\(enabled\|gpgcheck\)=0@\1=1@g

6、每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202

crontab -e

0 */4 * * * filepath=/backups/etc-$(date +\%Y\%m\%d\%H\%M);mkdir -p ${filepath};cp -rf /etc ${filepath};

7、每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,保存的文件名形如messages-20150402

crontab -e

* * * * 2,4,6 filepath=/backups/messages_logs/messages-$(date +\%Y\%m\%d);mkdir -p ${filepath};cp -rf /var/log/messages ${filepath};

8、每天每两小时取当前系统/proc/meminfo文件中的所有以S开头的信息至/stats/memory.txt文件中

crontab -e

* */2 * * * grep "^S" /proc/meminfo >>/stats/memory.txt

9、工作日的工作时间内,每两小时执行一次echo ""howdy""

crontab -e

0 9-18/2 * * * echo ""howdy""

脚本编程练习

10、创建目录/tmp/testdir-当前日期时间;

#!/bin/bashmkdir /tmp/testdir-$(date +\%Y\%m\%d)

11、在此目录创建100个空文件:file1-file100

#!/bin/bashmkdir /tmp/testdir-$(date +\%Y\%m\%d)for i in {1..100};do
    touch file${i}done

12、显示/etc/passwd文件中位于第偶数行的用户的用户名;

方法一:
sed -n '2~2p' /etc/passwd
方法二:
sed -n 'n,p' /etc/passwd

13、创建10用户user10-user19;密码同用户名;

#!/bin/bashfor i in {10..19};do
    useradd user${i}
    echo user${i} | passwd --stdin user${i}done

14、在/tmp/创建10个空文件file10-file19;

#!/bin/bashfor i in `seq 10 1 19`;do
    touch file${i}done

15、把file10的属主和属组改为user10,依次类推。

#!/bin/bashfor i in `seq 10 1 19`;do
    touch file${i}
    chown user${i}:user${i} /tmp/file${i}done

原创文章,作者:N22-武汉-enfp,如若转载,请注明出处:http://www.178linux.com/50005

(0)
N22-武汉-enfpN22-武汉-enfp
上一篇 2016-10-09 09:06
下一篇 2016-10-09 09:06

相关推荐

  • 网络23期心得

    1、描述计算机的组成及其功能 计算机系统是由五大部分组成:运算器、控制器、存储器、输入设备、输出设备   运算器(Datapath):运算器的功能是对数据进行各种算术去处和逻辑运算,即对数据进行加工处理。   控制器(Control):控制器是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、…

    Linux干货 2016-09-19
  • 关于加密那点事

    作者【Jev Tse】 环境:sentos6.8     【本文预览】      一、关于加密      二、对称加密      三、非对称加密      四、单向散列 …

    Linux干货 2016-12-01
  • linux发行版介绍及其哲学思想

    Linux是一种自由和开源的unix-like操作系统。目前运用领域最广泛、使用人数最多的操作系统。该操作系统的内核是Linus Torvalds在1991年10月5日首次发布。是一个多任务,多用户的操作系统,广泛应用在服务器,手机,平板电脑,电视,电子游戏等领域,我们生活中随处都可以见到linux身影。 Linux诞生 1991 年,在芬兰,赫尔辛基大学的…

    2017-09-16
  • 什么是CA??

       数字证书认证机构(英语:Certificate Authority,缩写为CA),也称为电子商务认证中心、电子商务认证授权机构,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。 介绍     CA中心为每个使用公开密钥的用户发放一个…

    Linux干货 2017-07-17
  • vim文本编辑器

    vim简介: vi: Visual Interface,文本编辑器 文本:ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi vim – Vi Improved 其他编辑器: gedit一个简单的图形编辑器 gvim一个Vim 编辑器的图形版本   vim使用: 三种主要模式: 命令(Norm…

    Linux干货 2017-06-17
  • 10分钟学会理解和解决MySQL乱码问题

    本文将详细介绍MySQL乱码的成因和具体的解决方案。在阅读本文之前,强烈建议对字符集编码概念还比较模糊的同学 阅读下博主之前对相关概念的一篇科普:十分钟搞清字符集和字符编码 MySQL出现乱码的原因 要了解为什么会出现乱码,我们就先要理解:从客户端发起请求,到MySQL存储数据,再到下次从表取回客户端的过程中,哪些环节会有编码/解码的行为。为了更好的解释这个…

    2015-03-17

评论列表(1条)

  • luoweiro
    luoweiro 2016-10-11 23:18

    vim总结的非常不错,另外在vim中批量修改指定的字符串很熟练,赞