美文网首页
linux 常见命令

linux 常见命令

作者: woshi开心 | 来源:发表于2019-03-23 21:52 被阅读0次

1.查找进程并杀掉该进程

ps -ef|grep XXX|grep -v grep|awk '{print $1}'|xargs kill -9

2.awk
awk行处理器,在处理大文件时不会出现内存溢出或者处理缓慢的问题。
语法:awk [-F fs] [-v var=value] [-f progfile | 'prog'] [file ...],,-F指定分隔符,-f调用脚本,-v定义变量
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
BEGIN 初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
END 结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息
使用:
1.awk -F:指定分隔符

awk -F":" '{print $1}'  /etc/passwd
awk -F":" '{print NF}'  /etc/passwd //每行多少个字段
awk -F":" '{print $NF}'  /etc/passwd //每行第NF个字段的值

打印出来

awk -F":" '{print NR}'  /etc/passwd 每行的记录号,多文件记录递增
awk -F":" '{print FNR}'  /etc/passwd FNR        与NR类似,不过多文件记录不递增,每个文件都从1开始
awk -F: 'NR==5{print}'  /etc/passwd                  //显示第5行

1.1 匹配代码块
//纯字符匹配 !//纯字符不匹配 ~//字段值匹配 !~//字段值不匹配 ~/a1|a2/字段值匹配a1或a2

awk '!/mysql/{print $0}' /etc/passwd                  //输出不匹配mysql的行
awk -F: '$1!~/mail/{print $1}' /etc/passwd          //不匹配

1.2 if 语句 必须用在{}中,且比较内容用()扩起来

awk -F: '{if($1~/mail/) print $1}' /etc/passwd   //
awk -F: '{if($1~/mail/) {print $1}}'  /etc/passwd       
awk -F: '{if($1~/mail/) {print $1} else {print $2}}' /etc/passwd  

1.3 输出分隔符

awk '$6 ~ /WAIT/ || NR==1 {print NR,$4,$5,$6}' OFS="\t" netstat.txt        //输出字段6匹配WAIT的行,其中输出每行行号,字段4,5,6,并使用制表符分割字段

IF语句

awk -F: 'BEGIN{A=0;B=0} {if($3>100) {A++; print "large"} else {B++; print "small"}} END{print A,"\t",B}' /etc/passwd 

while语句

awk -F: 'BEGIN{i=1} {while(i<NF) print NF,$i,i++}' /etc/passwd 

应用:
统计netstat -anp 状态为LISTEN和CONNECT的连接数量分别是多少

netstat -anp|awk '$6~/LISTEN|CONNECTED/{sum[$6]++} END{for (i in sum) printf "%-10s %-6s %-3s \n", i," ",sum[i]}'

awk -F ',' '{if(length($1)>1||length($4)>1) print $1 "," $4}’ write0-1000.csv |uniq|awk -F ',' '{if(length($1)>1) {temp=$1} print temp "," $2}’>write0-1000.csv.0

3.sed
3.1 替换

sed 's/aa/aas/' file //替换
sed 's/aa/aas/g' file //全文替换
sed -n 's/test/TEST/p' file // -n选项和p命令一起使用表示只打印那些发生替换的行
sed -i 's/book/books/g' file //直接编辑文件选项-i,会匹配file文件中每一行的第一个book替换为books
sed 's/test/tests/2g' file 当需要从第N处匹配开始替换时,可以使用 /Ng

3.2 删除

sed '/^$/d' file //删除空白行
sed '2d' file  //删除第二行
sed '2,$d' file //删除文件的第2行到末尾所有行:

3.3 已匹配字符串标记&
正则表达式 \w+ 匹配每一个单词,使用 [&] 替换它,& 对应于之前所匹配到的单词:

echo this is a test line | sed 's/\w\+/[&]/g'
[this] [is] [a] [test] [line]
sed 's/^192.168.0.1/&localhost/' file
192.168.0.1localhost

3.4 子串匹配标记\1

echo this is digit 7 in a number | sed 's/digit \([0-9]\)/\1/'
this is 7 in a number
echo aaa BBB | sed 's/\([a-z]\+\) \([A-Z]\+\)/\2 \1/'
BBB aaa

3.5 选定行的范围:,(逗号)

sed -n '5,/^test/p' file //打印从第5行开始到第一个包含以test开始的行之间的所有行

3.6 -e选项允许在同一行里执行多条命令

sed -e '1,5d' -e 's/test/check/' file

3.6 从文件读入:r命令

sed '/test/r file' filename //file里的内容被读进来,显示在与test匹配的行后面,如果匹配多行,则file的内容将显示在所有匹配行的下面
sed -n '/test/w file' example  //在example中所有包含test的行都被写入file里
sed '/^test/a\this is a test line' file //将 this is a test line 追加到 以test 开头的行后面
sed '/^test/i\this is a test line' file  //将 this is a test line 追加到以test开头的行前面

相关文章

  • Linux 1

    1 面试常见的Linux命令及问题整理 1 面试常见的Linux命令及问题整理 Linux命令1 ls -a -l...

  • Linux基础篇之-常见Linux命令整理02

    继上篇文章 Linux基础篇之-常见Linux命令整理01 之后,继续整理总结 Linux 常见命令。本篇文章主要...

  • 关于常见Linux命令介绍

    常见 Linux 命令的介绍 这是一篇关于常见 Linux 命令的介绍 基本命令行: 文件的路径问题 pwd用于查...

  • Linux下常见命令

    Linux下常见命令 本文旨在记录平时开发中常见的Linux的命令 (一)文件操作相关 <1> 查看文件信息ls...

  • 命令行的基本认识

    linux的命令很多,但我们常用的linux命令却不是很多,掌握常见的linux命令,提高我们的工作效率。之前一直...

  • Linux学习

    1、关于XShell的常见使用和设置以及Linux中的常见命令.

  • linux常见命令

    linux常见命令 第二天课程中学到的linux命令 第四天课程中学到的linux命令 程序退出的方法有:ctrl...

  • 常见linux命令

    Linux和DOS常用命令对照表 功能 Linux MS-DOS...

  • linux 常见命令

    ls xxx - 显示当前路径目录(-a显示所有文件)(-l表示以列表方式显示) cd xxx - 进入 cd ....

  • 常见linux命令

    cd 进入某个目录 cd ~ 进入家目录 cd - 进入上一次工作路径 cd ~/Downloads/ 进...

网友评论

      本文标题:linux 常见命令

      本文链接:https://www.haomeiwen.com/subject/kbzsvqtx.html