目录
1.历史文件命令
2. 用户登录日志
3.系统日志
4.Linux日志查看技巧
| grep 检索过滤
Uniq命令:检查以删除文本文件重复出现的行/列;当重复的两行不相邻时不起作用,需要结合排序命令sort
sort 命令:将内容以行为单位进行排序,默认以ASCII码排序
cut命令:从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定File参数,cut命令将读取标准输入。
AWK命令:处理文本文件的命令
5.补充
/root/.bash_history
/home/
/.bash_history
# cat .bash_history
# history
# history -c(可以清空本次登入的所有输出命令,但不清空.bash_history文件,所以下次登录后,旧命令仍会出现)
/root/.zsh_history
# rm -rf /root/.zsh_history(这个是把文件删掉了,且-rf一般不可恢复,慎用)
# echo "" > .zsh_history
/var/log/lastlog (每个用户最后的登录信息)
/var/log/wtmp (每个用户登录/注销、系统启动/停机)
/var/log/utmp (当前登录的用户信息)
/var/log/vtmp (所有登录失败的信息)
以/var/log/wtmp 为例,打开是乱码(二进制流文件)
last -f /var/log/wtmp 格式化输出这个二进制流文件
/var 目录存放系统常态性变换的文件,如缓存、登录文件、程序运行产生的文件等。
/var/log下存放日志文件
#cat /var/log/cron
#cat /var/log/yum.log 查看安装日志
#cat /var/log/boot.log 每次主机引导启动时加载的内容
“-E”通过指定参数大E的方式,以正则表达式的方式来检索内容
# cat /var/log/secure | grep -E “192.168.222.1.*9952 ssh2”
或使用egrep命令,可以不用-E,直接正则表达式
# cat /var/log/secure | egrep “192.168.222.1.*9952 ssh2”
“-e”通过指定参数e的方式,设置多个检索条件,但是是或的关系
cat /var/log/secure | grep -e “Accepted” -e “Failed”
多个| grep 可以实现与的条件检索
cat /var/log/secure | grep -e “Accepted” -e “Failed” | grep “34406”
“-v”表示否定,相当于not
cat /var/log/secure | grep -e “Accepted” -e “Failed” | grep -v “34406”
我的kali里没有secure这个日志,这里用boot.log代替
cat boot.log | grep -e "Started"
cat boot.log | grep "Started" | grep "Daily"
cat boot.log | grep -e "Started" -e "Daily"
Uniq -c可以统计该行出现的次数
Cat testfile | sort | uniq -c
在testfile文件里随机写入下面内容
该命令就会帮我们统计次数,那如果不使用sort排序会怎样呢?
不使用sort,我们可以看到,它无法将不相邻的相同内容统计到一起
sort -n 按照数值大小排序
-d :自定义分隔符,默认为制表符
-f :指定显示哪个区域
-c :以字符为单位进行分割
# cut -d “ ” -f 11 /var/log/secure | egrep “^[1-9].*[1-9]$”
#cat secure | grep “Failed ” | cut -d “ “ -f 12 | sort | uniq -c
以boot.log为例,先按OK筛选,再按照" "分割,显示出第六块内容(为什么是第六块?因为[ OK ]之间都有两个空格)
cat boot.log | grep "OK" | cut -d " " -f 6
-F 指定分隔符(默认空格),fs是一个字符串或一个正则表达式
# awk -F “ ” ‘$6==”Accepted”{print $11}’ /var/log/secure
($6==”Accepted”:分割后的第6块内容若等于Accepted)
({print $11} :则输出第11块的数据内容)
注意一下这里是$4(就是代表以空格分割的第四块内容)
cat boot.log | grep "OK" | awk -F " " '{print $4}'
结合一下uniq和sort就可以完成统计
cat boot.log | grep "OK" | awk -F " " '{print $4}' | sort | uniq -c
补充一写我不太熟悉的linux命令吧
# head -n 10 /etc/profile
# tail -n 5 /etc/profile
# pwd
# rm file.txt 常规删除文件
# rm -r emptydir/ 删除空目录
# rm -rf mydir/ 删除目录及目录下的所有文件(慎用)
# mv file.txt /home/myfiles
# mv oldname.txt newname.txt
# man mkdir
# touch -m 文件名(将该文件的时间修改为当前时间修改更改)
# touch newfile(创建一个空文件)
r (只读)\w (写入)\x (执行)
r=4,w=2,x=1
# chmod 777 file(看下图应该很好理解)
# ps
# uname -a