第九章第二节课预习

以下扩展内容要学习一下。

1打印某行到某行之间的内容http://ask.apelearn.com/question/559
2sed转换大小写 http://ask.apelearn.com/question/7758
3sed在某一行最后添加一个数字http://ask.apelearn.com/question/288
4删除某行到最后一行 http://ask.apelearn.com/question/213
5打印1到100行含某个字符串的行 http://ask.apelearn.com/question/1048
6awk 中使用外部shell变量http://ask.apelearn.com/question/199
7awk 合并一个文件 http://ask.apelearn.com/question/493
8把一个文件多行连接成一行 http://ask.apelearn.com/question/266
9awk中gsub函数的使用 http://ask.apelearn.com/question/200

10awk 截取指定多个域为一行 http://ask.apelearn.com/question/224
11过滤两个或多个关键词 http://ask.apelearn.com/question/198
12用awk生成以下结构文件 http://ask.apelearn.com/question/5494
13awk用print打印单引号 http://ask.apelearn.com/question/1738
14合并两个文件 http://ask.apelearn.com/question/945
15awk的BEGIN和END http://blog.51cto.com/151wqooo/1309851
16awk的参考教程 http://www.cnblogs.com/emanlee/p/3327576.html

打印文件中特定的某行到某行之间的内容

例如:有个文件test的内容如下:
ert
fff
**
[abcfd]
123
324
444
[rty]
**
fgfgf
怎么能截取 [abcfd] 到[rty]这一部分出来呢?
答案: sed -n '/\[abcfd\]/,/\[rty\]/p' test

sed 如何转换大小写字母

sed中,使用\u表示大写,\l表示小写

1. 把每个单词的第一个小写字母变大写:
sed 's/\b[a-z]/\u&/g' filename

2. 把所有小写变大写:
sed 's/[a-z]/\u&/g' filename

3. 大写变小写:
sed 's/[A-Z]/\l&/g' filename

sed在文件中某一行最后添加一个数字

sed 's/\(^a.*\)/\1 12/' test

#cat  test
askdj
aslkd aslkdjf3e
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj
#sed 's/\(^a.*\)/\1 12/' test
askdj 12
aslkd aslkdjf3e  12
skdjfsdfj
sdkfjk
fsdkfjksdjfkjsdf
12sdfesdf
aslkdjfkasdjf asdlfkjaskdfj  12

sed删除某关键字的下一行到最后一行

[root@test200 ~]# cat test
a
b
c
d
e
f
[root@test200 ~]# sed '/c/{p;:a;N;$!ba;d}' test
a
b
c

定义一个标签a,匹配c,然后N把下一行加到模式空间里,匹配最后一行时,才退出标签循环,然后命令d,把这个模式空间里的内容全部清除。

if 匹配"c"
:a
追加下一行
if 不匹配"$"
goto a
最后退出循环,d命令删除。

如何使用sed打印1到100行包含某个字符串的行

  1. sed  -n '1,100{/abc/p}'  1.txt

awk 中使用外部shell变量

如:
A=44echo "ABCD" | awk -v GET_A=$A ’{print GET_A}’
说明:-v选项用于定义参数,这里表示将变量A的值赋予GET_A。
有多少个变量需要赋值,就需要多少个-v选项。与之等价的:应用于脚本中:

#! /bin/bash
sort -n filename |awk -F ':' '{print $1}'|uniq >id.txt
for id in `cat id.txt`; do
        echo "[$id]"
        awk -v id2=$id -F ':' '$1==id2 {print $2}' filename  // 另外的方式为: awk -F ':' '$1=="'id'" {print $2}' filename  
done
附件:
cat filename
1111111:13443253456
2222222:13211222122
1111111:13643543544
3333333:12341243123
2222222:12123123123
运行脚本后结果为:
[1111111]
13443253456
13643543544
[2222222]
13211222122
12123123123
[3333333]
12341243123

