Linux vi 编辑器

来自CloudWiki
Cloud17讨论 | 贡献2018年6月26日 (二) 01:31的版本 =文件内容操作命令—— grep
跳转至: 导航搜索

vi 编辑器

Linux3-2.png

主要操作: i ,/,:w ,:q (插入,查找,保存,退出)

光标移动

操作类型 操作键 功能
光标移动 上下左右 上下左右
翻页 Page Up/Page Down 示例
行内快速跳转 Home键 跳转至行首
行内快速跳转 End键 跳转至行尾
行间快速跳转  :0 跳转到文件的首行
行间快速跳转 :$ 跳转到文件的末尾行
行间快速跳转 :n 跳转到文件中的第#行
行号显示 :set nu 在编辑器中显示行号
行号显示 :set nonu 取消编辑器中的行号显示

复制、粘贴、删除

操作类型 操作键 功能
删除 x或Del 删除光标处的单个字符
删除 dd 删除当前光标所在行
删除 #dd 删除从光标处开始的#行内容
删除 d^ 删除当前光标之前到行首的所有字符
删除 d$ 删除当前光标处到行尾的所有字符
复制 yy 复制当前行整行的内容到剪贴板
复制 #yy 复制从光标处开始的#行内容
粘贴 p 将缓冲区中的内容粘贴到光标位置处之后
粘贴 P 粘贴到光标位置处之前

查找和替换

操作类型 操作键 功能
查找 /word 从上而下在文件中查找字符串“word”
查找  ?word 从下而上在文件中查找字符串“word”
查找 n 定位下一个匹配的被查找字符串
查找 N 定位上一个匹配的被查找字符串
替换  :s /old/new 将当前行中查找到的第一个字符“old” 串替换为“new”
替换 :s /old/new/g 将当前行中查找到的所有字符串“old” 替换为“new”
替换  :#,# s/old/new/g 在行号“#,#”范围内替换所有的字符串“old”为“new”
替换  :% s/old/new/g 在整个文件范围内替换所有的字符串“old”为“new”
替换  :s /old/new/c 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认

保存、撤销及退出

操作类型 操作键 功能
撤销 u 按一次取消最近的一次操作

多次重复按u键,恢复已进行的多步操作

撤销 U 用于取消对当前行所做的所有编辑
保存  :w
保存  :w /root/newfile 另存为其它文件
退出  :wq 保存退出
退出  :q! 放弃对文件内容的修改,并退出vi

文件相关命令

文件内容操作命令—— wc

用途:统计文件中的单词数量(Word Count)等信息

格式:wc [选项]... 目标文件...

常用命令选项

  • -l:统计行数
  • -w:统计单词个数
  • -c:统计字节数


[root@localhost ~]# wc /etc/hosts
  4  23 185 /etc/hosts

文件操作命令 —— ln

用途:为文件或目录建立链接(Link)

格式:ln [-s] 源文件或目录… 链接文件或目标目录

常用命令选项

  • -s:建立符号链接文件(省略此项则建立硬链接)

关于链接文件

  • 符号链接:指向原始文件所在的路径,又称为软链接
  • 硬链接:指向原始文件对应的数据存储位置
  • 不能为目录建立硬链接文件
  • 硬链接与原始文件必须位于同一分区(文件系统)中
[root@iZwz9a4d6crd1w205b54pmZ ~]# cd test
[root@iZwz9a4d6crd1w205b54pmZ test]# mkdir mediawiki2.29.1
[root@iZwz9a4d6crd1w205b54pmZ test]# ln -s mediawiki2.29.1 mediawiki
[root@iZwz9a4d6crd1w205b54pmZ test]# ls
a.txt  mediawiki        mke2fs.conf  my.txt   theDir
b.txt  mediawiki2.29.1  myDir        testDir

文件内容操作命令 —— cat

用途:显示出文件的全部内容

[root@localhost ~]# cat  /etc/host.conf
order hosts,bind
[root@localhost ~]# cat  /etc/resolv.conf
search localdomain
[root@localhost ~]# cat  /etc/resolv.conf  /etc/host.conf
search localdomain
order hosts,bind


文件内容操作命令 — more、less 、head、tail

用途:全屏方式分页显示文件内容

交互操作方法:

  • 按Enter键向下逐行滚动
  • 按空格键向下翻一屏、按b键向上翻一屏
  • 按q键退出
[root@iZwz9a4d6crd1w205b54pmZ test]# more /etc/my.cnf

less命令

用途:与more命令相同,但扩展功能更多

交互操作方法:

  • 与more命令基本类似,但个别操作会有些出入
  • 按Page up/down 翻页,按上下键逐行查看,按字母q退出

[root@iZwz9a4d6crd1w205b54pmZ test]# less /etc/my.cnf

文件内容操作命令 ——head、tail

用途:查看文件开头的一部分内容(如果不指定参数n,默认为10行) 格式:head -n 文件名

[root@iZwz9a4d6crd1w205b54pmZ test]# head -5 /etc/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock


tail命令

用途:查看文件结尾的少部分内容(默认为10行)

格式:tail -n 文件名

tail -f 文件名

[root@localhost ~]# tail -2 /var/log/messages
Sep  8 15:49:29 localhost scim-bridge: Cleanup, done. Exitting...
Sep  8 15:49:29 localhost Cleanup, done. Exitting...


文件内容操作命令—— grep

  • 用途:在文件中查找并显示包含指定字符串的行
  • 格式:grep [选项]... 查找条件 目标文件
  • 常用命令选项
    • -i:查找时忽略大小写
    • -v:反转查找,输出与查找条件不相符的行
  • 查找条件设置
    • 要查找的字符串以双引号括起来
    • “^……”表示以……开头,“……$”表示以……结尾
    • “^$”表示空行


归档及压缩命令 —— gzip、bzip2

用途:制作压缩文件、解开压缩文件

格式:

gzip  [-9]  文件名...
zip  [-9]  文件名...
gzip  -d  .gz格式的压缩文件
bzip2  -d  *.bz2格式的压缩文件
  • 常用命令选项
-9:表示高压缩比,多在创建压缩包时用
-d:用于解开已经压缩过的文件
[root@iZwz9a4d6crd1w205b54pmZ myDir]# gzip myDir/*
[root@iZwz9a4d6crd1w205b54pmZ myDir]# gzip -dv 1.txt.gz
1.txt.gz:         0.0% -- replaced with 1.txt


归档及压缩命令 —— tar

用途:制作归档文件、释放归档文件 格式:tar [选项]... 归档文件名 源文件或目录 (制作归档文件)

             tar  [选项]...  归档文件名  [-C 目标目录]  (解压归档文件)

常用命令选项

-c:创建 .tar 格式的包文件
-x:解开.tar格式的包文件
-v:输出详细信息
-f:表示使用归档文件
-p:打包时保留原始文件及目录的权限
-t:列表查看包内的文件

-C:解包时指定释放的目标文件夹
-z:调用gzip程序进行压缩或解压
-j:调用bzip2程序进行压缩或解压

压缩:

这种格式是使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。可以使用下面的命令去压缩一个目录:

  1. tar -zcvf archive_name.tar.gz directory_to_compress
   1

解压缩:

  1. tar -zxvf archive_name.tar.gz
   1

上面这个解包命令将会将文档解压在当前目录下面。当然,你也可以用这个命令来更改解包的路径:

  1. tar -zxvf archive_name.tar.gz -C /tmp/extract_here/


返回 Linux基础