天天看点

vim的使用二、管理输入输出 三、gedit 

一、vim

1.vim的异常退出

在vim异常退出系统中会在所编辑的文件目录中生成.file.swpvim再次编辑此文件时会出现相应提示
按 "o"                                   open
按 "e"                                   edit
按 "r"                                    recover(恢复)
按 "d"                                   delete.swap file
按 "q"                                   quit

2.在vim的命令模式下可以配置vim的工作方式

:set nu                                 行号添加 
:set nonu                             取消行号
:set mouse=a                      添加鼠标选择
:set cursorline                     行线显示 

以上设定都是临时的,因为每打开一次vim时,就是一个新的进程,故不会保留旧进程的vim工作方式。

永久设定方式

vim /etc/vimrc      此文件为vim的配置文件,在此文件最后加入以上参数。然后wq退出保存。

注意:当不确定对vim配置文件的修改时,可以先将配置文件备份。

3.vim命令模式下关键字搜索 

/关键字
n向下匹配
N向上匹配
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

           高亮显示freya

4.vim命令模式下字符的管理

(1).字符的复制

yl                                         复制一个字母
y3l                                       复制3个字母
yw                                       复制一个单词
y3w                                     复制3个单词
yy                                        复制一行
y3y                                     复制3行
p                                         复制完成后按“P”粘贴

(2).字符的删除

dl                                        删除一个字母
d3l                                      删除3个字母
dw                                      删除一个单词
d3w                                    删除3个单词
dd                                       删除一行
d3d                                     删除3行

(3).字符的剪切

cl                                        剪切一个字母
c3l                                      剪切3个字母
cw                                      剪切一个单词
c3w                                    剪切3个单词
cc                                       剪切一行
c3c                                     剪切3行
esc ---> p                           剪切过后会进入到插入模式,在执行粘贴动作时一定要退出插入模式

注意:u表示撤回前一个更改。

(4).vim的可视化模式 

在命令模式下按“ctrl+v”进入到可视模式在可视模式下可以区域选择字符

可视模式下批量添加字符

*>> ctrl+v选中要加入字符所在列
*>> 按“I”进入插入模式,写入要加入的字符

*>> 按esc

批量更改后的内容:

vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

(5).批量修改字符

:%s/原有字符/替换后字符              只替换每一行中出现的第一个原有字符
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
:%s/原有字符/替换后字符/g           替换所有
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
:1,ns/原有字符/替换后字符/g         替换1-n行
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
$ 追加
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

4.vim的分屏功能

ctrl+w--> s                               上下分屏
ctrl+w--> v                               左右分屏
ctrl+w c                                   关闭光标所在屏幕
ctrl+w 上下左右                      光标移动到指定屏幕
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
:sp file2                                   同时编辑当前文件和file2
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
vimdiff file1name fie2name    在vim里查看两个文件的不同
vim的使用二、管理输入输出 三、gedit 
如:vimdiff  file1  file2
vim的使用二、管理输入输出 三、gedit 

注意:ctrl和w同时按,再加上其他。

5.vim光标移动

在命令模式下
:数字                        移动到指定的行
G                             文件最后一行
gg                            第一行
在插入模式下
i                              光标所在位置插入
I                              光标所在行行首
a                             标所在字符的下一个位置
A                             光标所在行行尾
o                             光标所在行下一行
O                            光标所在行上一行
s                             删除光标所在字符插入
S                            光标所在行插入

6.vim的退出模式

:q                           当用vim打开文件但没有对字符作任何操作时可直接退出
:q!                          当用vim打开文件并对字符作操作,放弃所有操作退出
:wq                        保存退出
:wq!                       强行保存退出,对超级用户及文件所有人生效
vim的使用二、管理输入输出 三、gedit 
当文件提示是只读类型时,可以强制退出保存(对超级用户及文件所有人生效)
vim的使用二、管理输入输出 三、gedit 

7.vim手册

vimtutor                 vim的手册
:q                           退出vimtutor

二、管理输入输出

1.在系统中用普通用户做该实验,执行下述命令