awk 合并一个文件

我有这样的需求,需要把两个文件中,第一列相同的行合并到同一行中。举个例子,有两个文件,内容如下

cat 1.txt

1 aa
2 bb
3 ee
4 ss

cat 2.txt

1 ab
2 cd
3 ad
4 bd
5 de

合并后的结果为:

1 ab aa
2 cd bb
3 ad ee
4 bd ss
5 de

实现的命令为:

awk 'NR==FNR{a[$1]=$2}NR>FNR{print $0,a[$1]}'  1.txt  2.txt

解释:NR表示读取的行数, FNR表示读取的当前行数,大家可以运行这个命令 awk '{print NR,FNR}' 1.txt  2.txt,比较NR和FNR

所以其实NR==FNR 就表示读取1.txt的时候。 同理NR>FNR表示读取2.txt的时候

数组a其实就相当于一个map

把一个文件多行连接成一行

a=`cat file`;echo $a 
awk '{printf("%s ",$0)}' file   // %s 后记得要有一空格,否则出来就是完全连在一起的,中间连空格都没有
cat file |xargs

awk中gsub函数的使用

awk 'gsub(/www/,"abc")' /etc/passwd  // passwd文件中把所有www替换为abc
awk -F ':' 'gsub(/www/,"abc",$1) {print $0}' /etc/passwd  // 替换$1中的www为abc

 

awk 截取指定多个域为一行

用awk指定分隔符把文本分为若干段。如何把相同段的内容弄到一行?

以/etc/passwd为例,该文件以":"作为分隔符,分为了7段。

for i in `seq 1 7`

do

    awk -F ':' -v a=$i '{printf $a " "}' /etc/passwd

    echo 

Done

十一grep 或 egrep 或awk 过滤两个或多个关键词

grep -E '123|abc' filename  // 找出文件(filename)中包含123或者包含abc的行
egrep '123|abc' filename    //用egrep同样可以实现
awk '/123|abc/'  filename // awk 的实现方式


十二用awk编写生成以下结构文件的程序

用awk编写生成以下结构文件的程序。( 最后列使用现在的时间,时间格式为YYYYMMDDHHMISS)  各列的值应如下所示,每增加一行便加1,共500万行。

1,1,0000000001,0000000001,0000000001,0000000001,0000000001,0000000001,2005100110101
2,2,0000000002,0000000002,0000000002,0000000002,0000000002,0000000002,2005100110101


十三awk用print打印单引号

比较绕,不用死记硬背,以后用的时候,稍微多试几次就出来了。 

awk 'BEGIN{print "a'"'"'s"}'  //不用脱义,就多写几个单引号、双引号

awk 'BEGIN{print "a'\''s"}'  //用脱义,脱义的是单引号

awk 'BEGIN{print "a\"s"}'  //用脱义,脱义的是双引号


十四把两个文件中相同的行合并成一行

paste  filename1  filename2 

这样就可以实现了。举个例子。
cat  a.txt
1 2 3 
4 5 6 
a b c

cat b.txt
3 2 1 
6 5 4 
c b a 

则  paste  a.txt  b.txt  结果为
1 2 3   3 2 1
4 5 6   6 5 4
a b c   c b a

如果,你想在两个文件连接处用一个指定的字符连接,还可以用-d来指定
paste -d '+'  a.txt b.txt
结果为
1 2 3+3 2 1
4 5 6+6 5 4
a b c+c b a


十五awk的流程控制BEGIN和END

#cat password

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

root:x:0:0:root:/root:/bin/bash

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

root:x:0:0:root:/root:/bin/bash

#awk '/root/{count++;}{print "root was found "count" times"}' /mnt/passwd

root was found 1 times

root was found 1 times

root was found 2 times

root was found 2 times

root was found 3 times

root was found 3 times

root was found 4 times

# awk '/root/{count++;}END{print "root was found "count" times"}' /mnt/passwd

