內容選單標籤

2017年5月14日 星期日

C語言程式


-----------------------------選擇排序
#include<stdio.h>
int main()
{
int Ary[]={3,7,1,6,8};
int min,n=5;                 /*最小值、元素個數*/

for (int i =0;i<n-1;i++)     /*比較第幾回合*/
{
min=i;                   /*第1回合設定第1個元素為最小*/
for (int j=i+1;j<n;j++)  /*第1回合從第2個元素才開始比*/
{
if (Ary[j]<Ary[min])
{
min=j;
}
}

int tmp=Ary[i];
Ary[i]=Ary[min];
Ary[min]=tmp;
}

for(int i=0;i<n;i++)
{
printf("%d ",Ary[i]);
}

}


-----------------------------氣泡排序 小->大

#include<stdio.h>
int main()
{
int a[5]={9,8,6,4,3};
int n=5;
for (int i=0;i<=n-1;i++)          /*5個元素比4個回合*/
{
for (int j=0;j<n-i-1;j++)  
/*第1回j=0~4 因以[j+1]表示 所以j=0~3  第2回j=0~3 第3回j=0~2 第4回j=0~1*/
{
if (a[j]>a[j+1])
{
int max=a[j];
a[j]=a[j+1];
a[j+1]=max;
}
}
}

for (int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}



-----------------------------Factorial

#include<stdio.h>
int fact(int n)
{
int result;
if (n==1)
{
result=1;
}
else
{
result=n*fact(n-1);
}

return result;
}

int main()
{
int x;
scanf("%d",&x);
printf("%d!= %d",x,fact(x));
}




-----------------------------Fibonacci Number

#include<stdio.h>
int Fib(int n)
{
int result;
if (n==0)
{
result=0;
}
else
if(n==1)
{
result=1;
}
else
if(n>=2)
{
return Fib(n-1)+Fib(n-2);
}

return result;
}

int main()
{
int x;
scanf("%d",&x);
printf("%第%d項= %d",x,Fib(x));
}




-----------------------------Great Command Divisor

#include<stdio.h>
int GCD(int a,int b)
{
int c=a%b;
if (c==0)
{
return b;
}
else
{
return GCD(b,c);
}


}

int main()
{
int x,y;
scanf("%d %d",&x,&y);
printf("GCD(%d,%d)= %d",x,y,GCD(x,y));
}




-----------------------------Hanoi Tower

#include <stdio.h>
int cnt=0;
void hanoi(int n, char A, char B, char C)
{
if (n==1)
{
/*³Ì©³ n¡A±qA~C*/
printf("%d ¡G ±N²Ä %d ­Ó¶ê½L¥Ñ %c  ²¾¨ì %c \n",++cnt,n,A,C);

}
else
{
/*²Ä n-1¼h¡A¥ý¥Ñ A~B */
hanoi(n-1,A,C,B);
printf("%d ¡G ±N²Ä %d ­Ó¶ê½L¥Ñ %c  ²¾¨ì %c \n",++cnt,n,A,C);
/*¦A¥Ñ B~C*/
hanoi(n-1,B,A,C);
}
}



int main()
{
int n;
scanf("%d",&n);
hanoi(n,'A','B','C');
printf("²¾°Ê %d ¼h¡A¦@»Ý²¾°Ê %d ¦¸",n,cnt);
}

-----------------------------

-----------------------------

-----------------------------

-----------------------------


-----------------------------



-----------------------------

2017年5月5日 星期五

ch7 使用者帳號管理

# groupadd kkGroup
# cat /etc/group
...
kkGroup:x:1000:

useradd   [選項]   帳號名稱
選項:
-c    註解
-g   主要群組名稱或GID
-G   附加群組名稱或GID
-d    指定家目錄
-e    建立的帳號有效日期
-u    指定帳號的UID編號


# useradd -g kkGroup kk1
# id kk1
uid=1000(kk1) gid=1000(kkGroup) groups=1000(kkGroup)


# cat /etc/passwd           //使用者帳號資料
...
kk1:x:1000:1000::/home/kk1:/bin/bash
帳號名稱:密碼:UID:GID:註解:家目錄:登入時使用的shell
//若要停止帳號登入,可將密碼資料 x 改成 !


# cat /etc/shadow           //使用者密碼
...
kk1:!!:17291:0:99999:7:::


# usermod -G root kk1

# id kk1
uid=1000(kk1) gid=1000(kkGroup) groups=1000(kkGroup),0(root)
使用者編號uid(使用者名稱)   群組編號   群組名稱   附加群組資訊


# userdel -r kk1           //刪除帳號及其家目錄所有檔案
# id kk1
id: kk1: no such user
# ls /home

# groupdel kkGroup    //刪除沒有使用者指派的群組



變更檔案權限---         chmod

變更檔案擁有者---     chown

變更檔案所屬群組--- chgrp





    



2017年5月4日 星期四

ch17 DNS

BIND Berkeley Internet Name Domain
FQDN Fully Qualified Domain Name

資源記錄:

網域名稱   [TTL]   [類別]   記錄的類型   值

網域名稱:也可以是IP位址
TTL:記錄存活的時間值
類別:以TCP/IP網路,則一定是 IN

記錄的類型:
SOA:       權限開始
NS:          DNS伺服器
MX:         郵件交換器
A:            位址
PTR:       指標
CNAME:標準名稱

值:記錄的值




# yum install -y bind bind-chroot bind-utils

# rpm -qa | grep bind
bind-libs-9.9.4-38.el7_3.3.x86_64
bind-chroot-9.9.4-38.el7_3.3.x86_64
bind-libs-lite-9.9.4-38.el7_3.3.x86_64
bind-license-9.9.4-38.el7_3.3.noarch
bind-9.9.4-38.el7_3.3.x86_64
bind-utils-9.9.4-38.el7_3.3.x86_64


---------------------------------------------------------------------------
bind:DNS伺服器主要套件,提供基礎的DNS功能

重要目錄與檔案說明:
/etc/named.conf                  //bind主設定檔
/etc/named.rfc1912.zones   //管轄網域設定檔
/usr/sbin/named                  //系統服務執行檔,名稱為named

# ls /var/named                   //所有管轄網域的資源紀錄預設放在此目錄
chroot  data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves



bind-chroot:加強bind套件的安全性,將bind工作目錄移至獨立的目錄下
        禁錮機制:

# ls -l /var/named/chroot
總計 0
drwxr-x---. 2 root  named 41  5月  3 15:11 dev
drwxr-x---. 4 root  named 28  5月  3 15:11 etc
drwxr-x---. 3 root  named 18  5月  3 15:11 run
drwxrwx---. 3 named named 18  5月  3 15:11 usr
drwxr-x---. 5 root  named 48  5月  3 15:11 var



bind-utils:DNS相關工具套件,提供dig等測試工具


-----------------------------------------------------------------------

# firewall-cmd --permanent --add-service=dns
success
# firewall-cmd --reload
success


# systemctl start named
# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.







dig   @[名稱伺服器位址]   名稱   [查詢類型]

查詢類型:
a:查詢IP位址,預設,可省
mx:查郵件伺服器
ns:查名稱伺服器
cname:查別名
ptr:由IP位址反查名稱
hinfo:DNS伺服器系統資訊


//預設DNS伺服器
# cat /etc/resolv.conf
# Generated by NetworkManager
search centos
nameserver 163.16.1.23



# dig tw.yahoo.com
...
;; QUESTION SECTION:                       //我們向DNS提出的問題
;tw.yahoo.com.                  IN      A

;; ANSWER SECTION:                         //DNS查詢後得到的答案
tw.yahoo.com.           52      IN      CNAME   media-router-fp1.prod.media.yahoo.com.
...

;; AUTHORITY SECTION:                  //該名稱的管轄單位
wg1.b.yahoo.com.        105017  IN      NS      yf1.yahoo.com.
wg1.b.yahoo.com.        105017  IN      NS      yf3.a1.b.yahoo.net.
wg1.b.yahoo.com.        105017  IN      NS      yf2.yahoo.com.
wg1.b.yahoo.com.        105017  IN      NS      yf4.a1.b.yahoo.net.

;; ADDITIONAL SECTION:                //額外資訊
yf1.yahoo.com.          18617   IN      A       68.142.254.15
yf2.yahoo.com.          18617   IN      A       68.180.130.15

;; Query time: 4 msec
;; SERVER: 163.16.1.23#53(163.16.1.23)      //由哪提供資料
;; WHEN: 五  5月 05 11:28:35 CST 2017
;; MSG SIZE  rcvd: 285


# dig @168.95.1.1 tw.yahoo.com
...
;; Query time: 2 msec
;; SERVER: 168.95.1.1#53(168.95.1.1)        //指定hinet的DNS查詢
;; WHEN: 五  5月 05 11:46:18 CST 2017
;; MSG SIZE  rcvd: 167



# dig @localhost www.google.com
...
;; ANSWER SECTION:
www.google.com.         300     IN      A       64.233.187.103
...


# dig @127.0.0.1 www.google.com
...
;; ANSWER SECTION:
www.google.com.         149     IN      A       64.233.187.105
...


# dig @163.16.63.191 www.google.com
; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.3 <<>> @163.16.63.191 www.google.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached


# vi /etc/named.conf
...
options {
//      listen-on port 53 { 127.0.0.1; };
        listen-on port 53 { any; };              //可以公開服務的DNS
...
 allow-query     { 163.16.63.0/24; };
...



# systemctl restart named

# dig @163.16.63.191 www.google.com
...
;; ANSWER SECTION:
www.google.com.         300     IN      A       64.233.187.104
...




-----------管理一個網域

# vi /etc/named.rfc1912.zones
...
zone "kk.rwm" IN {
        type master;
        file "named.kk";
        allow-update { none; };
};




# cp /var/named/named.empty /var/named/named.kk
# vi /var/named/named.kk
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       163.16.63.191
www     A       163.16.63.191


# chown root:named /var/named/named.kk
# ls -l /var/named/named.kk
-rw-r-----. 1 root named 166  5月  5 13:59 /var/named/named.kk


# systemctl restart named



# dig @127.0.0.1 www.kk.rwm
...
;; QUESTION SECTION:
;www.kk.rwm.                    IN      A

;; ANSWER SECTION:
www.kk.rwm.             86400   IN      A       163.16.63.191
...


# dig @163.16.63.191 www.kk.rwm
...
;; QUESTION SECTION:
;www.kk.rwm.                    IN      A

;; ANSWER SECTION:
www.kk.rwm.             86400   IN      A       163.16.63.191
...



---------------------------------windows10測試
ipv4網卡,慣用伺服器:163.16.63.191

C:\Users\User>nslookup
DNS request timed out.
    timeout was 2 seconds.
預設伺服器:  UnKnown
Address:  163.16.63.191
>

> www.kk.rwm
伺服器:  UnKnown
Address:  163.16.63.191

名稱:    www.kk.rwm
Address:  163.16.63.191
>

> www.google.com
伺服器:  UnKnown
Address:  163.16.63.191

未經授權的回答:
名稱:    www.google.com
Addresses:  2404:6800:4008:c05::93
          172.217.17.196
>

> exit




2017年4月28日 星期五

ch15 Apache

Linux的安全防護機制

1.防火牆 FirewallD (外部)
# systemctl stop firewalld.service
# systemctl disable firewalld.service

# firewall-cmd --permanent --add-service=http
success
# firewall-cmd --reload
success



2.增強安全機制 SELinux Security Enhanced Linux (內部)
# vi /etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disable                                //關閉SELinux,存檔後重新開機設定值才生效
...

# sestatus
SELinux status:                 enabled
...




-----------------------------------------------------安裝
# yum install -y httpd httpd-tools
# rpm -qa | grep httpd
httpd-tools-2.4.6-45.el7.centos.4.x86_64
httpd-2.4.6-45.el7.centos.4.x86_64
# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since 五 2017-04-28 13:55:50 CST; 1min 24s ago


--------------------------------------------虛擬目錄
# mkdir /home/test
# vi /home/test/index.html
this is visual DIR
...

# vi /etc/httpd/conf/httpd.conf
...
Alias /test "/home/test"
<Directory "/home/test">
    Require all granted
</Directory>

# systemctl restart httpd


# chcon -R -t httpd_sys_content_t /home/test
# ls -Z /home/test
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html

# sestatus
SELinux status:                 enabled
...




2017年4月25日 星期二

ch14 系統服務與排程



服務 service 是背景執行的程式,通常會占用一個埠號,等待外部連線要求。Linux的服務通稱為Daemon,所以其服務名稱通常以d 結尾,如:httpd。
Linux 以新一代系統服務管理 systemd 取代 init。
常見系統管理使用的服務:
atd.service                           //一次性的工作排程服務
crond.service                      //週期性的工作排程服務
NetworkManager.service   //動態網路連線設定管理
network.target                    //固定式網路管理服務
sysinit.target                      //系統啟動
quotacheck.service            //磁碟配額檢查服務
syslog.service                    //系統日誌管理服務
sendmail.service               //電子郵件伺服器服務
smartd.service                  //磁碟健康狀態回報服務
sshd.service                      //加密遠端登入服務
httpd.service                     //網頁伺服器服務
cups.socket                      //列印伺服器服務

服務分為:
.service
在背景持續執行並等待的服務,能快速提供服務,但較耗費系統資源。適合快速且連線數龐大的服務,如:httpd.service

.socket
通訊埠有客戶端連線時才啟動的服務,速度相對較慢,但不耗費系統資源。適合不須快速且連線數較少的服務,如:cups.socket


# ls /usr/lib/systemd/          //此目錄放置的是systemd執行檔
catalog                systemd-coredump           systemd-shutdown
ntp-units.d            systemd-cryptsetup         systemd-shutdownd
...


//此目錄放置的是系統重要的Unit服務與Target設定檔及與系統啟動相關的服務
# ls /usr/lib/systemd/system    
arp-ethers.service                      remote-fs-pre.target
auditd.service                          remote-fs.target
...

systemctl   [選項]   命令   服務對象名稱 

常用命令:
start                        啟動服務
stop                        停止服務
restart                     重啟服務
enable                     開機啟動
disable                    開機不啟動
status                      服務目前狀態



-------------------------------------------------------

Linux 系統服務類型:
1. Standalone獨立服務
無論有無客戶要求,常駐系統背景,占用一定程度的系統資源,目的是為了在最短時間提       供客戶要求。如:httpd、sendmail、named...  

2. xinetd總管服務
有些服務不是常有客戶要求,就可以將這些服務註冊在一個總管型的服務xinetd。只要該服   務的port有客戶提出要求,xinetd這個常駐服務在負責將該服務啟動,當客戶要求處理完畢,再將該服務從系統中移除,以保系統資源的最佳狀況。如:telnet、tak...
CentOS預設已不安裝 xinetd套件。




-------------------------------------------------------
系統排程
CentOS安裝完成後,開機會自動啟動 crond 服務,crond負責每分鐘讀取排程設定檔:
/etc/crontab

# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |    .------------- hour (0 - 23)
# |    |   .---------- day of month (1 - 31)
# |    |   |   .------- month (1 - 12) OR jan,feb,mar,apr ...
# |    |   |   |   .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |    |   |   |   |
# *  *  *  *  * user-name  command to be executed







2017年4月19日 星期三

Excel vba



20101版本啟用vba
檔案-->選項-->自訂功能區-->V開發人員







Private Sub ComboBox2_Change()

If (ComboBox2.Value = "新案" Or ComboBox2.Value = "檢卷") Then TextBox4.Text = "事務官" Else TextBox4.Text = "書記官"
If ComboBox2.Value = "新案" Then TextBox6.Text = TextBox3.Text Else TextBox6.Text = ""

End Sub

--------------------------------------------------------------------------

Private Sub CommandButton1_Click()

Range("B1").Select
Selection.End(xlDown).Select

If (TextBox6.Text) <> "" Then Sheets("案號管理").Range("A" & ActiveCell.Row + 1).Value = TextBox6.Value

Sheets("案號管理").Range("B" & ActiveCell.Row + 1).Value = TextBox1.Value
Sheets("案號管理").Range("C" & ActiveCell.Row + 1).Value = ComboBox1.Value
Sheets("案號管理").Range("D" & ActiveCell.Row + 1).Value = TextBox2.Value
Sheets("案號管理").Range("E" & ActiveCell.Row + 1).Value = ComboBox2.Value
Sheets("案號管理").Range("F" & ActiveCell.Row + 1).Value = TextBox3.Value

Sheets("案號管理").Range("G" & ActiveCell.Row + 1).Value = TextBox4.Value

Sheets("案號管理").Range("H" & ActiveCell.Row + 1).Value = TextBox5.Value


Selection.End(xlDown).Select

CommandButton1.Enabled = False
CommandButton2.Enabled = False

End Sub


--------------------------------------------------------------------------

Private Sub CommandButton2_Click()
       ActiveCell.Offset(0, 3).Value = ComboBox2.Value
       ActiveCell.Offset(0, 4).Value = TextBox3.Value
       ActiveCell.Offset(0, 5).Value = TextBox4.Value
       ActiveCell.Offset(0, 6).Value = TextBox5.Value
       ActiveCell.Offset(0, -1).Value = TextBox6.Value
       CommandButton1.Enabled = False
       CommandButton2.Enabled = False

End Sub


--------------------------------------------------------------------------

Private Sub CommandButton3_Click()

ComboBox1.Value = ""
TextBox2.Value = ""
ComboBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""

TextBox1.SetFocus

End Sub

--------------------------------------------------------------------------




Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Range("B2").Select
Dim i As Integer
i = 0

Do While Not (ActiveCell.Offset(i, 0).Value = "")
   
    If (ActiveCell.Offset(i, 0).Value = Val(TextBox1.Value) And ActiveCell.Offset(i, 1).Value = ComboBox1.Value And ActiveCell.Offset(i, 2).Value = Val(TextBox2.Value)) Then
     
       ComboBox2.Value = ActiveCell.Offset(i, 3).Value
       TextBox3.Value = ActiveCell.Offset(i, 4).Value
       TextBox4.Value = ActiveCell.Offset(i, 5).Value
       TextBox5.Value = ActiveCell.Offset(i, 6).Value
       TextBox6.Value = ActiveCell.Offset(i, -1).Value
     
       CommandButton1.Enabled = False
       CommandButton2.Enabled = True
     
       ActiveCell.Offset(i, 0).Select
     

        Exit Do
    Else
        i = i + 1
    End If
   
    CommandButton1.Enabled = True
    CommandButton2.Enabled = False

Loop
End Sub




--------------------------------------------------------------------------


Private Sub TextBox3_Change()

If ComboBox2.Value = "新案" Then TextBox6.Text = TextBox3.Text Else TextBox6.Text = ""

End Sub



--------------------------------------------------------------------------



Private Sub UserForm_Activate()
TextBox1.Text = Year(Date) - 1911
CommandButton1.Enabled = False
CommandButton2.Enabled = False

Dim i As Integer
i = 1
Do While Not (Sheets("dataSource").Range("A" & i) = "")
     ComboBox1.AddItem (Sheets("dataSource").Range("A" & i))
    i = i + 1
Loop


Dim j As Integer
j = 1
Do While Not (Sheets("dataSource").Range("C" & j) = "")
     ComboBox2.AddItem (Sheets("dataSource").Range("C" & j))
    j = j + 1
Loop

End Sub


--------------------------------------------------------------------------

2017年4月18日 星期二

ch13 網路指令與管理



CentOS兩種網路設定模式:
1. NetworkManager 適用動態網路設定
    如使用筆記型電腦上網方式因位置而不同,NetworkManager工具提供各類場合變換連線設       定功能。CentOS7預設啟動NetworkManager服務,可用systemctl指令將其換為network服務。


# systemctl disable NetworkManager.service      //開機不啟用

# systemctl stop NetworkManager.service          //停止服務

# chkconfig network on                                       // 開機啟用network

# systemctl start network.service                         // 啟動network

# systemctl status network                                   //確認network服務執行中
● network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network)
   Active: active (exited) since 二 2017-04-18 14:15:41 CST; 11min ago
...


2. network 適用固定位址的主機
Linuxn伺服器主機大都以network服務管理網卡,此服務位在 /etc/init.d/network,他是執行腳本,可啟動或停止系統網路設備。而network服務會讀取系統網路組態目錄下的設定檔

# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE="Ethernet"
BOOTPROTO="none"                                          //自動取得IP則為dhcp,固定IP則是static或none
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"                                                   //是否支援ipv6
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="0f512752-90bd-45ed-892c-3f478f19f84d"
DEVICE="eno16777736"                                                 //設備名稱
ONBOOT="yes"                                                               //開機是否啟動此網路卡
IPADDR="163.16.63.191"
PREFIX="24"
GATEWAY="163.16.63.254"
DNS1="163.16.1.23"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"





-------------------------------------------ifconfig命令設定網路卡
# ifconfig eno16777736
...
inet 163.16.63.191                   //IP 位址
ether 00:0c:29:c1:31:fa           //MAC位址
RX packets 308907  bytes      //已接收封包數
TX packets 8504  bytes           //已傳送封包數
...collisions 0                           //封包碰撞累計次數


# ifconfig eno16777736 up          //啟動網路卡
# ifconfig eno16777736 down     //停止網路卡
# ifconfig eno16777736 192.168.2.30 netmask 255.255.255.0        //設定網卡IP與netmask

--------------------------------------------------ip工具
ip 命令所做的設定結果不會存至系統組態檔中,所以重開後會回復原系統儲存的組態,若要實際修改系統的網路設定,可使用setup工具或修改系統網路設定檔。

# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    ...
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    ...
//UP設備已啟動   LOOPBACK是迴路設備   BROADCAST廣播設備
  MULTICAST可同時將封包傳送到其它系統網路


# ip -s link show eno16777736      // -s 設備統計資料   link 省略IP位址相關資訊
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:c1:31:fa brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    1132284    13471    0       817     0       0
    TX: bytes  packets  errors  dropped carrier collsns
    19107      122      0       0       0       0

//RX 接收 TX傳送 統計資料   
  bytes 接收或傳送位元組總數 
  packets 接收或傳送封包總數
  errors 接收或傳送錯誤總數
  dropped 因缺乏資源而被放棄的封包總數
  carrier 接收者溢位導致放棄封包的總數
  mcast 已接收多重廣播封包總數
  overrun 因失去載波,導致連結媒體失敗的總次數
  collsns 碰撞事件總次數
       
# ip address add 10.0.0.2/24 brd + dev eth0      //指派10.0.0.2位址給eth0設備                                                                                                                //brd +選項會依網路遮罩,自動設定廣播位址
# ip address show dev eno16777736
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:c1:31:fa brd ff:ff:ff:ff:ff:ff
    inet 163.16.63.191/24 brd 163.16.63.255 scope global eno16777736
       valid_lft forever preferred_lft forever
    inet 10.0.0.2/24 brd 10.0.0.255 scope global eno16777736
...

# ip address del 10.0.0.2/24 dev eno16777736      //移除設備IP位址

# ip link set eno16777736 up      //啟用網路設備   down 停用




----------------------------------
網路測試工具

# ping 168.95.1.1 -c 5      //-c 數字   只送出一定次數的ICMP封包
PING 168.95.1.1 (168.95.1.1) 56(84) bytes of data.
64 bytes from 168.95.1.1: icmp_seq=1 ttl=247 time=3.41 ms
...


# traceroute 168.95.1.1      //了解伺服器目的主機之間,經過所有節點的連線狀態
traceroute to 168.95.1.1 (168.95.1.1), 30 hops max, 60 byte packets
 1  163.16.63.254 (163.16.63.254)  0.352 ms  0.430 ms  0.376 ms
 2  10.163.17.125 (10.163.17.125)  1.519 ms  1.479 ms  1.404 ms
...


# netstat                           //主機上所有網路連接資訊
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0     52 163.16.63.191:ssh       163.16.63.190:59969     ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  5      [ ]         DGRAM                    8962     /run/systemd/journal/socket
unix  10     [ ]         DGRAM                    8964     /dev/log
...

//-n 不使用名稱改用埠號顯示 
   -t  只列出TCP協定封包的連線資訊
   -u 只列出UDP協定封包的連線資訊
   -l  只列出正在傾聽的連線資訊
   -p  列出連線是由哪個行程處理的