admin 管理员组

文章数量: 887007

1、大纲

  • 日志查看四剑客:cat/head/tail/more/less
  • wc
  • which/whereis
  • diff/vimdiff
  • 排序:sort,uniq
  • 时间:date
  • 打包压缩

2、日志查询4剑客

2.1 概述

查看日志不要使用,cat或vim,vi命令。未来的日志文件。有的日志可达:40G或以上

如果使用cat查看,会刷屏根本停不下来

如果使用vi/vim查看,从磁盘中加载到内存,占用系统内存,很容易导致系统内存不足.

linux查询日志 ,文件较大,通过cat,vi/vim进行查看,系统可能卡死,可能内存不足.。

推荐使用不会占用系统太多资源的命令,查看日志:head/tail/,less/more

故障案例:

2.2 日志查询命令

1)head 显示文件的头几行,默认是头10行
head -n 显示头n行的文本
#一般情况下,使用-数字即可.如果-5报错或无法使用,则使用-n5 形式.
2)tail 显示文件的后几行,默认是后10行
tail选项说明
-n显示最后n行文本
-ffollow显示文件末尾的实时更新(一般用于查看日志)等同于tailf
#打开两个窗口
tail -f /var/log/secure

如何查看日志

看日志要抓住核心,关键,线索

这些线索一般都是:关键词错误提示:failed,failure,error…

例如在/var/log/secure查看,Faild passeord

3)less 按页显示文件内容

一页一页翻看文件内容,也可以进行搜索

less 选项与快捷方式说明
-N显示行号
q退出
空格下一页
b上一页
G最后一行
99g到第99行
/内容搜索内容。继续搜索n,向上搜索N
4)more 按页显示文件内容,到达最后一行退出

more功能没有less多

5)小结

查看大文件:head/tail、more/less

大文件避免用vi/vim/cat查看

3、wc统计

用来统计文件中单词情况、大小、行数。未来工作中主要统计行数

-l统计行数
#案例一 统计行数
wc /var/log/secure
  116573  1519653 12124690 /var/log/secure
​
wc -l /var/log/secure 
116578 /var/log/secure
​
#案例二 统计系统用户登录错误次数
grep "Failed password" /var/log/secure | wc -l
23053

4、查询命令位置

熟悉下面几个命令就好

which和whereis

[root@yunwei ~]# which ping cd reboot ls cd cat grep
alias grep='grep --color=auto'
        /usr/bin/grep
alias ls='ls --color=auto'
        /usr/bin/ls
/usr/bin/ping
/usr/bin/cd
/usr/sbin/reboot
/usr/bin/cd
/usr/bin/cat
​
[root@yunwei ~]# whereis ping cd reboot ls cd cat grep
ping: /usr/bin/ping /usr/share/man/man8/ping.8.gz
cd: /usr/bin/cd /usr/share/man/mann/cd.n.gz /usr/share/man/man1/cd.1.gz
reboot: /usr/sbin/reboot /usr/share/man/man8/reboot.8.gz
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
cd: /usr/bin/cd /usr/share/man/mann/cd.n.gz /usr/share/man/man1/cd.1.gz
cat: /usr/bin/cat /usr/share/man/man1/cat.1.gz
grep: /usr/bin/grep /usr/share/man/man1/grep.1.gz

5、文件比较

未来在服务的配置中,我们需要对比下新旧的配置文件,查看修改了哪些内容。 这时候我们需要进行文件的对比操作,可以通过diff,vimdiff命令实现。

5.1 diff

[root@yunwei ~]# diff 1.txt 2.txt 
3c3
< 123
---
> 133# tip: a 增加 b修改 d删除

5.2 vimdiff

vimdiff 1.txt 2.txt

6、排序去重组合

未来生产环境,统计日志,日志分析,系统信息统计,毕业命令。

sort:排序

uniq:去重并统计计数

6.1 sort排序

sort选项说明
-n按照数字排序(默认由小到大)
-r倒序排序(大到小)
-k按照第几列排序
-t指定分隔符,只能指定1个字符. 默认是空格.
#案例一 按照文件大小逆序排序
[root@yunwei /]# ll | sort -nrk5 | head -2
drwx------.   2 root root 16384 37 2019 lost+found
drwxr-xr-x.  95 root root 12288 124 13:02 etc
​
#案例二 按照分隔符逆序排序
[root@yunwei ~]# sort -nrk3 -t ':' /etc/passwd | head -3
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
​
#案例三 多列排序
[root@yunwei ~]# sort -nr -t '.' -k3 -k4 test.txt 
192.168.3.3 00:0F:AF:85:70:42
192.168.3.2 00:0F:AF:85:70:25
192.168.3.12 00:30:15:A2:3A:A1
192.168.3.10 00:30:15:A2:3B:B6
192.168.2.25 00:0F:AF:85:5C:41
192.168.2.22 00:0F:AF:85:6C:25
192.168.2.21 00:0F:AF:81:19:1F
[root@yunwei ~]# sort -nr -t '.' -k3,3 -k4,4 test.txt 
192.168.3.12 00:30:15:A2:3A:A1
192.168.3.10 00:30:15:A2:3B:B6
192.168.3.3 00:0F:AF:85:70:42
192.168.3.2 00:0F:AF:85:70:25
192.168.2.25 00:0F:AF:85:5C:41
192.168.2.22 00:0F:AF:85:6C:25
192.168.2.21 00:0F:AF:81:19:1F
​
# -k3,3 表示仅对第3列排序  -k4,4 表示仅对第4列排序

6.2 uniq

unique独一无二

Tip:安装 rz上传 & sz下载

yum install -y lrzsz

uniq *.txt 前后行相同的唯一

-c 去重并显示次数(重复次数)

uniq只能对相邻的行进行合并(去重),如果不相邻,需要通过sort命令调整为相邻的.

案例一 统计secure-ip.txt文件中每个ip出现的次数并取出前5。
1.通过sort处理下
2.去重uniq -c
3.sort对次数进行排序
4.head取出5
​
sort secure-ip.txt | uniq -c | sort -nr | head -5

7、日期组合

在Linux中我们需要日常查看系统的时间,保证整个网站所有服务 器的系统时间一致的.

未来在运维的日常操作中,书写脚本的时候也需要使用时间,比如 创建以当前日期命名的文件

7.1 date

设置或查看系统的日期,时间命令 未来主要用于查看日期或去日期

date选项
+以时间格式显示日期与时间
%F 年-月-日 %Y-%m-%d
%w 周几
+%T %H:%M:%S 时:分:秒
-d根据说明修改时间
-s修改时间
ntpdate ntp1.aliyun同步时间
#案例一 修改时区​
[root@yunwei ~]# timedatectl status 
      Local time: 三 2024-01-24 22:56:12 CST
  Universal time: 三 2024-01-24 14:56:12 UTC
        RTC time: 三 2024-01-24 14:56:11
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[root@yunwei~]# timedatectl set-timezone Asia/Shanghai

7.2 应用实战

date应用场景:企业备份的时候,给压缩包加上时间 创建文件或目录,给文件名或目录名字加上个时间。 被特殊符号: ``,反引号里面的命令会被优先执行

#案例一 ``反引号里面的命令会被优先执行
[root@yunwei ~]# ll `which find`
-rwxr-xr-x. 1 root root 199304 1031 2018 /usr/bin/find
​
#案例二 创建 backup-etc-今天的年-月-日.txt
[root@yunwei ~]# touch backup-etc-`date +%F`.txt 

本文标签: 进阶 结构 目录 命令 Linux