root was found 4 times

===========================

BEGIN模块后紧跟着动作块,这个动作块在awk处理任何输入文件之前执行。所以它可以在没有任何输入的情况下进行测试。它通常用来改变内建变量的值,如OFS,RS和FS等,以及打印标题。如:$ awk‘BEGIN{FS=”:”; OFS=”\t”; ORS=”\n\n”}{print $1,$2,$3} test。上式表示,在处理输入文件以前,域分隔符(FS)被设为冒号,输出文件分隔符(OFS)被设置为制表符,输出记录分隔符(ORS)被设置为两个换行符。$ awk ‘BEGIN{print “TITLE TEST”}只打印标题.

END不匹配任何的输入文件,但是执行动作块中的所有动作,它在整个输入文件处理完成后被执行。如$ awk ‘END{print “The number of records is” NR}’ test,上式将打印所有被处理的记录数。

如何把一行竖排的数据转换成横排?

awk ‘{printf(“%s,”,$1)}’ filename

 

awk ‘BEGIN {FS=”:”;OFS=”:”} gsub(/root/,”hwl”,$1) {print $0}’ passwd 作用于域t

awk ‘BEGIN {FS=”:”;OFS=”:”} gsub(/root/,”hwl”) {print $0}’ passwd 作用于全部域

awk ‘BEGIN {FS=”:”;OFS=”:”} sub(/root/,”hwl”,$6) {print $0}’ passwd 将t中第一次出现的r替换为s

=================================

在Unix awk中两个特别的表达式,BEGIN和END,这两者都可用于pattern中(参考前面的awk语法),提供BEGIN和END的作用是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作。

任何在BEGIN之后列出的操作(在{}内)将在Unix awk开始扫描输入之前执行,而END之后列出的操作将在扫描完全部的输入之后执行。因此,通常使用BEGIN来显示变量和预置(初始化)变量,使用END来输出最终结果。

例:累计销售文件xs中的销售金额(假设销售金额在记录的第三字段):

cat sx

一:50件:200.00

二:60件:300.00

三:70件:400.00

$awk

'BEGIN { FS=":";print "统计销售金额";total=0}

{print $3;total=total+$3;}

END {printf "销售金额总计:%.2f",total}' sx

统计销售金额

200.00

300.00

400.00

销售金额总计:900.00

(注:>是shell提供的第二提示符,如要在shell程序Unix awk语句和Unix awk语言中换行,则需在行尾加反斜杠)

在这里,BEGIN预置了内部变量FS(字段分隔符)和自定义变量total,同时在扫描之前显示出输出行头。而END则在扫描完成后打印出总合计。

# awk 'BEGIN { FS=":";print "统计销售金额";total=0} {print $3;total=total+$3;}{printf "销售金额总计:%.2f",total}' sx

统计销售金额

200.00

销售金额总计:200.00300.00 //200+0 300

销售金额总计:500.00400.00 //200+300 400

销售金额总计:900.00 //500+400

================================

包含BEGIN模式和END模式的脚本awkscript:

#!/usr/bin/awk -f

-f参数告诉awk将该文件作为awk的程序文件,然后即可运行该程序。

# awk script using pipes -- awkscript

#1-  第一部分BEGIN会先执行,在输入文件之前执行

BEGIN{

printf " %-22s%s ", "NAME", "DISTRICT"

print "--------------------------------------"

}

#-1

#2- 第二部分 awk脚本正文,要对来自输入文件datafile的每一行都要执行一遍

/west/{count++}

{printf "%s %s %-15s ", $3, $4, $1| "sort +1" }

#-2

#3- 第三部分 输入文件关闭后awk退出之前执行

END{

close "sort +1"

printf "The number of sales persons in the western "

printf "region is " count "."

}

=================

awk  'BEGIN { OFS="%"}{print $1,$2}' file 通过设置输出分隔符(OFS="%")修改输出格式。

 


十六awk 用法

 

1、awk '/101/'    file      显示文件file中包含101的匹配行。 
   awk '/101/,/105/'  file 
   awk '$1 == 5'    file 
   awk '$1 == "CT"'    file    注意必须带双引号 
   awk '$1 * $2 >100 '   file  
   awk '$2 >5 && $2<=15'  file


2、awk '{print NR,NF,$1,$NF,}' file     显示文件file的当前记录号、域数和每一行的第一个和最后一个域。 
   awk '/101/ {print $1,$2 + 10}' file       显示文件file的匹配行的第一、二个域加10。 
   awk '/101/ {print $1$2}'  file 
   awk '/101/ {print $1 $2}' file       显示文件file的匹配行的第一、二个域,但显示时域中间没有分隔符。


3、df | awk '$4>1000000 '         通过管道符获得输入,如:显示第4个域满足条件的行。


4、awk -F "|" '{print $1}'   file         按照新的分隔符“|”进行操作。 
   awk  'BEGIN { FS="[: \t|]" } 
   {print $1,$2,$3}'       file         通过设置输入分隔符(FS="[: \t|]")修改输入分隔符。 

   Sep="|" 
   awk -F $Sep '{print $1}'  file   按照环境变量Sep的值做为分隔符。    
   awk -F '[ :\t|]' '{print $1}' file   按照正则表达式的值做为分隔符,这里代表空格、:、TAB、|同时做为分隔符。 
   awk -F '[][]'    '{print $1}' file   按照正则表达式的值做为分隔符,这里代表[、]


5、awk -f awkfile    file         通过文件awkfile的内容依次进行控制。 
   cat awkfile 
/101/{print "\047 Hello! \047"}    --遇到匹配行以后打印 ' Hello! '.  \047代表单引号。 
{print $1,$2}                      --因为没有模式控制,打印每一行的前两个域。


6、awk '$1 ~ /101/ {print $1}' file         显示文件中第一个域匹配101的行(记录)。


7、awk   'BEGIN { OFS="%"} 
   {print $1,$2}'  file           通过设置输出分隔符(OFS="%")修改输出格式。


8、awk   'BEGIN { max=100 ;print "max=" max}             BEGIN 表示在处理任意行之前进行的操作。 
   {max=($1 >max ?$1:max); print $1,"Now max is "max}' file           取得文件第一个域的最大值。 
   (表达式1?表达式2:表达式3 相当于: 
   if (表达式1) 
       表达式2 
   else 
       表达式3 
   awk '{print ($1>4 ? "high "$1: "low "$1)}' file 


9、awk '$1 * $2 >100 {print $1}' file         显示文件中第一个域匹配101的行(记录)。


10、awk '{$1 == 'Chi' {$3 = 'China'; print}' file        找到匹配行后先将第3个域替换后再显示该行(记录)。 
    awk '{$7 %= 3; print $7}'  file           将第7域被3除,并将余数赋给第7域再打印。


11、awk '/tom/ {wage=$2+$3; printf wage}' file          找到匹配行后为变量wage赋值并打印该变量。


12、awk '/tom/ {count++;}  
         END {print "tom was found "count" times"}' file            END表示在所有输入行处理完后进行处理。


13、awk 'gsub(/\$/,"");gsub(/,/,""); cost+=$4; 
         END {print "The total is $" cost>"filename"}'    file             gsub函数用空串替换$和,再将结果输出到filename中。 
    1 2 3 $1,200.00 
    1 2 3 $2,300.00 
    1 2 3 $4,000.00 

    awk '{gsub(/\$/,"");gsub(/,/,""); 
    if ($4>1000&&$4<2000) c1+=$4; 
    else if ($4>2000&&$4<3000) c2+=$4; 
    else if ($4>3000&&$4<4000) c3+=$4; 
    else c4+=$4; } 
    END {printf  "c1=[%d];c2=[%d];c3=[%d];c4=[%d]\n",c1,c2,c3,c4}"' file 
    通过if和else if完成条件语句 

    awk '{gsub(/\$/,"");gsub(/,/,""); 
    if ($4>3000&&$4<4000) exit; 
    else c4+=$4; } 
    END {printf  "c1=[%d];c2=[%d];c3=[%d];c4=[%d]\n",c1,c2,c3,c4}"' file 
    通过exit在某条件时退出,但是仍执行END操作。 
    awk '{gsub(/\$/,"");gsub(/,/,""); 
    if ($4>3000) next; 
    else c4+=$4; } 
    END {printf  "c4=[%d]\n",c4}"' file 
    通过next在某条件时跳过该行,对下一行执行操作。 


14、awk '{ print FILENAME,$0 }' file1 file2 file3>fileall              把file1、file2、file3的文件内容全部写到fileall中,格式为 
    打印文件并前置文件名。


15、awk ' $1!=previous { close(previous); previous=$1 }    
    {print substr($0,index($0," ") +1)>$1}' fileall           把合并后的文件重新分拆为3个文件。并与原文件一致。


16、awk 'BEGIN {"date"|getline d; print d}'         通过管道把date的执行结果送给getline,并赋给变量d,然后打印。 


17、awk 'BEGIN {system("echo \"Input your name:\\c\""); getline d;print "\nYour name is",d,"\b!\n"}' 
    通过getline命令交互输入name,并显示出来。 
    awk 'BEGIN {FS=":"; while(getline< "/etc/passwd" >0) { if($1~"050[0-9]_") print $1}}' 
    打印/etc/passwd文件中用户名包含050x_的用户名。 

18、awk '{ i=1;while(i<NF) {print NF,$i;i++}}' file 通过while语句实现循环。 
    awk '{ for(i=1;i<NF;i++) {print NF,$i}}'   file 通过for语句实现循环。     
    type file|awk -F "/" ' 
    { for(i=1;i<NF;i++) 
    { if(i==NF-1) { printf "%s",$i } 
    else { printf "%s/",$i } }}'               显示一个文件的全路径。 
    用for和if显示日期 
    awk  'BEGIN { 
for(j=1;j<=12;j++) 
{ flag=0; 
  printf "\n%d月份\n",j; 
        for(i=1;i<=31;i++) 
        { 
        if (j==2&&i>28) flag=1; 
        if ((j==4||j==6||j==9||j==11)&&i>30) flag=1; 
        if (flag==0) {printf "%02d%02d ",j,i} 
        } 

}'


19、在awk中调用系统变量必须用单引号,如果是双引号,则表示字符串 
Flag=abcd 
awk '{print '$Flag'}'   结果为abcd 
awk '{print  "$Flag"}'   结果为$Flag

===============================

    $awk 'BEGIN{total=0}{total+=$4}END{print total}' a.txt   -----对a.txt文件的第四个域进行求和!

$ awk '/^(no|so)/' test      -----打印所有以模式no或so开头的行。

$ awk '/^[ns]/{print $1}' test       -----如果记录以n或s开头,就打印这个记录。

$ awk '$1 ~/[0-9][0-9]$/(print $1}' test         -----如果第一个域以两个数字结束就打印这个记录。

$ awk '$1 == 100 || $2 < 50' test      -----如果第一个或等于100或者第二个域小于50,则打印该行。

$ awk '$1 != 10' test    -----如果第一个域不等于10就打印该行。

$ awk '/test/{print $1 + 10}' test  -----如果记录包含正则表达式test,则第一个域加10并打印出来。

$ awk '{print ($1 > 5 ? "ok "$1: "error"$1)}' test   -----如果第一个域大于5则打印问号后面的表达式值,否则打印冒号后面的表达式值。

$ awk '/^root/,/^mysql/' test        ----打印以正则表达式root开头的记录到以正则表达式mysql开头的记录范围内的所有记录。如果找到一个新的正则表达式root开头的记录,则继续打印直到下一个以正则表达式mysql开头的记录为止,或到文件末尾。

 

10.11 Linux网络相关

 

ifconfig命令

 

Centos7默认没有安装,需安装net-tools包

 

查看ip

 

[root@linux1 ~]# ifconfigens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

 

        inet 192.168.1.211  netmask 255.255.255.0  broadcast 192.168.1.255

 

        inet6 fe80::5114:2b77:d59a:bc78  prefixlen 64  scopeid 0x20<link>

 

        ether 00:0c:29:2f:92:ee  txqueuelen 1000  (Ethernet)

 

        RX packets 59711  bytes 28497195 (27.1 MiB)

 

        RX errors 0  dropped 0  overruns 0  frame 0

 

        TX packets 59181  bytes 15741371 (15.0 MiB)

 

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

 

        inet 127.0.0.1  netmask 255.0.0.0

 

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

 

        loop  txqueuelen 1  (Local Loopback)

 

        RX packets 64  bytes 5312 (5.1 KiB)

 

        RX errors 0  dropped 0  overruns 0  frame 0

 

        TX packets 64  bytes 5312 (5.1 KiB)

 

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0//显示指定接口

 

[root@linux1 ~]# ifconfig ens32ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

 

        inet 192.168.1.211  netmask 255.255.255.0  broadcast 192.168.1.255

 

        inet6 fe80::5114:2b77:d59a:bc78  prefixlen 64  scopeid 0x20<link>

 

        ether 00:0c:29:2f:92:ee  txqueuelen 1000  (Ethernet)

 

        RX packets 59778  bytes 28511154 (27.1 MiB)

 

        RX errors 0  dropped 0  overruns 0  frame 0

 

        TX packets 59207  bytes 15745059 (15.0 MiB)

 

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

设定临时IP

 

[root@linux1 ~]# ifconfig ens32 192.168.1.222 255.255.255.0

 

ifdown和ifup命令 停止和启动网卡。

 

//注意不要分开执行,这样会导致你连不上去。

 

[root@linux1 ~]# ifdown ens32 && ifup ens32

 

Device 'ens32' successfully disconnected.Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

 

虚拟网卡设置

 

[root@linux1 ~]# cd /etc/sysconfig/network-scripts/

 

[root@linux1 network-scripts]# cp ifcfg-ens32 ifcfg-ens32\:0

 

[root@linux1 network-scripts]# vim !$

 

vim ifcfg-ens32\:0

 

  1 TYPE="Ethernet"                                                                                 

 

  2 PROXY_METHOD="none"

 

  3 BROWSER_ONLY="no"

 

  4 BOOTPROTO="none"

 

  5 DEFROUTE="yes"

 

  6 IPV4_FAILURE_FATAL="no"

 

  7 IPV6INIT="yes"

 

  8 IPV6_AUTOCONF="yes"

 

  9 IPV6_DEFROUTE="yes"

 

 10 IPV6_FAILURE_FATAL="no"

 

 11 IPV6_ADDR_GEN_MODE="stable-privacy"

 

 12 NAME="ens32"

 

 13 UUID="f78a6b73-f367-498a-b3ee-47f6b29ceab4"

 

 14 DEVICE="ens32:0"

 

 15 ONBOOT="yes"

 

 16 IPADDR="192.168.1.211"

 

 17 PREFIX="24"

 

 18 GATEWAY="192.168.1.1"

 

 19 DNS1="8.8.8.8""ifcfg-ens32:0" 21L, 419C                                                         1,1           Top

 

  1 TYPE="Ethernet"

 

  2 PROXY_METHOD="none"

 

  3 BROWSER_ONLY="no"

 

  4 BOOTPROTO="none"

 

  5 DEFROUTE="yes"

 

  6 IPV4_FAILURE_FATAL="no"

 

  7 IPV6INIT="yes"

 

  8 IPV6_AUTOCONF="yes"

 

  9 IPV6_DEFROUTE="yes"

 

 10 IPV6_FAILURE_FATAL="no"

 

 11 IPV6_ADDR_GEN_MODE="stable-privacy"

 

 12 NAME="ens32:0"

 

 13 UUID="f78a6b73-f367-498a-b3ee-47f6b29ceab4"

 

 14 DEVICE="ens32:0"

 

 15 ONBOOT="yes"

 

 16 IPADDR="192.168.1.212"

 

 17 PREFIX="24"                                                                           

 

 21 IPV6_PRIVACY="no""ifcfg-ens32:0" 21L, 424C written   

 

