Linux高薪必备-常用文本查看head、tail等| 学习笔记

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习Linux高薪必备-常用文本查看head、tail等

开发者学堂课程【Linux企业运维实战 - 入门及常用命令Linux高薪必备-常用文本查看head、tail等】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/550/detail/7615


Linux 高薪必备-常用文本查看head、tail等


内容介绍

一、抽取文本的工具

1.文件内容:less和cat

2.文件截取:head和tail

3.按列抽取文本 cut 和合并文件 paste

4.按关键字抽取:grep


一、抽取文本的工具

1.文件内容: less 和 cat

root@centos7 data]#cat-n ac1.txt

1 u : wang : rx

2 g:gi: rw

3 g:g2:x

[root@centos7 data]#cat  -b acl.txt

1 u : wang : rx

2 g:g1: rw

3 g:g2ix.

[root@centos7 data]#nano ac1.txt

[root@centos7 data]#root@centos7 dataj#

[root@centos7 dataj#cat ac7.txt

u : wang : rx

g:gl: rw

Aaa

g:g2:x

[root@centos7data]#cat -n ac1.txt

1  u : wang : rx

2

3  g:g1:rw

4

5

6  aaa

7

8

9  g:g2:x

[root@centos7 data]#cat -ns ac1.txt

1  u:wang:rx

2

3  g:g1:rw

4

5  aaa

6

7  g:g2:x

[root@centos7 data]#cat -A acl.txt

[root@centos7 data]#cat -Aac1.txt,.. .

cat: invalid_option -- 'Try 'cat --help' for more information.

[root@centos7 data]#cat-Aac1.txt,

bash: cat-ac1:txt:command notfound. . .

[root@centos7 data]#cat -A ac1.txt

u: wang : rx$

$

g:g1: rw

$

$

aaas

$

s

g:g2:x$

[root@centos7data]#seq 10 >f1.1og

[root@centos7 data]#cat f1.1og

1

2

3

4

5

6

7

8

9

10

[root@centos7 data]#tac f1.1og

10

9

8

7

6

5

4

3

2

1

[root@centos7 data]#tac ac1.txtg:g2 : x

Aaa

g:g1:rw

U:wang:rw

iroot@centos7 data]#echo {1..10}

1 2 3 4 5 6 7 8 9 10

[root@centos7 data]#echo_{1..10]> f2.log

[root@centos7 data]#cat f2.1og

1 2 3 4 5 6 7 8 9 10

[root@centos7 data]#rev f2.1og

10 9 8 7 6 543 2 1

[root@centos7 data]#rev ac1.txt

xr : gnaw : u

wr : 1g: g

aaa

x : 2g:g

[root@centos7 data] #cd

[root@centos7 ~]#1s

anaconda-ks.cfg. Desktop dir9 Documents Down loads  initial-setup-ks.cfg Music Pictures  Public Temp lates

查看命令标准输出比较多,

例如:[root@centos7 ~]#1s -R /etc/ ,etc加上R会打开每一个子文件,列表会特别多,一屏会显示不下,如果想要分页慢慢观察,就可以用|more。Q是退出。和它类似的是 less,翻到底不会退出,它支持搜索。在 Man 的用法的 less 的用法是一样的。搜索字符串/或者?,/是往下搜,?是往上搜。Less 也可以分页显示。

◆文件查看命令:

cat, tac,rev

◆cat [OPTION].. [FIL]..

-E:显示行结束符$

-n:对显示出的每一行进行编号

-A :显示所有控制符

-b :非空行编号

-s :压缩连续的空行成一行

2.文件截取: head和tail

◆head [OPTION].. [FLE...

-C #:指定获取前#字节

-n #:指定获取前#行

-# :指定行数

Head 显示文件的头,头默认是文件前十行,也可以指定前几行,-n 3就是前三行,head 命令也支持标准输入,也就是可以用管道传输,比方说,想要显示ifconfg e 命令的前两行,

就可以输入

[root@centos7 ~]#ifconfig Ihead -n2

ens33: flags=4163 mtu 1500

inet 192.168.30.100

netmask 255.255.255. 0  broadcast 192.168. 30.25

◆tail:[OPTION].. [FILE].

-c #:指定获取后#字节

-n #:指定获取后#行

-#:

-f:跟踪显示文件fd新追加的内容常用日志监控

相当于--follow= descriptor

-F:跟踪文件名,相当于一follow=name --retry

◆tailf 类似 tail-f ,当文件不增长时并不访问文件

Tail是尾巴的意思,是可以显示文件的后几行,

[root@centos7 ~]#i fconfig head -n2

ens33: flags=4163

mtu 1500

inet 192.168.30.100 netmask 255.255.255.0 broadcast 192.168.30.255

[root@centos7 ~]#echo abcd I

head -c3

abc [root@centos7 ~]#echo abcd | head -c3

随机生成12位口令:

D r oot@centos7 ~] #echo abcd | head -C 3

