Linux常用Shell命令及Vi的使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用Shell命令及Vi的使用
1.Vi 全屏幕编辑器的使用
2.grep 找出满足条件的行
3.cut 摘取指定的列
4.sort 对文件按指定的关键字段排序
5.uniq 删除文件中重复的行
6.wc 对文件进行字符数、单词数、行数统计
7.diff 比较两个文件的不同之处
8.who/w 列出当前登录在线用户的详细情况
vi全屏幕编辑器的使用
•vi的特点、及几个基本概念
•vi的三种模式,及之间的切换
•光标移动指令
•删除指令
•复制、粘贴指令
•查找及替换指令
•其他指令
vi简介
Vi是“Visual”的意思,几乎所有的UNIX系统都提供这个程序。它是一种全屏幕编辑程序。这里的屏幕是文本对外显示的窗口,在这个窗口内,用户可以自由地移动光标,对文本中的字符、字、行、段进行插入、删除和修改等操作,并通过上下移动窗口,对文件的全部内容进行操作。
vi的特点、及几个基本概念
1.由行编辑器发展而来
2.双手不必离开键盘就可完成所有操作
3.不依赖于鼠标和功能键(home/end/pageup/pagedown/...)
4.在命令模式下,所有的输入都当作命令看待
5.在文本输入模式下,所有的输入都当作文本
vi的三种模式,及模式间切换
•命令模式到文本模式切换:i a o I A O
i (insert) 在光标所在位置插入(当前字符前)
a (append)在光标所在位置后插入(当前字符后)
I 在当前行首插入A在当前行尾插入
o (open) 在光标所在当前行的下面插入新行
O 在光标所在当前行的上面加入新行
扩展命令模式(长命令模式)
在命令模式下输入:,在屏幕下方出现:提示符,等待用户输入其他指令。•vi的启动
在shell命令状态下输入
vi filename(打开现有文件,或编辑新文件)
vi
•vi的退出
在扩展命令模式下输入
:wq 文件存盘退出
:q! 不存盘强制退出
:wq newfilename 存为新文件newfilename
光标移动指令
•对应方向键移动
h 左移一字符k 上移一行j 下移一行l 右移一字符
•按单词单位移动
b 移到词首 e 移到词尾w 移到下一词首
•按行单位移动
0 移到行首$ 移到行尾
nG 移到第n行G 移到最后一行
•按页单位移动
^ f 下卷一屏^ b 上卷一屏
^ d 下卷半屏^ u 上卷半屏
删除字符指令
•x 删除当前光标处的字符
•X 删除当前光标前一个字符
•d
•d0 删除从当位置到行首的所有字符
•d$ 删除从当位置到行尾的所有字符
•dw 删除从当位置到下一个词首的所有字符
•dG 删除从当位置到文档末的所有字符
•d1G 删除从当位置到文档开始处的所有字符
•dd 删除当前行
复制与粘贴指令
•复制yank
y
yw 复制从当前位置到下一词首
y0 复制从当前位置到行首的所有字符
y$ 复制从当前位置到行尾的所有字符
yG 复制从当前位置到文档末的所有字符
y1G复制从当前位置到文档开始的所有字符
yy复制整行
•粘贴put
p 将复制的内容粘贴到光标后
P 将复制的内容粘贴到光标前
查找和替换指令
查找
/string 从光标当前位置向下查询字符串string
?string 从光标当前位置向上查询字符串string
n 重复上次向下查找
N 重复上次向上查找
查找和替换指令
替换指令(扩展命令模式下)
(1):1,$s/oldstr/newstr/g
在全文范围用newstr替换oldstr
(2):n,ms/oldstr/newstr/g
在第n行到第m行内用newstr替换oldstr
说明参数g后可跟参数c,表示在替换前需用户确认。
如:
:1,20s/jason/Jason/gc
在1到20行内用Jason替换jason,并每次替换要求用户确认。其他指令
•u undo 撤消上一次操作
•U 撤消对当前行的所有操作,恢复到原来状态。
•:e newfilename 不退出vi,编辑其他文件
•:r otherfilename 在光标位置读入其他文件
•:!cmd 执行shell命令cmd
•:r!cmd 执行shell命令并把运行结果插入当前光标处
•:n,m w filename 把第n到m行的内容存入文件
字符串查找(grep)
•grep
在文件中搜索含有特定字符串模式的行,并显示出来。
命令格式:grep [-clnvy]
-c只显示符合字符串模式的总行数
-l只显示符合字符串模式的文件的文件名
-n显示符合字符串模式的行的行号
-v显示不含字符串模式的行
-y不区分字母的大小写
字符串模式中的特殊符号:
.匹配任一字符
*匹配任意多个字符
^匹配行首
$匹配行尾
[]匹配[]中的任意字符
[^ ]与不在[]内的任意字符匹配
字符串查找(续)
% grep ab myfile
搜索myfile文件,显示所有包含字符串ab的行。
% grep ‘^ab’ myfile
搜索myfile文件,显示所有以字符串ab开头的行。
% grep –v ‘^ab’ myfile
搜索myfile文件,显示所有不以字符串ab开头的行。
% grep –l ‘[hH]ello’ *
显示当前目录下所有包含字符串hello/Hello的文件的文件名。
grep在命令输出中的过滤作用:
配合管道命令|可过滤掉不需的信息: