一、vim文本编辑器
vi vim emacs gedit
----------------------------------------------------------------------------------------
[[email protected] Desktop]# whereis vi
vi: /bin/vi /usr/share/man/man1p/vi.1p.gz/usr/share/man/man1/vi.1.gz
[[email protected] Desktop]# rpm -qf /bin/vi
vim-minimal-7.2.411-1.8.el6.x86_64
----------------------------------------------------------------------------------------
[[email protected] Desktop]# whereis vim
vim: /usr/bin/vim /usr/share/vim/usr/share/man/man1/vim.1.gz
[[email protected] Desktop]# rpm -qf /usr/bin/vim
vim-enhanced-7.2.411-1.8.el6.x86_64
----------------------------------------------------------------------------------------
vim
[[email protected] Desktop]# vim -o /etc/passwd /opt/passwd ----多个文本编辑
ctrl+ww ----各个文本的切换
vim 模式:
1、输入模式(插入模式)
a ----光标所在的后一个字符
A ----光标所在的行尾
o ----光标所在行的新起下一行
O ----光标所在行的新起上一行
i ----光标所在位置的前一个字符
I ----光标所在行首
s ----删除光标所在字符进入
S ----删除光标所在行进入
r ----替换一个字符
R ----替换模式,替换所有字符知道输入esc键退出替换模式
2、命令模式
yy ----复制光标所在行内容
nyy ----复制n行
p ----粘贴(光标所在行的下一行)
P ----粘贴在光标所在的上一行
dd ----删除光标所在行
ndd ----删除n行
gg ----文本头部
ngg ----从头部开始的n行
G ----文本尾部
u ----撤销
x ----向后删除一个字符(delete)
X ----向前删除一个字符(baskspace)
快捷键:
HOME键 ----行首
END键 ----行尾
shift+^ ----行首
shift+$ ----行尾
h 左<--
l 右-->
k 上
j 下
--ctrl+b 向上翻页 = page up
--ctrl+f 向下翻页 = page down
ctrl+d 向下移动半页
ctrl+u 向上移动半页
3、末行模式:
输入:进入到末行模式
1)查找
2)保存
3)读一个文本进入当前文本
/关键字 ----向下查找
?关键字 ----向上查找
n ----向下匹配关键字
N ----向上匹配关键字
----------------------------------------------------------------------------------------
①临时设置行号(临时)
:set number ----设置行号(临时)
②永久设置行号
[[email protected] Desktop]# vim /etc/vimrc
set number
[[email protected] Desktop]# source /etc/vimrc ----设置即刻生效
[[email protected] Desktop]# . /etc/vimrc ----同上
----------------------------------------------------------------------------------------
2)保存
:nohl ----取消文本中的高亮提示
:w ----保存
:w /opt/abc ----另存为
:1,10w /opt/abc ----将文本前1到10行保存到/opt/abc 指定另存文本的行数
:wq ----保存退出
:x ----同上
:wq! ----强制保存退出
:q ----退出
:q! ----强制退出
:e! -----可以撤消所有的修改至打开文件的
:r ----将另一个文本读到当前光标所在位置的下一行
3)全文替换
:%s/content/newcontent/ -----全文中的每一行中的第一个匹配的content替换成newcontent
:%s/bin/sbin/ ----全文中的每一行里的第一个bin被替换成sbin
:%s/bin/sbin/g ----全文替换(所有找到的bin关键字全部被替换)
:%s/bin/sbin/gc ----询问式替换
:%s#/bin/bash#/sbin/nologin#gc
:10,20s/bin/sbin/gc -----10-20行内的bin替换sbin(指定替换区间)
==========================================================
二、文件查找
1、locate:只提供文件名称查找 ----支持正则表达式(通过特定符号来表示特定意义)
通过查找数据库表来找到文件位置。如果新建文件,数据库表没有更新就无法找到该文件。
updatedb ----更新数据库表
查找速度快,但是如果有新文件,需要更新数据库表才能找到,locate 不会到/tmp /var/tmp 临时目录查找数据。
2、find ----文件查找 支持多种查找方式
-name ----以文件名作为查找方式 -type ----以文件类型
-user ----用户 -group ----组
-perm ----权限 -uid -gid
-atime ----根据访问时间查找
find / -atime -3 ----查找3天内被访问过的文件 ‘-’ 代表天数之内
-ctime ----根据改变属性时间查找
find / -ctime +15 ----查找15天前被改变属性的文件
-mtime ----根据改变文件内容时间查找
-maxdepth ----查找的最大路径
[[email protected] Desktop]# find /etc/-maxdepth 1 -name ‘*.conf‘
/etc/resolv.conf ----在/etc下一级路径内查找*.conf的文件
/etc/libuser.conf
/etc/idmapd.conf
/etc/asound.conf
/etc/e2fsck.conf
/etc/mke2fs.conf
/etc/mtools.conf
/etc/sestatus.conf
/etc/host.conf
/etc/ld.so.conf
/etc/request-key.conf
/etc/nsswitch.conf
-mindepth ----查找的最小路径
-regex ----支持正则表达式查找
-empty ----内容为空的文件
-fstype ----根据不同的文件系统类型
-inum ----根据inode节点编号(查找硬链接inode相同)
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-readable ----可读文件
-writeable ----可写文件
-samefile name ----同inum inode编号找出 ,samefile 文件名称,inum找相同inum的文件名
-size n[cwbkMG] ----根据文件大小查找
eg:find / -size +1G ----查找大于1G的文件
find / -size -4k ----查找小于4k的文件
‘+’ 大于
‘-’ 小于
File uses n units of space. Thefollowing suffixes can be used:
‘b’ for 512-byte blocks (thisis the default if no suffix is used)
‘c’ for bytes
‘w’ for two-byte words
‘k’ for Kilobytes (units of1024 bytes)
‘M’ for Megabytes (units of1048576 bytes)
‘G’ for Gigabytes (units of1073741824 bytes)
3、find / -user kiosk -exec cp {} /tmp/kiosk -a \;
-exec 将find找到的结果交给后面的cp命令处理
\ ----代表转义
; ----代表命令结束
4、find / -size 1000c -ok {} /var/tmp/ \; ----ok 交互式询问