06葵花寶典之linux網絡、進程管理和shell循環語句

06葵花寶典之linux網絡、進程管理和shell循環語句

作為服務器,其輸入輸出功能在大多數時候都是通過網絡提供的,網絡功能對于服務器而言是至關重要的。

一、OSI七層模型和TCP/IP四層模型

1、OSI七層模型

OSI七層模型是參考ISO(International Standard Organization國際標準化組織)所指定的一個用于通信系統間互聯的標準體系。 OSI(Open System Interconnetcion,開放系統互聯)是一個參考模型。其從底層到高層分別是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層

1-1、物理層

物理層用于定義物理連接的手段,以及數據的bit流信號如何通過設備的電氣特性進行傳輸;比如,可以通過雙絞線傳輸,也可以通過WIFI傳輸,還可以通過同軸電纜傳輸,這些不同的物理鏈路方法中,也有不同的定義來規定信號的電氣特性;也就是如何將數據的0、1轉換為光、電或者其他信息進行傳輸,并在接收端還原出來。在這一層上,數據一般稱之為數據流。

1-2、數據鏈路層

其主要作用是對物理層收的的0、1信號進行分組和解釋,或者說,將上層的數據進行分組包裝后變成0、1信號,交給物理層進行傳輸,在這層上,數據一般稱之為數據幀。數據幀一般有標頭和數據兩部分,標頭包括數據的一些說明向,數據則是上層協議需要傳輸的內容。

1-3、網絡層

在網絡層,可以將一個大的網絡,劃分為小的網絡,這個是通過我們常說的IP地址來實現的。網絡層主要的主要目的,是隔離數據鏈路層的一些廣播數據,以及實現網絡到網絡的尋址,也就是我們常說的路由功能。

1-4、傳輸層

通過前三層,基本可以實現主機到主機的通信了,但主機上運行的軟件或者進程很多,收到的數據或者發出的數據具體是到那個軟件或者那個進程呢?這就需要進程的端口號來標示。傳輸層可以建立起A主機的某個進程到B主機的某個進程間的通信。

1-5、會話層

主機之間建立、管理、終止會話。

1-6、表示層

各類型文件或者數據采用何種方式進行表示。比如,一張圖片是采用那種格式進行編碼,如何加密等等

1-7、應用層

使用應用層來處理網絡應用。

2、TCP/IP四層模型

TP/IP四層模型可以看作是OSI七層模型的一個具體實現,也是現在網絡上設備之間通信的一個事實標準,它將七層模型中的物理層和數據鏈路層合起來稱為數據鏈路層,將會話層、表示層和應用層合起來稱為應用層。

不論是七層模型還是四層模型,對于網絡連接而言,需要使用到的常用協議或者標準有:ARP(地址解析協議,工作在數據鏈路層)、IP(網際協議,工作在網絡層)、TCP/UDP(傳輸控制協議/用戶數據報協議,工作在傳輸層)、Http/Ftp(超文本傳輸協議/簡單文件傳輸協議)等等。

二、iproute命令

在linux上配置查看或更改設備的屬性,通常使用ip、ifconfig命令。

1、ifconfig

ifconfig:configure a network interface,配置網絡接口。

常見使用方法如下:

1-1、ifconfig 不跟任何選項或參數,用于顯示當前主機上沒有被禁止的網絡接口的配置信息。如:

