find:文件搜索命令
find p8* /home
在home文件夹中搜索p8开头的文件
tar:打包
-c:打包
-v:显示进度
-f:指定压缩文件
-z:打包的同时进行压缩
-x:解压
whoami当前的用户是谁
who -u 已经登录的用户
vi环境下编辑常用命令
命令模式下常用的
/:向上搜索
?:向下搜索
普通模式下
搜索后(/,?)
N:下一个
n:上一个
普通情况下
u:撤销操作
.:重复操作
G:移动到最后一行
gg:移动到首行
ctrl+f:下翻页
ctrl+b:上翻页
**
Linux三剑客命令
**
**
grep
**
最基础用法
grep 关键字 文件名
如果关键字中包含空格需要用双引号包起来
关键字的正则表达式
基本正则表达式:
^:开头
$:结尾
[a-z] [0-9] :区间
*:0个或者多个
seq 10|grep ‘[1-3]’
seq 10 输出1-10,并且每个数字隔行显示,这里也可以视为文件;|:管道符号,将输出的结果交给右边处理;
总含义:把1-10的数据输入右边,右边筛选包含1,2,3所有的数字;
seq 10|grep ‘[1-3]$’
结果为:1,2,3
seq 10|grep ’ ^ [1-3]$’
只能是1-3的数字
增强正则表达式
seq 20|grep -E '5|7'
查找包含5或者7
seq 20|grep -E '(5|7)|10'
或者关系,包含5或者7还或者包含10都可以
seq 20|grep -Ev '(5|7)|10'
-v:排除匹配行
-i:忽略大小写
**
awk
**
拥有强大的功能,grep的功能几乎在awk中都有;
seq 20|awk ‘/^1[5-9]$/’
查找以1开头,5-9结尾的数字
seq 20|awk ‘/15/,/19/’
效果和上面一样,awk专属用法,遇到15打开开关,遇到19关闭开关
seq 20|awk ‘NR==1’
取文件第一行
NR:表示行
seq 20|awk ‘NR>1’
大于第一行
FS:表示以什么字段分隔,默认以空格分隔
echo '1|23#4’|awk ‘BEGIN{FS="#|*|\|"}{print $0,$1,$2,$3,$4}’
echo表示显示1|23#4
FS="#|*|\\|"表示可以以#,*,|(在这里与需要把|转义使用\\转义)
$0,$1表示打印第1个,第2个,这里把所有的都打印出来了,也可以一个一个打印,分隔符少点也是可以的。
OFS
记录分隔符,把结果使用某个字符分隔开来
RS
echo ‘1|2*3#4’|awk ‘BEGIN{RS="#|*|\\|";}{print $0}’
数据计算
awk ‘BEGIN{print 3+7}’ 计算3+7结果
这里不加BEGIN的话,回车敲两下也是可以的。
$n:一般表示第几行,$0表示所有数据
NF:当前总共多少列
NR:序列号,当前是第几行
文件yyy.txt
111@222@333
222@333@444
222@33@44
文件内容为以上;
查看第二列数据,显示当前的列数为3列,序号为1,2,3,分隔字符为@
**
sed
**
seq 10|sed -n ‘2p’
-n:修改打印内容
‘2p’ 第二行
seq 10|sed ‘2d’
删除掉第二行,除了第二行其他都显示
seq 11 21|sed ‘s#1$#ee#g’
把以1结尾的1替换成ee
s:开头
g:结尾
#:分隔 (可以用/代替)
seq 11 21|sed -n ‘2,4p’
显示第二行到第四行