移动光标
1. 上下左右四个箭头键
2. h左j下k上l右
数字+ hjkl(方向键)
数字+ space ( 空格) 向右移动N 个字符
数字+ enter(回车) 光标向下移动指定行
Ctrl + f page down 下翻页
Ctrl + b page up 上翻页
Ctrl + d 向下移动半页
Ctrl + u 向上移动半页
+ 光标移动到非空白字符处的下一行
- 光标移动到非空白字符处的上一行
0 (零) 相当与home 移动到行首
$ 相当于end 移动到行尾
H 光标移动到屏幕最上方所在的行首
M 屏幕中央所在行的行首
L 最下方所在行的行首
g g 移动到文件的第一行 相当于1 G
G 光标移动到文件的最后一行
数字+ G 移动到指定行
编辑
I / i i= 光标前插入 I = 光标所在行行首
A / a a= 光标后 A = 光标所在行行尾
O / o o= 光标所在行下一行插入 O = 光标所在行上一行插入
R / r(替换) r= 替换光标所在处的字符 R = 从光标所在行开始替换、光标所在处开始向后替换。
# 保存、并退出
:w 保存
:w! 强制保存
:q 退出
:q! 强制退出
:wq 保存退出
:wq! 强制保存退出
:x 相当于wq
ZZ 相当于wq!
: w / path/ filename 将内容保存到指定位置
:r / path/ filename 将内容从指定文件读取过来
搜索&替换
/ keyword 从光标所在位置向下搜索 n下一个、N 上一个
?keyword 从光标所在位置向上搜索 n上一个、N 下一个
:% (全文) s/ old/ new / g 全文搜索替换
:n1, n2 s/ old/ new / g n1与n2之间进行替换
:n s/ old/ new / g 只在n行进行替换
:n1, n2 s/ old/ new / gc ( 替换前询问) n1与n2之间进行替换询问是否替换
:n1, n2 s/ ^ #
:n1, n2 s/ ^ / #/ n1与n2之间的开行头加上#号
:g/ ^ \s* $/ d 删除全文中的空行 ^ 代表开头 \s代表空格 * 通配符 $代表结尾
删除&复制&粘贴
X / x x= 从光标所在处向后删除一个字符 X = 从光标所在处向前删除一个字符。 数字+ x同上,向前/ 向后删除n个字符
dG 删除光标所在行处到最后一行
d1G 删除光标所在行处到第一行的所有
d$ 删除光标所在处到行尾
d0 删除光标所在处到行首
dd 删除光标所在行
数字+ dd 删除n行
yy 复制光标所在行
数字+ yy 复制n行
y1G 复制光标所在行处到第一行
yG 复制光标所在行处到最后一行
y0 复制光标所在处到行首
y$ 复制光标所在处到行尾
P 粘贴
p/ P p= 从光标所在行下一行粘贴 P = 上一行粘贴
u 撤销
区块选择
v 字符选择
V 行选择
Ctrl + V 区块选择
y 复制
d 删除
eg:
多行注释:
Ctrl + v 进入区块选择模式——> 按大些“I ”进入插入模式——> 输入注释符“#”或者是"//" ,然后立刻按下ESC(两下)
反注释:
Ctrl + v 进入块选择模式——> 选中你要删除的行首的注释符号,——> 选好之后按d即可删除注释
多文件编辑
vim filename1 filename2
:n 下一个
:N 上一个
:files 查看打开的文件
:sp filename ( 上下分屏)切割当前窗口开启新的内容
Ctrl + w 切换光标位置
:vsp filename ( 左右分屏)
Ctrl + w 切换光标位置
vim环境变量
设置vim环境变量 在用户的家目录下。vimrc ( 记录用户对vim的设置)
: set nu/ : set nonu 设置行号
: set hisearch/ : set no 搜索是= 时是否高亮显示
: set autoindent/ : set no 是否自动缩进
: set backup/ : set no 是否自动备份
: set ruler/ : set no 是否提示光标位置
:syntax on/ : syntax off 文档内容是否显示颜色(语法高亮): syn on : syn off
:set paste ( 不要写到vimrc下) 解决复制文本格式问题
用家目录下. viminfo 记录vim中使用过的命令/ 操作
环境变量
$? 执行上一个指令的返回值
$0 当前程序的名称
$n 当前程序的第n个参数, n= 1 , 2 , …9
$* 当前程序的所有参数( 不包括程序本身)
$# 当前程序的参数个数( 不包括程序本身)
$$ 当前程序的PID
$@ 与$* 相同,但是使用时加引号,并在引号中返回每个参数
$- 显示shell使用的当前选项,与set命令功能相同
echo $USER 表示当前用户的登录名称,值与whoami命令的结果一致
echo $UID 表示当前用户的ID,该变量的值与”id- u”命令的结果一致
echo $SHELL 表示当前用户的登录Shell ,值与”passwd”文件中的Shell 字段一致
echo $HOME 表示当前用户的登录目录(宿主目录),值与”psaawd”文件中home字段一致
echo $PWD 表示用户当前所在的目录,值与pwd命令的结果一致
echo $PATH 表示当前用户的命令搜索路径,即用户不指定全路径名执行命令,Shell 程序将在哪些目录以及按照何种顺序进行命令的搜索
查看文件more、 less、tail、head、cat
more
Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
# 参数:
- num 一次显示的行数
- d 提示使用者,在画面下方显示 [ Press space to continue , 'q' to quit. ] ,如果使用者按错键,则会显示 [ Press 'h' for instructions. ] 而不是 '哔' 声
- l 取消遇见特殊字元 ^ L (送纸字元)时会暂停的功能
- f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
- p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
- c 跟 - p 相似,不同的是先显示内容再清除其他旧资料
- s 当遇到有连续两行以上的空白行,就代换为一行的空白行
- u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+ / pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+ num 从第 num 行开始显示
fileNames 欲显示内容的文档,可为复数个数
# 实例:
逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
more - s testfile
从第 20 行开始显示 testfile 之文档内容。
more + 20 testfile
# 常用操作命令:
Enter 向下n行,需要定义。默认为1 行
Ctrl + F 向下滚动一屏
空格键 向下滚动一屏
Ctrl + B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
! 命令 调用Shell ,并执行命令
q 退出more
less
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
# 参数说明:
- b < 缓冲区大小> 设置缓冲区的大小
- e 当文件显示结束后,自动离开
- f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
- g 只标志最后搜索的关键词
- i 忽略搜索时的大小写
- m 显示类似more命令的百分比
- N 显示每行的行号
- o < 文件名> 将less 输出的内容在指定文件中保存起来
- Q 不使用警告音
- s 显示连续空行为一行
- S 行过长时间将超出部分舍弃
- x < 数字> 将"tab" 键显示为规定的数字空格
/ 字符串: 向下搜索"字符串" 的功能
? 字符串: 向上搜索"字符串" 的功能
n: 重复前一个搜索(与 / 或 ? 有关)
N : 反向重复前一个搜索(与 / 或 ? 有关)
b 向上翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[ pagedown] : 向下翻动一页
[ pageup] : 向上翻动一页
# 实例:
1 、查看文件
less log2013. log
2 、ps查看进程信息并通过less分页显示
ps - ef | less
3 、查看命令历史使用记录并通过less分页显示
[ root@localhost test] # history | less
22 scp - r tomcat6. 0.32 root@192.168.120.203 : / opt/ soft
23 cd . .
……省略……
4 、浏览多个文件
less log2013. log log2014. log
说明:
输入 :n后,切换到 log2014. log
输入 :p 后,切换到log2013. log
# 附加备注:
1. 全屏导航
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
2. 单行导航
j - 向前移动一行
k - 向后移动一行
3. 其它导航
G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令
4. 其它有用的命令
v - 使用配置的编辑器编辑当前文件
h - 显示 less 的帮助文档
& pattern - 仅显示匹配模式的行,而不是整个文件
5. 标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
ma - 使用 a 标记文本的当前位置
'a - 导航到标记 a 处
tail
可用于查看文件的内容,有一个常用的参数 - f 常用于查阅正在改变的日志文件。
tail - f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
tail 查看日志 tail - f = tailf
# 参数:
- f 循环读取
- q 不显示处理信息
- v 显示详细的处理信息
- c< 数目> 显示的字节数
- n< 行数> 显示文件的尾部 n 行内容
-- pid= PID 与- f合用, 表示在进程ID, PID死掉之后结束
- q, -- quiet, -- silent 从不输出给出文件名的首部
- s, -- sleep- interval= S 与- f合用, 表示在每次反复的间隔休眠S 秒
# 实例:
要显示 notes. log 文件的最后 10 行,请输入以下命令:
tail notes. log
要跟踪名为 notes. log 的文件的增长情况,请输入以下命令:
tail - f notes. log
此命令显示 notes. log 文件的最后 10 行。当将某些行添加至 notes. log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl - C )组合键停止显示。
显示文件 notes. log 的内容,从第 20 行至文件末尾:
tail - n + 20 notes. log
显示文件 notes. log 的最后 10 个字符:
tail - c 10 notes. log
head
head 命令可用于查看文件的开头部分的内容,有一个常用的参数 - n 用于显示行数,默认为 10 ,即显示 10 行的内容。
# 参数:
- q 隐藏文件名
- v 显示文件名
- c< 数目> 显示的字节数。
- n< 行数> 显示的行数。
# 实例:
#显示 runoob_notes. log 文件的开头 10 行,请输入以下命令:
head runoob_notes. log
#显示 notes. log 文件的开头 5 行,请输入以下命令:
head - n 5 runoob_notes. log
#显示文件前 20 个字节:
head - c 20 runoob_notes. log
cat
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
# 使用权限:
所有使用者
# 语法格式:
cat [ - AbeEnstTuv ] [ -- help] [ -- version] fileName
#参数说明:
- n 或 -- number: 由 1 开始对所有输出的行数编号。
- b 或 -- number- nonblank: 和 - n 相似,只不过对于空白行不编号。
- s 或 -- squeeze- blank: 当遇到有连续两行以上的空白行,就代换为一行的空白行。
- v 或 -- show- nonprinting: 使用 ^ 和 M - 符号,除了 LFD 和 TAB 之外。
- E 或 -- show- ends : 在每行结束处显示 $。
- T 或 -- show- tabs: 将 TAB 字符显示为 ^ I 。
- A , -- show- all: 等价于 - vET。
- e: 等价于"-vE" 选项;
- t: 等价于"-vT" 选项;
# 实例:
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat - n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat - b textfile1 textfile2 >> textfile3
清空 / etc/ test. txt 文档内容:
cat / dev/ null > / etc/ test. txt
cat 也可以用来制作镜像文件。
要制作软盘的镜像文件,将软盘放好后输入:
cat / dev/ fd0 > OUTFILE
把 image file 写到软盘,输入:
cat IMG_FILE > / dev/ fd0
#注:
1. OUTFILE 指输出的镜像文件名。
2. IMG_FILE 指镜像文件。
3. 若从镜像文件写回 device 时,device 容量需与相当。
4. 通常用制作开机磁片。
cat主要有三大功能:
1. 一次显示整个文件: cat filename
2. 从键盘创建一个文件: cat > filename 只能创建新文件, 不能编辑已有文件.
3. 将几个文件合并为一个文件: cat file1 file2 > file
# 创建并写入文件 追加 覆盖:
[ root@fox yconfig] # cat > fox. txt << EOF #创建/ 覆盖fox. txt文件;
> 1
> 2
> EOF
[ root@fox yconfig] # cat fox. txt
1
2
[ root@fox yconfig] # cat >> fox. txt << E #向fox. txt文件追加内容;
> 3
> E
[ root@fox yconfig] # cat fox. txt
1
2
3
#cat命令结合head、tail命令只显示文件的部分内容
#显示文件最后十行
cat filename | head
#显示文件的10 - 30 行
cat filename | head - n 30 | tail - n + 10
#显示文件的第10 行之后的30 行
cat filename | tail - n + 10 | head - n 30
#显示文件的除最后10 行外的数据
cat filename | head - n - 10
#显示文件的倒数第10 - 30 行
cat filename | tail - n 30 | head - n - 10
#显示文件的倒数第十行上面的30 行数据
cat filename | head - n - 10 | tail - n 30