[root@koala ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:0D:FF:B8  
          inet addr:192.168.1.169  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe0d:ffb8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:214 errors:0 dropped:0 overruns:0 frame:0
          TX packets:188 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:23778 (23.2 KiB)  TX bytes:31448 (30.7 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:240 (240.0 b)  TX bytes:240 (240.0 b)

也可以跟一個指定接口,只顯示該接口的網絡配置信息,如: ifconfig eth0

1-2、ifconfig INTERFACE up|down 啟用或禁用名稱為INTERFACE的接口

如:ifconfig eth0 down 禁用eth0這個網絡接口。

1-3、ifconfig INTERFACE ip/mask_len 配置接口地址為指定地址

如:配置接口地址為:192.168.0.1,掩碼為255.255.0.0(掩碼長度16位)

[root@koala ~]# ifconfig eth0 192.168.0.1/16

刪除接口地址:

ifconfig eth0 del ip

2、ip

ip命令用于顯示或者設置路由、設備網絡配置、策略路由等信息

2-1、ip link show/ip addr show 顯示網絡接口相關信息,后面可跟具體接口名稱,顯示該接口信息

ip addr show 顯示更詳細的信息,包括接口的ip地址以及輔助地址(secondary)

[root@koala ~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:0d:ff:b8 brd ff:ff:ff:ff:ff:ff
[root@koala ~]# ip addr show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:55:aa:55:bb:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.250/24 brd 192.168.1.255 scope global eth0
    inet 192.168.2.169/24 scope global eth0
    inet 192.168.1.169/24 scope global secondary eth0
    inet6 fe80::255:aaff:fe55:bb55/64 scope link 
       valid_lft forever preferred_lft forever

2-2、ip link set DEVICE 設置

可以設置的參數有 up|down 接口的開啟或關閉 arp {up|down} 接口arp協議的開啟或關閉 mtu 設置接口的mtu值,最大傳輸單元 address 接口的物理地址,格式 AA:BB:CC:DD:EE:FF alias 接口的別名 name 接口名稱(重命名接口名稱)

2-3、ip addr {add|del} ipaddress dev STRING

[root@koala ~]# ip addr add 192.168.2.169/24 dev eth0

為eth0接口增加ip地址:192.168.2.169/24

[root@koala ~]# ip addr del 192.168.2.169/24 dev eth0

刪除接口的192.168.2.169/24這個地址

注意:無論是ifconfig還是ip命令,其都是立即有效,但是服務或系統重啟后,該配置無效。要使設置的ip相關參數重啟后仍然有效,需要修改配置文件(/etc/sysconfig/network-scripts/,以ifcfg-接口名為名稱的文件)

如:配置eth0接口(在Cetnos6,網絡接口一般以eth#命名,如ifcfg-eth0;在Centos7,網絡接口一般以eno167777##命名,如eno16777736)的ip為靜態ip,192.168.1.185/24,網關192.168.1.1,DNS114.114.114.114等,配置文件如下:

DEVICE=eth0
HWADDR=00:0C:29:0D:FF:B8
TYPE=Ethernet
UUID=02f6e8e0-dc1e-4f97-a958-ea7bd4b65f76
ONBOOT=yes
IPADDR=192.168.1.185
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
NM_CONTROLLED=yes
BOOTPROTO=static

三、進程相關命令 htop vmstat

1、ps

ps顯示當前系統上的進程信息。常用選項為

a 顯示用戶的進程
u 以用戶格式顯示,主要顯示user(用戶)、PID(進程號)、%cpu(CPU占用率)、%mem(內存占用率)、vsz(虛擬內存大?。?、RSS(駐留實際內存大?。?、tty(終端號)、stat(進程狀態)、start(起始時間)、time(累計運行時間)、command(哪個命令發起的進程) 
x 與終端無關的進程
-e 顯示所有進程
-f 全格式顯示(PPID,該進程的父進程號)
-H 以層級結構顯示(hierarchy)
o 以指定格式顯示進程

ps aux 以用戶格式顯示所有進程。
ps -efH 
ps o pid,ni,tty,ppid,rtprio,comm,stat
ps -e o pid,ni,tty,stat

stat:進程狀態有: R,running運行態;S,Interrupt sleeping可中斷睡眠態;D,Uninterrupt sleeping不可終端睡眠態;T,stopped停止態;Z,zomble僵死態;+,前臺進程,N 低優先級;<,高優先級

2、htop

htop是一個交互式的進程信息查看工具,可以認為是top的升級版。htop并不在CentOS的光盤所帶和鏡像倉庫中,他在epel倉庫中,安裝前,首先要配置好epel倉庫。

使用htop命令進入交互式界面,如圖htop

使用F1-F10進入相應的模式

F1幫助 常用的命令有: H用戶進程或線程開關 K系統進程或線程開關 F選中鼠標點擊的進程 P M T 使用cpu% mem% Time來進行排序q
F2設置 主要用于設置htop命令的默認選項 meters 設置上方左右的顯示信息,默認為cpu mem swp tasks loadaverage uptime等 display options 設置顯示信息 color columns設置需要顯示的進程屬性信息。

F3匹配第一個含查找字符串的進程,使用F3切換至下一個匹配到的,此時,仍然顯示所有進程

F4匹配查找到字符串的進程,其他未被字符串匹配的進程不顯示

F5以樹狀格式顯示(或關閉樹狀結構顯示)

F6展開或關閉選定的樹狀結構

F7將選中的進程的nice值變小(即優先級變高),root用戶有效

F8將選中的進程的nice值變大(即優先級變低),root用戶有效

F9kill選中的進程,ENter確定

F10退出htop

常用選項

-u username 顯示指定用戶的進程
-s COLUMN 以指定列排序(使用htop --sort-key help查看可以用于排序的列,也可以在F2中查看可以用于排序的列)

3、vmstat

顯示虛擬內存統計信息

常用選項-s 顯示內存統計數據

當只是有vmstat命令時,顯示內容信息解釋如下:

[root@localhost tmp]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 646008   1240 245436    0    0     9     3   22   32  0  0 100  0  0
procs 進程
    r 等待運行的,指cpu隊列長度
    b 被阻塞的進程,也就是不可終端睡眠狀態的進程數量

memory 內存
    swpd 交換內存使用總是,0表示未啟用swap分區
    free 空閑內存
    buff 緩沖區
    cache 緩存
swap 交換分區
    si swapin 換進速率 kb/s
    so swapout 換出速率
io 塊設備
    bi blockin 從塊設備讀入
    bo 寫入塊設備
system
    in interrupt 終端產生速率
    cs context switch 上下文轉換速率
cpu
    us 用戶空間進程
    sy 系統
    id 空閑
    wa 等待
    st 被虛擬機占用的(stolen)

四、使用until和while分別實現192.168.0.0/24

網段內,地址是否能夠ping通,弱ping通則輸出”success!”,若ping不通則輸出”fail!”

while循環:條件為真,則執行循環體,條件一旦為假,則退出循環。

#!/bin/bash
#

declare -i i=1

while [ $i -lt 255 ];do
    if ping -c 2 "192.168.1.$i"> /dev/null;then
        echo ping "192.168.1.$i" success!
    else
        echo ping "192.168.1.$i" fail! 
    fi
    i=$i+1    
done

ping -c 說明發的ping包次數,將其送給/dev/null。如果ping成功,則其命令執行狀態結果為真,輸出success,否則輸出fail

until循環:條件為假,則執行循環體,條件一旦為真,則退出循環。

#!/bin/bash
#

declare -i i=1

until [ $i -ge 15 ];do
    if ping -c 2 "192.168.1.$i"> /dev/null;then
        echo ping "192.168.1.$i" success!
    else
        echo ping "192.168.1.$i" fail! 
    fi
    i=$i+1    
done

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/96211

(0)
koalakoala
上一篇 2018-04-15 21:18
下一篇 2018-04-15 21:40

相關推薦

  • 喜歡上find

    喜歡上findfind :查找目錄下的文件。find 命令其實很好記,會用了,那簡直太好玩太方便了-newer查找更改時間比指定文件新的文件-type 按類型查找 (d f l s b c p )D-name 按文件名查找-mtime 按修改時間查找( +2 -2 2)-size 按文件大小查找-perm 按文件權限查找-user 按文件屬主來查找-nous…

    2018-04-18
  • Linux文件管理及bash基礎特性

      1、Linux系統文件管理類命令及其常用方法、相關示例演示。 Linux系統文件管理類命令主要有cp、mv、rm ①???? cp命令:copy cp命令用于復制文件或目錄,分單源、多源復制兩種情況。 單源復制: 命令格式:cp [OPTION]… [-T] SOURCE DEST 如果DEST不存在,則先創建此文件,并復制源文件的…

    2018-07-01
  • liunx 系統筆記

    服務器的硬件組成 ?如圖: 服務器配置示例:

    Linux筆記 2018-04-01
  • LFS實驗第一次——第一章

    環境準備:Centos6.8虛擬機 2G內存 2顆CPU 200G硬盤分區情況:/ 50G ?/boot 1G ?/swap 2G /data 30G 安裝時吧開發工具安裝上(gcc)

    2018-03-29
  • Linux學習筆記——權限管理

    Linux學習筆記——權限管理 前言: Linux下的權限管理與日常使用的windows有眾多與眾不同之處。這些特性使得Linux在實際生產作業中更加安全與高效,發揮著各種靈活的作用。本文簡要寫下筆者對Linux權限管理的理解,供參考與復習,歡迎指正。 回顧: 確認文件的權限與所有者: 使用ll(即ls -l) 命令可查看這個文件的詳細信息。 $?ll da…

    2018-04-07
  • N31第三周

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d ‘ ‘ -f1 | sort -u 2、取出最后登錄到當前系統的用戶的相關信息。 ?w |cut -d ‘ ‘ -f1 |tail -1 |xargs id 3、取出當前系統上被用戶當作其默認shell的最多的那個shell。 cat /et…

    Linux筆記 2018-07-16
欧美性久久久久