abc

bc [root@centos7 ~]#echo abcd I head

-c3

abc [root@centos7

topenss1 rand -base64 12

793YOwhqm9LFytxr

' [root@centos7 ]#openss1 rand -base64 12

MowHhgLtD9031891

I [root@centos7 ]#openss1 rand -base64 12

zzgeFi skR+v3yMF8

' [root@centos7 ~ #openss1 rand -base64 12

dadhzQrmP 1zvomw9

I [root@centos7 -]#openss1 rand -base64 1

I SOVyrVP 2xfQhj dDQ

[root@centos7 #openssT rand -base64 12

| /+TrVNvjDrffRM3C

[root@centos7 -]#openss1 rand -base64 100

ocvsarVywzfp 1AI3Zyzb3sopEbAZDDI +YN8WOFbQ3r1rK1ssufjQKryOHsVwq14I

OVR1 k4f1y jwqj cmjMP fvr f8zEU26cwXeyKt7 si D6w9IeLS fmtnF ZnDZW98TreWY

Giy5Pw==

' [root@centos7 ~]#openss7 rand -base64 100 |tr -dc ' [:alnum:]

XnzJINddx0J9O qyLzjvsRnmVPesLdsZHFUldjzzIpboIR1 JYCOpJxASCbLLnmOQ9ZnvEGJtLBwdV5 EDA4 juhyCTAZdR8XVsgMCH4WICKuQcC3ASQXHtcNajI

QeQ [root@centos7 ~ ] #openss1 rand -base64 100 |tr -dc”[ :alnum: ]' Thead -C

RP074y8pAjwR [root@centos7 ~] #openssT rand -base64 100 tr

' :alnum: ], head -C

| 8wgymgTnTI8e [root@centos7 ~]#openss1 rand -base64 100 tr

Inum:

head

9rPhv3IsHL AN [root@centos7 ~ ] #openss7 rand -base64 100 tr

num :

b1Ajm3R4ecgY [root@centos7

openss1 rand -base64 100 tr -dc

1num:

head

EKzwy1IsuzLE[root@centos7

[rootacentos7 ~] #tail -n 3 anaconda-ks. cfg

pwpolicy user --minlen=6 --minqual ity=1 --notstrict --nochanges - - empt y ok

pwpolicy luks

--minlen=6 --minqual ity=1 --notstrict --nochanges - - notempty

%end

[root@centos7 ~]#tai1 -n 3 anaconda-ks. cfg

pwpo1 icy user --minlen=6 --minqual ity=1 --notstrict -- nochanges - - empty ok

pwpolicy Tuks --minlen=6 --minquality=1 --notstrict --nochanges -- notempty

%end

[root@centos7 ~]#echo abcde Itail -c3

de

[root@centos7 ~]#echo {1. .10} Itail -c3

10

[root@centos7 ~]#echo {1. .10} |tail -c3

10

[root@centos7 ~ ] #

[root@centos7 ~ j #echo {1. .10}

12345678910

[root@centos7 ~]#echo {1. .10} Itail -c3

10

Tail 命令用的非常普遍,tail命令经常用来查看日志,系统中有好多的发生的事件都是记录在日志当中,而日志文件在写日志的时候都是以追加方式来写的,不会覆盖旧的日志,会在文件的尾部不断地追加。所以要关注新发生的事件就是观察文件的最后几行。

跟踪文件变化

[root@centos7 ~]#tail /data/f2. log

1 2 3 4 5 6 7 8 9 10

[r oot@centos7 ~]#tai1 -f /data/f2. log

1 2 3 4 5 6 7 8 9 10

ast login: wed Apr. 4 22:48:19 2018 from ,

[ root@c entos7 ~]#echo newline >> /data/f2. log

[root@centos7 -]#ifconfig ens33 Ihead -n2

ens33: f1 ags=416 3 mtu 15 00

inet 192.168.30.100

netmask 255.255.255.0

broadcast 192.168.30.255

[root@centos7 #ifconfig ens33 head -n2 tai1 -n1

inet 192.168.30.100

netmask 255.255.255. 0

broadcast 192.168.30.255

显示昨天日期:[ root@centos7 ~] #date -d ' -1 day

Wed AprI 4 00:06:27 CST 2018

[root@centos7 ~] #date

Thu Apr 5 00:06:28 CST 2018

3.按列抽取文本cut和合并文件paste

◆cut [OPTION].. [FILE]..

-d DELIMITER:指明分隔符,默认tab

-f FILEDS: .

#:第#个字段

#,#[,#] :离散的多个字段,例如1,3,6

#-#:连续的多个字段,例如1-6

混合使用: 1-3,7

-C按字符切割

--output- delimiter= STRING指定输出分隔符

如果想取第一列和第三列,可以输入cut -d;-f 1,3 /etx/passwd

如果想显示第五列至第七列,可以输入sut -d:-f 1,3,5-7/etc/passwd

如果想取用户名,想让前九个作为用户名,可以输入who|cut -c1-9

F1esystem  1k-b7ocks  used Avai 7able Use%Mounted on

/dev/sda2  52403200 3212764  49190436  7%  /

Devtmpfs   535296  0        535296    0%  /dev

Tmpfs      550036  0        550036    0%/dev / shm

Tmpfs      550036  7884     542152    2 %/run

Tmpfs      550036  0        550036    0% /sys/fs/cgroup

/dev/sda3  31441920 32964  31408956    1% /data

/dev/sda1   1038336 161620   876716    16% /boot

Tmpfs       110008 32       109976     1%/run/user/0

/dev/sro    8490330 8490330  0        100%/run/media/root/centos 7 x86__64

如果想取分区利用率,[root@centos7 ~]#df |cut  -c44-45

用分隔符指定的方法:

[root@centos7 ~]#dfi tr -s

Use%

7% 

0%

0%

2%

0%

1%

16%

1%

100%

[root@centos7 ~]#df l tr.-s " " |cut -d" " -f5 |tr -d%

tr: inva7id option -' '%'Iu

Try tr --helpfor more information

[root@centos7 ~]#df | tr -s   |cut -d   -f5|tr -d%

Tr:invalid option -- %

Try tr --helpfor more information

[root@centos7° ~]#df | tr -s " " |cut -d" " -f5 |tr -d“%”

Use

7

0

0

2

0

1

16

1

100

更简单的方法:(直接拿百分号作为分隔符)

[root@centos7 ~]#dfltr -5 %

Filesystem%1K -b 1 ock s%Used%Avai 1 ab 1 e%Use%Mounted%on

/ dev/sda2%52403200%3213276%49189924%7%/

devtmpfs%5 35 296%0%535 296%0%/ dev

tmpfs%5 50036%0%550036%0%/ dev/ shm

tmpfs%5 5 0036%7916%542120%2%/ run

tmpfs%5 50036%0%550036%0%/ sys/ fs/cgroup.

/ dev/ sda3%31441920%32964%31408956%1%/ data

/ dev/ sda1%10383 36%161620%876716%16%/boot

tmpfs%110008%28%109980%1%/ run/user/0

/dev/ sr0%8490330%8490330%0%100%/ run/ medi a/ root/Centos%7%x86_ 64

[root@centos7 ~]#dfltr -S  % Icut -d % -f5

Use

7

0

0

2

0

1

16

1

100

取出IP地址:

[root@centos6 ~]#ifconfig eth0

Eth0

Link encap: Ethernet Hwaddr 00:0C:29:E1:F7 :AA

inet addr:192.168. 30.128 Bcast:192.168.30.255

Mask:255.255.255.0

inet6 addr: fe80: :20c:29ff:fee1:f7aa/64 scope:Li nk

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:6042 errors:0 dropped:0 overruns:0 fr ame:0

TX packets :4695

errors:0 dropped:O overruns:0 carrier:0

collisions:O txqueue len: 1000

RX bytes:762898 (745.0 KiB)

TX bytes:774914 (756.7 KiB)

[root@centos6 ~]#ifconfig etho Ihead -n2 Itail -n1

inet addr :192.168.30.128

Bcast:192.168.30.255 Mask:255.255.255.0

[root@centos6 ~]#ifconfig eth0 I head -n2 |tail -n1 tr -s

: inet:addr :192.168.30.128:Bcast:192.168.30.255 :Mask:255.255.255.0

[root@centos6 ~]#ifconfig eth0 head -n2 Itail -n1 |tr -S "" : Icut -d: -f4

192.168.30.128

[root@centos7. a#ifconfi gens33Ihead 253 315501

inet 192.168. 30.100

netmask

255.0

broadcast 192.168.30.255

[root@centos7 -]#ifconfig ens33!head 5n2 ltail -n1 ltr-s

inet 192.168. 30.100 netmask 255

.0 broadcast 192.168.30.255

[root@centos7 ~]#ifconfig ens33|head -n2 Itail -n1 ltr -s

”Icut -d"”-f3

192.168.30.100

' [root@centos7 ~]#ifconfig ens33 Icut -c14- 27

4163

192.168.30.100

fe80: : 3f4c:e1

00:0c:29:c0:5

ckets 11681 b

Rors  0  droppe

ckets 8969 by

Rors  0  droppe

[root@centos7 ~]#ifconfig ens33 Ihead -n2 Itail -n1Cut -c14-27

写的时候要考虑到通用。

root@centos6 ~]#service httpd star

starting httpd: httpd:. apr sockaddr_info getO fai led for centos6. magedu . com

httpd: Could not reliably determine the server's fully qualified domain name, using 127 .0.0.1 for ServerName

[root@centos6 -]#service iptables stop

iptables: setting chains to policy ACCEPT: filter

OK

iptables:Flushing firewall rules:

OK

iptables: UnT oading

modules :

[root@centos6 ~] #chkconfig iptables off

在centos7上面的dtop firewalld命令

[root@centos7 ~]#cut -d: -f1,3 --output-delimiter="===" /etc/passwd^c

[root@centos7 ~] #systemctl stop firewalld

rootecentos7 ~ #systemct1 disable firewalld

Removed symFink /etc/ sy stemd system/ mu ti -user . target . wants/firewal 1d. service

Removed symlink /etc/ systemd/ system/ dbus-org . fedoraproject. Firewal 1D1. service

当用户去访问“welcome to Magedu”页面的时候,加一个网卡,这里可以拿到一个外网的地址,如果没有拿到,就把网络服务器重新启动,在浏览器中打开地址就可以了。用户在访问的时候,系统会记录下来访问此网站的用户来自哪些地址。[root@centos6 ~]#11 /var/1og/httpd/access 10g

rw-r--r--. 1 root root 20069 Apr 4 16:40 7vat/1og/httpd/access log

[ root@centos6 ~] # date

wed Apr 4 16:40:40 CST 2018

也可以用tail -f观察是否在变化。文件的最前面(172.20.101.141)就是IP地址。不同的地址对应不同的地区,通过IP地址就可以反映用户的地区。

如何取出文件中的IP地址:(以空格作为分隔符取第一列)

[root@centos6 ~]#cut -d" ”-f1 /var/1og/httpd/ access. Log

 4.按关键字抽取:grep

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
6天前
|
Linux 开发工具
linux文本管理命令
本文档介绍了Linux系统中常用的文本处理命令,包括`echo`、`cat`、`head`、`tail`、`wc`、`less`、`grep`以及重定向符号的使用方法和练习题。此外,还详细讲解了VIM编辑器的特点、工作模式、常用快捷键和高级技巧,帮助用户高效地进行文本编辑和处理。
23 4
|
29天前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
44 3
|
2月前
|
Linux Shell
Linux 中 Tail 命令的 9 个实用示例
Linux 中 Tail 命令的 9 个实用示例
88 6
Linux 中 Tail 命令的 9 个实用示例
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
2月前
|
Linux Shell
10-10|linux命令查询 关键字在文本中出现的行数
10-10|linux命令查询 关键字在文本中出现的行数
|
3月前
|
Linux
Linux 系列之 在一个文本中查找指定的数据
文章介绍了在Linux命令行中使用文本搜索功能快速查找指定内容的方法,并提供了按`n`键查找下一个匹配项的技巧。
Linux 系列之 在一个文本中查找指定的数据
|
3月前
|
Linux
Linux命令行文档查看cat、less、more、head、tail和图片查看
Linux命令行文档查看cat、less、more、head、tail和图片查看
54 0
|
3月前
|
Linux
在Linux中,如何使用grep命令搜索文本?
在Linux中,如何使用grep命令搜索文本?
|
4月前
|
Shell Linux C语言
下一篇
无影云桌面