vim(纯文本编辑器)的三种模式:普通模式,插入模式,末行模式
命令(打开文件的方法):
1.vim file //光标置于第一行行首
2.vim file +n //光标置于第n行
3.vim file + //光标置于末尾行的行首
4.vim file +/pattern //光标置于与pattern匹配的字符串处,pattern为任意字符
vim 字符有颜色标记,很容易差错
普通模式下:
光标定位:
hjkl 光标上下左右移动
0 $ 跳到光标所在行的行首和行尾
gg G 跳到行首和行尾
文本编辑:
y 复制(以行为单位)
d 删除(以行为单位)
p 粘贴
u 撤销
末行模式:
保存退出:
:10 进入第十行
:q! 不保存强制退出
:w 保存
:q 退出
:wq 保存退出
:w! 强制保存
:e /root/aa.txt 打开文件
:e! 重新打开当前文件
:x 保存退出(不需要!)
:X 对文件进行加密
:$ 快速进入末行
读入文件/写入文件:
:w 存储到当前文件
:w /agan6.txt 另存为/agan6.txt
:1,3 w agan/txt 另存1-3行,生成新文件为agan6.txt
:r /etc/hosts 读入文件到光标所在行后
:5 r /etc/hosts 读入文件到第5行后
查找替换:
语法格式:
:范围 s /old/new选项
例如:
:1,6 s/root/agan/ 把1-6行替换为agan
:% s/root/agan/g %表示全文,g表示全局(备注:全文值替换行首,全局替换所有)
:6,$ s/root/agan/g $表示最后一行
:1,9 s/^#// 1-9行的开头#替换为空,批量取消注释
:% s/^/#/ 给所有行加上#注释掉
设置环境:
临时设置:
:set nu 设置行号
:set nonu 取消设置行号
永久设置:
~/.vimrc //影响当前用户
/etc/vimrc //影响所有系统用户
例如:
[root@agan~]# vim.vimrc
set nu
备注:把环境设置写入到配置文件末尾处
验证临时还是永久,重启一下
练习教程:
vimtutor zh 中文版
vimtutor 英文版
查看自己的文件内容:
命令有:cat more less head tail
cat查看文件内容
more,less分页查看文件内容
head查看文件头部内容
tail查看文件尾部内容
cat:
语法:cat [option] [file]
常用选项:
-n 从1开始对所有输出内容按行编号,不忽略空白行
-b 忽略显示空白行,只显示有内容的行
范例1:
编辑新文件:
例如:cat > text1.txt << EOF
> ni
> hao
> ma
> EOF
备注:使用>>符号,可实现非交互式编辑
利用>>追加信息,否则直接全部覆盖
范例2:
合并多个文件
cat text1 text2 text3 > new1
范例3:
清空文件内容,保留文件
cat /dev/null > text1.txt
备注:这里不能多次清空
查看文件more命令:
语法格式:more [option] [file]
常用选项:
+num 从第num行开始显示
-num 定义屏幕显示行数
常用操作:
v 调用vi编辑器
b 返回上一屏
= 输出当前行
q 退出more的动作
less:
类似more,可以分页显示文件内容,比more强大
语法格式:
less [option] [file]
常用选项:
-i 搜索时可以忽略大小写
-N 每行前输出行号
-p 后面跟被搜索的字符
! 调用shell执行命令
范例1:在/etc/profile搜索单词MAIL
1.less -p MAIL /etc/profile
2.less -ip mail /etc/profile
范例2:搜索字母a的同时显示行号
less -N -p a /etc/yum.conf
范例3:分页显示目录下的内容
ls /etc/ | less
head:显示头部内容,默认10行
语法:head [option] [file]
常用选项说明:
-n 行数 指定显示的行数
范例1:显示文件的前5行
head -5 /etc/yum.conf
head -n 5 /etc/yum.conf
范例2:最后10行不输出
head -n -10 /etc/yum.conf
tail:显示文件的尾部,默认10行
常用选项说明:
-n 行数 //指定显示的行数
-F //实时输出文件变化后追加的数据
范例1:显示文件末尾5行的内容
tail -n 5 /etc/yum.conf
tail -5 /etc/yum.conf
范例2:实时监控日志的变化(生产中常用的场景是监控日志文件)
tail -F /var/log/secure
备注:shell开启两个接口,一个监控,一个登录,观察实时信息
resyslogd:系统的日志子程序记录大部分操作系统相关的日志记录。各类程序以自己的方式记录日志
常见日志文件:
1、/var/log/boot.log
一般包含系统启动时的日志,包括自启动的服务。
2、/var/log/btmp
记录所有失败登录信息。非文本文件,可以使用last -f /var/log/btmp进行查看。
3、/var/log/cron
cron计划任务的日志,每当cron任务被执行的时候都会在这个文件里面记录。
4、/var/log/dmesg
包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以直接查看这个文件或者使用dmesg这个命令查看。
5、/var/log/lastlog
记录所有用户的最近信息。非文本文件,可以使用lastlog进行查看。
6、/var/log/maillog
包含来着系统运行电子邮件服务器的日志信息。
7、/var/log/message
包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。
文件的压缩和解压缩:
tar:打包压缩,解压文件
tar [option] [file]
常用选项说明:
z //有gzip属性的
c //创建新的tar包
v //显示详细的tar命令过程
f //指定压缩文件的名字
x //解压tar包
C //指定解压的目录路径
–exclude=PATTERN //打包时排出不需要处理的文件或目录
范例1:文件的压缩
tar -cvf jpg.tar *.jpg //将文件里所有jpg文件打包成jpg.tar
tar -czvf jpg.tar.gz *.jpg //将文件里所有jpg文件打包成jpg.tar.gz
tar -cvf jpg.tar *.jpg --exclude=6.jpg //排除6.jpg不压缩
tar -cvf jpg.tar *.jpg --exclude={2...6}.jpg //排除2-6.jpg不压缩
tar -cvf jpg.tar *.jpg --exclude=2.jpg --exclude=4.jpg //排除不连续的2和4不压缩
unzip -r agan.zip text1.txt //把text1.txt压缩成名为agan.zip的文件
范例2:文件的解压缩
tar -xvf jpg.tar //解压tar包
tar -xzvf jpg.tar.gz //解压tar.gz包
tar -xvf jpg.tar -C /agan //解压到指定路径
unzip agan.zip //解压缩*.zip的文件