//将设备名改为与配置文件名一致ens32:0

 

//网关,dns不需要,删除即可。

 

//保存退出

 

//重启网卡

 

[root@linux1 ~]# ifdown ens32 && ifup ens32

 

Device 'ens32' successfully disconnected.

 

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)

 

[root@linux1 ~]# ifconfig

 

ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

 

        inet 192.168.1.211  netmask 255.255.255.0  broadcast 192.168.1.255

 

        inet6 fe80::5114:2b77:d59a:bc78  prefixlen 64  scopeid 0x20<link>

 

        ether 00:0c:29:2f:92:ee  txqueuelen 1000  (Ethernet)

 

        RX packets 62799  bytes 29182237 (27.8 MiB)

 

        RX errors 0  dropped 0  overruns 0  frame 0

 

        TX packets 60343  bytes 15911826 (15.1 MiB)

 

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

//虚拟网卡正常出现

 

ens32:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

 

        inet 192.168.1.212  netmask 255.255.255.0  broadcast 192.168.1.255

 

        ether 00:0c:29:2f:92:ee  txqueuelen 1000  (Ethernet)

 

 

 

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

 

        inet 127.0.0.1  netmask 255.0.0.0

 

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

 

        loop  txqueuelen 1  (Local Loopback)

 

        RX packets 64  bytes 5312 (5.1 KiB)

 

        RX errors 0  dropped 0  overruns 0  frame 0

 

        TX packets 64  bytes 5312 (5.1 KiB)

 

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

mii-tool命令查看网卡是否连接

 

[root@linux1 ~]# mii-tool ens32

 

ens32: negotiated 1000baseT-FD flow-control, link ok

 

ethtool命令查看网卡是否连接

 

[root@linux1 ~]# ethtool ens32

 

Settings for ens32:

 

    Supported ports: [ TP ]

 

    Supported link modes:   10baseT/Half 10baseT/Full

 

                            100baseT/Half 100baseT/Full

 

                            1000baseT/Full

 

    Supported pause frame use: No

 

    Supports auto-negotiation: Yes

 

    Advertised link modes:  10baseT/Half 10baseT/Full

 

                            100baseT/Half 100baseT/Full

 

                            1000baseT/Full

 

    Advertised pause frame use: No

 

    Advertised auto-negotiation: Yes

 

    Speed: 1000Mb/s

 

    Duplex: Full

 

    Port: Twisted Pair

 

    PHYAD: 0

 

    Transceiver: internal

 

    Auto-negotiation: on

 

    MDI-X: off (auto)

 

    Supports Wake-on: d

 

    Wake-on: d

 

    Current message level: 0x00000007 (7)

 

                   drv probe link

 

    Link detected: yes

 

hostnamectl修改主机名

 

[root@linux1 ~]# hostnamectl set-hostname lanqaurk.com

 

//相应的配置文件为/etc/hostname

 

DNS配置文件:/etc/resolv.conf

 

hosts文件: /etc/hosts

 

 

 

 

posted @ 2018-08-21 12:00  Linux操作系统爱好者  阅读(104)  评论(0)    收藏  举报