shell和查找文件的一些操作
shell的操作
编辑命令
Ctrl + a :移到命令行首
Ctrl + e :移到命令行尾
Ctrl + f :按字符前移(右向)
Ctrl + b :按字符后移(左向)
Alt + f :按单词前移(右向)
Alt + b :按单词后移(左向)
Ctrl + xx:在命令行首和光标之间移动
Ctrl + u :从光标处删除至命令行首
Ctrl + k :从光标处删除至命令行尾
Ctrl + w :从光标处删除至字首(单个单词删除)
Alt + d :从光标处删除至字尾
Ctrl + d :删除光标处的字符
Ctrl + h :删除光标前的字符
Ctrl + y :粘贴至光标后
Alt + c :从光标处更改为首字母大写的单词
Alt + u :从光标处更改为全部大写的单词
Alt + l :从光标处更改为全部小写的单词
Ctrl + t :交换光标处和之前的字符
Alt + t :交换光标处和之前的单词
Alt + Backspace:与 Ctrl + w 相同类似,分隔符有些差别
Esc+B 退后一个单词
esc + f 前进一个单词
重新执行命令
Ctrl + r:逆向搜索命令历史
Ctrl + g:从历史搜索模式退出
Ctrl + p:历史中的上一条命令
Ctrl + n:历史中的下一条命令
Alt + .:使用上一条命令的最后一个参数
控制命令
Ctrl + l:清屏
Ctrl + o:执行当前命令,并选择上一条命令
Ctrl + s:阻止屏幕输出
Ctrl + q:允许屏幕输出
Ctrl + c:终止命令
Ctrl + z:挂起命令
查找文件操作
快速kill服务进程
ps axu | grep "crontab.php --controller=cky" | awk '{print $2}' | xargs sudo kill -9
同上 ps axu | grep "new_packing_tool_api/crontab.php" | awk '{print $2}' | xargs sudo kill -9
ps axu | grep "crontab.php --controller=UploadMlrTask" | awk '{print $2}'
ps -ef | grep cky | grep -v grep | awk {'print $2}' | xargs kill -9
grep 查找含有某字符串的所有文件
grep -rn "hello,world!"
* : 表示当前目录所有文件,也可以是某个文件名
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写
指定文件
grep -rn "110" 1.log
grep 如何显示一个文件的某几行:
cat cron | tail -n +100 | tail -n 200
对/etc/passwd 查看所有的用户
cat /etc/passwd | awk -F ':' '{print $1}'
//awk -F指定域分隔符为':',将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。
对 /var/log/secure 进行分析
1、定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk -F " " '{print $11}' | wc -l
1、定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
2、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
其他
grep Y01015 /opt/log/python/api_info.log | tail -n 2 | sdk_email # 拿包里的accesstoken什么的调试
grep Y0201 /opt/log/nginx/access.log | tail -n 2 # 看请求nginx参数,可以拿模拟登录
grep /opt/log/python/p_api_info.log | tail -n 2 # 先看请求有没有到
grep 20220309xxxx25 http_request.log | tail -n 2 # 查看发货是否成功,如果不成功,应该是回调地址没配