开发者学堂课程【Linux企业运维实战 - 入门及常用命令:Linux高薪必备-常用文本查看head、tail等】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/550/detail/7615
Linux 高薪必备-常用文本查看head、tail等
内容介绍
一、抽取文本的工具
1.文件内容:less和cat
2.文件截取:head和tail
一、抽取文本的工具
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 ac
l
.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
$
$
a
aas
$
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..1
0}
1
2 3 4 5 6 7 8 9
10
[root@centos7 data]#echo_{1..10]> f2.
l
og
[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
new
l
ine
>> /
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
U
se%
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 --help
’
for more information
[root@centos7 ~]#df | tr -s
“
“
|cut -d
“
“
-f5|tr -d
”
%
”
Tr:invalid option --
‘
%
’
Try
‘
tr --help
’
for 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 eth
0
Eth
0
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
O
K
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