文件查阅 cat tail head more less grep
cat
:打印文件全部内容
tail
:查看文件末尾几行
head
:查看文件头几行
more
:向下翻页。从头开始查看文件内容
less
:可向上向下翻页,从头开始查看文件内容
grep
:搜索内容,正则匹配参考此处
#查看所有内容
cat config.xml
#打印行号
cat -n config.xml
#查看最后100行
tail -n 100 error.log
#持续输出文件,ctrl+c结束
tail -f error.log
#翻页查看
#操作: space向下翻一页、enter向下翻一行、b往回翻一页、:f 立即显示文件名和行号、q 退出
more error.log
#操作:space、PageDown、PageUp、q 离开
#/key 向下查找关键字、?key 向上查找关键字、n 下一个关键字
less error.log
#搜索关键字
grep key error.log
#额外显示前后20行 A:after B:before
grep key error.log -A20 -B20
#根据正则搜索
#搜索以key或keY开头的记录
grep ke[Yy] error.log
查找文件名、文件夹、命令
which、whereis、locate、find
e.g. 通常find命令不常用来找文件在哪,因为速度慢。一般优先使用whereis
和locate
来检查,因为这二者是利用数据库来查找数据,速度很快,且没有实际查询硬盘,比较省时。
#查找find命令和who命令在哪
#which 用法:
#which [-a] command
which find
which who
#whereis 用法:
#whereis [-bmsu] 文件或目录名
whereis error
#locate 用法:
#locate [-ir] keyword
locate password
#find 用法
#find [PATH] [option] [action]
#查找/home目录下 属于用户xxb的文件
find /home -user xxb
#查找/home目录下 不属于任何人的文件
find /home -nouser
#查找/home目录下名为error的文件 或 文件夹
#!!!!这种形式不是模糊查询
find /home -name error
#根据名字 模糊查询
find /home -name '*error*'
#查找/home目录下 10个字节以上的文件
find /home -size +10c
#查找/home目录下 10kb以上的文件
find /home -size +10k
e.g.
find
还有一个特殊功能,就是执行额外的功能,范例如下:
find /home -size +10k -exec ls -l {} \;
解读:
-
{}
代表由find
查找到的内容,可以理解成占位符。 -
-exec
和\;
是关键字,代表find
额外命令的开始(-exec
)到结束(\;
),在这中间的就是find
命令内的额外命令。 - 因为
;
在bash环境中有特殊含义,因此利用反斜杠来转义。
文件系统操作 cp mv rm df du
#复制
cp temp.txt ../test/temp.txt
#递归复制文件夹
cp -r log ../test/
#移动
mv temp.txt ../test/temp.txt
#删除
rm temp.txt
#强制删除
rm -f temp.txt
#递归删除
rm -i temp.txt
#以人们较易阅读的GB、MB、KB等格式自行显示
df -h
vim常用操作
按键 | 动作 |
---|---|
G | 移动到文件最后一行 |
gg | 移动到第一行 |
N[Enter] | n为数字,光标向下移动n行 |
-- | -- |
-- | -- |
/word | 向下搜索word,按n继续向下查找,按N反之 |
?word | 向上搜索word,按n向上查找,按N反之 |
-- | -- |
-- | -- |
x与X | 小写x == delete(向后删除),大写X == backspace(向后删除) |
dd | 删除一行 |
ndd | 向下删除n行 |
yy | 复制一行 |
nyy | 复制向下的n行 |
p与P | 小写p == 向下粘贴 大写P == 向上粘贴, 不会覆盖当前行 |
-- | -- |
-- | -- |
i与I | 小写i == 在光标处插入,大写I == 在所在行第一个非空格处开始插入 |
a与A | 小写a == 在光标所在的下一个字符处开始插入,大写A == 在光标所在行的最后一个字符处插入 |
o与O | 小写o == 在光标所在行的下一行处插入一行,大写O == 在上一行插入一行 |
-- | -- |
-- | -- |
:w | 保存 |
:w! | 强制保存 |
:q | 退出 |
:q! | 强制退出 |
:wq | 保存后退出 |
ZZ | 大写Z == 对已修改文件保存并退出,未修改文件直接退出 |
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
-- | -- |
-- | -- |
:n1,n2s/word1/word2/g | n1和n2位数字。表示在n1和n2行之间用word2替换word1 |
:1,$s/word1/word2/g | 从第一行到最后一行之间用word2替换word1 |
:1,$s/word1/word2/gc | 从第一行到最后一行之间用word2替换word1,加了c,表示最后替换前需要用户确认 |
环境变量、自定义变量
set
:查看所有变量
env
:查看环境变量
export
:可以将自定义变量设置为环境变量