例:find /etc -name passwd                                  -name表示按照姓名查找
因为student用户权限问题会有以下输出
find: ‘/etc/pki/CA/private’: Permission denied        因为普通用户没有进入权力,所以报错
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/audit’: Permission denied
/etc/passwd                                                           正确输出
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/selinux/targeted/modules/active’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/grub.d’: Permission denied
/etc/pam.d/passwd                                                   正确输出
find: ‘/etc/audisp’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/ipsec.d’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
find: ‘/etc/named’: Permission denied
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

上图表示/etc下的文件,标志“×”的就是普通用户没哟访问权限的文件。

在linux系统中,正确输出的编号为1,错误输出编号为2

find /etc -name passwd > file          重定向正确输出(将错误输出通过字符设备显示在shell里,正确输出保存在file里)

错误输出显示在shell里:

vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
正确输出保存在文件中:
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 
find /etc -name passwd 2> file       重定向错误输出(将正确输出通过字符设备显示在shell里,错误输出保存在file里)
find /etc -name passwd &> file       重定向所有输出(将正确和错误输出都保存在file中,shell中不显示任何内容)

注意:将错误输出也保存在file中,当点击reload(重新加载)时,如下图,会将原来file中的文件覆盖。故>, 2> ,&> 都会覆盖源文件内容 ,附加“>file”表示清空file。

vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

                   覆盖原文件后,file内容变为:

vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

2.为解决覆盖源文件的问题,有下面解决方法

find /etc -name passwd >> file         追加正确输出
find /etc -name passwd 2>> file      追加错误输出
find /etc -name passwd &>> file      追加所有输出

注意:>> 2>> &>>不会覆盖源文件内容,会把相应的输出字符方到文件的最后

3.管道(|)

 管道的作用是将前一条命令的输出变成管道后命令的输入

(1)ls /bin | wc -l        统计ls /bin 命令输出的行数

vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

(2)由于系统中错误的输出是无法通过管道的。所以用2>&1可以把错误的输出编号由2变成1

    比如 find /etc -name passwd 2>&1 | wc -l            显示正确输出和错误输出的总数

vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

    find /etc/ -name passwd 2>&11>/dev/null |wc -l    显示错误输出的个数

vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

注意:1>/dev/null 表示将正确输出重定向到根下的字符设备的空里(字符设备的内容用于显示与shell里)2>&1和1>/dev/null,按顺序执行,而一旦有输出就执行|wc -l,即先将错误输出转化为正确输出,每转化一次,就执行|wc -l,则错误输出的数目不断更新,直至2>&1执行结束。然后再执行1>/dev/null每次执行都没有输出,故不执行|wc -l,那么最后就统计出错误输出的数目了。如果调换顺序,如find /etc/ -name passwd 1>/dev/null 2>&1  |wc -l,表示先执行1>/dev/null,没有输出,故|wc -l为0,将所有正确输出(1)都重定向到/dev/null后,再执行2>&1,将所有错误输出都转化为正确输出,然后将转化的正确输出再重定向到/dev/null,最后|wc -l的结果就是0,如上图。      

vim的使用二、管理输入输出 三、gedit 

(3)tee   复制输出到指定位置

  date |tee file |wc -l   tee命令复制date命令的输出到file中,并统计输出行数

vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

三、gedit 

1.快捷键

                    ctrl+n                         在gedit中打开一个新的tab     

ctrl+s                         保存文件
ctrl+o                          打开文件
ctrl+x                         剪切字符
ctrl+v                          粘贴字符
ctrl+c                          复制字符
yelp help:gedit           gedit的图形手册

2.

                      <                                  输入 

cat  >>文件名<<end     向文件内追加内容 
vim的使用二、管理输入输出 三、gedit 
vim的使用二、管理输入输出 三、gedit 

注意:end表示结束标志,即当在shell中输入end时,在file里追加的内容截止。

3.更改密码

以root身份更改普通用户密码

passwd student <<end
>密码
>密码
>end
vim的使用二、管理输入输出 三、gedit